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

Bom Morpheu, acho que você não notou algumas coisas na função... vamos lá:

 

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

 

 

essa procedure lista os arquivos em uma determinada pasta (parâmetro que indica a pasta onde será procurado o arquivo).. nome refere-se ao nome do arquivo, que terá uma busca parcial... esse você pode passar como ('') vazio, para que ele pegue todos os arquivos...

 

Se os contratos estiverem na mesma pasta que o EXE faça assim no show do form...

 

BuscaListaArquivosPasta(ExtractFilePath(Application.Exename), '');

Share this post


Link to post
Share on other sites

Hugo e Marcio...Muito obrigado pela força.... consegui que o ComBobox funciona-se perfeitamente.Foi até um erro grosseiro mas aprender uma coisa nova como programação orienta com 40 e tantos anos tem que dar um desconto.... a cabeça não é mais a mesma. Tem amigos meus que têm medo de computador...Valeu rapaziada...Agora vou trabalhar para imprimir apartir da escolha

Share this post


Link to post
Share on other sites

O importante é aprender e repassar o conhecimento adiquirido...

 

 

 

fazendo isso!!!

 

sempre será ajudado e sempre ajudará!!!

 

 

forte abraço! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

 

PS.: Parabéns pela iniciativa e por nos deixar saber que o ajudamos...

 

realmente um exemplo de dedicação!!!

 

 

Precisando é só postar!!!

Share this post


Link to post
Share on other sites

Obrigado... a todos. Vocês mostram uma iniciativa altruísta que deve ser sempre valorizada.No que eu puder contribuir também será sempre um prazer.Como sou ilustrador e desenhista profissional o pessoal me procura para mudar a interface dos sistemas para torna-los mais amigaveis... se precisarem estou as ordens

Share this post


Link to post
Share on other sites

Opa... topei com um probleminhaO ComboBox está listando belezaMas embora a pasta esteja na mesma pasta que o exe do sistema, ele insiste em um erro de Debugger Notificationme informando que o arquivo não foi encontrado.Será que tenho de digitar todo o caminho para encotrar arquivo?

Share this post


Link to post
Share on other sites

unit UDECLARA;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Grids, DBGrids, DB, ADODB, ShellApi,StrUtils,ComObj,

ExtCtrls;

 

 

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;

Imprimir: TButton;

GroupBox2: TGroupBox;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure ImprimirClick(Sender: TObject);

 

private

{ Private declarations }

 

public

{ Public declarations }

procedure BuscaListaArquivosPasta(pasta, nome : string);

end;

 

var

DECLARA: TDECLARA;

 

implementation

 

uses UDM1;

 

{$R *.dfm}

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

var

x: integer;

SearchRec: TSearchRec;

intControl: integer;

Name, tipo: string;

begin

intControl:=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;

 

procedure TDECLARA.Button1Click(Sender: TObject);

begin

if not MASTER.Locate('Nome.ALUNO',Edit1.Text,[loCaseInsensitive, loPartialKey]) then

ShowMessage('Nome de aluno não encontrado!');

end;

 

procedure TDECLARA.Button2Click(Sender: TObject);

begin

close;

end;

 

procedure TDECLARA.FormCreate(Sender: TObject);

begin

MASTER.Active := TRUE;

end;

procedure TDECLARA.FormShow(Sender: TObject);

begin

//BuscaListaArquivosPasta('Formulario','');

BuscaListaArquivosPasta(ExtractFilePath(Application.Exename), '')

end;

 

procedure TDECLARA.ImprimirClick(Sender: TObject);

Var WinWord, Docs, Doc: Variant;

arquivo, prazo : string;

anoinic, mesinic, diainic,anofim, mesfim, diafim : Word;

subtrair : integer;

 

Const mes30 = [4,6,9,11];

mes31 = [1,3,5,7,8,12];

 

begin

inherited;

 

 

// 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);

 

 

 

////Substitui texto via "name parameters"////

//Nome do Aluno

Doc.Content.Find.Execute(FindText := '(ALUNO)', ReplaceWith := MASTERNOMEALUNO.Text);

Doc.Content.Find.Execute(FindText := '(RG)', ReplaceWith := MASTERRGALUNO.Text);

 

// Grava documento

Doc.SaveAs(ExtractFilePath(Application.ExeName)+'\Formulario\(Aqui eu gostaria de usar o ComboBox1.text ao invés de especificar um nome)'+MASTERNOMEALUNO.Text);

 

// Imprime

Doc.PrintOut(false);

// Fecha o Word

WinWord.Quit;

end;

end.

 

 

//BuscaListaArquivosPasta('Formulario','');

BuscaListaArquivosPasta(ExtractFilePath(Application.Exename), '')

 

 

quando uso a linha de código em negrito da certo

 

mas tenho que deixar o arquivo fora da pasta formulário

Share this post


Link to post
Share on other sites

unit UDECLARA;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Grids, DBGrids, DB, ADODB, ShellApi,StrUtils,ComObj,

ExtCtrls;

 

 

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;

Imprimir: TButton;

GroupBox2: TGroupBox;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure ImprimirClick(Sender: TObject);

 

private

{ Private declarations }

 

public

{ Public declarations }

procedure BuscaListaArquivosPasta(pasta, nome : string);

end;

 

var

DECLARA: TDECLARA;

 

implementation

 

uses UDM1;

 

{$R *.dfm}

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

var

x: integer;

SearchRec: TSearchRec;

intControl: integer;

Name, tipo: string;

begin

intControl:=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;

 

procedure TDECLARA.Button1Click(Sender: TObject);

begin

if not MASTER.Locate('Nome.ALUNO',Edit1.Text,[loCaseInsensitive, loPartialKey]) then

ShowMessage('Nome de aluno não encontrado!');

end;

 

procedure TDECLARA.Button2Click(Sender: TObject);

begin

close;

end;

 

procedure TDECLARA.FormCreate(Sender: TObject);

begin

MASTER.Active := TRUE;

end;

procedure TDECLARA.FormShow(Sender: TObject);

begin

//BuscaListaArquivosPasta('Formulario','');

BuscaListaArquivosPasta(ExtractFilePath(Application.Exename), '')

end;

 

procedure TDECLARA.ImprimirClick(Sender: TObject);

Var WinWord, Docs, Doc: Variant;

arquivo, prazo : string;

anoinic, mesinic, diainic,anofim, mesfim, diafim : Word;

subtrair : integer;

 

Const mes30 = [4,6,9,11];

mes31 = [1,3,5,7,8,12];

 

begin

inherited;

 

 

// 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);

 

 

 

////Substitui texto via "name parameters"////

//Nome do Aluno

Doc.Content.Find.Execute(FindText := '(ALUNO)', ReplaceWith := MASTERNOMEALUNO.Text);

Doc.Content.Find.Execute(FindText := '(RG)', ReplaceWith := MASTERRGALUNO.Text);

 

// Grava documento

Doc.SaveAs(ExtractFilePath(Application.ExeName)+'\Combobox1.text);

 

// Imprime

Doc.PrintOut(false);

// Fecha o Word

WinWord.Quit;

end;

end.

 

 

 

PS.: Então ao invés de usar o ExtractFilePath passe o caminho de onde deseja!!!

Por Exemplo:

'C:\Documentos'

Share this post


Link to post
Share on other sites

×

Important Information

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