Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-02-2012
gianfranco_tont gianfranco_tont is offline
Miembro
NULL
 
Registrado: ene 2012
Posts: 96
Poder: 15
gianfranco_tont Va por buen camino
Wink Numero de ítem en dbgrid

Hola foro, estoy trabajando con un dbgrid atado a un datasource, luego a un dataset, luego a un dataset ro idee y finalmente a un adoquery. Quiero que cuando se agrega una fina nueva en el dbgrid en la columna ítem me refrene el numero de ítem ejemplo: 01'02'03 etc, alguien me puede indicar como hacerlo?
Responder Con Cita
  #2  
Antiguo 21-02-2012
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 688
Poder: 22
olbeup Va camino a la fama
No se a que te refieres con el número de item, pero hay una propiedad DBGrid1.DataSource.DataSet.RecNo que te devuelve el número de registro y es automático y correlativo, pero esto es virtual y no te servirá de punto de referencia, si sólo quieres que se vea un número el RecNo te lo da.

Un saludo.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.
Responder Con Cita
  #3  
Antiguo 21-02-2012
gianfranco_tont gianfranco_tont is offline
Miembro
NULL
 
Registrado: ene 2012
Posts: 96
Poder: 15
gianfranco_tont Va por buen camino
Ok si pudiera probar es eso lo que necesito, pero donde le coloco esta propiedad?
Responder Con Cita
  #4  
Antiguo 21-02-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.678
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Por favor, cuando no entiendas las soluciones que te dan, no abras otro hilo para ello, simplemente explica que no lo entiendes.
Gracias por tu colaboración.

He unido ambos hilos porque es lo mismo.
Responder Con Cita
  #5  
Antiguo 21-02-2012
gianfranco_tont gianfranco_tont is offline
Miembro
NULL
 
Registrado: ene 2012
Posts: 96
Poder: 15
gianfranco_tont Va por buen camino
Cita:
Empezado por olbeup Ver Mensaje
No se a que te refieres con el número de item, pero hay una propiedad DBGrid1.DataSource.DataSet.RecNo que te devuelve el número de registro y es automático y correlativo, pero esto es virtual y no te servirá de punto de referencia, si sólo quieres que se vea un número el RecNo te lo da.

Un saludo.
Si me funciona pero fijare lo que me sucede:
Solo me muestra el numero del registro donde estoy ubicado pero al pasar a un registro nuevo me lo borra, es decir no se guarda en la columna ítem, sin embargo la secuencia la sigue perfecta. El otro problema es que solo me inicia a contar desde el segundo registro en el primero no me coloca nada.
Responder Con Cita
  #6  
Antiguo 21-02-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Código Delphi [-]
QueryTemp.SQL.Text := 'Select Max(Item) from TuTabla';
QueryTemp.Active := true;
TuQuery.Fields[0].AsInteger := QueryTemp.Fields[0].AsInteger+1;

Saludos
__________________
Siempre Novato
Responder Con Cita
  #7  
Antiguo 21-02-2012
gianfranco_tont gianfranco_tont is offline
Miembro
NULL
 
Registrado: ene 2012
Posts: 96
Poder: 15
gianfranco_tont Va por buen camino
Caral, no entiendo lo del querytemp cual serria para mis el querytemp? Y en donde coló esta sentencia?
Responder Con Cita
  #8  
Antiguo 21-02-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Un query nuevo, otro query mas que normalmente yo uso para varias cosas, por eso lo llamo temporal.
Simplemente esta enlazado a la BD y se le asigna la labor que se quiera.
El codigo lo pones en el evento oncellclick del dbgrid.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #9  
Antiguo 21-02-2012
gianfranco_tont gianfranco_tont is offline
Miembro
NULL
 
Registrado: ene 2012
Posts: 96
Poder: 15
gianfranco_tont Va por buen camino
Me da un error de access violation al hacer click en el grid, lo coloque en el evento dbgrid1cellclick.
Responder Con Cita
  #10  
Antiguo 21-02-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
No se que estas haciendo, lógicamente.
Me da la impresión, a ojo, que lo tendrías que hacer en el evento o procedimiento que crea una nueva linea al dbgrid, que es cuando necesitas que se cree un nuevo numero para el item.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #11  
Antiguo 22-02-2012
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 688
Poder: 22
olbeup Va camino a la fama
Hola gianfranco_tont

En tu SQL al principo pon un campo como el siguiente y después te diré para que es:
Código SQL [-]
SELECT
    0 AS NUMITEM <-- Este es el que vamos a modificar con el RecNo del DBGrid
    ,CAMPO1  |
    ,CAMPO2  | --> Esto son tus campos de la DB
    ,CAMPOX  |
    ,....
Después en el DrawColumnCell del DBGrid tienes que poner esto:
Código Delphi [-]
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
  FieldText: String;
  W: Integer;
begin
  if (DataCol = 0) then
    with DBGrid1.DataSource.DataSet do
      FieldText := IntToStr(RecNo);

  with DBGrid1 do
    if (DataCol = 0) then
    begin
      W := ((Rect.Right - Rect.Left) - Canvas.TextWidth(FieldText));
      DefaultDrawing := True;
      Canvas.FillRect(Rect);
      Canvas.TextOut(Rect.Left + W -2, Rect.Top +2, FieldText);
    end
    else
      DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
Espero haberte orientado.

Un saludo.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.

Última edición por olbeup fecha: 22-02-2012 a las 09:42:31.
Responder Con Cita
  #12  
Antiguo 23-02-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola gianfranco_tont.

En referencia a tu primer consulta:
Cita:
Hola foro, tengo un dbgrid con un clientdataset y lo que quiero hacer es que las filas se autonumeren, ejemplo. Cuando se crea una linea nueva en el grid que sea la 01 la siguen la 02 etc.
Creo que la opción más sencilla es que en el TClientDataSet, crees un campo calculado de tipo string (en el ejemplo lo llamo ClientDataSet1RecNo), mediante el Field Editor, ubícalo en el primer lugar de la lista de campos.

Luego en el evento OnCalcFields del TClientDataSet:
Código Delphi [-]
procedure TForm1.ClientDataSet1CalcFields(DataSet: TDataSet);
const
   NCEROS = 2; // Cantidad de ceros a la izquierda
begin
  with ClientDataSet1 do
    ClientDataSet1RecNo.AsString:= StringOfChar('0', NCEROS-Length(IntToStr(RecNo))) + IntToStr(RecNo);
end;
end;
Ese código dá exáctamente el resultado que solicitas.

Lógicamente es necesario que la propiedad DataSource del TDBGrid haga referencia al TDataSource que apunta al TClientDataSet.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Item en dbgrid lmpadron C++ Builder 11 04-08-2011 21:39:18
Numero de fila en DBGrid Colgueit Conexión con bases de datos 28 16-03-2007 18:04:35
¿Como Eliminar de la Bd el item seleccionado en un DbGrid? day_eli Conexión con bases de datos 1 09-02-2007 16:36:33
Numero de registros en el dbgrid Besto Varios 4 05-06-2006 15:57:04
Como saber el Numero de Item pulsado de un TPopupMenu FNADALO OOP 6 06-08-2004 13:57:02


La franja horaria es GMT +2. Ahora son las 06:42:39.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi