24/01/2006

imprimir etiquetas no word

- salve galera... estou com um um probleminha. O exemplo abaixo busca no meu banco de dados firebird o produto que desejo imprimir etiquetas no Word. ele pega o campo ´código´ e ´nome´ da tabela produtos. até ai tudo está funcionando muito bem.
- só que o meu cliente gostaria que tivesse como escolher a quantidade de etiquetas a ser gerada desse produto. Para isso inseri um edit para o usuario do sistema informar a quantidade desejada, porem nao sei por onde começar, onde dizer pro sistema imprimir a quantidade do Edit e jogar no Word.
- vou colar o código atual, se alguem puder me ajudar, por favor, estarão me tirando de um sufoco...

Abraços!

procedure TForm1.Button2Click(Sender: TObject);
var
MSWord: Variant;
finallinha:boolean;
begin
  {sera usada a uses COMOBJ}
  { Abre o Word }
  MSWord := CreateOleObject(´Word.Application´);
  {não visualizar Microsoft Word}
  MSWord.Visible:=false;

  { Abre documento em anexo junto ao  exe}
  MSWord.Documents.Open(ExtractFilePath(Application.ExeName)+ ´Etiqueta_Pimaco_6181.doc´);
  finallinha:=false;{Essa variavel foi criada para controlar o avanço de para cada celula da coluna }

       {select que para jogar no documento apenas o produto desejado}
       Tbl_Produtos.SelectSQL.Clear;
       Tbl_Produtos.SelectSQL.Add(´Select * From PRODUTO Where Nome Like:Consulta Order By Nome´);
       Tbl_Produtos.Params[0&93;.AsString;
       Tbl_Produtos.ParamByName(´Consulta´).AsString:=´´+´¬´+Edit_Produto.Text+´¬´;
       Tbl_Produtos.Close;
       Tbl_Produtos.Open;

       { Escreve na  célula }
       MSWord.Selection.TypeText(Text :=trim(Tbl_ProdutosCODIGO.AsString)+13+trim(Tbl_ProdutosNOME.AsString));
       if finallinha=false then
         begin
           { Pula 1 celula}
           MSWord.Selection.MoveRight(12);
           MSWord.Selection.MoveRight(12);
           finallinha:=true;
         end
       else
         begin
           { vai para a proxima celula }
           MSWord.Selection.MoveRight(12);
           finallinha:=false;
         end;

  {visualizar Microsoft word }
  MSWord.Visible:=true;


end;



Mahdak