Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-03-2015
giulichajari giulichajari is offline
Miembro
 
Registrado: nov 2012
Posts: 306
Poder: 12
giulichajari Va por buen camino
Plantilla de excel no guarda los datos

Hola amigos, tengo un form para hacer un presupuesto que tiene una grilla conectada a un ClientDataSet, como tabla temporal.

Luego un button "Imprimir" guarda los datos en la base de datos, pero a la vez toma un archivo base de excel, que es un archivo guardado en el directorio de la aplicacion con una plantilla (osea un formato previo) y yo sobreescribo las celdas correspondientes para que se complete la tabla de productos el cliente solicitado, etc.. y si se completan. Pero cuando salgo de excel y vuelvo a abrir el archivo de presupuesto (en el proceso hago una copia de la plantilla y la guardo en una carpeta presu) no se ven los datos, solo la plantilla.

La verdad no se que puede ser.

Codigo boton imprimir:

Código Delphi [-]
procedure TForm4.SpeedButton5Click(Sender: TObject);

var
Excel, Libro, Hojal: OleVariant;
Plantilla:string;
origen,s,destino,nombre,fechaf,fechai,fechac:string;
l,x:integer;
cantidad,preciououble;
idc,ide,ids,idprodu:Integer;
a:TServerMethods1Client;

begin
  a:=TServerMethods1Client.Create(ClientModule1.SQLConnection1.DBXConnection);
   if (Grillapresu.DataSource.DataSet.RecordCount>0) then
      begin

              if Form2.Edit1.Text<>'' then
                      idc:=ClientModule1.qscli.ParamByName('idcli').AsInteger
              else
              idc:=1;
               if cempleados.KeyValue=null then
                begin
                   ShowMessage('seleccione el empleado responsable.');
                end
               else
                begin
                   ide:=cempleados.KeyValue;
                 end;
               ids:=StrToInt(pre.ReadString('sucursal','id','1'));
               fechac:=FormatDateTime('yyyy/mm/dd',Now);
               fechai:=FormatDateTime('yyyy/mm/dd',Now);

               fechaf:=FormatDateTime('yyyy/mm/dd', IncDay(Now,15));

               a.nuevopresupuesto(idc,ide,ids,fechac,fechai,fechaf);
  l:=Grillapresu.DataSource.DataSet.RecordCount;




      with ClientModule1.cdspresu do

             begin
               First;
                while not Eof do
                    begin
                    cantidad:=ClientModule1.cdspresucantidad.AsFloat;
                    preciou:=ClientModule1.cdspresuprecio.AsFloat;
                    idprodu:=ClientModule1.cdspresuidproducto.AsInteger;
                    a.nuevodetallepresupuesto(idprodu,cantidad,preciou);

                    Next;
                    end;
               EmptyDataSet;
             end;

          // copiar plantilla
nombre:=FormatDateTime('yyyy-mm-dd,hh-mm-ss',Now) + 'presu.xlsx';
origen:=ExtractFilePath(Application.ExeName)+ 'presu.xlsx';
destino:=ExtractFilePath(Application.ExeName) +'pres\' + nombre;
CopyFile(Pchar(origen),Pchar(destino),True);
 //crear el objeto excel
Excel := CreateOleObject('Excel.Application');

  Plantilla:=destino;
  Excel.SheetsInNewWorkbook := 1;

  Libro := Excel.Workbooks.Open(Plantilla); // Plantilla es la ruta a un archivo excel que uso como plantilla
  Hojal := Libro.Worksheets[1];
  //posicionar datos
  Hojal.Cells[3,6] := '100';
  Hojal.Cells[4,4] := Edireccion.Text;
  Hojal.Cells[5,4] := Eciudad.Text;
  Hojal.Cells[6,4]:=Edit1.Text;
  if (Form2.Edit1.Text<>'') then
      begin
         Hojal.Cells[12,8]:=ClientModule1.qscli.ParamByName('idcli').AsInteger;
         Hojal.Cells[15,5]:=ClientModule1.qsclinombreyape.AsString;
      end;
  Hojal.Cells[10,8]:=Eemititdo.Text;
  Hojal.Cells[13,8]:='efectivo';
  Hojal.Cells[14,8]:=Evalido.Text;
  Excel.Visible := true;
   Hojal.SaveAs(nombre);

end
else
begin
ShowMessage('no hay productos');
end;

end;

En la primera parte guardo los datos en bd con el servidor DataSnap y en luego cargo la plantilla.
Responder Con Cita
 



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 en una plantilla de excel precargada Jorge Hernández .NET 4 24-05-2014 00:15:07
Exportar a plantilla excel-mxNativeExcel andresenlared Varios 0 09-07-2008 20:30:16
Exportar datos a una plantilla de excel Lizeth Impresión 3 08-09-2005 16:39:55
¿Plantilla Excel o como lo hago? RyAr Varios 2 27-07-2004 11:23:05
Abrir plantilla Excel y pasarle datos Jose Manuel Servers 2 01-06-2004 10:59:55


La franja horaria es GMT +2. Ahora son las 16:36:34.


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