Falha na Impressão de barras code 128

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
Poka
Usuário Nível 4
Usuário Nível 4
Mensagens: 563
Registrado em: 25 Out 2004 21:26
Localização: Leme/SP

Falha na Impressão de barras code 128

Mensagem por Poka »

Olá a todos,

Será que alguem poderia me ajudar.

Tenho impresso os codigo de barras com essa rotina, porém a na formação de determinadas composições de números, as barras saem com falhas.

Será que alguem poderia dar uma olhada nessa rotina ?

Código: Selecionar todos

func barra128(xnum)
   local x
   // se xnum =35100948709125000111550000000001901265449997
   // ou =         35100948709125000111550000000001991521927533
   // da erro.

   lcChaine:=xnum
   code128 = ""
   tableB = .T.
   lni = 1      // lni devient l'index sur la chaine
   DO WHILE lni <= LEN(lcChaine)
      IF lni = 1
          //code128 = CHR(204) && Débuter sur table B
          code128 = CHR(210) && Débuter sur table B
      ENDIF
      //  On est sur la table C, essayer de traiter 2 chiffres
      minlni = 2
      //      DO testnum
      //     IF minlni < 0 && OK pour 2 chiffres, les traiter
      dummy = Val(SUBSTR(lcChaine, lni, 2))
      dummy = IIF(dummy < 95, dummy + 32, dummy + 100)
      code128 = code128+CHR(dummy)
      lni = lni + 2
   ENDDO
   //  Calcul de la clé de contrôle
   FOR lni = 1 TO LEN(code128)
       dummy = ASC(SUBSTR(code128, lni, 1))
       dummy = IIF(dummy < 127, dummy - 32, dummy - 100)
       IF lni = 1
          CheckSum = dummy
       ELSE
          CheckSum = MOD((CheckSum + (lni - 1) * dummy),103)
       ENDIF
   next
   //  Calcul du code ASCII de la clé
   CheckSum = IIF(CheckSum < 95, CheckSum + 32, CheckSum + 100)
   // Ajout de la clé et du STOP
   code128 = code128+CHR(CheckSum)+CHR(211)
   w_code128 = code128

RETURN (w_code128)
Obrigado.

Poka
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Falha na Impressão de barras code 128

Mensagem por sygecom »

Olá Poka,
Tente dar uma olhada nos exemplos da CONTRIB\GD ela gera as barra perfeitamente em varios formatos.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Poka
Usuário Nível 4
Usuário Nível 4
Mensagens: 563
Registrado em: 25 Out 2004 21:26
Localização: Leme/SP

Re: Falha na Impressão de barras code 128

Mensagem por Poka »

Leonardo, obrigado por responder.

Leonardo, tentei usar essa Contrib\GD no início, mas, não consegui fazer funcionar e acabei pegando essa funcão que utilizo, na internet.

A empresa que estou emitindo nfe, emite poucas notas (+- 100 no mes), porem quando chegou na 196,197,198,199 deu erro, e pelos testes que fiz, quando chegar na 296 a 299, 396 a 399 e assim em diante, vai dar erro. Tive que pular essa notas, e se eu nao corrigir esse problema em tempo, vou fazer a inutilização das mesmas.

Não vou poder mexer no momento, pois vai entrar outra empresa em outubro agora para emitir nfe ,(essa emite bastante notas, e vai chegar rapidinho nesssa numeração) , e ainda estou acertando algumas configuraçoes para essa empresa.

Se voce tiver alguma dica de como utiizar essa rotina, agradeceria, pois como eu disse, não consegui fazer funcionar, e acabei desistindo.

Estou utilizando
xHarbour build 0.99.70 Intl. (SimpLex)
Harbour MiniGUI 1.4 Extended Edition (Build 45) - 2007.10.29
Funcionaria normalmente?

Um abraço.

Poka
Responder