diff --git a/foxbin2prg.exe b/foxbin2prg.exe
index 0e5efe6..0a5799f 100644
Binary files a/foxbin2prg.exe and b/foxbin2prg.exe differ
diff --git a/foxbin2prg.prg b/foxbin2prg.prg
index 8f90e5d..f59d165 100644
--- a/foxbin2prg.prg
+++ b/foxbin2prg.prg
@@ -3672,6 +3672,8 @@ DEFINE CLASS frm_avance AS FORM
BackColor = RGB(255,255,255)
nMax_value = 100
nMax_value2 = 100
+ nSecsAtStart = (SECONDS())
+ nLastSecCount = 0
nValue = 0
nValue2 = 0
l_Cancelled = .F.
@@ -3680,6 +3682,8 @@ DEFINE CLASS frm_avance AS FORM
+ [] ;
+ [] ;
+ [] ;
+ + [] ;
+ + [] ;
+ [] ;
+ [] ;
+ [] ;
@@ -3992,10 +3996,37 @@ DEFINE CLASS frm_avance AS FORM
Width = 604, ;
Name = "lbl_Tarea2"
+ ADD OBJECT 'lblStartTime' AS label WITH ;
+ BackStyle = 0, ;
+ Caption = "Start time: __/__/____ __:__:__", ;
+ Height = 17, ;
+ Left = 12, ;
+ Name = "lblStartTime", ;
+ Top = 88, ;
+ Width = 176
+
+ ADD OBJECT 'lblElapsedTime' AS label WITH ;
+ BackStyle = 0, ;
+ Caption = "Elapsed Time: __:__:__", ;
+ Height = 17, ;
+ Left = 480, ;
+ Name = "lblElapsedTime", ;
+ Top = 88, ;
+ Width = 136
+
PROCEDURE AvanceDelProceso
LPARAMETERS tcTexto, tnValor, tnTotal, tnTipo
- WITH THIS AS frm_avance OF foxbin2prg.prg
+ WITH THISFORM AS frm_avance OF foxbin2prg.prg
+ LOCAL lnSecs
+
+ lnSecs = SECONDS()
+
+ IF lnSecs - .nLastSecCount >= 1 THEN
+ .lblElapsedTime.Caption = 'Elapsed Time: ' + TTOC( {^2000-1-1,00:00:00} + lnSecs - .nSecsAtStart, 2 )
+ .nLastSecCount = lnSecs
+ ENDIF
+
*-- Habilita el botón de cancelar una vez que se comienzan a pasar valores
IF NOT EMPTY(tnValor) THEN
IF NOT .cmdCancel.Enabled THEN
@@ -4057,6 +4088,7 @@ DEFINE CLASS frm_avance AS FORM
#IF .F.
LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG'
+ LOCAL THISFORM AS frm_avance OF foxbin2prg.prg
#ENDIF
LOCAL loLang as CL_LANG OF 'FOXBIN2PRG.PRG'
loLang = _SCREEN.o_FoxBin2Prg_Lang
@@ -4071,9 +4103,10 @@ DEFINE CLASS frm_avance AS FORM
ENDIF
ENDIF
- THIS.CAPTION = 'FoxBin2Prg ' + _SCREEN.c_FB2PRG_EXE_Version + ' > - ' + loLang.C_PROCESS_PROGRESS_LOC + ' (' + loLang.C_PRESS_ESC_TO_CANCEL + ')'
- THIS.nValue = 0
- THIS.nValue2 = 0
+ THISFORM.CAPTION = 'FoxBin2Prg ' + _SCREEN.c_FB2PRG_EXE_Version + ' > - ' + loLang.C_PROCESS_PROGRESS_LOC + ' (' + loLang.C_PRESS_ESC_TO_CANCEL + ')'
+ THISFORM.nValue = 0
+ THISFORM.nValue2 = 0
+ THISFORM.nLastSecCount = SECONDS()
ENDPROC
@@ -4092,6 +4125,10 @@ DEFINE CLASS frm_avance AS FORM
ENDPROC
+ PROCEDURE lblStartTime.Init
+ THIS.Caption = "Start Time: " + TTOC(DATETIME())
+ ENDPROC
+
ENDDEFINE
@@ -12957,7 +12994,7 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg
.get_NombresObjetosOLEPublic( @la_NombresObjsOle )
- .write_DefinicionObjetosOLE( toFoxBin2Prg )
+ .write_DefinicionObjetosOLE( @toFoxBin2Prg )
*-- Escribo los métodos ordenados
lnLastClass = 0
@@ -13281,7 +13318,7 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg
.get_NombresObjetosOLEPublic( @la_NombresObjsOle )
- .write_DefinicionObjetosOLE( toFoxBin2Prg )
+ .write_DefinicionObjetosOLE( @toFoxBin2Prg )
*-- Escribo los métodos ordenados
lnLastObj = 0
@@ -14712,7 +14749,7 @@ DEFINE CLASS c_conversor_dbc_a_prg AS c_conversor_bin_a_prg
lnDatabases_Count = ADATABASES(laDatabases)
USE (.c_InputFile) SHARED AGAIN NOUPDATE ALIAS TABLABIN
-
+
IF toFoxBin2Prg.l_ProcessFiles THEN
toDatabase = CREATEOBJECT('CL_DBC')
toDatabase._DBC = .c_InputFile
@@ -16086,13 +16123,13 @@ DEFINE CLASS CL_DBC_BASE AS CL_CUS_BASE
IF INLIST( tcType, 'Index', 'Field' )
SELECT TB.Property FROM C_TABLABIN2 TB ;
- INNER JOIN C_TABLABIN2 TB2 ON STR(TB.ParentID)+TB.ObjectType+LOWER(TB.objectName) = STR(TB2.ObjectID)+PADR(tcType,10)+PADR(LOWER(JUSTEXT(tcName)),128) ;
- AND TB2.objectName = PADR(LOWER(JUSTSTEM(tcName)),128) ;
+ INNER JOIN C_TABLABIN2 TB2 ON STR(TB.ParentId)+TB.ObjectType+LOWER(TB.ObjectName) = STR(TB2.ObjectID)+PADR(tcType,10)+PADR(LOWER(JUSTEXT(tcName)),128) ;
+ AND TB2.ObjectName = PADR(LOWER(JUSTSTEM(tcName)),128) ;
INTO ARRAY laProperty
ELSE
SELECT TB.Property FROM C_TABLABIN2 TB ;
- INNER JOIN C_TABLABIN2 TB2 ON STR(TB.ParentID)+TB.ObjectType+LOWER(TB.objectName) = STR(TB2.ObjectID)+PADR(tcType,10)+PADR(LOWER(tcName),128) ;
+ INNER JOIN C_TABLABIN2 TB2 ON STR(TB.ParentId)+TB.ObjectType+LOWER(TB.ObjectName) = STR(TB2.ObjectID)+PADR(tcType,10)+PADR(LOWER(tcName),128) ;
INTO ARRAY laProperty
ENDIF
@@ -16543,13 +16580,13 @@ DEFINE CLASS CL_DBC_BASE AS CL_CUS_BASE
IF INLIST( tcType, 'Index', 'Field' )
SELECT TB.Property FROM C_TABLABIN2 TB ;
- INNER JOIN C_TABLABIN2 TB2 ON STR(TB.ParentID)+TB.ObjectType+LOWER(TB.objectName) = STR(TB2.ObjectID)+PADR(tcType,10)+PADR(LOWER(JUSTEXT(tcName)),128) ;
- AND TB2.objectName = PADR(LOWER(JUSTSTEM(tcName)),128) ;
+ INNER JOIN C_TABLABIN2 TB2 ON STR(TB.ParentId)+TB.ObjectType+LOWER(TB.ObjectName) = STR(TB2.ObjectID)+PADR(tcType,10)+PADR(LOWER(JUSTEXT(tcName)),128) ;
+ AND TB2.ObjectName = PADR(LOWER(JUSTSTEM(tcName)),128) ;
INTO ARRAY laProperty
ELSE
SELECT TB.Property FROM C_TABLABIN2 TB ;
- INNER JOIN C_TABLABIN2 TB2 ON STR(TB.ParentID)+TB.ObjectType+LOWER(TB.objectName) = STR(TB2.ObjectID)+PADR(tcType,10)+PADR(LOWER(tcName),128) ;
+ INNER JOIN C_TABLABIN2 TB2 ON STR(TB.ParentId)+TB.ObjectType+LOWER(TB.ObjectName) = STR(TB2.ObjectID)+PADR(tcType,10)+PADR(LOWER(tcName),128) ;
INTO ARRAY laProperty
ENDIF
@@ -16850,9 +16887,9 @@ DEFINE CLASS CL_DBC_BASE AS CL_CUS_BASE
INSERT INTO TABLABIN ;
( ObjectID ;
- , ParentID ;
+ , ParentId ;
, ObjectType ;
- , objectName ;
+ , ObjectName ;
, Property ;
, CODE ;
, RIInfo ;
@@ -17111,12 +17148,12 @@ DEFINE CLASS CL_DBC AS CL_DBC_BASE
lcMemoWithProperties = .getBinMemoFromProperties()
UPDATE TABLABIN ;
SET Property = lcMemoWithProperties ;
- WHERE STR(ParentID) + ObjectType + LOWER(objectName) = STR(1) + PADR('Database',10) + PADR(LOWER('Database'),128)
+ WHERE STR(ParentId) + ObjectType + LOWER(ObjectName) = STR(1) + PADR('Database',10) + PADR(LOWER('Database'),128)
IF NOT EMPTY(lcStoredProcedures)
UPDATE TABLABIN ;
SET CODE = lcStoredProcedures ;
- WHERE STR(ParentID) + ObjectType + LOWER(objectName) = STR(1) + PADR('Database',10) + PADR(LOWER('StoredProceduresSource'),128)
+ WHERE STR(ParentId) + ObjectType + LOWER(ObjectName) = STR(1) + PADR('Database',10) + PADR(LOWER('StoredProceduresSource'),128)
ENDIF
loTables.updateDBC( tc_OutputFile, @tnLastID, tnParentID )
@@ -17188,7 +17225,7 @@ DEFINE CLASS CL_DBC AS CL_DBC_BASE
SELECT CODE ;
FROM TABLABIN ;
- WHERE STR(ParentID) + ObjectType + LOWER(objectName) = STR(1) + PADR('Database',10) + PADR(LOWER('StoredProceduresSource'),128) ;
+ WHERE STR(ParentId) + ObjectType + LOWER(ObjectName) = STR(1) + PADR('Database',10) + PADR(LOWER('StoredProceduresSource'),128) ;
INTO ARRAY laCode
TEXT TO ._StoredProcedures TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<>> <>
@@ -18370,9 +18407,9 @@ DEFINE CLASS CL_DBC_FIELDS_DB AS CL_DBC_COL_BASE
STORE NULL TO loField
STORE 0 TO I, lnField_Count
_TALLY = 0
- SELECT LOWER(TB.objectName) FROM TABLABIN TB ;
- INNER JOIN TABLABIN TB2 ON STR(TB.ParentID)+TB.ObjectType = STR(TB2.ObjectID)+PADR('Field',10) ;
- AND TB2.objectName = PADR(LOWER(tcTable),128) ;
+ SELECT LOWER(TB.ObjectName) FROM TABLABIN TB ;
+ INNER JOIN TABLABIN TB2 ON STR(TB.ParentId)+TB.ObjectType = STR(TB2.ObjectID)+PADR('Field',10) ;
+ AND TB2.ObjectName = PADR(LOWER(tcTable),128) ;
INTO ARRAY laFields
lnField_Count = _TALLY
@@ -18755,9 +18792,9 @@ DEFINE CLASS CL_DBC_INDEXES_DB AS CL_DBC_COL_BASE
STORE NULL TO loIndex
STORE 0 TO I, lnIndex_Count
_TALLY = 0
- SELECT LOWER(TB.objectName) FROM TABLABIN TB ;
- INNER JOIN TABLABIN TB2 ON STR(TB.ParentID)+TB.ObjectType = STR(TB2.ObjectID)+PADR('Index',10) ;
- AND TB2.objectName = PADR(LOWER(tcTable),128) ;
+ SELECT LOWER(TB.ObjectName) FROM TABLABIN TB ;
+ INNER JOIN TABLABIN TB2 ON STR(TB.ParentId)+TB.ObjectType = STR(TB2.ObjectID)+PADR('Index',10) ;
+ AND TB2.ObjectName = PADR(LOWER(tcTable),128) ;
INTO ARRAY laIndexes
lnIndex_Count = _TALLY
@@ -19768,9 +19805,9 @@ DEFINE CLASS CL_DBC_FIELDS_VW AS CL_DBC_COL_BASE
ENDIF
_TALLY = 0
- SELECT LOWER(TB.objectName) FROM TABLABIN TB ;
- INNER JOIN TABLABIN TB2 ON STR(TB.ParentID)+TB.ObjectType = STR(TB2.ObjectID)+PADR('Field',10) ;
- AND TB2.objectName = PADR(LOWER(tcView),128) ;
+ SELECT LOWER(TB.ObjectName) FROM TABLABIN TB ;
+ INNER JOIN TABLABIN TB2 ON STR(TB.ParentId)+TB.ObjectType = STR(TB2.ObjectID)+PADR('Field',10) ;
+ AND TB2.ObjectName = PADR(LOWER(tcView),128) ;
INTO ARRAY laFields
lnField_Count = _TALLY
@@ -22699,17 +22736,17 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE
WITH THIS AS CL_MENU OF 'FOXBIN2PRG.PRG'
IF VARTYPE( toObj.oReg ) = 'O'
loReg = toObj.oReg
-
+
IF loReg.ObjType = C_OBJTYPE_MENUTYPE_OPTION
- lcTempName = '_' + PADL( INT( VAL(loReg.itemnum) ), 9, '0')
-
+ lcTempName = '_' + PADL( INT( VAL(loReg.ItemNum) ), 9, '0')
+
*-- Si el nombre es del tipo "_0000000001" y coincide con el itemNum
*-- que uso para darle un nombre temporal, lo vuelvo a quitar en el binario.
IF loReg.Name = lcTempName THEN
loReg.Name = ''
ENDIF
ENDIF
-
+
INSERT INTO TABLABIN FROM NAME loReg
IF .l_Debug