Mala direta: Delphi (BD Access) + Word

06/10/2018

0

Oi, galera DevMedia

Estou quebrando a cabeça para fazer uma mala direta no Delphi 10 com BD Access integrado com o Word.
A ideia é preencher somente cabeçalhos das páginas com Nome, Matrícula e Foto.
Detalhe é que a impressão das páginas são em A4 e individualizadas para cada cadastrado selecionado por *grupo (*tabela relacionada)
Agora estão ocorrendo dois problemas cruciais. Um é inserir a foto automaticamente no espaço reservado e o outro é a quebra de página para ao gerar a impressão para o Word montem as páginas separadas uma abaixo da outra (individualizadas), tipo como no próprio mala direta feita no Word.

Aguardando alguma dica. Muito grata !
Milennia Maria

Milennia Maria

Responder

Post mais votado

06/10/2018

Galera, vamos dar uma força aí. Qualquer dica serve.
Eu tenho aqui este script que garante inserir imagens no Word via Delphi.
Como sou aprendiz não sei muito bem onde encaixar esse código e atribuir alguma propriedade, não sei como fazer...
E aí, quem se habilita a incentivar alguma coisa ? Valeu !

MSWord:= CreateOleObject(´Word.Basic´);
MSWord.FileNew; //inicia um novo documento

{ Figura }
MSWord.InsertPicture(Caminho da imagem);
MsWord.Insert(#13);

MSWord.FileSaveAs(Arquivo, 0); //Salva o arquivo
MsWord.AppClose;

Milennia Maria

Milennia Maria
Responder

Mais Posts

08/10/2018

Paulo Freire

Olá Milennia, agente já se conhece, rsrsrsr, vamos lá, crie um botão no seu form do Delphi.

procedure TfrmPrincipal.btnCriarClick(Sender: TObject);
var
Word: Olevariant;
begin

Path := ExtractFilePath(Application.ExeName);
Word := CreateOleObject('Word.Basic');
Word.Filenew;
Word.AppShow;
Word.Appmaximize;
Word.LeftPara;
Word.FontSize(36);
Word.Bold;
Word.Underline;
Word.FontSize(16);
Word.Insert(#13 + 'Four Freires Tecnologia');
Word.FontSize(12);
Word.Underline(false);
Word.Bold(false);
Word.Insert(#13 + 'Foto');
Word.Insertpicture(Path + 'fotos\\Matricula0001.jpg');
Word.Insert(#13'Matrícula: '#13);
Word.Insert(#13 + edtMatr.Text);
Word.Insert(#13'Nome: '+ edtNome.Text);
Word.Insert(#13'Grupo: '+ rgGrupo.Items);

end;

Declare no seu Var do Form

Word, Arquivo, Doc: OleVariant;

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar