Bom dia pessoALL... 

    Estou com o seguinte problema: Tenho que criar um relatório em
WORD que crie várias tabelas, tantas quantas forem necessárias(de
acordo com uma query). 
    Ocorre que a primeira tabela está criando certo, só que a segunda
está sendo criada dentro da última coluna da primeira tabela e assim
sucessivamente. 
    O código fonte é o seguinte:

Query.Close;
Query.Open;
Query.Last;

MSWord := CreateOleObject('Word.Basic');
with MSWord do
     begin
        MSWord.Filenew;         
        MSWord.AppShow;        
        MSWord.appmaximize;    
        MSWord.Font('Arial');  
        MSWord.CenterPara;     
        MSWord.FontSize(9);    
        MSWord.bold;           

        while not Query.EOF do
              begin
                 MSWord.insert(#13+(Query2.FieldByName('titulo da
tabela').AsString);   
                 Query2.Close;
                 Query2.Open;
                 Query2.Last;

                 MSWord.tableinserttable(NumColumns:=4,
NumRows:=Query2.RecordCount+1);     
                 Query2.First;

                      MSWord.TableSelectTable;                       
        
MSWord.TableAutoFormat(Format:=18);                     
MSWord.startOfRow;                                      
MSWord.leftPara;                                        
MSWord.insert('CODIGO');                                
MSWord.nextcell;                                        
MSWord.insert('NOME');MSWord.nextcell;                               
        
MSWord.insert('FONE RESID.');
MSWord.nextcell;                                        
MSWord.insert('FONE COML.');
MSWord.nextcell;                                        
while not Query2.EOF do
      begin
         MSWord.startOfRow;                                      
         MSWord.leftPara;                                        
MSWord.insert(Query2.FieldByName('codigo').AsString);                     
MSWord.nextcell;                                        
MSWord.insert(Query2.FieldByName('nome').AsString);
MSWord.nextcell;                                       
MSWord.insert(Query2.FieldByName('fone').AsString);
MSWord.nextcell;                                        
MSWord.insert(Query2.FieldByName('fax').AsString);
MSWord.nextcell;                                        
         Query2.Next;
       end;
       MSWord.endOfRow;
       Query.Next;
end;



Grato,
José Maria

Responder a