CODIGO BARRA 128EAN - DANFE/DACTE

 Tópico anterior Próximo tópico Novo tópico

CODIGO BARRA 128EAN - DANFE/DACTE

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#470320 - 04/01/2017 11:29:33

JOHNSTEVE
COSMOPOLIS-SP
Cadast. em:Janeiro/2016


Última edição em 04/01/2017 11:34:34 por JOHNSTEVE

Bom dia galera, Feliz ano novo para todos. Paz, Sade e Sucesso

Galera o seguinte, estou desenhando aqui o DACTE na unha usando o Crystal Reports. o layout ja esta tudo pronto. e meu dataset todo alimentado.
ja fiz o teste a impresso esta tudo ok, so me deparei com um pequeno detalhe que achei q fosse fcil

seria o Codigo de Barra do DACTE.
algum sabe alguma rotina para criar a imagem  pegando a Chave de Acesso ?
tipo poderia ate ser uma picturebox. no meu form invisivel so para criar a imagem do codigo de barra. e assim qnd eu finalizasse q chegar na minha rotina de impresso do DACTE pegar a minha picturebox ja pronta no formatdo de Codigo de Barra 128 EAN

oq vcs acham essa minha logica esta errada ?
andei vasculhando no google e nao achei uma rotina de criar codigo de barra 128 usando um picturebox. ate achei um mais de codigo de barra 13EAB do produto.

Agradeo desde de j pela ateno de todos





#470321 - 04/01/2017 11:31:50

JOHNSTEVE
COSMOPOLIS-SP
Cadast. em:Janeiro/2016


 Anexos estao visíveis somente para usuários registrados

print do meu DACTE no crystal



Resposta escolhida #470322 - 04/01/2017 11:49:03

SINCLAIR
CRICIUMA
Cadast. em:Janeiro/2001


Colega JHONSTEVE,

No precisa ser picture box.

converter a chave para o formato de barras 128 e aplicar uma funo do Crystal Reports.

Eu tenho aqui.

quase meio-dia e tenho um compromisso, mas depois publico para voc.

Tudo de bom.


Euzbio Cruz
Cricima - SC


#470324 - 04/01/2017 11:50:35

JOHNSTEVE
COSMOPOLIS-SP
Cadast. em:Janeiro/2016


Citação:
:
Colega JHONSTEVE,

No precisa ser picture box.

converter a chave para o formato de barras 128 e aplicar uma funo do Crystal Reports.

Eu tenho aqui.

quase meio-dia e tenho um compromisso, mas depois publico para voc.

Tudo de bom.


vlw Sinclair :)
fico agradecido :)

eu ate imaginei algo parecido... tipo baixar uma fonte de codigo 128EAN instalar no pc.. e la no crystal mudar a fonte para essa.. mais nao deu certo kkkk




#470325 - 04/01/2017 11:57:27

NILSONTRES
SAO PAULO
Cadast. em:Março/2012


Citação:
eu ate imaginei algo parecido... tipo baixar uma fonte de codigo 128EAN instalar no pc.. e la no crystal mudar a fonte para essa.. mais nao deu certo kkkk  

Ento, eu fao isso para gerar etiquetas, mas com a C39, e da certo, agora com a 128 no sei, quer mandar para eu testar ? Vc tem essa font ?
Embora a soluo do SINCLAIR, me parece a melhor.



#470330 - 04/01/2017 13:50:18

SINCLAIR
CRICIUMA
Cadast. em:Janeiro/2001


Última edição em 04/01/2017 14:00:51 por SINCLAIR

 Anexos estao visíveis somente para usuários registrados

JOHNSTEVE,

Citação:
eu ate imaginei algo parecido... tipo baixar uma fonte de codigo 128EAN instalar no pc.. e la no crystal mudar a fonte para essa.. mais nao deu certo kkkk


Isto porque a chave NFe (ou seja, o contedo a ser visto em formato de barras) precisa ser convertido para uma sequencia string que a TTF interprete corretamente

NILSONTRES,

Citação:
Ento, eu fao isso para gerar etiquetas, mas com a C39, e da certo, agora com a 128 no sei, quer mandar para eu testar ? Vc tem essa font ?
Embora a soluo do SINCLAIR, me parece a melhor.


De fato a TTF para Code 39 no precisa converter o contedo, geralmente basta colocar um ponto de exclamao antes e depois.

Por exemplo: para fazer as barras para o nmero 123456789, seria colocar no campo !123456789! e usar a TTF para Code 39.

Cdigo

A funo para isto segue abaixo.

Ainda no pude voltar para o escritrio e aqui no notebook tenho apenas em VB6, mas facilmente convertvel para .Net.

Peferi postar j em VB6 para ser convertido porque daqui creio que vou para Porto Alegre (j que no vi minha famlia no Reveillon).

Supondo chave NFe (fictcia, claro) 12345678901234567890123456789012345678901234, bastaria passar a chave para funo abaixo.

Ou seja, no usa 12345678901234567890123456789012345678901234 na fonte e sim passar esta chave NFe para que a funo converta em uma string que, esta sim, deve ser colocada em algum campo ou passada como parmetro para o Crystal e, ento, posicionado no relatrio, usar a TTF em anexo.

Resumo: O retorno ser uma string que deve ser colocada no Crystal Reports e usar a fonte TTF em anexo.

Public Function fnc_Codifica_Numero_para_Usar_com_TTF_de_Codigo_de_Barras_Code_128(str_Numero_para_Codificar)
  
  []Cette fonction est rgie par la Licence Gnrale Publique Amoindrie GNU (GNU LGPL)
  []This function is governed by the GNU Lesser General Public License (GNU LGPL)
  []V 2.0.0
  []Paramtres : une chaine
  []Parameters : a string
  []Retour : * une chaine qui, affiche avec la police CODE128.TTF, donne le code barre
  []         * une chaine vide si paramtre fourni incorrect
  []Return : * a string which give the bar code when it is dispayed with CODE128.TTF font
  []         * an empty string if the supplied parameter is no good
  Dim i%, checksum&, mini%, dummy%, tableB As Boolean
  fnc_Codifica_Numero_para_Usar_com_TTF_de_Codigo_de_Barras_Code_128 = [][]
  If Len(str_Numero_para_Codificar) > 0 Then
  []Vrifier si caractres valides
  []Check for valid characters
    For i% = 1 To Len(str_Numero_para_Codificar)
      Select Case Asc(Mid$(str_Numero_para_Codificar, i%, 1))
      Case 32 To 126, 203
      Case Else
        i% = 0
        Exit For
      End Select
    Next
    []Calculer la chaine de code en optimisant l[]usage des tables B et C
    []Calculation of the code string with optimized use of tables B and C
    fnc_Codifica_Numero_para_Usar_com_TTF_de_Codigo_de_Barras_Code_128 = [][]
    tableB = True
    If i% > 0 Then
      i% = 1 []i% devient l[]index sur la chaine / i% become the string index
      Do While i% <= Len(str_Numero_para_Codificar)
        If tableB Then
          []Voir si intressant de passer en table C / See if interesting to switch to table C
          []Oui pour 4 chiffres au dbut ou la fin, sinon pour 6 chiffres / yes for 4 digits at start or end, else if 6 digits
          mini% = IIf(i% = 1 Or i% + 3 = Len(str_Numero_para_Codificar), 4, 6)
          GoSub testnum
          If mini% < 0 Then []Choix table C / Choice of table C
            If i% = 1 Then []Dbuter sur table C / Starting with table C
              fnc_Codifica_Numero_para_Usar_com_TTF_de_Codigo_de_Barras_Code_128 = Chr$(210)
            Else []Commuter sur table C / Switch to table C
              fnc_Codifica_Numero_para_Usar_com_TTF_de_Codigo_de_Barras_Code_128 = fnc_Codifica_Numero_para_Usar_com_TTF_de_Codigo_de_Barras_Code_128 & Chr$(204)
            End If
            tableB = False
          Else
            If i% = 1 Then fnc_Codifica_Numero_para_Usar_com_TTF_de_Codigo_de_Barras_Code_128 = Chr$(209) []Dbuter sur table B / Starting with table B
          End If
        End If
        If Not tableB Then
          []On est sur la table C, essayer de traiter 2 chiffres / We are on table C, try to process 2 digits
          mini% = 2
          GoSub testnum
          If mini% < 0 Then []OK pour 2 chiffres, les traiter / OK for 2 digits, process it
            dummy% = Val(Mid$(str_Numero_para_Codificar, i%, 2))
            dummy% = IIf(dummy% < 95, dummy% + 32, dummy% + 105)
            fnc_Codifica_Numero_para_Usar_com_TTF_de_Codigo_de_Barras_Code_128 = fnc_Codifica_Numero_para_Usar_com_TTF_de_Codigo_de_Barras_Code_128 & Chr$(dummy%)
            i% = i% + 2
          Else []On n[]a pas 2 chiffres, repasser en table B / We haven[]t 2 digits, switch to table B
            fnc_Codifica_Numero_para_Usar_com_TTF_de_Codigo_de_Barras_Code_128 = fnc_Codifica_Numero_para_Usar_com_TTF_de_Codigo_de_Barras_Code_128 & Chr$(205)
            tableB = True
          End If
        End If
        If tableB Then
          []Traiter 1 caractre en table B / Process 1 digit with table B
          fnc_Codifica_Numero_para_Usar_com_TTF_de_Codigo_de_Barras_Code_128 = fnc_Codifica_Numero_para_Usar_com_TTF_de_Codigo_de_Barras_Code_128 & Mid$(str_Numero_para_Codificar, i%, 1)
          i% = i% + 1
        End If
      Loop
      []Calcul de la cl de contrle / Calculation of the checksum
      For i% = 1 To Len(fnc_Codifica_Numero_para_Usar_com_TTF_de_Codigo_de_Barras_Code_128)
        dummy% = Asc(Mid$(fnc_Codifica_Numero_para_Usar_com_TTF_de_Codigo_de_Barras_Code_128, i%, 1))
        dummy% = IIf(dummy% < 127, dummy% - 32, dummy% - 105)
        If i% = 1 Then checksum& = dummy%
        checksum& = (checksum& + (i% - 1) * dummy%) Mod 103
      Next
      []Calcul du code ASCII de la cl / Calculation of the checksum ASCII code
      checksum& = IIf(checksum& < 95, checksum& + 32, checksum& + 105)
      []Ajout de la cl et du STOP / Add the checksum and the STOP
      fnc_Codifica_Numero_para_Usar_com_TTF_de_Codigo_de_Barras_Code_128 = fnc_Codifica_Numero_para_Usar_com_TTF_de_Codigo_de_Barras_Code_128 & Chr$(checksum&) & Chr$(211)
    End If
  End If
  Exit Function
testnum:
  []si les mini% caractres partir de i% sont numriques, alors mini%=0
  []if the mini% characters from i% are numeric, then mini%=0
  mini% = mini% - 1
  If i% + mini% <= Len(str_Numero_para_Codificar) Then
    Do While mini% >= 0
      If Asc(Mid$(str_Numero_para_Codificar, i% + mini%, 1)) < 48 Or Asc(Mid$(str_Numero_para_Codificar, i% + mini%, 1)) > 57 Then Exit Do
      mini% = mini% - 1
    Loop
  End If
Return
End Function


Tudo de bom.




Euzbio Cruz
Cricima - SC


#470343 - 04/01/2017 14:51:35

JOHNSTEVE
COSMOPOLIS-SP
Cadast. em:Janeiro/2016


SINCLAIR, instalei a fonte. porem qnd vou utilizar no crystal reports. diz o seguinte.

  S ha suporte para fontes TrueType. Esta no uma fonte TrueType.






#470347 - 04/01/2017 15:19:52

SINCLAIR
CRICIUMA
Cadast. em:Janeiro/2001


JOHNSTEVE,

Depois de descompactar, tu copiou e colou na pasta Fonts do Windows?



Euzbio Cruz
Cricima - SC


#470348 - 04/01/2017 15:30:58

JOHNSTEVE
COSMOPOLIS-SP
Cadast. em:Janeiro/2016


Última edição em 04/01/2017 15:34:50 por JOHNSTEVE

Citação:
:
JOHNSTEVE,

Depois de descompactar, tu copiou e colou na pasta Fonts do Windows?



descompatei e colei na pasta Fontes do Windos

ai la no Crystal reports. eu fui tentar mudar a fonte. para a q instalei. e deu isso .

S ha suporte para fontes TrueType. Esta no uma fonte TrueType.  

qnd vou trocar de fonte.



#470350 - 04/01/2017 16:07:17

SINCLAIR
CRICIUMA
Cadast. em:Janeiro/2001


Última edição em 04/01/2017 16:08:26 por SINCLAIR

JOHNSTEVE,

Algum problema ai.

Faa o teste: d 2 clique no arquivo Code 128.TTF. Dever mostrar os caracteres de barras.

No Crystal Reports, use o nome de fonte Code 128.

Baixei o anexo aqui, instalei a fonte em uma Mquina Virtual que tenho no notebook e funcionou corretamente.



Euzbio Cruz
Cricima - SC


#470351 - 04/01/2017 16:10:32

JOHNSTEVE
COSMOPOLIS-SP
Cadast. em:Janeiro/2016


Citação:
:
JOHNSTEVE,

Algum problema ai.

Baixei o anexo aqui, instalei a fonte em uma Mquina Virtual que tenho no notebook e funcionou corretamente.



a fonte funciona no bloco de notas eu testei aqui..
ento deve ser no crystal reports.

eu fui modificar dentro do crystal reports. coloquei um campo la. do meu Dataset. q vai ser alimentado a chave de acesso. dai na hr da exibio creio q era so exibir imagem do cdigo. porem qnd vou trocar a fonte dentro do crystal da esse erro :(
oq vc acha q possa ser ?



 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por JOHNSTEVE em 08/01/2017 12:10:22