Bom dia senhores, Estou desenvolvendo a impressão de boleto bancario pelo Excel e gostaria da ajuda de voces mais experientes. Ja montei todo o boleto inclusive com o nosso numero, linha de digitavel e a linha do codigo de barras e esta perfeito, a minha ultima dificuldade é a impressão do codigo de barras no excel. A Totvs disponibiliza na pasta ems206b\interfac\bcodefont os fontes necessarios para impressão de codigos de barras, sei que o formato para impressão de boletos é o 2 de 5 intercalado, la tem esse, a questão é: Para cada par de numeros existe um simbolo a ser impresso do codigo de barras. Gostaria de saber se algum pode me ajudar com o mapeamento desses simbolos ex: codigo : 237980 = {+93} Não tenho esse mapa de simbolos para esse fonte e gostaria que me ajudassem com relação a isso. Obrigado André.
Bom dia, amigo! Não sei se já resolveu o problema, a potagem é meia antiga rsrsrs Mas dá uma olhada nesse link, vê se é o que vc precisa: http://www.linhabase.com.br/inboardweb/ ... index.html Abs!
Teste o código abaixo: Código: def var c-cod-barras-aux as character no-undo. def var c-cod-barras as character no-undo. assign c-cod-barras-aux = "" /***** Insira Aqui o Código de Barras *****/. run pi-generatei2of5 (input c-cod-barras-aux, output c-cod-barras ). message c-cod-barras-aux skip c-cod-barras view-as alert-box. /******************************************************************************************************************/ procedure pi-generatei2of5 : /*------------------------------------------------------------------------------ purpose: parameters: <none> notes: ------------------------------------------------------------------------------*/ def input param pvalor as char no-undo. def output param pchars as char no-undo. /* localização dos caracteres no fonte -----------------------------------*/ &scop asc_0031 192 &scop asc_3399 33 &scop asc_32 159 &scop chr_start chr(123) &scop chr_stop chr(125) /* variaveis de trabalho -------------------------------------------------*/ def var vcont as inte no-undo. def var vindex as inte no-undo. /* i2of5 somente aceita caracteres numericos -----------------------------*/ do vcont = 1 to length(pvalor): if index("0123456789":u, substr(pvalor, vcont, 1)) = 0 then do: message " I2OF5: ENcontrado caracter não numérico no código de barras: " skip pvalor view-as alert-box. return trim(return-value) + ' ':u + substr(pvalor, vcont, 1). end. end. /* coloca um zero a esquerda se o número de digitos for impar ------------*/ if length(pvalor) modulo 2 <> 0 then pvalor = '0' + pvalor. /* calcula o caracter ascii de acordo com os pares de digitos -----------*/ pchars = {&chr_start}. do vcont = 1 to length(pvalor) by 2 : vindex = inte(substr(pvalor, vcont, 2)). if vindex = 32 then pchars = pchars + chr({&asc_32}). else if vindex < 32 then pchars = pchars + chr(vindex + {&asc_0031}). else pchars = pchars + chr(vindex - 33 + {&asc_3399}). end. pchars = pchars + {&chr_stop}. return "":u. end procedure. return "Ok".
Ola amigo, Consegui fazer com simplesmente com um fonte do excel e mais um calculo que descobri pesquisando. Ficou certinho. Muito obrigado pelo apoio.
Basicamente o codigo que o eduardo.leite informa e mais um arquivo de fonte codigo de barras para excel.