FUNCTION Brwartic( nTipo, labre)
LOCAL aRect, oBtn
AbreDbf("ARTICULO", .T., .F. , , cPathDBFE, {"articulo" }, "Articulos" ) )
REDEFINE LISTBOX oBrw ;
FIELDS ARTICULO->Cod ;
,ARTICULO->DesG ;
,Transform(ARTICULO->Pv, "999.9999") ;
," " ;
FIELDSIZES 70, 250,120, 90, 10 ;
HEADERS OemToAnsi("C¢digo") ;
,OemToAnsi("Descripci¢n") ;
,"Precio S/." ;
," " ;
COLOR 0, RGB(192,210,192) ;
ID 5000 OF oDlg ;
UPDATE ;
ACTION ChTag("ARTICULO", 1, oBrw) ;
,ChTag("ARTICULO", 2, oBrw)
oBrw:aJustify := { .F., .F.,.F., .T., .F. }
oBrw:bKeyDown := { |nKey| ProcMtn(nKey, nTipo) }
oBrw:bLDblClick := { || ProcMtn( 13, nTipo ) }
REDEFINE BUTTON oBtn ID ID_CANCEL OF oDlg ;
ACTION ( oDlg:End() ) CANCEL // ==> boton salir, cierra el browse Ok
oBtn:cTooltip := "Sale de la ventana"
REDEFINE BUTTON oBtn ID ID_NEW OF oDlg ;
ACTION ( ProcMtn(VK_INSERT) )
oBtn:cTooltip := "Ingresa un nuevo registro"
REDEFINE BUTTON oBtn ID ID_CHANGE OF oDlg ;
ACTION ( ProcMtn(VK_RETURN) )
oBtn:cTooltip := "Modifica el registro"
REDEFINE BUTTON oBtn ID ID_DEL OF oDlg ;
ACTION ( ProcMtn(VK_DELETE) )
oBtn:cTooltip := "Borra el registro"
IF nTipo <> 1
REDEFINE BUTTON oBtn ID ID_ENTER OF oDlg ;
ACTION ( aValRet:={oDbfArt:Cod, oDbfArt:DESG, oDbfArt:uM}; //******Boton enter para que el usuario seleccione la fila que desea seleccinar
,oDlg:End() ) CANCEL
oBtn:cTooltip := "Selecciona un registro"
ENDIF
ACTIVATE DIALOG oDlg CENTERED NOWAIT Valid(Cierra(( nOrd)))
RETURN ( aValRet ) // parece que en no modal ya no ejecuta esta sentencia, entonces como haria para regresar los valores de la fila seleccionada x el usuario?
Static Function Cierra(nOrd)
CLOSE ARTICULO
Return .t.
DEFINE DIALOG oDlgItem RESOURCE "DLG_item_guia" TITLE "Item" FONT oFontS
REDEFINE GET oGet VAR carticu ID 101 OF oDlgItem ; // el usuario presiona enter en blanco y me llama a la funcion valart
PICTURE "@!" ;
VALID ValArt(@cArticu, oDlgItem) UPDATE
IIF( lmodo, oGet:Enable(), oGet:Disable() )
...
...
...
ACTIVATE DIALOG oDlgItem
RETURN ( NIL )
static FUNCTION ValArt(cCod, oDlg)
Local cDesCta, nRecAc, nRecDa, aDatos:={}
local lok
IF Empty(cCod)
nRecAc:=ARTICULO->(IndexOrd())
aDatos:=BRWARTIC(2,.F., @aDatos) // llama al browse no modal pero no se detiene, se ejecuta toda la sentencias de brwartic y finaliza
IF aDatos[1] <> Nil // cuando este mismo browse era modal si se detenia hasta que el usuario presionara alguna opcion: nuevo, modificar, eliminar
cCod:=aDatos[1]
cDescri := aDatos[2]
ENDIF
Articulo->(DBSetOrder(nRecAc))
EndIf
IF !Empty(cCod)
IF !Articulo->(DBSeek(cCod))
MsgBox(2,"Codigo digitado NO existe")
ENDIF
ENDIF
lok:= Articulo->(Found())
if lok
BuscaArt(cCod, oDlg)
endif
RETURN ( lok )
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: cmsoft and 52 guests