Gerar Relatorio p/ Word e Formatar as colunas

Delphi

25/09/2003

Uso Paradox e Delphi6.
Estou gerando um relatório usando o comando - MSWord.insert
Ex.:

cadeia = NomeCliente + ´ ´ + Endereco + ´ ´ + Cidade + ´ ´ + Uf
MSWord.Insert(#13 + cadeia)
Só que dependendo do numero de caracteres do nome ou endereco/cidade, as colunas ficam desposicionadas. Como posso resolver isso.
Obrigado
Neto


Neto

Neto

Curtidas 0

Respostas

Joilson_gouveia

Joilson_gouveia

25/09/2003

Primeiro, vc deve escolher uma fonte que tenha o mesmo espaçamento e tamanho dos caracteres...
Depois, vc deve criar uma função de alinhamento/posicionamento para sua cadeia de caracteres...
Segue exemplo abaixo para estudos:

174 - Criar um documento no Word
Uses ComObj

procedure TForm1.Button1Click(Sender: TObject);
var
MSWord: Variant;
begin
MSWord:= CreateOleObject (´Word.Basic´);
MSWord.AppShow;//mostra o word
MSWord.FileNew;//inicia um novo documento
MSWord.insert(´Contrato de Locação´); //Escreve algo
MSWord.insert(#13+´Contrato de Locação´);//Pula uma linha e escreve
MSWord.FontSize(24);//muda o tamanho da fonte
MSWord.italic;//coloca italico
MSWord.bold;//coloca negrito
MSWord.underline;//sublina
MSWord.insert(13+´Contrato de Locação´);//pula a linha e escreve novamente
MSWord.FontSize(12);//muda o tamanho da fonte
MSWord.Font(´Arial´);//muda a fonte usada
MSWord.underline(false);//retira o sublinhado
MSWord.italic(false);//retira o italico
MSWord.bold(false);//retira o bold
MSWord.insert(#13 +´teste´);
MSWord.insert(13+9 +´teste´);//nova linha e um TAB
MSWord.insert(13+Table1Razao_Social.Value);//insere algo de uma tabela
MSWord.LineUp(2, 1); //seleciona uma parte do texto
MSWord.TextToTable(ConvertFrom := 2, NumColumns := 1);// monta uma tabela com o texto selecionado
MSWord.FileSaveAs(´c:\temp\test.txt´, 3); //Salva o arquivo
end;

Obs feita pelo Ruberval



MSWord.JustifyPara; // alinhamento justificado
MSWord.RightPara; // alinhamento a direita
MSWord.LeftPara; // alinhamento a esquerda
MSWord.InsertPageBreak; // quebrar página


GOSTEI 0
Neto

Neto

25/09/2003

Primeiro, vc deve escolher uma fonte que tenha o mesmo espaçamento e tamanho dos caracteres... Depois, vc deve criar uma função de alinhamento/posicionamento para sua cadeia de caracteres... Segue exemplo abaixo para estudos: 174 - Criar um documento no Word Uses ComObj procedure TForm1.Button1Click(Sender: TObject); var MSWord: Variant; begin MSWord:= CreateOleObject (´Word.Basic´); MSWord.AppShow;//mostra o word MSWord.FileNew;//inicia um novo documento MSWord.insert(´Contrato de Locação´); //Escreve algo MSWord.insert(#13+´Contrato de Locação´);//Pula uma linha e escreve MSWord.FontSize(24);//muda o tamanho da fonte MSWord.italic;//coloca italico MSWord.bold;//coloca negrito MSWord.underline;//sublina MSWord.insert(13+´Contrato de Locação´);//pula a linha e escreve novamente MSWord.FontSize(12);//muda o tamanho da fonte MSWord.Font(´Arial´);//muda a fonte usada MSWord.underline(false);//retira o sublinhado MSWord.italic(false);//retira o italico MSWord.bold(false);//retira o bold MSWord.insert(#13 +´teste´); MSWord.insert(13+9 +´teste´);//nova linha e um TAB MSWord.insert(13+Table1Razao_Social.Value);//insere algo de uma tabela MSWord.LineUp(2, 1); //seleciona uma parte do texto MSWord.TextToTable(ConvertFrom := 2, NumColumns := 1);// monta uma tabela com o texto selecionado MSWord.FileSaveAs(´c:\temp\test.txt´, 3); //Salva o arquivo end; Obs feita pelo Ruberval MSWord.JustifyPara; // alinhamento justificado MSWord.RightPara; // alinhamento a direita MSWord.LeftPara; // alinhamento a esquerda MSWord.InsertPageBreak; // quebrar página



GOSTEI 0
Neto

Neto

25/09/2003

:idea: Olá
Obrigado pela dica. Aproveitando gostaria de saber onde consigo
apostilas ou outro material que apresente exemplos de uso de comandos
do tipo. MSWORD.INSERT, MSWORD.CREATEOLEOBJECT, ETC...
E também sobre API do Windows.

Abraços e Obrigado..
Neto


GOSTEI 0
Neto

Neto

25/09/2003

Ainda não alinha corretamente, como fazer uma função de alinhamento/posicionamento para sua cadeia de caracteres...
Meu relatório tem 7 colunas:
Codigo, Nome, Endereço, Bairro, Cidade, Estado e Telefone.
Obrigado..
Neto


GOSTEI 0
Neto

Neto

25/09/2003

:oops: Oi gente só mais um dica.
Como alinhar / posicionar / justificar o texto de um relatório.
CODIGO NOME ENDEREÇO CIDADE ESTADO TELEFONE
XXX XXXX XXXXXX XXXX XX 999-9999
Sai tudo desalinhado....
Obrigado
Neto


GOSTEI 0
POSTAR