Estoy desarrollando un nuevo proyecto y creo en primer lugar el dialogo que se me pide Usuario y Clave,una vez confirmado la clave me debe abrir otro dialogo para mandar a la pantalla del menu, y si funciona, pero al parecer en el primer dialogo se me queda colgado o sea abierto ya que al cerrar el menu,el primer dialogo se me queda abierto sin cerrar,como lo harian ustedes o como hicieron en sus programas para accesar y entrar al menu y cerrar el primer dialogo.
pongo el codigo sencillo
- Code: Select all Expand view
- #include "FiveWin.ch"
REQUEST DbfCdx, DbfFpt, RPreview
EXTERNAL OrdKeyCount, OrdKeyGoTo, OrdKeyNo
STATIC DbfS01, DbfS02, DbfS03, DbfS04, DbfS05, DbfS06, DbfS07 ,;
CreaDbf01,CreaDbf02,CreaDbf03,CreaDbf04,CreaDbf05,CreaDbf06,CreaDbf07 ,;
aData
STATIC cUsuar, cClave
Memvar cPath, cDirReport, nNumEmp, cRutaDat
//------------------------------------------------------------------------------
FUNCTION PRINCIPAL()
LOCAL oDlg, oSay, oGet, oBtn
LOCAL cIni
FIELD CVEOPERA, CVESATCONT,AMMOV
Public cPath,cDirReport,cRutaDat,nNumEmp
SET EXCLUSIVE OFF
SET 3DLOOK ON
SET DELETED ON
SET CONFIRM ON
SET EPOCH TO 1969
SET DATE BRITISH
SetHandleCount(64)
DbSetDriver("DBFCDX")
RddSetDefault("DBFCDX")
cIni := ".\DecFiscSAT.ini"
cPath := GetPvProfString("Proveedor","DirRuta","",cIni)
cDirReport := GetPvProfString("Proveedor","DirReport","",cIni)
cPath := IF(!Empty(cPath),cPath,"\"+CurDir()+"\")
SET DEFAULT TO &cPath
cRutaDat := "..\CObSAT\EMP01\"
//---------------- ABRIR BASES DE DATOS ---------------------------\\
Instrucciones .....
*---------------- FIN DE ABRIR BASES DE DATOS -----------------------*
*\\--------------------------------------------------------------------//*
oGet := Array(2)
oSay := Array(1)
oBtn := Array(2)
cUsuar := SPACE(22)
cClave := SPACE(6)
DEFINE DIALOG oDlg RESOURCE "USERCVE" TITLE "Acceso al control obligaciones de SAT"
REDEFINE GET oGet[01] VAR cUsuar ID 101 OF oDlg PICTURE "@K!" // VALID Acceso(cPassw) FONT oFnP
REDEFINE GET oGet[02] VAR cClave ID 102 OF oDlg PICTURE "@K!" // VALID Acceso(cPassw) FONT oFnP
REDEFINE BUTTON oBtn[1] ID 201 OF oDlg ACTION ACCESO(oDlg)
REDEFINE BUTTON oBtn[2] ID 202 OF oDlg // ACTION oDlg:END()
ACTIVATE DIALOG oDlg CENTERED
RETURN NIL
//------------------------------------------------------------------------------
STATIC FUNCTION ACCESO(oDlg)
oDlg:Hide()
nNumEmp := 1
*cRutaDat := "C:\Proy_Hb\CObSAT\EMP01"
cRutaDat := "..\CObSAT\EMP01"
oDlg:End() // Si le pongo esto se me cierra todo y no visualizo la pantalla del menu del siguiente archivo menu.prg y si le quito si funciona,
// pero se me queda colgado sin cerrar...
ACCESAMENU() // Esta parte es donde abre el otro prg la pantalla de menu
RETURN NIL
Aqui otro prg para otro dialogo menu,lo abre bien sin hacer oDlg:End(),pero no pasa a la pantalla del menu, y si lo quito si pasa al menu.
Como lo hacen ustedes.
- Code: Select all Expand view
- // MENU PRINCIPAL
// < ADMPERSO >
#include "FiveWin.ch"
#Define CLR_WINDOW 16
STATIC DbfS01,CreaDbf01, DbfS02,CreaDbf02, S01,S02
Static aMod[12], aPer[12], oItem[99], cColorPan
Memvar oWnd
//------------------------------------------------------------------------------
FUNCTION ACCESAMENU()
LOCAL oIcon, oFont1,oFont2, oBmp, oBar, cCve
LOCAL oMsg,nClr
LOCAL nResoAncho := GetSysMetrics(0)
PUBLIC oWnd
nClr := GetSysColor(CLR_WINDOW)
AFill(aMod,.T.)
AFill(aPer,.T.)
SetGetColorFocus(RGB(203,223,254)) // Definir colores en todo los gets Color azul cielo
DEFINE FONT oFont1 NAME "MS Sans Serif" SIZE 0,-10
DEFINE FONT oFont2 NAME "MS Sans Serif" SIZE 0,-9 BOLD
DEFINE BITMAP oBmp FILENAME "LogoRAVA.BMP"
DEFINE ICON oICON RESOURCE "USER"
*DEFINE ICON oIcon FILE "ICONOS\CHECADOR.ICO"
DEFINE WINDOW oWnd MENU DespMenu() ICON oICON Title "Control de obligaciones de SAT" MenuInfo 1 MDI COLOR nClr,nClr
SET FONT OF oWnd TO oFont1
SET MESSAGE OF oWnd TO "Selección de empresa..." CENTER
DEFINE BUTTONBAR oBar 3DLOOK BUTTONSIZE 26,26 OF oWnd
oWnd:bPainted := { | hDC | BmpTiled( hDC, oWnd, oBmp ) }
oWnd:oMsgBar:KeybOn()
oWnd:oMsgBar:DateOn()
ACTIVATE WINDOW oWnd MAXIMIZED
DbCloseAll()
oFont1:End()
RETURN NIL
Cualquier solucion respecto al tema, quedo de ustedes, se que es algo sencillo, pero no doy con ello, o algo estoy haciendo mal...
Saludos y buen dia
Atte: Adrian C. C.