quarta-feira, 29 de abril de 2009

NF-E: UM CAMINHO PARA O CÓDIGO DE BARRAS EM VB6

Se você está enfrentando dificuldades para gerar o código de barras em Visual Basic 6, pode pensar de um outro modo e usar o próprio VB.NET como caminho para a geração do código de barras 128C da NF-e.
Para isto, basta compilar uma aplicação Windows Form que simplesmente gere o código de barras e utilizar uma chamada call no Visual Basic 6 para esta simples aplicação.
1. Inicie um novo projeto Windows Form Applicattion no VB.Net
2. Chame este projeto de GerBarras
3. Quando os arquivos forem criados, vá ao menu Project -> GerBarras Properties. Clique na opção References na tela que se abre.

A tela será como a que segue abaixo:



Clique no botão Add e indique o caminho do diretório onde se encontra o Barcodelib.dll, conforme a figura.

Usaremos esta dll para fazer a geração do código de barras, recebendo como parâmetro de chamada a numeração que deve ser transformada em código de barras. O aplicativo deverá então gerar uma imagem da numeração do código de barras na pasta C:\NF-e\barras.


Após incluir o barcodelib.dll, clique na pasta Debug e na opção Command Line Arguments digite "parametro", conforme a tela mostrada abaixo:






Agora, nos resta informar o código para geração do código de barras.

4. No modo design do form1, inclua uma objeto Picture. Para isso, clique no menu View e depois em ToolBox. Do lado esquerdo, será aberto a barra de ferramentas. Procure no Common Controls pelo PictureBox. Pressione o mouse sobre ele e arraste-o para o formulário.

Defina as propriedades do PictureBox1 como segue:

Width: 361
Size: 104


5. Em seguida, informe o código abaixo para o form1:

Código na imagem:

Imports System.IO
Imports System.Text
Imports System.Drawing

Imports System.Collections
Imports System.ComponentModel
Imports System.Drawing.Text

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim Valor As String

If Command() <> "" Then
Valor = Command()
Dim Barcode As New BarcodeLib.Barcode(Valor, BarcodeLib.TYPE.CODE128C)
PictureBox1.Image = Barcode.Encode(BarcodeLib.TYPE.CODE128C, Valor, 300, 150)
PictureBox1.Visible = True
Barcode.SaveImage("C:\NF-E\Barras\BARRAS.JPG", BarcodeLib.SaveTypes.JPG)

'MsgBox("Gerado com Sucesso")

End
End If
End Sub
End Class


Clique no menu Build na opção Build GerBarras.

A aplicação será gerada. Se não houverem erros, teste o executável gerado:


6. Encontre o diretório Bin\Release dentro dos fontes do projeto GerBarras. O caminho dos fontes no VB.NET sempre fica identificado com o nome do seu projeto. Exemplo:

C:\Vb.NEt Fontes\GeraBarras\GerBarras\GerBarras\bin\Release

Dentro do diretório Release está o GerBarras.exe que você acaba de criar.

7. Copie o GerBarras.exe para o C:\ da sua máquina.

8. Após isso, clique no botão Iniciar do Windows XP Professional (estou supondo que o sistema operacional na sua máquina é o Windows XP. Fiz este exemplo em uma máquina com o Windows XP), e selecione a opção Executar no Menu:

Na caixa Abrir, digite C:\GerBarras.exe 123456895

Pronto!

Um arquivo jpg apresentando o código de barras do número 123456895 será criado na pasta C:\Nfe-e\Barras.

É só ir até lá e conferir.

Você pode mudar o diretório mudando a linha:


Barcode.SaveImage("C:\NF-E\Barras\BARRAS.JPG", BarcodeLib.SaveTypes.JPG)

Para o diretório que achar mais apropriado.

Para chamar este pequeno aplicativo no Visual Basic 6, use o comando Call:

'Código de Barras a ser gerado

CodigoNfe = Right(TxtID, 44)

'Gerar Código de barras

Call Shell("C:\GerBarras.exe " & CodigoNfe)

Abraço a todos!!

4 comentários:

Unknown disse...

muito bom... mas me diz uma coisa, onde encontrar esta BARCODELIB.DLL
é um componente comprado ?

Anônimo disse...

eu segui exatamente as instruções no post mas qdo executo ele, seja em modo debug ou pelo executavel gerado recebo um erro na linha PICTURE1BOX.IMAGE
(ONLY NUMERIC VALUES CAN BE ENCODED WITH C128C)...alguem pode me ajudar??

Anônimo disse...

Caro amigo,

A numeração que você está repassando deve estar codificada para o code 128C.

Se você colocar uma numeração qualquer sem realizar os cálculos poderá ter estes problemas.

Qualquer nova dúvida, envie para o meu e-mail pessoal: leo_florindo@hotmail.com

Unknown disse...

Bom dia ! Existe alguma alteração que não apresente a tela durante a execução do gerbarras.exe ? porque fica lento quando temos que imprimir vários códigos de barras.

UM APLICATIVO PARA LEITURA DEVOCIONAL ANUAL DA BIBLIA EM ANDROID

Olá, pessoal!  Este novo projeto foi criado em Visual Studio 2019 em C#.Net com o Xamarin. Já está disponível no Google Play para vocês baix...