Mis estimados, en vista que ya logre imprimir mi codigo de barras, gracias a la persona que me ayudo con su ejemplo que me envio.!
Ahora como puedo imprimir consecutivamente todas o todos los codigos de barras,por ahora solo puedo imprimir una por una, ya que ahi otro detalle que como imprimir consecutivamente, y por otro lado, es muy necesario crear el llamado del get para leer las credenciales por medio de lector o como seria!, un ejemplo:
DEFINE GET oGet VAR cCodigo PICT "@!" o hay otra manera que en el dialogo, no haya que tener el get y leer solo lector o escaner, espero ejemplos y sugerencias, por el momento, expongo el codigo, de la manera como se imprime uno por uno, o sea por cada empleado, y quiero que se me imprima consecutivamente.
- Code: Select all Expand view
- // Personal.Prg
#include "FiveWin.ch"
#include "Barlib.ch"
STATIC S04
STATIC nReg,nNumUsua,cCveUsua
//------------------------------------------------------------------------------
FUNCTION R_CREDEN(oDlg, oLbx)
LOCAL oFont1,oFont2,oDlgR, oGetR, oSay, oBtnR
S04 := ABRE_DBF(4,4) // PERSONAL.DBF
oGetR := ARRAY(4)
oBtnR := ARRAY(1)
nNumUsua:= 0
cCveUsua:= "821469"
DEFINE FONT oFont1 NAME "TAHOMA" SIZE 10, 12*2
DEFINE FONT oFont2 NAME "Interleaved 2of5 Text" SIZE 12,-48
DEFINE DIALOG oDlgR RESOURCE "CODBAR" TITLE "Reporte de entradas y salidas"
REDEFINE GET oGetR[01] VAR nNumUsua ID 101 OF oDlgR PICT "9999"
REDEFINE BUTTON oBtnR[01] ID 201 OF oDlgR ACTION I_CREDENC()
ACTIVATE DIALOG oDlgR
Release oDlgR, oGetR, oBtnR
RETURN NIL
//------------------------------------------------------------------------------
STATIC FUNCTION I_CREDENC(oDlg)
Local oPrn, oFont, oFnt1, oFnt2, nVer, nHor
Local TitRp, nRow,nCol
DbSelectArea(S04)
TitRp := "Impresión de credenciales"
oPrn := PrintBegin(TitRp,.F.,.T.,,.T.)
DEFINE FONT oFnt1 NAME "ARIAL" SIZE 0,- 8 BOLD OF oPrn // Fuentes a usar en el reporte
DEFINE FONT oFnt2 NAME "ARIAL" SIZE 0,- 8 OF oPrn
nHor := oPrn:nHorzSize()
nVer := oPrn:nVertSize()
oPrn:lPrvModal := .F. // ó .T.
oPrn:SetPortrait()
CursorWait()
nReg := 0
PageBegin()
ENCABEZADO(TitRp, oPrn, oFnt1)
TitDatos(oPrn, oFnt1)
nRow := 2.70
DbSelectArea(S04)
(S04)->( DbGoTop() ) // Todos los empleados...
(S04)->( DbSeek(STR(nNumUsua,4)) )
DO WHILE (S04)->(!EOF())
IF (S04)->NUMUSUA > nNumUsua
EXIT
ENDIF
oPrn:CmSay(nRow, 0.3, ALLTRIM((S04)->CVEUSUA)+" "+ALLTRIM((S04)->NOMBUSUA) + ;
" "+ALLTRIM((S04)->APEPATERN)+ ;
" "+ALLTRIM((S04)->APEMATERN) ,oFnt2)
nRow := nRow + 190
EAN13(nRow*2,3.4,(S04)->CVEUSUA,oPrn,0,.T.,0.040,2,.T.) // esta parte de aqui,que me imprima consecutivamente..!
*EAN8(nRow*2,3.4,(S04)->CVEUSUA,oPrn,0,.T.,0.040,2,.T.)
*nRow := nRow + 0.4
nRow := nRow + 49
(S04)->( DbSkip() )
ENDDO
PageEnd()
oFnt1:End()
oFnt2:End()
PrintEnd()
RETURN NIL
Saludos y espero me puedan ayudar con ese dilema mas ...
Atte: Adrian C. C.