Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
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 15-08-2016
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.679
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
El dbgrid es una "ventana" a un dataset. Lo que debes hacer es recoger los datos del dataset. Ya sabes, el que está asociado mediante un datasource al dbgrid.
Responder Con Cita
  #2  
Antiguo 16-08-2016
orodriguezca orodriguezca is offline
Miembro
 
Registrado: ene 2009
Posts: 221
Poder: 18
orodriguezca Va por buen camino
Archivo XML

En lugar de entregar un archivo binario a tu cliente podría ser un archivo en formato XML?. En un archivo XML puedes guardar todos los campos de tu formulario y además todos los registros del dataset que se muestran en el grid.
Responder Con Cita
  #3  
Antiguo 20-08-2016
walter86 walter86 is offline
Registrado
NULL
 
Registrado: ene 2016
Posts: 3
Poder: 0
walter86 Va por buen camino
Se podría mandar el archivo que yo quiera, asi que me voy a poner a investigar mas ese formato. Muchas gracias
Responder Con Cita
  #4  
Antiguo 20-08-2016
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.

Creo que la idea que te dió Casimiro es la correcta. Como la cantidad de registros visualizados en el DBGrid corresponde exáctamente a los que el usuario seleccionó mediante la búsqueda, basta con que recorras el DataSet asociado desde la primer fila a la última para obtener lo que deseas.

Te pongo un ejemplo en que los campos del DBGrid se concatenan separados por ";" y son muestrados en un ListBox :
Código Delphi [-]
...
var
  i: Integer;
  s: string;
begin
  DBGrid1.DataSource.DataSet.DisableControls;
  try
    DBGrid1.DataSource.DataSet.First;
    while not DBGrid1.DataSource.DataSet.Eof do
    begin

      s := '';
      for i := 0 to DBGrid1.FieldCount-1 do
        s := s + DBGrid1.Fields[i].AsString + ';';
      SetLength(s, Length(s)-1);
      ListBox1.Items.Add(s);

      DBGrid1.DataSource.DataSet.Next;
    end;
  finally
    DBGrid1.DataSource.DataSet.EnableControls;
  end;
end;
Cambia la acción de concatenar/mostrar en modo texto por la necesaria para guardar esos datos en tu archivo binario.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 23-08-2016
orodriguezca orodriguezca is offline
Miembro
 
Registrado: ene 2009
Posts: 221
Poder: 18
orodriguezca Va por buen camino
El problema que veo con la solución propuesta es que en el archivo binario a entregar al cliente no solo se debe incluir la información del Grid sino otros campos del formulario; no va a ser fácil desarrollar un "lector" que entienda toda esa información. Es por eso que propuse considerar un archivo de texto XML y no un archivo binario en el que se estaría guardando una estructura fija de tipo Record.

Aunque pensándolo un poco más quizas podría definirse una estructura de registro con parte variante, a la antigua, y seguir usando un archivo binario, por ejemplo:

Código Delphi [-]
type
  Tmis_datos = record
     case EsGrid: boolean of 
       false: begin
                   //Definimos los  datos del formulario a guardar
                   Dato1: string[10];  //Solo son ejemplos
                   Dato2: integer;
                   Dato3: double; 
                end;
       true: begin
                   // definimos las columas del grid a guardar
                   Col1: string[20];
                   Col2: string[3];
                   Col3: Currency;
                   Col4: strin[5];
                end;
     end;  
  end;

var
   mis_datos: TMis_Datos;

En el código:

Código Delphi [-]
begin
   .
   .
   .
  //Guardamos los datos del formulario
  mis_datos.EsGrid := False;
  Mis_datos.Dato1 := 'Prueba';
  Mis_datos.Dato2 := 1;
  Mis_datos.Dato3 := 7.2;
  Write(ArchivoBinario, Mis_datos);

  //Ahora guardamos el grid
  Grid.DataSource.DataSet.first;
  While not Grid.DataSource.DataSet.Eof do
  begin
     Mis_Datos.EsGrid := True;
     Mis_Datos.Col1 := Grid.DataSource.DataSet.Fields[0].Value;
     Mis_Datos.Col2 := Grid.DataSource.DataSet.Fields[1].Value;
     Mis_Datos.Col3 := Grid.DataSource.DataSet.Fields[2].Value;
     Mis_Datos.Col4 := Grid.DataSource.DataSet.Fields[3].Value;
 
     //Guardamos este registro del grid
     Write(Archivobinario, Mis_Datos);

     Grid.DataSource.DataSet.Next;
  end;

Bueno, la idea es esa. No tengo IDE a la mano para probarlo.
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
Guardar datos desde un dbgrid estopi Conexión con bases de datos 9 11-01-2015 23:54:41
Como se hace en android delphi para guardar un fichero de texto y recuperarlo. cocute Desarrollo en Delphi para Android 11 18-11-2014 18:31:43
Guardar un DBGrid como archivo *.dbf richisaurio Conexión con bases de datos 13 25-01-2013 17:53:32
Guardar un Fichero .xls o .doc en la Base de Datos jhernandez MS SQL Server 2 11-04-2008 02:32:00
guardar datos de un DBGrid a dos tablas jeysi Varios 5 01-01-2008 01:25:24


La franja horaria es GMT +2. Ahora son las 06:05:20.


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