Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-02-2009
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
ClientDataSet - Como crear campos agregates

Estoy usando Delphi 5 y no tengo en mi aplicaccion el uso de ClientDataSet(cds). Necesito poner en um StringList o cds los registros(algunos campos)la seleccion que hago en mi grid. Siempre que premo Ctrl+Click del mouse, deve grabar esto en una lista o en uno cds. Devo usar agregates del cds o es mejor usar en una lista(TStringList). Mi duda es quando yo selecciono un registro el sea grabado y si yo quito la marcaccion, entonces el sale de la lista o de cds. Solo gustaria de un consejo de uds qual debo usar y qual es la mejor forma.
Responder Con Cita
  #2  
Antiguo 18-02-2009
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
Tengo logrado exito para crear los agregados. Ahora la dua es: Necesito poner en estes campos agregados, algunas colunas del grid para estes campos. No estoy conseguindo hacer. Hizo de una forma, pero se esta tentando poner tudo en el. Ejemplo, tengo 1000 registro en una tabla y quiero poner en mi cds solo 11 registros. Como hago esto?
Responder Con Cita
  #3  
Antiguo 18-02-2009
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
Hizo esto, pero no estas funcionando. No entra en el for, qryOcorrencias es mi query donde viene el Grid y cdsocorrencias es la que tiene mis campos agregados.

Código Delphi [-]
var
contador: Integer;
bkm: TBookmarkList;
bkm_str: TBookmarkStr;
begin
  bkm_str := qryOcorrencias.Bookmark;
  bkm     := grdOcorrencias.SelectedRows;

  if not cdsOcorrencias.Active then
        cdsOcorrencias.Open;

  //With Grid do
    for contador:= 0 to pred(bkm.Count) do
    Begin
      qryOcorrencias.BookMark := bkm[contador];
      cdsOcorrencias.Append;
      cdsOcorrencias.FieldByName('NUM_OCORRENCIA').AsString := copy(Grid.Fields[1].AsString,Pos('-',Grid.Fields[1].AsString)-1,255);
      cdsOcorrencias.FieldByName('PDF').AsString := Grid.Fields[3].AsString;
      cdsOcorrencias.FieldByName('ALIMENTADOR').AsString := Grid.Fields[4].AsString;
      cdsOcorrencias.FieldByName('SUB_ESTACAO').AsString := Copy(Grid.Fields[4].AsString,1,3);
      cdsOcorrencias.FieldByName('QTDE_COMUNICACAO').AsString := Grid.Fields[13].AsString;
      cdsOcorrencias.Post;
    end;
  end;
Responder Con Cita
  #4  
Antiguo 18-02-2009
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
¡Hola!

Cita:
Empezado por Paulao Ver Mensaje
...No estoy conseguindo hacer. Hizo de una forma, pero se esta tentando poner tudo en el. Ejemplo, tengo 1000 registro en una tabla y quiero poner en mi cds solo 11 registros. Como hago esto?
Suponiendo que se tratara de hacer una suma, una manera de solucionarlo es añadir un campo calculado, el cual consigas que tenga valor sólo para esos 11 registros. Y entonces sumas el calculado en lugar del campo original.

Código:
CampoX   CampoCalculado
 80               80
 90               90
100              100
101                0
102                0
103                0
               -----------------
                 270
Saludos.

Al González.
Responder Con Cita
  #5  
Antiguo 18-02-2009
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
Hizo asi. Criei una class para cargar todos los datos
Código Delphi [-]
type
  TInsereLista = class
    Counter: Integer;
    Num_Ocor: String[10];
    Pdf: String[20];
    Alimentador: String[10];
    Sub_estacao: String[5];
    Qtde_Comunicacao: Integer;
end;
Despues implemntei esa classe y puzo los registros asi: El memo fue solo para hacer un test. Ahora tengo que abri otro Form y descargar esto en un DataSet para poder ser visto en una Grid o otra cosa parecida.
Código Delphi [-]
var
contador: Integer;
bkm: TBookmarkList;
bkm_str: TBookmarkStr;
Lista: TInsereLista;
begin
  Lista := TInsereLista.Create;
  bkm_str := qryOcorrencias.Bookmark;
  bkm     := grdOcorrencias.SelectedRows;
  a := Assigned(frmAssociarOcor_Ocor_Direta);
  for contador:= 0 to pred(bkm.Count) do
  Begin
    qryOcorrencias.BookMark := bkm[contador];
    Lista.Num_Ocor := copy(Grid.Fields[1].AsString,Pos('-',Grid.Fields[1].AsString)-1,255);
    Lista.Pdf := Grid.Fields[3].AsString;
    Lista.Alimentador := Grid.Fields[4].AsString;
    Lista.Sub_estacao := Copy(Grid.Fields[4].AsString,1,3);
    Lista.Qtde_Comunicacao := Grid.Fields[13].AsInteger;

    //memo1.Lines.Add(IntToStr(Contador)+' '+Lista.Num_Ocor+' '+Lista.Pdf+' '+Lista.Alimentador+' '+Lista.Sub_estacao+' '+IntToStr(Lista.Qtde_Comunicacao));
  end;
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
como hacer consulta para crear dos campos a partir de uno Rom@n SQL 2 24-12-2008 17:56:37
añadir campos a un ClientDataSet en ejecución sanpra Varios 2 24-10-2007 13:25:07
Como crear campos de lookup en tiempo de ejecución David Conexión con bases de datos 1 24-05-2007 16:33:01
Campos calculados y clientdataset Grupo ISoftware Conexión con bases de datos 2 18-11-2003 00:57:01
Copiar Campos de un ClientDataSet a Otro linsua Conexión con bases de datos 4 06-11-2003 21:25:00


La franja horaria es GMT +2. Ahora son las 22:43:01.


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