Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Exportar una tabla como parametro a Word (https://www.clubdelphi.com/foros/showthread.php?t=62882)

ingabraham 19-01-2009 18:24:59

Exportar una tabla como parametro a Word
 
Hola tengo una consulta en sql q me genera una tabla como hago para pasar esa tabla a un documento ya creado.

el codigo es el sgte:

Envio unos datos de parametro al documento .dot de word q tengo creado

Código Delphi [-]

Procedure TForm1.SpeedButton3Click(Sender: TObject);
var
  Word: Variant;
  Documento: Variant;
begin
Try

  (* Creas un objeto Word *)
  Word := CreateOleObject('Word.Application');
 (* Añades un documento basado en la plantilla *) //   CertificadoLaboralNormal
  Word.Documents.Add('C:\SOFTWARE_NOMINA\CertificadoLaboralNormal.dot');
  Documento := Word.Documents.Item(1);
 (* Asignas valores a los campos *)
  Documento.Variables.Add('NroCertificado', EdConsecutivo.Text);
  Documento.Variables.Add('Nombre', Ednombres.Text);
  Documento.Variables.Add('Cedula', EdCedula.Text);

  Documento.Fields.ToggleShowCodes;
  Documento.Fields.Update;

  Word.ActiveDocument.SaveAs('C:\SOFTWARE_NOMINA\CertificadoLaboralNormalTmp'+EdConsecutivo.Text);

Word.Visible := true;

 
  ShowMessage('Operación Completada!!');
 End    
except
 on exception do
 begin
     Word.quit;
  end;
end;


Realizo mi sql del query y luego lo mando a crear la tabla:
Código Delphi [-]
procedure DumpWord(DataSet: TDataSet; WordDoc: TWordDocument; Nom:String);
var
  WordTable: Table;
  RowCount, ColCount: Integer;
  RowIndex, ColIndex: Integer;
  FileName: OleVariant;
begin
  DataSet.Open;
  //Necesario Para cargar todos los datos en el dataset
  DataSet.Last;
  DataSet.First;
 Try
    RowCount := DataSet.RecordCount;
    ColCount := DataSet.Fields.Count;
    WordDoc.Disconnect;
    WordDoc.Connect;
   //WordDoc. Range.Text:='Devengados Anuales del Empleado:';
    WordTable := WordDoc.Tables.Add(WordDoc.Range, RowCount+1, ColCount, EmptyParam, EmptyParam);
    for ColIndex := 1 to ColCount do
    begin
        WordTable.Cell(1, ColIndex).Range.Font.Bold := 1;
        WordTable.Cell(1, ColIndex).Range.Font.Size := 8;
        WordTable.Cell(1, ColIndex).Range.Text :=  DataSet.Fields[ColIndex - 1].FieldName;
        WordTable.Cell(1, ColIndex).Range.Paragraphs.Alignment := wdAlignParagraphCenter;
    end;
    RowIndex := 2;
    while not DataSet.Eof do
    begin
      for ColIndex := 1 to ColCount do
      begin
       WordTable.Cell(RowIndex, ColIndex).Range.Font.Size := 8; //tamano del txto
         //   WordTable.Cell(RowIndex, ColIndex).Range.Font.Bold := 1;
       if (ColIndex >= 2 )then//sueldo
        WordTable.Cell(RowIndex, ColIndex).Range.Text := '$ '+(FormatFloat('#0,',StrToFloat(DataSet.Fields[ColIndex - 1].AsString )))
        else
        WordTable.Cell(RowIndex, ColIndex).Range.Text := DataSet.Fields[ColIndex - 1].AsString;
      end;
        Inc(RowIndex);
        DataSet.Next;
    end;
    WordDoc.Range.InsertParagraphAfter;
    WordDoc.Range.InsertAfter('Valores Devengados del Empleado '+Nom+' Por Fechas.');

     //Guarda el Documento
     FileName:='c:\SOFTWARE_NOMINA\PlantillaHistorialTmp.dot' ;
     WordDoc.SaveAs(FileName);
//     WordDoc.Range.PageSetup.Orientation:=HS_HORIZONTAL;
  finally
    WordDoc.Application.Visible := true;
  //  DataSet.Close;
  end;
end;

pero yo necesito es pasar esa tabla al documento q tengo y al que envie los datos de parametro.

quien me colabora!!


La franja horaria es GMT +2. Ahora son las 09:03:50.

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