Hola, primero defino el dialogo, luego varios get, el folder y sus definiciones, por ultimo los botones
Code: Select all
DEFINE DIALOG oDlg RESOURCE "SADW212";
FONT oWnd:GetFont();
TITLE 'Datos del Articulo del Inventario ' OF oDlgAnt
oDlg:lHelpIcon :=.f. && Apago el Icono de Help
REDEFINE BTNGET oCODPRO VAR lCODPRO ID 201 OF oDlg ;
PICTURE "@!" ;
VALID VAL_VAL({|| IIF(gen_val(v_codpro(lNUMPRO,lCODPRO,lINCL),"Código del Articulo del Inventario Inválido"),;
(lCODPRO:=StrZero(VAL(lCODPRO),10),putval(oCODPRO,lCODPRO),;
lDATPRO:=b_datpro(lCODPRO),IIF(LEN(lDATPRO)>0,;
(EVAL(bDATPRO),lSCOD:=.T.,IIF(lELIM,EVAL(bELIM),)),),(lSCOD:=.F.,.T.)),) });
ACTION EVAL(bCODPRO) ;
MESSAGE "Ingrese el Número del Articulo del Inventario ó Presione F2 = Seleccionar de la Lista";
WHEN lCODC
oCODPRO:lDisColors := .F.
bCODPRO :={|| cGetSel:=CONSQL(oCODPRO,"MCODPRO",oDlg,lCODPRO), ;
IIF(len(ALLTRIM(cGetSel))<>0,(lCODPRO:=cGetSel,putval(oCODPRO,lCODPRO)),),;
oDLg:Refresh(),oCODPRO:setfocus(.t.)}
REDEFINE GET oNUMPRO VAR lNUMPRO ID 202 OF oDlg;
PICTURE "@!";
MESSAGE "Numero del Articulo del Inventario";
WHEN .F.
oNUMPRO:lDisColors := .F.
REDEFINE BTNGET oCODGRP VAR lCODGRP ID 203 OF oDlg ;
PICTURE "@!" ;
VALID VAL_VAL({|| IIF(gen_val(v_codgrp(lCODGRP),"Código del Grupos de Inventario Inválido"),;
(lCODGRP:=StrZero(VAL(lCODGRP),3),putval(oCODGRP,lCODGRP),;
lDATGRP:=b_datgrp(lCODGRP),IIF(LEN(lDATGRP)>0,;
(EVAL(bDATGRP),lSGRP:=.T.),),(lSGRP:=.F.,.T.)),) });
ACTION EVAL(bCODGRP) ;
MESSAGE "Ingrese el Código del Grupos de Inventario ó Presione F2 = Seleccionar de la Lista";
WHEN lModif .OR. lELIM
oCODGRP:lDisColors := .F.
bCODGRP :={|| cGetSel:=CONSQL(oCODGRP,"MBUSGRP",oDlg,lCODGRP), ;
IIF(len(ALLTRIM(cGetSel))<>0,(lCODGRP:=cGetSel,putval(oCODGRP,lCODGRP)),),;
oDLg:Refresh(),oCODGRP:setfocus(.t.)}
REDEFINE GET oDESGRP VAR lDESGRP ID 204 OF oDlg;
PICTURE "@!";
MESSAGE "Nombre del Grupo del Articulo del Inventario ";
WHEN .F.
oDESGRP:lDisColors := .F.
REDEFINE GET oFECHAI VAR lFECHAI ID 205 OF oDlg;
PICTURE "@D";
MESSAGE "Fecha de Ingreso";
WHEN .F.
oFECHAI:lDisColors := .F.
REDEFINE GET oDESCRI VAR lDESCRI ID 206 OF oDlg;
PICTURE "@!";
VALID VAL_VAL({|| IIF(gen_val(!EMPTY(lDESCRI),'Debe Indicar el Nombre del Articulo del Inventario'),;
(lSNOM:=.T.,.T.),(lSNOM:=.F.,.T.)) });
MESSAGE "Ingrese el Nombre del Articulo del Inventario";
WHEN lModif .OR. lELIM
oDESCRI:lDisColors := .F.
REDEFINE COMBOBOX oDESSTS VAR lDESSTS ITEMS aValsts ID 301 OF oDlg ;
ON CHANGE ( lSTS := b_cstat(lDESSTS) ) ;
MESSAGE " Indique si esta Activo ó Inactivo Presione F2 = Seleccionar de la Lista";
WHEN lModif
REDEFINE FOLDER oFld ID 501 OF oDlg ;
PROMPT "&Datos", "&Precios" ;
DIALOGS "SADW212A", "SADW212B"
REDEFINE GET oDESCR1 VAR lDESCR1 ID 201 OF oFld:aDialogs[1] ;
PICTURE "@!";
MESSAGE "Ingrese la Descripción del Articulo del Inventario";
WHEN lModif
oDESCR1:lDisColors := .F.
REDEFINE GET oNOMMAR VAR lNOMMAR ID 202 OF oFld:aDialogs[1] ;
PICTURE "@!";
MESSAGE "Ingrese la Marca del Articulo del Inventario";
WHEN lModif
oNOMMAR:lDisColors := .F.
REDEFINE GET oNOMMOD VAR lNOMMOD ID 203 OF oFld:aDialogs[1] ;
PICTURE "@!";
MESSAGE "Ingrese el Modelo del Articulo del Inventario";
WHEN lModif
oNOMMOD:lDisColors := .F.
[color=#FF0000] // Pestaña # 2 Precios en Bs.[/color]
REDEFINE GET oPRECIO VAR lPRECIO ID 201 OF oFld:aDialogs[2] ;
PICTURE "99,999,999,999.99";
VALID VAL_VAL({|| IIF(gen_val(lPRECIO>=0,'Precio del Articulo Invalido '),,;
(lPRECIO:=0.00,putval(oPRECIO,lPRECIO))) });
MESSAGE "Ingrese el Precio del Articulo del Inventario";
WHEN lModif
oPRECIO:lDisColors := .F.
REDEFINE GET oPRECI1 VAR lPRECI1 ID 202 OF oFld:aDialogs[2] ;
PICTURE "99,999,999,999.99";
VALID VAL_VAL({|| IIF(gen_val(lPRECI1>=0,'Precio del Articulo Invalido '),,;
(lPRECI1:=0.00,putval(oPRECI1,lPRECI1))) });
MESSAGE "Ingrese el Precio del Articulo del Inventario";
WHEN lModif
oPRECI1:lDisColors := .F.
REDEFINE GET oPRECI2 VAR lPRECI2 ID 203 OF oFld:aDialogs[2] ;
PICTURE "99,999,999,999.99";
VALID VAL_VAL({|| IIF(gen_val(lPRECI2>=0,'Precio del Articulo Invalido '),,;
(lPRECI2:=0.00,putval(oPRECI2,lPRECI2))) });
MESSAGE "Ingrese el Precio del Articulo del Inventario";
WHEN lModif
oPRECI2:lDisColors := .F.
REDEFINE BTNBMP oButSalir ID 101 OF oDlg;
RESOURCE "BTSALIR" ;
MESSAGE "Pulse para Salir ";
PROMPT "";
NOBORDER ;
ACTION EVAL(bButSalir) && Sale de la Rutina, Por Convencion el ID es 101
REDEFINE BTNBMP oButInser ID 102 OF oDlg;
RESOURCE "BTINCLU" ;
MESSAGE "Pulse para Incluir los datos del Articulo del Inventario, Nuevo";
PROMPT "";
NOBORDER ;
ACTION EVAL(bButInser)
REDEFINE BTNBMP oButElimi ID 103 OF oDlg;
RESOURCE "BTBORRA" ;
MESSAGE "Pulse para Borrar los datos del Articulo del Inventario Existente";
PROMPT "";
NOBORDER ;
ACTION EVAL(bButElimi)
REDEFINE BTNBMP oButModif ID 104 OF oDlg;
RESOURCE "BTEDITA" ;
MESSAGE "Pulse para Editar los datos del Articulo del Inventario Existente";
PROMPT "";
NOBORDER ;
ACTION EVAL(bButModif)
REDEFINE BTNBMP oButGraba ID 105 OF oDlg;
RESOURCE "BTGRABA" ;
MESSAGE "Pulse para Grabar los datos y Salir de la opción ";
PROMPT "";
NOBORDER ;
ACTION EVAL(bButGraba) ;
WHEN EVAL(bPROCESA)
REDEFINE BTNBMP oButPrint ID 106 OF oDlg;
RESOURCE "BTLISTA" ;
MESSAGE "Pulse para Imprimir los datos del Articulo del Inventario Existente";
PROMPT "";
NOBORDER ;
ACTION EVAL(bButPrint)
ACTIVATE DIALOG oDlg CENTER
oFKey:End()