Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #8  
Antiguo 28-01-2008
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 24
ixMike Va por buen camino
Creo (no estoy demasiadao puesto en C++) que la traducción a Object Pascal sería:


Código Delphi [-]
// CREO EL DOCUMENTO A PARTIR DE UNA PLANTILLA QUE ABRO COMO SOLO LECTURA
var
  Word, doc, Selection, Font, Parrafo, rango, tablas, tabla, celda: Variant;
  rows, cols, i, j: integer;
begin
  word := Variant.CreateObject('Word.Application');
  word.OlePropertySet( 'Visible', (Variant) true );
  doc := word.OlePropertyGet('Documents');
  if FileExists(ExtractFilePath(Application.ExeName)+ 'plantillas\plantilla.doc')) then
    doc.OleFunction('Open', (ExtractFilePath(Application.ExeName)+ 'plantillas\plantilla.doc').c_str, Unassigned, true);
  else
    begin
     MessageBox(Handle, 'El archivo no existe', 'Error' , MB_APPLMODAL or MB_OK or MB_ICONERROR);
     word.OleProcedure('Quit');
     Exit;
    end;
// CREO EL ENCABEZADO
  Selection := word.OlePropertyGet('Selection');
  Font := Selection.OlePropertyGet('Font');
  Parrafo := Selection.OlePropertyGet('ParagraphFormat');
  Parrafo.OlePropertySet('Alignment','1');
  Font.OlePropertySet('Name','Verdana');
  Font.OlePropertySet('Bold','1');
  Font.OlePropertySet('Size','12');
  Selection.OleProcedure('TypeText', 'TÍTULO'+#13#13#13);
  Parrafo.OlePropertySet('Alignment','0');
  Font.OlePropertySet('Size','10');
  Selection.OleProcedure('TypeText', 'Nombre:'+#9);
  Font.OlePropertySet('Bold','0');
  Selection.OleProcedure('TypeText', (cboNombre.Text + #13).c_str);
  Font.OlePropertySet('Bold','1');
  Selection.OleProcedure('TypeText', 'Fecha:\t');
  Font.OlePropertySet('Bold','0');
  Selection.OleProcedure('TypeText', (txtFecha.Text + #13#13).c_str);
 
  // Lo anterior te generará ésto:
  //
  //     TÍTULO
  //
  // Nombre: Gabo
  // Fecha: 03/12/2008
  //

 // CREO LA TABLA 
  doc := word.OlePropertyGet('ActiveDocument');
  rango := doc.OleFunction('Range');
  rango.OleProcedure('Collapse', 0);
  tablas := rango.OlePropertyGet('Tables');
  rows := ListView1.Items.Count + 1; 
  // En este ejemplo creo tantas filas como ítemes en un ListView (+ 1 para los encabezados de columna)
  cols := 2;
  Parrafo.OlePropertySet('Alignment','0');
  tabla := tablas.OleFunction('Add', rango, rows, cols);
  celda := tabla.OleFunction('Cell', 1, 1);
  celda.OlePropertyGet('Range').OleProcedure('InsertAfter', 'Producto');
  celda := tabla.OleFunction('Cell', 1, 2);
  celda.OlePropertyGet('Range').OleProcedure('InsertAfter', 'Cantidad');
  // A continuación recorro el ListView para ir poblando de datos la tabla
  i:=1;
  while i < rows do
   begin
    j:=1;
    while j<=cols
      begin
        if j=1
          begin
             celda := tabla.OleFunction('Cell', i+1, j);
             celda.OlePropertyGet('Range').OleProcedure('InsertAfter', (ListView1.Items.Item[i-1].Caption).c_str);
          end
         else
          begin
             celda := tabla.OleFunction('Cell', i+1, j);
             celda.OlePropertyGet('Range').OleProcedure('InsertAfter', (ListView1.Items.Item[i-1].SubItems[0][0]).c_str);
          end;
       Inc(j);
      end;
    Inc(i);
   end;
  // Lo siguiente es para salir de la tabla y poder seguir insertando texto normal
  Selection.OleProcedure('EndKey', 6);


Espero no haber cometido ningún error.


Saludos.

Última edición por ixMike fecha: 28-01-2008 a las 15:21:01.
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
Error al pasar texto e imagen a word carlos gonzalez Varios 1 12-03-2007 21:05:04
Como pasar datos de una hoja de Excel a Bases de Datos de Paradox Goyo OOP 1 06-02-2007 01:57:20
Pasar de String a Word DarkByte Varios 4 09-08-2004 19:05:45
Alguien sabe cómo pasar parámetros a una plantilla Word?? Muten Servers 2 01-04-2004 00:07:43
Recoger datos de Word RaulChemical Impresión 0 01-10-2003 16:23:34


La franja horaria es GMT +2. Ahora son las 15:24:11.


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