NOTA FISCAL A BATALHA FINAL UTIL A TODOS

BYDUMORAES 18/09/2006 11:01:35
#172110
Pessoal depois de muito quebrar a cabeca e com a ajuda de alguns daqui do vbmania, consegui acertar uma forma de imprimir nota fiscal usando o os comandos abaixo:

Printer.CurrentX = 567 * 13.7 ' comprimento em cms onde comecara a impressao do campo
Printer.CurrentY = 567 * 2 ' altura em cms

ate ai blz, o seguinte quando tem que imprimir os produtos nao sei como fazer para acrescentar 0.3 mm para imprimir uma nova linha de produto ou pular para uma nova linha ,dai ele imprime sobre a mesma linha do produto anterior.Na nota cabem 36 produtos ou seja 36 linhas de produtos.
O restante esta correto e funcionando, acho que vai ser util para todos que procuram impressao de notas fiscais, mas conto com a ajuda de voces para resolver a parte dos produtos.

[c]Private Sub imprimindonota()
Dim i As Integer
Dim linhaAtual

Set rs = cnn.Execute("select * from notafiscal where numnota = '000005'")
Set rs2 = cnn.Execute("select * from vendas where codvenda ='00001'")

Printer.Font = "Courier New"
Printer.FontSize = 10

Printer.Font.Bold = True
Printer.Font.Italic = False

If rs("tpmovimento") = "S" Then
Printer.CurrentX = 567 * 13.7
Printer.CurrentY = 567 * 2
Printer.Print "X"
Else

Printer.CurrentX = 567 * 15.2
Printer.CurrentY = 567 * 2
Printer.Print "X"
End If


Printer.CurrentX = 567 * 18
Printer.CurrentY = 567 * 2
Printer.Print rs("numnota")

Printer.Font.Bold = False
Printer.FontSize = 8

Printer.CurrentX = 567 * 0.3
Printer.CurrentY = 567 * 4
Printer.Print rs("natureza")

Printer.CurrentX = 567 * 6
Printer.CurrentY = 567 * 4
Printer.Print rs("cfop")

Printer.CurrentX = 567 * 8.5
Printer.CurrentY = 567 * 4
Printer.Print rs("ietributario")

Printer.CurrentX = 567 * 0.3
Printer.CurrentY = 567 * 5
Printer.Print rs("razaosocial")
'
Printer.CurrentX = 567 * 13
Printer.CurrentY = 567 * 5
Printer.Print rs("cnpj") '
'
Printer.CurrentX = 567 * 18
Printer.CurrentY = 567 * 5
Printer.Print Format$(Date, "dd/mm/yyyy")

Printer.CurrentX = 567 * 0.3
Printer.CurrentY = 567 * 5.5
Printer.Print rs("endereco") '

Printer.CurrentX = 567 * 10
Printer.CurrentY = 567 * 5.5
Printer.Print rs("bairro") '

Printer.CurrentX = 567 * 15
Printer.CurrentY = 567 * 5.5
Printer.Print rs("cep") '

Printer.CurrentX = 567 * 18
Printer.CurrentY = 567 * 5.5
Printer.Print Format$(Date, "dd/mm/yyyy")

Printer.CurrentX = 567 * 0.3
Printer.CurrentY = 567 * 6.2
Printer.Print rs("cidade")

Printer.CurrentX = 567 * 8.5
Printer.CurrentY = 567 * 6.2
Printer.Print rs("fone")

Printer.CurrentX = 567 * 12
Printer.CurrentY = 567 * 6.2
Printer.Print rs("uf")

Printer.CurrentX = 567 * 13.5
Printer.CurrentY = 567 * 6.2
Printer.Print rs("iestadual")

Printer.CurrentX = 567 * 18
Printer.CurrentY = 567 * 6.2
Printer.Print Format$(Time, "hh:nn")

' Comeca a impressão dos produtos e meu desespero

While Not rs2.EOF

linhaAtual = 7.5

Printer.CurrentX = 567 * 0.3
Printer.CurrentY = 567 * linhaAtual
Printer.Print rs2("cdproduto") '"9788574683522"

Printer.CurrentX = 567 * 2.7
Printer.CurrentY = 567 * linhaAtual
Printer.Print rs2("descricao") ' "A Logica das Provas em Materia Criminal"

