Galera estou desenvolvendo uma função para imprimir o cupom de venda com o print mais estou com um proble no meio da função. peguei parte do codigo aqui mesmo no site. como nao sei mexer mto com o print gostaria da ajuda de voces para Gerar a função.
abaixo a função.
O problema esta na parte central da função, onde sao colocados os produtos da venda no cupom. aceito sujestões e alterações.
abaixo a função.
O problema esta na parte central da função, onde sao colocados os produtos da venda no cupom. aceito sujestões e alterações.
Public Pict As PictureBox
Public Sub Gerar_Cupom(Venda As String, lst As ListView, total As String, _
Juros As String, Desconto As String, Recebido As String)
Dim Empresa As String
Dim Rua As String
Dim Fone As String
Dim Cidade As String
Dim Cnpj As String
Dim InscM As String
Set Pict = frm_printcupom.Picture1
Empresa = LerINI([Ô]Empresa[Ô], [Ô]fantasia[Ô], App.Path & [Ô]\config.ini[Ô])
Rua = LerINI([Ô]Empresa[Ô], [Ô]endereco[Ô], App.Path & [Ô]\config.ini[Ô])
Fone = LerINI([Ô]Empresa[Ô], [Ô]fone1[Ô], App.Path & [Ô]\config.ini[Ô])
Cidade = LerINI([Ô]Empresa[Ô], [Ô]cidade[Ô], App.Path & [Ô]\config.ini[Ô]) & [Ô] - [Ô] & LerINI([Ô]Empresa[Ô], [Ô]estado[Ô], App.Path & [Ô]\config.ini[Ô])
Cnpj = LerINI([Ô]Empresa[Ô], [Ô]cnpj[Ô], App.Path & [Ô]\config.ini[Ô])
InscM = LerINI([Ô]Empresa[Ô], [Ô]inscm[Ô], App.Path & [Ô]\config.ini[Ô])
Pict.FontName = [Ô]Courier New[Ô]
Fonte 10, False, False
Pict.Cls
Pict.Print String(40, [Ô]-[Ô]) [ô]Faz uma Linha
Pict.Print Tab((40 - Len(Empresa)) / 2); Empresa [ô]Centraliza N. Empresa
Pict.Print String(40, [Ô]-[Ô])
Pict.Print Tab((40 - Len(Rua)) / 2); Rua [ô]Centraliza Rua
Pict.Print Tab((40 - Len(Fone)) / 2); Fone [ô]Centraliza Dados Adicionais
Pict.Print Tab((40 - Len(Cidade)) / 2); Cidade [ô]Centraliza Cidade
Pict.Print [Ô] CGC:[Ô]; Tab(21); Cnpj
Pict.Print [Ô] INSC.ESTADUAL:[Ô]; Tab(27); InscM
Fonte 12, True, False
Pict.Print Tab(10); [Ô]CUPOM FISCAL[Ô]
Fonte 10, False, False
Pict.Print Tab(2); Format(Date, [Ô]dd/mm/yy[Ô]); [Ô] [Ô]; Format(Time, [Ô]hh:mm:ss[Ô]); Tab(26); [Ô]VENDA[Ô] & Format(Venda, [Ô]00000000[Ô]);
Pict.CurrentY = 2150 [ô]Vai para a coluna do Form escolhida
Fonte 12, False, True
Pict.Print Tab(28); [Ô]BR[Ô]
Fonte 10, False, False
Pict.Print String(40, [Ô]-[Ô])
[ô]PARTE QUE INSERE PRODUTOS NO CUPOM
Dim des As String
Dim Qtd As String
Dim Vlru As String
Dim Vlrt As String
Pict.Print [Ô] PROD DESCRIÇÃO[Ô]
Pict.Print [Ô] QTD x VLR UNIT TOTAL[Ô]
Pict.Print String(40, [Ô]-[Ô])
If lst.ListItems.Count = 0 Then Exit Sub
For i = 1 To lst.ListItems.Count
des = lst.ListItems(i).SubItems(1)
Qtd = Format(lst.ListItems(i).SubItems(2), [Ô]000[Ô])
Vlru = Format(lst.ListItems(i).SubItems(3), [Ô]currency[Ô])
Vlrt = lst.ListItems(i).SubItems(4)
Pict.Print [Ô] [Ô]; Format(i, [Ô]000[Ô]); [Ô] [Ô]; Mid(des, 1, 30)
Pict.Print [Ô] [Ô]; Qtd; [Ô] x[Ô]; [Ô] [Ô]; Vlru; Tab(22 - Len(Vlrt)); Vlrt
Next i
[ô]FECHA O CUMPOM
Const Msg As String = [Ô]Obrigado Pela Preferencia[Ô]
Pict.Print String(40, [Ô]-[Ô])
Pict.Print [Ô] Total:[Ô]; Tab(28); Format(total, [Ô]Currency[Ô])
Pict.Print [Ô] Juros:[Ô]; Tab(28); Format(Juros, [Ô]Currency[Ô])
Pict.Print [Ô] Desct:[Ô]; Tab(28); Format(Desconto, [Ô]Currency[Ô])
Pict.Print [Ô] Receb:[Ô]; Tab(28); Format(Recebido, [Ô]Currency[Ô])
Pict.Print String(40, [Ô]-[Ô])
Pict.Print Tab((40 - Len(Msg)) / 2); Msg
End Sub
Private Sub Fonte(Tamanho As Byte, Negrito As Boolean, Italico As Boolean) [ô]Altera a fonte
Pict.FontSize = Tamanho
Pict.FontBold = Negrito
Pict.FontItalic = Italico
End Sub
Amigo boa tarde.
Esta parte do código que responsável pala inserção dos produtos no cupom esta sendo carrega atraves do objeto ListView.....
Você esta utilizando esta forma de visualização sem deu projeto???
Na minha opinião seria melhor você puxar direto do Banco de Dados somente pelo número da venda.
Citação:
For i = 1 To lst.ListItems.Count
des = lst.ListItems(i).SubItems(1)
Qtd = Format(lst.ListItems(i).SubItems(2), [Ô]000[Ô])
Vlru = Format(lst.ListItems(i).SubItems(3), [Ô]currency[Ô])
Vlrt = lst.ListItems(i).SubItems(4)
Pict.Print [Ô] [Ô]; Format(i, [Ô]000[Ô]); [Ô] [Ô]; Mid(des, 1, 30)
Pict.Print [Ô] [Ô]; Qtd; [Ô] x[Ô]; [Ô] [Ô]; Vlru; Tab(22 - Len(Vlrt)); Vlrt
Next i
Esta parte do código que responsável pala inserção dos produtos no cupom esta sendo carrega atraves do objeto ListView.....
Você esta utilizando esta forma de visualização sem deu projeto???
Na minha opinião seria melhor você puxar direto do Banco de Dados somente pelo número da venda.
Citação:O problema esta na parte central da função, onde sao colocados os produtos da venda no cupom. aceito sujestões e alterações.
[txt-size=2]Qual o problema?[/txt-size]
DANIKULL estou usando o listview porque gero o cumpom antes de gravar a venda no banco de dados, mas acho que nao iria haver diferença caso ultiliza-se o banco de dados. em todo caso, aceito opniões. voce viu que nessa parte do codigo esta sendo gerada quebra de linha na inclusao do produto sem a necessidade? tipo.
o certo seria assim
cod descrição
qtd valor unit total
001 PRODUTO TESTE
001 X R$ 5,00 R$ 5,00
mas esta saindo assim:
001 PRODUTO TESTE
001 X R$ 5,00
R$ 5,00
o objeto print seria a melhor forma de gerar o cupom? ou da pra fazer por DATAREPORT?
o certo seria assim
cod descrição
qtd valor unit total
001 PRODUTO TESTE
001 X R$ 5,00 R$ 5,00
mas esta saindo assim:
001 PRODUTO TESTE
001 X R$ 5,00
R$ 5,00
o objeto print seria a melhor forma de gerar o cupom? ou da pra fazer por DATAREPORT?
caio coloca ; ponto e vigola antes do valor que saindo na linha debaixo que vai dar certo
Boa noite.
Pegue neste treco do código:
Onde está grifado altere vá alterando, tipo, 23, 24, 30.... até você colocar a impressãom em ordem.
Isto esta ocorrendo porque a posição 22 como tabulação esta em cima de uma impressão ja feita pelo objeto, por isso ele coloca a impressão na linha de baixo, ok??
Pegue neste treco do código:
Citação:Pict.Print [Ô] [Ô]; Qtd; [Ô] x[Ô]; [Ô] [Ô]; Vlru; Tab([txt-color=#b40404]22[/txt-color] - Len(Vlrt)); Vlrt
Onde está grifado altere vá alterando, tipo, 23, 24, 30.... até você colocar a impressãom em ordem.
Isto esta ocorrendo porque a posição 22 como tabulação esta em cima de uma impressão ja feita pelo objeto, por isso ele coloca a impressão na linha de baixo, ok??
deu certo aqui. agora setei o pcit como a impressora padrao. como configuro o papel para bobina?
Tópico encerrado , respostas não são mais permitidas