COMO IMPRIMIR UM RECIBO SIMPLES

REINALDOSPINDOL 05/08/2011 18:00:26
#380935
E ae Pessoal, blz?

Bem é o seguinte: tenho um formulário de recibo com dados para serem preenchidos, nome, valor, referente a, pagamento, etc. E gostaria de imprimir esse recibo como numa folha do word.

Gostaria que me ajudasse mesmo, procurei na net alguns códigos e não achei um que funcionasse. O que tem agora é este, que qdo eu rodo ele me dá erro 424 na msg.

Private Sub Imprimir_Click()
Dim temp As String
On Error GoTo trata_erro
Set ObjWord = New Word.Application
ObjWord.Documents.Open ([Ô]C:\Documents and Settingseinaldo\Meus documentos\Reinaldo\Sistema SPY\RECIBO.doc[Ô])
Call Substitui_Var([Ô]@nome[Ô], txtnome)
Call Substitui_Var([Ô]@valor[Ô], maskvalor)
Call Substitui_Var([Ô]@descrição[Ô], cboreferente)
Call Substitui_Var([Ô]@extenso[Ô], txtextenso)
Call Substitui_Var([Ô]@valor1[Ô], maskvalor1)
Call Substitui_Var([Ô]@valor2[Ô], maskvalor2)
Call Substitui_Var([Ô]@valor3[Ô], maskvalor3)
Call Substitui_Var([Ô]@valor4[Ô], maskvalor4)
Call Substitui_Var([Ô]@valor5[Ô], maskvalor5)
Call Substitui_Var([Ô]@data1[Ô], txtdata1)
Call Substitui_Var([Ô]@data2[Ô], txtdata2)
Call Substitui_Var([Ô]@data3[Ô], txtdata3)
Call Substitui_Var([Ô]@data4[Ô], txtdata4)
Call Substitui_Var([Ô]@data5[Ô], txtdata5)
Call Substitui_Var([Ô]@datadia[Ô], datadodia)
Call Substitui_Var([Ô]@contratante[Ô], Data1.Recordset([Ô]nomeresp[Ô]))

Call Substitui_Var([Ô]@nome[Ô], dados.Recordset([Ô]nome[Ô]))
Call Substitui_Var([Ô]@valor[Ô], dados.Recordset([Ô]valor[Ô]))
Call Substitui_Var([Ô]@descrição[Ô], dados.Recordset([Ô]referente[Ô]))
Call Substitui_Var([Ô]@extenso[Ô], dados.Recordset([Ô]extenso[Ô]))
Call Substitui_Var([Ô]@pagamento[Ô], dados.Recordset([Ô]pagamento[Ô]))
Call Substitui_Var([Ô]@valor1[Ô], dados.Recordset([Ô]valor1[Ô]))
Call Substitui_Var([Ô]@valor2[Ô], dados.Recordset([Ô]valor2[Ô]))
Call Substitui_Var([Ô]@valor3[Ô], dados.Recordset([Ô]valor3[Ô]))
Call Substitui_Var([Ô]@valor4[Ô], dados.Recordset([Ô]valor4[Ô]))
Call Substitui_Var([Ô]@valor5[Ô], dados.Recordset([Ô]valor5[Ô]))
Call Substitui_Var([Ô]@data1[Ô], dados.Recordset([Ô]data1[Ô]))
Call Substitui_Var([Ô]@data2[Ô], dados.Recordset([Ô]data2[Ô]))
Call Substitui_Var([Ô]@data3[Ô], dados.Recordset([Ô]data3[Ô]))
Call Substitui_Var([Ô]@data4[Ô], dados.Recordset([Ô]data4[Ô]))
Call Substitui_Var([Ô]@data5[Ô], dados.Recordset([Ô]data5[Ô]))
[ô]Call Substitui_Var([Ô]@datadia[Ô], datadodia)


