FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Salvar Codigo de barras com Bitmap
Posts: 537
Joined: Mon Jan 16, 2006 03:42 PM
Salvar Codigo de barras com Bitmap
Posted: Mon Apr 27, 2009 04:09 PM

Como puedo poner un Codigo de Barra en un Dialgo

Saludos

Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: Salvar Codigo de barras com Bitmap
Posted: Tue Apr 28, 2009 10:47 AM
Hola jBrita:
Lo que tenes que hacer es definir un FONT con la fuente que tenes para mostrar los codigos de barras, y luego solo asignarle a un SAY dicho font con lo que queres mostrar.
Por ejemplo:
Code (fw): Select all Collapse
....
mbarra  := CodigoBarra( STRTRAN(STR((base)->codigo + 1,6)," ","0") )
DEFINE FONT oFon NAME "Interleaved 2of5 Text" SIZE 0,-48
DEFINE DIALOG oDlg1 TITLE "Alta de Socios" RESOURCE "ABMSOC1" OF oWnd
 ........
 oDlg1:lHelpIcon := .f.
 REDEFINE SAY   oGet28  VAR mBarra ID 136 FONT oFon OF oDlg1
 .......
ACTIVATE DIALOG oDlg1 CENTER ON INIT oGet01:SetFocus()

************************************
** Codigo de barra de un numero
STATIC FUNCTION CodigoBarra( x )
LOCAL i, bar := {}, j := 0, bar1 := {}, cBarr := ""
   FOR i := 48 TO 97
       AADD(bar ,CHR(i))
       AADD(bar1,STRTRAN(STR(j,2)," ","0"))
       j++
   NEXT i
   FOR i := 192 TO 241
       AADD(bar,CHR(i))
       AADD(bar1,STRTRAN(STR(j,2)," ","0"))
       j++
   NEXT i
FOR j := 1 TO LEN(x)-1 STEP 2
    i := ASCAN(bar1,SUBSTR(x,j,2))
    cBarr := cBarr + bar[i]
NEXT j
RETURN "("+cBarr+")"

La funcion codigobarra, arma el codigo de barra de un numero para el tipo de letra Interleave 2 of 5.
Espero que te sirva.
Posts: 1446
Joined: Mon Oct 10, 2005 02:38 PM
Re: Salvar Codigo de barras com Bitmap
Posted: Tue Apr 28, 2009 12:55 PM
jbrita wrote:Como puedo poner un Codigo de Barra en un Dialgo

Saludos


Si alguien me dice cual sería la equivalencia de este código (para imprimir) para usarlo por pantalla:

Code (fw): Select all Collapse
    //    Width of Bar
    if !lHorz
        nWidth :=round ( nWidth * 10 * oPrint:nVertRes() / oPrint:nVertSize() ,0 )
    else
       nWidth :=round  ( nWidth * 10 * oPrint:nHorzRes() / oPrint:nHorzSize(), 0 )
    end
    // Len of bar
    if lHorz
        nLen :=round ( nLen * 10 * oPrint:nVertRes() / oPrint:nVertSize() ,0 )
    else
       nLen :=round  ( nLen * 10 * oPrint:nHorzRes() / oPrint:nHorzSize(), 0 )
    end



podríamos usar/modificar la clase de Cayetano para mostrar códigos de barra por pantalla (eso creo).

Un saludo
Carlos G.

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Posts: 537
Joined: Mon Jan 16, 2006 03:42 PM
Re: Salvar Codigo de barras com Bitmap
Posted: Tue Apr 28, 2009 03:53 PM

CmSoft, ese font de donde lo sacas, yo quiero para codigo de barra EAN13

Saludos

Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: Salvar Codigo de barras com Bitmap
Posted: Wed Apr 29, 2009 10:24 AM

Ese font es el que se usa para los codigo de barra que vienen en las facturas de telefono, gas, impuestos, etc. Es un codigo que puede variar en su largo y contener una gran cantidad de datos, pero para el caso del EAN 13 que es el que usan los productos de supermercados, el caso seria igual, deberias reemplazar el DEFINE FONT oFon NAME "Interleaved 2of5 Text" SIZE 0,-48 por DEFINE FONT oFon NAME "Ean 13" SIZE 0,-48, donde "Ean 13" deberá ser el font de tus codigos de barra. Tené en cuenta que cuando instales tu aplicación en otra PC, deberás instalar el Font tambien para que sea visible en la aplicacion.
Espero te sirva.

Continue the discussion