Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

wilsoncrescencio

Escolher através do ComboBox o documento word a ser impresso

Recommended Posts

Deldphi7 - ADOConnection - ACCESSAprendi com o Hugo a abrir um documento Word e me utilizar dele para imprimir um contrato.Alguns relatórios podem ser feitos da mesma maneira e já estão digitados eu gostaria de aproveitar isso para fazer a mesma coisa que o Hugo me ensinou.Acontece que pensei que o nome do documento poderia ser escolhido pelo operador selecionado em uma ComboBox.Isso é possivel?Como seja como seria a linha de código?Um abraço a todos.Da forma como aprendi a linha de código é assim: arquivo := ExtractFilePath(Application.ExeName) + 'contrato.doc';

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu gostaria de imprimir o Documento do Word selecionado na combo e também gostaria de listar na combo todos os documentos do word presentes na pasta.É possível isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcio achei bem legal esse lance no post q você colocou do ListView.Ainda sou meio devagar em compreeder as linhas de código.Ví o exemplo q você falou... na pasta demoMas ao invés de listar toda a maquina eu queria só listar a pasta de docs que esta na mesma pasta do sistema.Agora uma pergunta p vcsSelecionado o doc pela ListView ele fará as substituições no word como o Hugo me ensinou?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Listando os arquivos da pasta e colocando na Combo se for .DOC...

procedure TForm1.BuscaListaArquivosPasta(pasta, nome : string);var	x: integer;	SearchRec: TSearchRec;	intControl: integer;	Name, tipo: string;beginintControl:=FindFirst(pasta + '\*' + nome + '*.*', faArchive, SearchRec);if intControl = 0 then	begin	while (intControl = 0) do		begin		Name:=ExtractFileName(SearchRec.Name);		Tipo:=ExtractFileExt(Name);		if (Name <> '') and (tipo = '.doc') then		Begin		  ComboBox1.AddItem(Name,Self);		End;		intControl:=FindNext(SearchRec);		end;		FindClose(SearchRec);	end;end;

 

Imprimindo o Selecionado...

procedure TFrmCadContrato.SpeedButton1Click(Sender: TObject);Var WinWord, Docs, Doc: Variant;Const mes30 = [4,6,9,11];	  mes31 = [1,3,5,7,8,12];begin  // Pega o nome do arquivo...  arquivo := ExtractFilePath(Application.ExeName) + Combobox1.Text;  // Cria objeto principal de controle  WinWord := CreateOleObject('Word.Application');  //Não Mostra o Word  WinWord.Visible := False;  // Pega uma interface para o objeto que manipula documentos  Docs := WinWord.Documents;  // Abre um Documento  Doc := Docs.Open(arquivo);  // Imprime  Doc.PrintOut(True);  // Fecha o Word  WinWord.Quit;end;

 

 

Beleza???

 

to sem o Delphi aqui, então é capaz de ter algum erro, mas se tiver você posta aqui que te ajudo!!!

 

flw aew!!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hugo... essa foi duca...Show cumpadre...Brigadão...Problema resolvidoAliás se não fossem vcs.... sei não

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma última dúvida.Meu código ficou assim:procedure TDECLARA.BuscaListaArquivosPasta(pasta, nome : string);var x: integer; SearchRec: TSearchRec; intControl: integer; Name, tipo: string;beginintControl:=FindFirst(pasta + '\*' + Formularios + '*.*', faArchive, SearchRec);if intControl = 0 then begin while (intControl = 0) do begin Name:=ExtractFileName(SearchRec.Name); Tipo:=ExtractFileExt(Name); if (Name <> '') and (tipo = '.doc') then Begin ComboBox1.AddItem(Name,Self); End; intControl:=FindNext(SearchRec); end; FindClose(SearchRec); end;end;Esse código eu coloco depois da:implementationuses UDM1;{$R *.dfm}Bom aquela não era a última dúvida...para que não aconteça o erro undeclared identifiereu tenho que fazer o que?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isto, deve de ficar depois do {$R *.dfm} e no caso vai precisar declarar a procedure no form, pode ser no Public, tipo:

 

unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs;type  TForm1 = class(TForm)  private	{ Private declarations }  public	{ Public declarations }	procedure BuscaListaArquivosPasta(pasta, nome : string);  end;var  Form1: TForm1;implementation{$R *.dfm}{ TForm1 }procedure TForm1.BuscaListaArquivosPasta(pasta, nome: string);var	x, intControl: integer;	SearchRec: TSearchRec;	Name, tipo: string;beginintControl:=FindFirst(pasta + '\*' + Formularios + '*.*', faArchive, SearchRec);if intControl = 0 then	begin	while (intControl = 0) do		begin		Name:=ExtractFileName(SearchRec.Name);		Tipo:=ExtractFileExt(Name);		if (Name <> '') and (tipo = '.doc') then			ComboBox1.AddItem(Name,Self);		intControl:=FindNext(SearchRec);		end;	FindClose(SearchRec);	end;end;end.

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse erro esta acontecendo nesta linha onde está em negrito

procedure TDECLARA.BuscaListaArquivosPasta(pasta, nome : string);

 

Nossa essa resposta foi super rápida tinha acabado de postar...

valeu...

vou contiunar trabalhando encima desse tópico qualquer coisa... peço um help.

Sempre grato....

Compartilhar este post


Link para o post
Compartilhar em outros sites

O ComoboBox está abrindo quando roda o sistema mas em branco.Dá para dar uma checada por favor, para ver se fiz algo errado?public { Public declarations } procedure BuscaListaArquivosPasta(pasta, nome : string); end;var DECLARA: TDECLARA;implementationuses UDM1;{$R *.dfm} procedure TDECLARA.BuscaListaArquivosPasta(pasta, nome : string);varx: integer;SearchRec: TSearchRec;intControl: integer;Name, tipo: string;beginintControl:=FindFirst(pasta + '\*' + nome + '*.*', faArchive, SearchRec);if intControl = 0 thenbeginwhile (intControl = 0) dobeginName:=ExtractFileName(SearchRec.Name);Tipo:=ExtractFileExt(Name);if (Name <> '') and (tipo = '.doc') thenBeginComboBox1.AddItem(Name,Self);End;intControl:=FindNext(SearchRec);end;FindClose(SearchRec);end;end;tenho que substiutir algum nome?Por exemplo em pasta... se minha pasta chama-se Formulários devo subistituir o nome "pasta" por "formulario"e quanto a nome preciso fazer aluma modificação?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Moçada tá aí meu code... mas....unit UDECLARA;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids, DBGrids, DB, ADODB;type TDECLARA = class(TForm) GroupBox1: TGroupBox; DBGrid1: TDBGrid; Label1: TLabel; Button1: TButton; Edit1: TEdit; MASTER: TADOQuery; DSMASTER: TDataSource; Button2: TButton; ComboBox1: TComboBox; Label2: TLabel; MASTERNOMEALUNO: TWideStringField; MASTERSERIE: TWideStringField; MASTERSALA: TWideStringField; MASTERRGALUNO: TWideStringField; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); private { Private declarations } public { Public declarations } procedure BuscaListaArquivosPasta(pasta, nome : string); end;var DECLARA: TDECLARA;implementationuses UDM1;{$R *.dfm} procedure TDECLARA.BuscaListaArquivosPasta(pasta, nome : string);varx: integer;SearchRec: TSearchRec;intControl: integer;Name, tipo: string;beginintControl:=FindFirst(pasta + '\*' + nome + '*.*', faArchive, SearchRec);if intControl = 0 thenbeginwhile (intControl = 0) dobeginName:=ExtractFileName(SearchRec.Name);Tipo:=ExtractFileExt(Name);if (Name <> '') and (tipo = '.doc') thenBeginComboBox1.AddItem(Name,Self);End;intControl:=FindNext(SearchRec);end;FindClose(SearchRec);end;end;procedure TDECLARA.Button1Click(Sender: TObject);beginif not MASTER.Locate('ALUNO',Edit1.Text,[loCaseInsensitive, loPartialKey]) then ShowMessage('Nome de aluno não encontrado!');end;procedure TDECLARA.Button2Click(Sender: TObject);beginclose;end;procedure TDECLARA.FormCreate(Sender: TObject);beginMASTER.Active := TRUE;end;procedure TDECLARA.FormShow(Sender: TObject);beginBuscaListaArquivosPasta(Formulario);end;end.Ocorre esse erroSymbol 'faArchive' is specific to a platform

Compartilhar este post


Link para o post
Compartilhar em outros sites

No Uses lá em cima declare ShellApi

 

e veja se resolve...

 

ficando assim:

usesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, Grids, DBGrids, DB, ADODB, ShellApi;

Compartilhar este post


Link para o post
Compartilhar em outros sites

O delphi seleciona toda essa linha (em negrito) e acusa o erro abaixo

 

procedure TDECLARA.FormShow(Sender: TObject);

begin

BuscaListaArquivosPasta(Formulario);

end;

 

 

erro

[Warning]UDELARA.PAS(53): Symbol 'faArchive' is specific to a platform

 

 

Só não acusa erro se deixo assim

 

procedure TDECLARA.FormShow(Sender: TObject);

begin

BuscaListaArquivosPasta('Formulario','nome')

end.

 

Aí roda mas...

Mas o ComboBox não lista nada

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.