Jump to content

Archived

This topic is now archived and is closed to further replies.

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';

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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....

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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;

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.