Clase TDPLBX.PRG
01 cFileLbx :=Nombre del Archivo de parametros, ejemplo forms\dpmenu.lbx
02 cTitle :=Titulo de la ventana, puedes utilizar macrosustituciones &oDp:DPMENU
03 cWhere :=Condición clausula WHERE para la setencia SQL, facilita Filtrar registro en el query, ejemplo: OPE_ACTIVO=1
04 lPage := Por defecto es .F. Indica si el browse se navega por pagina
05 cField := Nombre del campo que exportará cuando se utiliza desde el control BMPGET, ejemplo: OPE_NUMERO
06 uValue := Valor por defecto .F. donde ubicara el registro de posicionamiento segun clave primaria ejemplo: “010” focalizará el registro cuyo numero de usuario es igual “010”
07 aParam := Arreglo contentivo de parametros para ser utilizados en otro progragrama vinculado con el browse
08 lDialog := Valor por defecto .F. el formulario será presentado mediante ventana MDI o Dialog
09 oDb := Objeto de la base de datos donde se ejecutará el cursos, caso de base de datos ubicadas en servidores remotos
10 oGet := Objeto que solicita la ejecucion del formulario y facilita la posicion del browse
11 oWndMain := Ventana donde contenedora para MDICHILD, por defecto su valor es oDp:oFrameDp
12 bIni := Bloque de codigo de ejecución inicial cuando se activa la ventana.
Ejemplo:
@ 17,01 SAY “Facturación”
@ 18,01 BMPGET oDefFis:oTipDocVta VAR oDefFis:cTipDocVta;
VALID oDefFis:VALTIPDOCVTA();
NAME “BITMAPS\find22.BMP”;
ACTION (oDpLbx:=DpLbx(“DPTIPDOCCLI.LBX”,”Tipo de Documento para Facturación”,”TDC_PRODUC=1 AND TDC_ACTIVO=1 AND TDC_CXC”+GetWhere(“=”,”D”),NIL,NIL,NIL,NIL,NIL,NIL,oDefFis:oTipDocVta),;
oDpLbx:GetValue(“TDC_TIPO”,oDefFis:oTipDocVta));
SIZE 48,10
@ 18, 50 SAY oDefFis:oSayTipDocVta PROMPT SQLGET(“DPTIPDOCCLI”,”TDC_DESCRI”,”TDC_TIPO”+GetWhere(“=”,oDefFis:cTipDocVta))
RETURN oDefFis
FUNCTION DpLbx(cFileLbx,cTitle,cWhere,lPage,cField,uValue,aParam,lDialog,oDb,oGet,oWndMain,bInit)
LOCAL oDpLbx
DEFAULT lPage :=.F.,;
lDialog:=oDp:lSetDialog // Generado por SETDIALOG
oDp:lSetDialog:=.F.
oDp:lLbxRun:=.T.
// Obtiene datos del Servidor Remoto
IF !oDp:oDbServer=NIL .AND. oDb=NIL
oDb:=oDp:oDbServer
SETDBSERVER(NIL)
ENDIF
CursorWait()
cFileLbx+=IIF( !”.”$cFileLbx,”.lbx” , “”)
oDp:aRowSql:={} // Lista de Campos Seleccionados
IF Empty(uValue) .AND. ValType(oGet)=”O”
uValue:=oGet:GetText()
ENDIF
Macroeje(“ISPCPRG()”)
oDpLbx:=TDpLbx():New(cFileLbx,cTitle,cWhere,lPage,cField,uValue,aParam,lDialog,oDb,oGet,oWndMain,bInit)
oDp:oLbx:=oDpLbx
IF !oDpLbx:lSqlOk
oDpLbx:End()
ELSE
oDpLbx:Activate()
EJECUTAR(“LBXINIRUN”,oDpLbx) // Donde se Inician Todos los LBX
ENDIF
oDp:oLbx:=oDpLbx
RETURN oDpLbx
/*
* TDpLbx
* Pasa los valores del cursor de la clase TDBODBCD/TDBTABLE(MYSQL NATIVO), hacia arreglos
* facilitando su manejo de manera similar a RDD
* Juan Navas 19/04/2003
*/
CLASS TDpLbx FROM TDpClass
// DATA aVars // Control de los Campos
DATA aBtnRun // Ejecuciones de los Botones
DATA aBtnWhen // Condicione de los Botones
DATA aBtns // Lista de Botones
DATA aZero // Nombre de los Campos
DATA aFind // Lista de Búsquedas por Campo, Almacena las Ultimas Búsquedas
DATA aCargo // Almacena Cualquier Valor
DATA aFields // Campos de la Columna
DATA aLineEmpty // Línea Vacia
DATA aParam // Valores para los parametros ::uData1,::uData2
DATA aColColor INIT {} // Colores para buscar
DATA nNumLbx // Identificador del DpLbx
DATA nStyle // Stilo del Browse
DATA nKey // Tecla Presionada
DATA nBtnDblClic INIT 0
DATA nWidth
DATA nHeight
DATA nClrPane1 INIT oDp:nClrPane1
DATA nClrPane2 INIT oDp:nClrPane2
DATA nColSel INIT 0
DATA nItemLen INIT 100
DATA nItemLen1 INIT 100
DATA nItemLen2 INIT 0
DATA cFileLbx // Nombre del Campo
DATA cTable // Nombre de la Tabla
DATA cSql // Comando que Crea el Cursor
DATA cOrderBy // Está Representado
DATA cPrimary // Clave Primaria
DATA cOrder // Ordenado por
DATA cPreDelete
DATA cPostDelete
DATA cTopic // Nombre de la Tabla
DATA cFileChm // Nombre del Archivo de Ayuda
DATA uFind // Valor que Está Buscando
DATA cFieldFound
DATA cIniSql // Ejecución Inicial SQL
DATA cCargo // Almacena Cualquier Valor
DATA cScope // Condicion de la Tabla
DATA cTitle // Titulo
DATA cWhere // Clausula Where
DATA cFieldFind // Campo de Búsqueda
DATA cFileRtf INIT “” // Archivo de Ayuda RTF
DATA cFileRtfOld INIT oDp:cHelpRtf
DATA cIniFilter INIT “” // Inicia como buscador
DATA cMessage INIT “”
DATA cFileSql INIT “”
DATA cFilter_Log INIT “”
DATA cFilter_text INIT “Activo”
DATA cItem INIT “” // Cantidad de Registros
DATA cItem1 INIT “”
DATA cItem2 INIT “”
DATA uValueFind // Valor de Búsqueda
DATA uValue1,uValue2,uData1,uData2
DATA cSqlFilter // Necesario para rehacer la búsqueda
DATA nClrText INIT oDp:nGris // CLR_BLUE
DATA nClrText1 INIT 0
DATA nClrText2 INIT 0
DATA nClrText3 INIT 0
DATA nClrText4 INIT 0
DATA nClrText5 INIT 0
DATA cClrText INIT “”
DATA cClrText1 INIT “”
DATA cClrText2 INIT “”
DATA cClrText3 INIT “”
DATA cClrText4 INIT “”
DATA cClrText5 INIT “”
DATA nClrPane3 INIT 0
// DATA cIniGet // Get de Búsqueda
DATA oCursor // Nombre del Cursor
DATA oBrw // Browse editando la Tabla
DATA oBar
DATA oWnd // Ventana Mdi
DATA oMsgBar // Mensajes
DATA oFocusOld // Foco Anterior
DATA oDb
DATA oGet
DATA oWndMain
DATA oLbx
DATA oFilterLog
DATA oItem,oItem1,oItem2
DATA bLDblClick,; // Accion que debe Ejecutar el Browse
bRClicked ,;
bStart ,;
bFor // Localizador de Registro
DATA bValid INIT {||.T.}
DATA lAutomatic // Modo de Asignación de Valores
DATA lFind
DATA lPage // Si trabaja por Paginado Según Lineas del Browse
DATA lDeleteRef // Indica si Borra Data Referencial
DATA lDialog
DATA lStart
DATA lExport // Expotar
DATA lSqlOk // Si la sentencia SQL es valida, caso de ser no, retorna
DATA lTablaAcc INIT .T. // Permisos de Acceso dede la Tabla
DATA lGoBottom INIT .F.
DATA lFullSize INIT .F.
DATA lFullHight INIT .F.
DATA lIniFilter INIT .F.
DATA lFullWidht INIT .F.
DATA lDesc INIT .F. // lDesc en la Clausula ORDER BY (CAMPOS DESC) genera Incidencai
DATA lResized INIT .F.
DATA lFilterLog INIT .F.
DATA uData1,uData2,uData3
METHOD New( cFileLbx, cTitle , cWhere , lPage , uValue)
METHOD SetBar(oWnd,oBar,oBrw)
METHOD Set(cName,xValue) INLINE (__objAddData( Self, cName),__objSendMsg(Self,cName,xValue))
METHOD IsDef( cName )
METHOD Gotop() INLINE (::oBrw:GoTop(),::oBrw:Refresh(.T.))
METHOD RunAction(nButton,nOption,lRun)
METHOD RunKey(nKey)
METHOD GetValue(cField,oGet)
METHOD GotFocus() INLINE (oDp:cHelpRtf:=::cFileRtf,::oBrw:GotFocus())
METHOD Query() INLINE EJECUTAR(“BRWMAKERRUN”,::cTable)
METHOD Find()
METHOD SetFilter() INLINE EJECUTAR(“LBXSETFILTER”,SELF)
METHOD Reporte(cCodRep)
METHOD Locate(bFor,lNext,nRecord)
METHOD FindMas()
METHOD GetRowSql()
METHOD SetOrder(nCol)
METHOD Delete(cMsg,lAsk,nOrder,cClave,cField,lDirect,cPosDel)
METHOD Close()
METHOD DbSeek(oCol,uValue,nLastKey)
METHOD DbSeek2 (oCol,uValue,nLastKey)
METHOD ClassName() INLINE “TDPLBX”
METHOD Activate()
METHOD ChkData()
METHOD Preview() INLINE EJECUTAR(“BRWPREVIEW”,::oBrw,NIL)
METHOD Print()
METHOD CTOHTML(cFile) INLINE ::oCursor:CTOHTML(cFile)
METHOD SetMsg(cMsg) INLINE (::oWnd:oMsgBar:SetMsg(cMsg),::oWnd:oMsgBar:Refresh())
METHOD LbxChange()
METHOD Reload()
METHOD Inspect() INLINE EJECUTAR(“INSPECT”,Self)
METHOD OpenTable()
METHOD CancelEdit()
METHOD CancelFind()
METHOD Refresh()
METHOD End()
METHOD HandleEvent( nMsg, nWParam, nLParam ) EXTERN ;
WndHandleEvent( Self, nMsg, nWParam, nLParam )
ERROR HANDLER OnError( cMsg,nPar1,nPar2,nPar3,nPar4,nPar5,nPar6,nPar7,nPar8,nPar9,nPar10,nPar11,nPar12,nError )
ENDCLASS