FoxPro/Visual FoxPro - Impresion de codigo de barra erronea

   
Vista:

Impresion de codigo de barra erronea

Publicado por Francisco (3 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

Impresion de codigo de barra erronea

Publicado por elhabraque (19 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