FoxPro/Visual FoxPro - Impresion de codigo de barra erronea

 
Vista:
sin imagen de perfil

Impresion de codigo de barra erronea

Publicado por Francisco (9 intervenciones) el 13/06/2017 16:53:10
codbarra

Hola a todos. Trabajo en visual fox 8 y hace poco implemente en mi sistema la impresion en reportes de un codigo de barra autogenerado. El tipo de fuente que utilizo en el reporte es la BarCode128.

El problema que tengo es que hay veces que el digito verificador es el € y lo imprime mal. En adjunto envio imagen de muestra.

Por favor si alguien puede ayudarme desde ya muy agradecido. O me avisan si necesitan mas detalles de mi inconveniente.

La funcion que utilizo para generar el codigo de barra es la siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
*** strto128a
LPARAMETER tcString
 
LOCAL lcStart, lcStop, lcRet, lcCheck, ;
      lnLong, lnI, lnCheckSum, lnAsc
 
lcStart = CHR(103 + 32)
lcStop = CHR(106 + 32)
lnCheckSum = ASC(lcStart) - 32
 
lcRet = tcString
lnLong = LEN(lcRet)
FOR lnI = 1 TO lnLong
	lnAsc = ASC(SUBS(lcRet,lnI,1)) - 32
    IF NOT BETWEEN(lnAsc, 0, 64)
    	lcRet = STUFF(lcRet,lnI,1,CHR(32))
        lnAsc = ASC(SUBS(lcRet,lnI,1)) - 32
	ENDIF
    lnCheckSum = lnCheckSum + (lnAsc * lnI)
ENDFOR
 
lcCheck = CHR(MOD(lnCheckSum,103) + 32)
lcRet = lcStart + lcRet + lcCheck + lcStop
*--- Esto es para cambiar los espacios y caracteres invalidos
lcRet = STRTRAN(lcRet, CHR(32), CHR(232))
lcRet = STRTRAN(lcRet, CHR(127), CHR(192))
*---
RETURN lcRet
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 109
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Impresion de codigo de barra erronea

Publicado por elhabraque (58 intervenciones) el 14/06/2017 01:38:46
Yo utilizo la clase FoxBarCode, que puedes descargar aquí

http://vfpx.codeplex.com/releases/view/56050

A grandes rasgos, con este código se le pasa el código de barras y el tipo que quieres obtener, devolviendo una imagen con las características solicitadas:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
TRY
	loFbc	= CREATEOBJECT('FoxBarcode')
 
	CATCH
 
ENDTRY
 
IF VARTYPE(loFbc) == 'O'
	WITH loFbc
		.cImageType	= 'PNG'
		.cTempPath	= 'C:\TMP\'
		.lShowStartStopChars	= .F.	&& NO MUESTRA CARACTERES DE INICIO Y FINAL
		.lAddCheckDigit	= .F.			&& NO CALCULA DIGITO DE CONTROL
		.nImageHeight	= 72
		.nImageWidth	= 270
		.nResolution	= 1200			&& RESOLUCION
		.nAlignBarcode	= 1				&& ALINEAMIENTO CENTRAL
 
		lxImagen	= .BarcodeImage(CODIGO_BARRAS, '', '', TIPO_CODIGO)
	ENDWITH
	RELEASE loFbc
ENDIF
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar