Ir para conteúdo
Fórum Script Brasil
  • 0

Imprimir_Cabeçalho_Cupom_Vendas


George Ferraz

Pergunta

Noite rapaziada, como faço isso ?

Private Sub TxtQtd_LostFocus()

With MsFlexCmprs

.Rows = .Rows + 1

.TextMatrix(.Rows - 1, 0) = (TxtCod)

.TextMatrix(.Rows - 1, 1) = (TxtDesc)

.TextMatrix(.Rows - 1, 2) = (TxtQtd)

.TextMatrix(.Rows - 1, 3) = (TxtSubTl)

'Aqui eu imprimo os itens já com os campos do MsFlexGrid até aí belesma, o problema é que quero pegar os dados de um cadastro de minha "TbEmp" Ex.: "Fields (Nome),(End),(Fone)" e imprimir como o cabeçalho dessa impressão só quando o primeiro item for impresso. É possivel fazer isso nesse momento abaixo ? "

Open "LPT1" For Output As #1

Print #1, .TextMatrix(0, 0) & "-" & .TextMatrix(0, 1) & "-" & .TextMatrix(0, 2); Tab(0); .TextMatrix(.Rows - 1, 0) _

& "-" & .TextMatrix(.Rows - 1, 1) & "-" & .TextMatrix(.Rows - 1, 2) & "-" & .TextMatrix(.Rows - 1, 3) & "-"

Close #1

End With

End Sub

Valeu a força de todos do ScriptBrasil.

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Kuroi dia, olha é isso, eu imprimo uma linha por vez. É um programa para supermercado, quando o usuário passar o leitor de código de barras ele preenche uma linha do Grid e imprimi o item na impressora e assim vai..., o problema é que, preciso colocar um cabeçalho na hora que o primeiro item for impresso.

Impressão falta o cabeçalho:

Open "LPT1" For Output As #1

Print #1, .TextMatrix(0, 0) & "-" & .TextMatrix(0, 1) & "-" & .TextMatrix(0, 2); Tab(0); .TextMatrix(.Rows - 1, 0) _

& "-" & .TextMatrix(.Rows - 1, 1) & "-" & .TextMatrix(.Rows - 1, 2) & "-" & .TextMatrix(.Rows - 1, 3) & "-"

Close #1

Desde já agradeço sua atenção amigo.

Link para o comentário
Compartilhar em outros sites

  • 0

opa, na verdade não precisaria de for. o q eu digo seria pra declarar la em cima, antes de qualquer sub, uma variavel, exemplo:

Dim i As Integer
no Form_Load você inicaliza ela com um valor, exemplo 1:
i = 1
e antes de imprimir você testa, se for um poe o cabecalho:
If i = 1 Then
    - Aqui imprime o cabecalho
End If

Open "LPT1" For Output As #1
Print #1, .TextMatrix(0, 0) & "-" & .TextMatrix(0, 1) & "-" & .TextMatrix(0, 2); Tab(0); .TextMatrix(.Rows - 1, 0) _
& "-" & .TextMatrix(.Rows - 1, 1) & "-" & .TextMatrix(.Rows - 1, 2) & "-" & .TextMatrix(.Rows - 1, 3) & "-"
Close #1

i = i + 1 'Essa parte é a mais importante.[/code]

bom, mas como parece q você não esta se preocupando em contar o numero de linhas, pra economizar codigo e processamento, você pode declarar a varaivel como boolean e mudar pra true dentro do if, mas você q sabe.

ve se consegue fazer ai, qualquer coisa poste.

Link para o comentário
Compartilhar em outros sites

  • 0

Kuroi, fico muito grato a você, por mais essa mano. Na verdade estou tentando conquistar meu primeiro cliente, por esse motivo ainda não me preocupei com os detalhes mais técnicos, mesma assim; é mais uma dica sua na questão economizar códigos, digo contar linhas.

Viu vou testar por aqui e depois falo pro cê, valeu.

Link para o comentário
Compartilhar em outros sites

  • 0

Kuroi noite, dá uma olhada como escrevi o código, acho que está ok, só que me deparei com um problema real e eminente. Não posso testar a impressão é mole, vou explicar: estou usando o “Print” e esse cara manda direto para a impressora com um detalhe com cabo “Serial” e aqui em casa eu só tenho uma impressora jato de tinta cabo “USB” que não pode ser ligada na “LPT1” ou seja só vou testar na segunda feira lá no trabalho.

você pode dizer assim porque não usar o “Printer” que manda para o Windows, vou explicar: anteriormente eu usei o “Printer” mais não conseguir fazer como que a impressão acontecesse na hora do evento LostFocus eu teria que fechar o Form aí imprimia, nossa foi difício, mais passou, é isso meu amigo. Eu fico muito grato sim e tbém ancioso para lhe falar se deu certo. Valeu.

Meu General:

Option Explicit
Dim i As Integer ‘ Aqui eu coloco sua orientação como você falou
Meu Load:

Private Sub Form_Load()

i = 1 ‘ Aqui eu igualo a variável como você falou                    

End Sub
Meu LostFocus:

Private Sub TxtQtd_LostFocus()

With MsFlexCmprs
.Rows = .Rows + 1

.TextMatrix(.Rows - 1, 0) = (TxtCod)

.TextMatrix(.Rows - 1, 1) = (TxtDesc)

.TextMatrix(.Rows - 1, 2) = (TxtQtd)

.TextMatrix(.Rows - 1, 3) = (TxtSubTl)

If i = 1 Then

Open "LPT1" For Output As #1
Print #1, rsclt.Fields("NClt") 'Aqui imprime o cabeçalho, estou chamando um campo de uma Tb para testar
Close #1

End If

Open "LPT1" For Output As #1 ‘Aqui eu imprimo o conteúdo do Grid a cada preenchimento de uma linha.

Print #1, .TextMatrix(0, 0) & "-" & .TextMatrix(0, 1) & "-" & .TextMatrix(0, 2); Tab(0); .TextMatrix(.Rows - 1, 0) _
& "-" & .TextMatrix(.Rows - 1, 1) & "-" & .TextMatrix(.Rows - 1, 2) & "-" & .TextMatrix(.Rows - 1, 3) & "-"
Close #1

i = i + 1 'Essa parte é a mais importante, servi para o próximo produto se houver certo, para evitar a impreção do cabeçalho outra vez é isso ?

End With

End Sub

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...