Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-06-2007
JulioGO JulioGO is offline
Miembro
 
Registrado: ago 2004
Posts: 94
Poder: 20
JulioGO Va por buen camino
Question Talk con Word

Hola forofos:

Leyendo en el historial del foro encontre como trasladar registros de mi base de datos a una plantilla word(certificado). Hasta ahi todo xevere. La cuestion es que al trasladar la informacion me abre un documento por cada registro, lo que quisiera saber es si se puede trasladar la informacion de los registros pero en un unico documento word.


Agradeciendo anticipadamente por sus sugerencias, me despido.

Saludos.
Responder Con Cita
  #2  
Antiguo 06-06-2007
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
No somos adivinos. Si no nos indicas cuál es el código que usaste, ¿cómo vamos a saber qué anda mal?

// Saludos
Responder Con Cita
  #3  
Antiguo 06-06-2007
JulioGO JulioGO is offline
Miembro
 
Registrado: ago 2004
Posts: 94
Poder: 20
JulioGO Va por buen camino
Question Talk con Word

Aqui esta el codigo.

Código:
procedure TdlgLRetenc.spComprobClick(Sender: TObject);
var
  Word: Variant;
  Documento: Variant;
//  i: smallint;
begin
  (* Creas un objeto Word *)
  try
    Word := CreateOleObject('Word.Application');
  except
    Application.MessageBox('No se puede puede conectar con MS (c) Word',
                           'Liquidación de Aportes y Retenciones', MB_OK + MB_ICONERROR);
    exit;
  end;
  dmMntPlan.ibqLRetenc.First;
  while not dmMntPlan.ibqLRetenc.Eof do
   begin
    if dmMntPlan.ibqLRetenc.FieldValues['ESTADO'] = 'S' then
     begin
      (* Añades un documento basado en la plantilla *)
      Word.Documents.Add('c:\sistemas\sisplani\RENTEC_27605.dot'); //Esto abre un documento por cada archivo
      Documento := Word.Documents.Item(1);

      (* Asignas valores a los campos *)
      Documento.Variables.Add('EJERCICIO', cVGPeriTra);
      Documento.Variables.Add('RAZON_SOCIAL', cVGrazsoc);
      Documento.Variables.Add('RUC', cvgNroRuc);
      Documento.Variables.Add('TRABAJ', dmMntPlan.ibqLRetenc.FieldValues['NOMBRES']);
      if Copy(ComboBox1.Items[ComboBox1.ItemIndex], 1, 2) = '02' then
        Documento.Variables.Add('TIPDOC', 'D.N.I.')
      else
        Documento.Variables.Add('TIPDOC', 'CUSSP');
      if Copy(ComboBox1.Items[ComboBox1.ItemIndex], 1, 2) = '02' then
        Documento.Variables.Add('SISPEN', 'S.N.P.')
      else
        Documento.Variables.Add('SISPEN', 'S.P.P. ' + ComboBox1.Items[ComboBox1.ItemIndex]);
      Documento.Variables.Add('NUMDOC', dmMntPlan.ibqLRetenc.FieldValues['DOCUM']);
      Documento.Variables.Add('TOTAL_RETENC', FormatFloat(',0.00', dmMntPlan.ibqLRetenc.FieldValues['APTE_SNP'] +
                                              dmMntPlan.ibqLRetenc.FieldValues['APTE_SPP']));
      Documento.Variables.Add('TOTAL_REMUN', FormatFloat(',0.00', dmMntPlan.ibqLRetenc.FieldValues['TOTAL_REMUN']));
      Documento.Variables.Add('APTE_SNP', FormatFloat(',0.00', dmMntPlan.ibqLRetenc.FieldValues['APTE_SNP']));
      Documento.Variables.Add('APTE_SPP', FormatFloat(',0.00', dmMntPlan.ibqLRetenc.FieldValues['APTE_SPP']));
      Documento.Variables.Add('COMISION', FormatFloat(',0.00', dmMntPlan.ibqLRetenc.FieldValues['COMISION']));
      Documento.Variables.Add('PRIMA', FormatFloat(',0.00', dmMntPlan.ibqLRetenc.FieldValues['PRIMA']));
      Documento.Variables.Add('CUENTA_INDIV', FormatFloat(',0.00', dmMntPlan.ibqLRetenc.FieldValues['INDIV']));
      //Documento.Fields.ToggleShowCodes;
      Documento.Fields.Update;
     end;
    dmMntPlan.ibqLRetenc.Next;
   end;
  Word.Visible := true;
end;
Responder Con Cita
  #4  
Antiguo 06-06-2007
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
Bueno, al parecer está haciendo justamente lo que le estás diciendo que haga, esto es, estás creando un nuevo documento en cada vuelta del ciclo:

Código Delphi [-]
  while not dmMntPlan.ibqLRetenc.Eof do
   begin
    if dmMntPlan.ibqLRetenc.FieldValues['ESTADO'] = 'S' then
     begin
      (* Añades un documento basado en la plantilla *)
      Word.Documents.Add('c:\sistemas\sisplani\RENTEC_27605.dot'); //Esto abre un documento por cada archivo |<---------- ESTO
      Documento := Word.Documents.Item(1);  // |<---------- ESTO

Supongo que esas dos líneas deben ir antes de comenzar el ciclo.

// Saludos
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
Google Talk, abierto a todos marcoszorrilla Noticias 0 30-09-2006 21:09:24
Firebird talk en fbtalk.net Delfino Noticias 1 28-12-2005 14:56:15
Google Talk - El cliente de mensajería de Google dec Noticias 18 26-08-2005 09:11:39
modificar documento word sin el word instalado joaquinmol Servers 0 30-03-2005 19:58:54
De QRP a WORD PaulaG Impresión 1 14-06-2003 22:26:31


La franja horaria es GMT +2. Ahora son las 01:09:26.


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