[ô] Salva o documento com um novo nome
ObjWord.ActiveDocument.SaveAs (txtrecibo)
[ô]Encerra o word
ObjWord.Quit
[ô] informa ao usuario que o contrato foi gerado
MsgBox [Ô]Contrato gerado com sucesso! em : [Ô] & txtcontrato, vbInformation, [Ô] Recibo Gerado [Ô]
[ô] libera memoria
Set ObjWord = Nothing
Exit Sub
trata_erro:
MsgBox [Ô]Ocorreu um erro durante o processamento [Ô] & [Ô] - Erro numero : [Ô] & Err.Number
End Sub
Private Sub Substitui_Var(Header As String, Data As String)
With ObjWord.Selection.Find
.ClearFormatting
.Text = Header
.Execute Forward:=True
End With
Clipboard.Clear
Clipboard.SetText (Data)
ObjWord.Selection.Paste
Clipboard.Clear
End Sub
TECLA 05/08/2011 20:56:01
#380943
Porque não utiliza um gerador de relatórios (DataReport, Crystal, Active...)?
REINALDOSPINDOL 08/08/2011 08:48:32
#381031
Então Tecla, até vi algumas maneiras de imprimir pelo crystal e tal, mas eu aprendi vb no colegial em 98, num cheguei a aprender como imprimir. Eu vi esse exemplo ai no site do macoratti e achei fácil por isso copiei, rsrs. Mas se vc tiver algum exemplo de como imprimir em crystal em algum site q seja confiável ai eu agradeço muito.

Fazia muito tempo q num programava em VB, só estou voltando pq queria fazer um sisteminha legal aqui pra empresa onde eu colocasse todas as informações em um lugar só.

Abraço
INFOSISTEMAS 08/08/2011 09:29:28
#381032
amigo com certeza utilzar o crystal report e bem mais facil, da uma olhada no propio site do macorati que tem varios exemplos !
PAULOHSV 08/08/2011 10:14:35
#381037
REINALDOSPINDOL na verdade a maneira mais simples de fazer isto, se for um formulario, seria tipo assim:

cmdimprimir.visible=false
cmdnovo.visible=false
cmdsair.visible=false
me.printform
cmdimprimir.visible=true
cmdnovo.visible=true
cmdsair.visible=true

Não é a maneira mais correta, mas ele vai imprimir esta tela ai direto na impressora padrão.

Mas se você puder usar outras maneiras, seria muito melhor.
REINALDOSPINDOL 08/08/2011 10:31:33
#381038
Oh menudo, blz?

Gostei do exemplo que me deu, seria isso ai que eu queria mesmo, só queria saber se tem como eu imprimir direto, sem precisar salvar o documento no word.

Obrigado pela ajuda.
REINALDOSPINDOL 08/08/2011 10:36:13
#381039
Então INFOSISTEMAS eu acho q no crystal até ficaria mais funcional a parte da impressão, eu só num parei ainda pra estudar o método. Tô me atualizando agora sobre vb, mas se eu num conseguir um outro jeito vou partir pra cima mesmo.

PauloHSV esse jeito que vc me falou é pra imprimir o form né? Mas acho q imprimindo o form vai aparecer tbm os botões e etc. Eu gostaria de imprimir como num exemplo que eu tenho de recibo, mesmo assim, obrigado pela ajuda pessoal.

Vou testando as possíveis fontes e postando os resultados pra vcs.

Valeu, abraço
PAULOHSV 08/08/2011 10:42:49
#381040
REINALDOSPINDOL da forma como eu postei vc coloca os botões invisiveis, imprime e depois coloca eles visiveis novamente, com isto eles não vão sair na impressão. Mas é como eu falei se vocÊ puder usar um outro metodo é melhor.
REINALDOSPINDOL 15/08/2011 08:34:05
#381731
Pessoal tem como eu imprimir direto o recido sem precisar abrir o word antes?

Valeu

Obrigado mais uma vez
Página 1 de 2 [16 registro(s)]
Tópico encerrado , respostas não são mais permitidas