Printer.CurrentX = 567 * 11.2
Printer.CurrentY = 567 * linhaAtual
Printer.Print rs2("cst") '"978"

Printer.CurrentX = 567 * 12
Printer.CurrentY = 567 * linhaAtual
Printer.Print rs2("unidade") '"EXE"

Printer.CurrentX = 567 * 13.5
Printer.CurrentY = 567 * linhaAtual
Printer.Print rs2("quantidade") '"1"

Printer.CurrentX = 567 * 14.7
Printer.CurrentY = 567 * linhaAtual
Printer.Print rs2("valordesconto") ' "20"

Printer.CurrentX = 567 * 15.7
Printer.CurrentY = 567 * linhaAtual
Printer.Print rs2("valorproduto") '"132,00"

Printer.CurrentX = 567 * 17.5
Printer.CurrentY = 567 * linhaAtual
Printer.Print rs2("subtotal") '"1500,00"


Printer.CurrentX = 567 * 19
Printer.CurrentY = 567 * linhaAtual
Printer.Print rs2("icms")

Printer.CurrentX = 567 * 19.5
Printer.CurrentY = 567 * linhaAtual
Printer.Print rs2("ipi")

rs2.MoveNext
i = i + 1
Wend

' Dados dos calculos

Printer.CurrentX = 567 * 0.3
Printer.CurrentY = 567 * 19.5
Printer.Print "0,00"

' valor do icms
Printer.CurrentX = 567 * 4.5
Printer.CurrentY = 567 * 19.5
Printer.Print "0,00"

Printer.CurrentX = 567 * 9.5
Printer.CurrentY = 567 * 19.5
Printer.Print "0,00"

Printer.CurrentX = 567 * 9.5
Printer.CurrentY = 567 * 19.5
Printer.Print "0,00"

' calculo icms
Printer.CurrentX = 567 * 13
Printer.CurrentY = 567 * 19.5
Printer.Print "0,00"

' valor total dos produtos

Printer.CurrentX = 567 * 16.5
Printer.CurrentY = 567 * 19.5
Printer.Print "0,00"

' valor do frete

Printer.CurrentX = 567 * 0.3
Printer.CurrentY = 567 * 20
Printer.Print "0,00"

' seguro
Printer.CurrentX = 567 * 4.5
Printer.CurrentY = 567 * 20
Printer.Print "0,00"

' outras despesas

Printer.CurrentX = 567 * 9.5
Printer.CurrentY = 567 * 20
Printer.Print "0,00"

' ipi

Printer.CurrentX = 567 * 13
Printer.CurrentY = 567 * 20
Printer.Print "0,00"

' valor total da nota
Printer.CurrentX = 567 * 16.5
Printer.CurrentY = 567 * 20
Printer.Print "0,00"

' Dados da transportadora

Printer.CurrentX = 567 * 0.3
Printer.CurrentY = 567 * 21
Printer.Print rs("razaotrans") '"Transportadora Nova Ideia Ltda"

Printer.CurrentX = 567 * 12.2
Printer.CurrentY = 567 * 21
Printer.Print rs("fretetrans") '"1"

Printer.CurrentX = 567 * 12.7
Printer.CurrentY = 567 * 21
Printer.Print rs("placatrans") ' "BWO0000"

Printer.CurrentX = 567 * 14.6
Printer.CurrentY = 567 * 21
Printer.Print rs("uftrans") '"SP"

Printer.CurrentX = 567 * 15.5
Printer.CurrentY = 567 * 21
Printer.Print rs("cnpjtrans") '"12.123.456/0001-88"


Printer.CurrentX = 567 * 0.3
Printer.CurrentY = 567 * 21.7
Printer.Print rs("enderecotrans") '"Rua Fulano de tal do registo, 143 lj 25"

Printer.CurrentX = 567 * 11
Printer.CurrentY = 567 * 21.7
Printer.Print rs("cidadetrans") '"Sao Paulo"

Printer.CurrentX = 567 * 14.6
Printer.CurrentY = 567 * 21.7
Printer.Print rs("uftrans") '"SP"

Printer.CurrentX = 567 * 15.5
Printer.CurrentY = 567 * 21.7
Printer.Print rs("insctrans") '"098786654532321221"

Printer.CurrentX = 567 * 0.3
Printer.CurrentY = 567 * 22.4
Printer.Print rs("qtdetrans") '"1"

