Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-02-2012
gianfranco_tont gianfranco_tont is offline
Miembro
NULL
 
Registrado: ene 2012
Posts: 96
Poder: 15
gianfranco_tont Va por buen camino
Dbgrid con fila numeradas

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.

Ademas quiero que cuando guarro la información que esta en el from me lo guarde con un correlativo, tal como si fuese una from de facturación.
Responder Con Cita
  #2  
Antiguo 17-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
Creo que sigues con el mismo problema con el dbgrid.
No se, pero creo que este tutorial te ayudara.
O por lo menos te dará ideas.
Saludos
PD: Esta recién salido del horno.
Con vuestro permiso.
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 17-02-2012
gianfranco_tont gianfranco_tont is offline
Miembro
NULL
 
Registrado: ene 2012
Posts: 96
Poder: 15
gianfranco_tont Va por buen camino
gracias esto si me dio una idea pero aun tengo un problema, como dije estoy trabajando con clientdataset y necesito hacer la suma de dos columna horizantale y finalmente la suma de la column vertical:

quiero que el cliendatasetTOTAL debe ser igual al cliendatasetCOSTO * cliendatasetCANTIDAD y luego finalmente en un Edit1.text es igual a la suma detoda la culumna cliendatasetTOTAL.
Responder Con Cita
  #4  
Antiguo 17-02-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por gianfranco_tont Ver Mensaje
quiero que el cliendatasetTOTAL debe ser igual al cliendatasetCOSTO * cliendatasetCANTIDAD y luego finalmente en un Edit1.text es igual a la suma detoda la culumna cliendatasetTOTAL.
1. Agrega un campo calculado (CalculatedField) llamado Total y en el elevento OnCalcFields del ClientDataSet pones:

Código Delphi [-]
procedure TForm1.ClientDataSet1CalcFields(DataSet: TDataSet);
begin
  DataSet['total'] := DataSet['costo']*DataSet['cantidad'];
end;

2. Agrega un campo agregado (AggregateField) llamado GranTotal y pones sus propiedades:

a. Expression: SUM(costo*cantidad)
b. Active: true

También te aseguras de poner en True la propiedad AggregatesActive del ClientDataSet.

3. Pones un DBEdit ligado a un datasource que esté ligado al ClientDataSet y en su propiedad DataField pones GranTotal.

// Saludos
Responder Con Cita
  #5  
Antiguo 17-02-2012
gianfranco_tont gianfranco_tont is offline
Miembro
NULL
 
Registrado: ene 2012
Posts: 96
Poder: 15
gianfranco_tont Va por buen camino
DONDE AGREGO EL CAMPO: EN ADOQUERY? EN CLIENTDATASET O EN EL DBGRID?
1. Agrega un campo calculado (CalculatedField) llamado Total y en el elevento OnCalcFields del ClientDataSet pones:

DONDE AGREGO EL CAMPO: EN ADOQUERY? EN CLIENTDATASET O EN EL DBGRID?
2. Agrega un campo agregado (AggregateField) llamado GranTotal y pones sus propiedades:

a. Expression: SUM(costo*cantidad)
b. Active: true

También te aseguras de poner en True la propiedad AggregatesActive del ClientDataSet.

3. Pones un DBEdit ligado a un datasource que esté ligado al ClientDataSet y en su propiedad DataField pones GranTotal.

// Saludos
Responder Con Cita
  #6  
Antiguo 17-02-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Los campos los agregas al ClientDataSet.

// Saludos
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
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
  #8  
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: 21
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
  #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
Ok si pudiera probar es eso lo que necesito, pero donde le coloco esta propiedad?
Responder Con Cita
  #10  
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.670
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
  #11  
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
  #12  
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
  #13  
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
  #14  
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
  #15  
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: 21
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
Respuesta



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 05:47:24.


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