Printer.CurrentX = 567 * 2.2
Printer.CurrentY = 567 * 22.4
Printer.Print rs("especietrans") ' "Caixa"

Printer.CurrentX = 567 * 5.5
Printer.CurrentY = 567 * 22.4
Printer.Print rs("marcatrans") ' "1/1"

Printer.CurrentX = 567 * 11
Printer.CurrentY = 567 * 22.4
Printer.Print rs("numerotrans") ' "1/1"

Printer.CurrentX = 567 * 14.5
Printer.CurrentY = 567 * 22.4
Printer.Print rs("pesobruto")

Printer.CurrentX = 567 * 17.2
Printer.CurrentY = 567 * 22.4
Printer.Print rs("pesoliquido")

' Dados Adicionais


Printer.CurrentX = 567 * 0.3
Printer.CurrentY = 567 * 23.5
Printer.Print rs("linha1")
Printer.CurrentX = 567 * 0.3
Printer.Print rs("linha2")
Printer.CurrentX = 567 * 0.3
Printer.Print rs("linha3")
Printer.CurrentX = 567 * 0.3
Printer.Print rs("linha4")
Printer.CurrentX = 567 * 0.3
Printer.Print rs("linha5")

' numero da nota

Printer.Font.Bold = True
Printer.FontSize = 10

Printer.CurrentX = 567 * 17
Printer.CurrentY = 567 * 27.4
Printer.Print rs("numnota")

Printer.Font.Bold = False

Printer.EndDoc

MsgBox "Impressão em andamento", , "Nota Fiscal"
end Sub

[/c]
USUARIO.EXCLUIDOS 18/09/2006 11:17:48
#172121
ByduMoraes,
Seu Cliente ira imprimir nota Fiscal em impressora Jato de Tinta !?

Como fica a segunda via?
E quanto a consumo de Cartucho ?
Inclusive acho até que é obrigatório em matriciais, para a segunda
via ser carbonada.

Informe-se, Boa sorte.

USUARIO.EXCLUIDOS 18/09/2006 11:26:36
#172124
Resposta escolhida
altera essa parte do código da forma que postei abaixo

  ' Comeca a impressão dos produtos e meu desespero 


linhaAtual = 7.5
While Not rs2.EOF

Printer.CurrentX = 567 * 0.3
Printer.CurrentY = 567 * linhaAtual
Printer.Print rs2("cdproduto") '"9788574683522"

Printer.CurrentX = 567 * 2.7
Printer.CurrentY = 567 * linhaAtual
Printer.Print rs2("descricao") ' "A Logica das Provas em Materia Criminal"

Printer.CurrentX = 567 * 11.2
Printer.CurrentY = 567 * linhaAtual
Printer.Print rs2("cst") '"978"

Printer.CurrentX = 567 * 12
Printer.CurrentY = 567 * linhaAtual
Printer.Print rs2("unidade") '"EXE"

Printer.CurrentX = 567 * 13.5
Printer.CurrentY = 567 * linhaAtual
Printer.Print rs2("quantidade") '"1"

Printer.CurrentX = 567 * 14.7
Printer.CurrentY = 567 * linhaAtual
Printer.Print rs2("valordesconto") ' "20"

Printer.CurrentX = 567 * 15.7
Printer.CurrentY = 567 * linhaAtual
Printer.Print rs2("valorproduto") '"132,00"

Printer.CurrentX = 567 * 17.5
Printer.CurrentY = 567 * linhaAtual
Printer.Print rs2("subtotal") '"1500,00"


Printer.CurrentX = 567 * 19
Printer.CurrentY = 567 * linhaAtual
Printer.Print rs2("icms")

Printer.CurrentX = 567 * 19.5
Printer.CurrentY = 567 * linhaAtual
Printer.Print rs2("ipi")

rs2.MoveNext
i = i + 1


linhaAtual = linhaAtual + 0.3
Wend

BYDUMORAES 18/09/2006 12:04:12
#172129
Marcelo , brigadao cara, funcionou, pessoal tai o jeito mais simples de impressao de nota fiscal em qualquer impressora.
BYDUMORAES 18/09/2006 12:04:27
#172131
Marcelo , brigadao cara, funcionou, pessoal tai o jeito mais simples de impressao de nota fiscal em qualquer impressora.
Tópico encerrado , respostas não são mais permitidas