v1.19.49 Preview-1
- Replace Scripting.FileSystemObject MoveFile with Win32API equivalent
- Added support for using temporal CFG file for low-level API operations
- Bug Fix: Single-class export with "classlib.vcx::classname" syntax did not export (Lutz Scheffler)
- Added single-class import support ("library.vcx::classname::import")
- Added new single-class export syntax ("library.vcx::classname::export")
- Bug Fix: Partially corrupted frx/lbx info generated when using "&&" string inside field expressions (Alejandro A Sosa)
- sys(2023) secure temp: When sys(2023) points to "program files", then getenv("temp") is used
- Add more options to config.fpw to minimize interference from existent configs
- Feature: Save the contents of User field (Doug Hennig). Note: DevInfo is already supported
This commit is contained in:
@@ -1,2 +1,17 @@
|
|||||||
|
RESOURCE=OFF
|
||||||
SCREEN=OFF
|
SCREEN=OFF
|
||||||
RESOURCE=OFF
|
_STARTUP=""
|
||||||
|
HELP=OFF
|
||||||
|
_TRANSPORT=""
|
||||||
|
_GENXTAB=""
|
||||||
|
_FOXREF=""
|
||||||
|
TALK=OFF
|
||||||
|
_SPELLCHK=""
|
||||||
|
MVCOUNT=1024
|
||||||
|
_BROWSER=""
|
||||||
|
_BUILDER=""
|
||||||
|
_CONVERTER=""
|
||||||
|
_TASKPANE=""
|
||||||
|
_TOOLBOX=""
|
||||||
|
_WIZARD=""
|
||||||
|
COMMAND=""
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ _LegalCopyright = "Creative Commons 4: Reconocimiento - CompartirIgual (by-sa):
|
|||||||
_LegalTrademark = "Creative Commons 4: Reconocimiento - CompartirIgual (by-sa): http://creativecommons.org/licenses/by/4.0/"
|
_LegalTrademark = "Creative Commons 4: Reconocimiento - CompartirIgual (by-sa): http://creativecommons.org/licenses/by/4.0/"
|
||||||
_ProductName = "FILENAME_CAPS"
|
_ProductName = "FILENAME_CAPS"
|
||||||
_MajorVer = "2"
|
_MajorVer = "2"
|
||||||
_MinorVer = "3"
|
_MinorVer = "4"
|
||||||
_Revision = "0"
|
_Revision = "0"
|
||||||
_LanguageID = ""
|
_LanguageID = ""
|
||||||
_AutoIncrement = "0"
|
_AutoIncrement = "0"
|
||||||
@@ -33,7 +33,7 @@ _AutoIncrement = "0"
|
|||||||
|
|
||||||
|
|
||||||
*<BuildProj>
|
*<BuildProj>
|
||||||
*<.HomeDir = 'c:\desa\filename_caps' />
|
*<.HomeDir = 'c:\desa\foxbin2prg\filename_caps' />
|
||||||
|
|
||||||
FOR EACH loProject IN _VFP.Projects FOXOBJECT
|
FOR EACH loProject IN _VFP.Projects FOXOBJECT
|
||||||
loProject.Close()
|
loProject.Close()
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -44,20 +44,49 @@ RETURN lcFileName
|
|||||||
|
|
||||||
|
|
||||||
DEFINE CLASS cl_FileName_Caps AS Custom
|
DEFINE CLASS cl_FileName_Caps AS Custom
|
||||||
|
_memberdata = [<VFPData>] ;
|
||||||
|
+ [<memberdata name="capitalize" display="Capitalize"/>] ;
|
||||||
|
+ [<memberdata name="renamefile" display="RenameFile"/>] ;
|
||||||
|
+ [</VFPData>]
|
||||||
|
|
||||||
PROCEDURE Capitalize
|
|
||||||
LPARAMETERS tcFileName, tcFileMask, tcFileMaskType, tcLog, tlRelanzarError, tcDontShowErrors
|
|
||||||
|
|
||||||
|
PROCEDURE INIT
|
||||||
|
*DECLARE INTEGER MoveFile IN KERNEL32.DLL STRING lpExistingFileName, STRING lpNewFileName
|
||||||
|
|
||||||
|
* DOCUMENTACI<43>N: https://msdn.microsoft.com/es-es/library/windows/desktop/aa365240(v=vs.85).aspx
|
||||||
|
* dwFlags:
|
||||||
|
* 1 (0x1) MOVEFILE_REPLACE_EXISTING
|
||||||
|
* 8 (0x8) MOVEFILE_WRITE_THROUGH
|
||||||
|
DECLARE INTEGER MoveFileEx IN KERNEL32.DLL STRING lpExistingFileName, STRING lpNewFileName, INTEGER dwFlags
|
||||||
|
|
||||||
|
DECLARE INTEGER GetLastError IN KERNEL32.DLL
|
||||||
|
DECLARE Sleep IN KERNEL32.DLL INTEGER dwMilliseconds
|
||||||
|
|
||||||
|
* DOCUMENTACI<43>N: https://msdn.microsoft.com/en-us/library/windows/desktop/ms679351(v=vs.85).aspx
|
||||||
|
DECLARE INTEGER FormatMessage IN KERNEL32.DLL INTEGER dwFlags, INTEGER lpSource, INTEGER dwMessageId ;
|
||||||
|
, INTEGER dwLanguageId, STRING @lpBuffer, INTEGER nSize, INTEGER Arguments
|
||||||
|
_SCREEN.AddProperty("ExitCodeFNC",0)
|
||||||
|
ENDPROC
|
||||||
|
|
||||||
|
PROCEDURE Capitalize(tcFileName, tcFileMask, tcFileMaskType, tcLog, tlRelanzarError, tcDontShowErrors)
|
||||||
|
#IF .F.
|
||||||
|
LOCAL THIS AS cl_FileName_Caps OF 'filename_caps\filename_caps.prg'
|
||||||
|
#ENDIF
|
||||||
TRY
|
TRY
|
||||||
LOCAL loEx AS EXCEPTION, laMasks(1,4), lcDefinition, lcFileDef, lcMaskDef, laLines(1), lcMenErr ;
|
LOCAL loEx AS EXCEPTION, laMasks(1,4), lcDefinition, lcFileDef, lcMaskDef, laLines(1), lcMenErr ;
|
||||||
, I, X, lcName, lcExt, lcPath, lcFileName, laFile(1,5), lcLogFile, lcSys16, lnPosProg ;
|
, I, X, lcName, lcExt, lcPath, lcFileName, laFile(1,5), lcLogFile, lcSys16, lnPosProg, lnRet
|
||||||
, loFSO AS Scripting.FileSystemObject
|
|
||||||
|
|
||||||
|
lnRet = 0
|
||||||
loEx = NULL
|
loEx = NULL
|
||||||
loFSO = CREATEOBJECT('Scripting.FileSystemObject')
|
|
||||||
tcFileMaskType = EVL(tcFileMaskType,'M')
|
tcFileMaskType = EVL(tcFileMaskType,'M')
|
||||||
lcFileName = tcFileName
|
lcFileName = tcFileName
|
||||||
lcLogFile = FORCEEXT(SYS(16),'LOG')
|
lcSys16 = SYS(16)
|
||||||
|
IF LEFT(lcSys16,10) == 'PROCEDURE '
|
||||||
|
lnPosProg = AT(" ", lcSys16, 2) + 1
|
||||||
|
ELSE
|
||||||
|
lnPosProg = 1
|
||||||
|
ENDIF
|
||||||
|
lcLogFile = FORCEEXT( SUBSTR( lcSys16, lnPosProg ), 'LOG' )
|
||||||
tcLog = ''
|
tcLog = ''
|
||||||
tcDontShowErrors = EVL( tcDontShowErrors, '0' )
|
tcDontShowErrors = EVL( tcDontShowErrors, '0' )
|
||||||
|
|
||||||
@@ -66,13 +95,6 @@ DEFINE CLASS cl_FileName_Caps AS Custom
|
|||||||
tcLog = tcLog + CR_LF + '- No hay m<>scara definida ni archivo de configuraci<63>n'
|
tcLog = tcLog + CR_LF + '- No hay m<>scara definida ni archivo de configuraci<63>n'
|
||||||
EXIT && No se indic<69> nada que hacer
|
EXIT && No se indic<69> nada que hacer
|
||||||
ELSE
|
ELSE
|
||||||
lcSys16 = SYS(16)
|
|
||||||
IF LEFT(lcSys16,10) == 'PROCEDURE '
|
|
||||||
lnPosProg = AT(" ", lcSys16, 2) + 1
|
|
||||||
ELSE
|
|
||||||
lnPosProg = 1
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
tcFileMask = FORCEEXT( SUBSTR( lcSys16, lnPosProg ), 'CFG' )
|
tcFileMask = FORCEEXT( SUBSTR( lcSys16, lnPosProg ), 'CFG' )
|
||||||
tcLog = tcLog + CR_LF + '- Se usar<61> el archivo de configuraci<63>n [' + tcFileMask + ']'
|
tcLog = tcLog + CR_LF + '- Se usar<61> el archivo de configuraci<63>n [' + tcFileMask + ']'
|
||||||
IF NOT FILE(tcFileMask)
|
IF NOT FILE(tcFileMask)
|
||||||
@@ -163,9 +185,19 @@ DEFINE CLASS cl_FileName_Caps AS Custom
|
|||||||
EXIT
|
EXIT
|
||||||
ENDIF
|
ENDIF
|
||||||
ENDFOR
|
ENDFOR
|
||||||
|
|
||||||
|
*MESSAGEBOX( 'lcLogFile = ' + TRANSFORM(lcLogFile),0+4096, 'Error' )
|
||||||
|
|
||||||
IF ADIR( laFile, lcFileName, '', 1 ) > 0 AND laFile(1,1) <> JUSTFNAME(lcFileName)
|
IF ADIR( laFile, lcFileName, '', 1 ) > 0 AND laFile(1,1) <> JUSTFNAME(lcFileName)
|
||||||
loFSO.MoveFile( FORCEPATH( laFile(1,1), JUSTPATH(lcFileName) ), lcFileName )
|
lnRet = THIS.RenameFile( FORCEPATH( laFile(1,1), JUSTPATH(lcFileName) ), lcFileName )
|
||||||
|
*MESSAGEBOX('(MoveFile) lnRet = ' + TRANSFORM(lnRet),0+4096, 'Error')
|
||||||
|
|
||||||
|
IF lnRet = 0 && Failed
|
||||||
|
lnRet = GetLastError()
|
||||||
|
*MESSAGEBOX('(GetLastError) lnRet = ' + TRANSFORM(lnRet),0+4096, 'Error')
|
||||||
|
ERROR 'MoveFile'
|
||||||
|
ENDIF
|
||||||
|
|
||||||
tcLog = tcLog + CR_LF + ' => Se renombrar<61> a [' + lcFileName + ']'
|
tcLog = tcLog + CR_LF + ' => Se renombrar<61> a [' + lcFileName + ']'
|
||||||
ELSE
|
ELSE
|
||||||
tcLog = tcLog + CR_LF + ' => No se renombrar<61> a [' + lcFileName + '] porque ya estaba correcto.'
|
tcLog = tcLog + CR_LF + ' => No se renombrar<61> a [' + lcFileName + '] porque ya estaba correcto.'
|
||||||
@@ -173,6 +205,19 @@ DEFINE CLASS cl_FileName_Caps AS Custom
|
|||||||
|
|
||||||
|
|
||||||
CATCH TO loEx
|
CATCH TO loEx
|
||||||
|
_SCREEN.ExitCodeFNC = loEx.ErrorNo
|
||||||
|
|
||||||
|
IF loEx.ErrorNo = 1098 && User defined error
|
||||||
|
IF LOWER(loEx.Message) == 'movefile'
|
||||||
|
* SE OBTIENE EL MENSAJE DE ERROR DEL SISTEMA CORRESPONDIENTE A GetLastError()
|
||||||
|
* FORMAT_MESSAGE_FROM_SYSTEM 0x00001000
|
||||||
|
LOCAL lnRetLen, lpBuffer
|
||||||
|
lpBuffer = REPLICATE(CHR(0),256)
|
||||||
|
lnRetLen = FormatMessage(0x00001000,0,lnRet,0,@lpBuffer,256,0)
|
||||||
|
loEx.Message = LEFT(lpBuffer, lnRetLen)
|
||||||
|
ENDIF
|
||||||
|
ENDIF
|
||||||
|
|
||||||
IF tlRelanzarError THEN
|
IF tlRelanzarError THEN
|
||||||
THROW
|
THROW
|
||||||
ELSE
|
ELSE
|
||||||
@@ -190,7 +235,6 @@ DEFINE CLASS cl_FileName_Caps AS Custom
|
|||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
FINALLY
|
FINALLY
|
||||||
loFSO = NULL
|
|
||||||
tcFileName = lcFileName
|
tcFileName = lcFileName
|
||||||
|
|
||||||
*-- Si existe FileName_Caps.LOG, lo actualiza
|
*-- Si existe FileName_Caps.LOG, lo actualiza
|
||||||
@@ -207,4 +251,24 @@ DEFINE CLASS cl_FileName_Caps AS Custom
|
|||||||
RETURN lcFileName
|
RETURN lcFileName
|
||||||
ENDPROC
|
ENDPROC
|
||||||
|
|
||||||
|
|
||||||
|
FUNCTION RenameFile(lpExistingFileName as String, lpNewFileName as String) as Integer
|
||||||
|
* RENAME con reintento. A veces el sistema operativo puede devolver un error en los primeros intentos de renombrado,
|
||||||
|
* por ejemplo con el error "Can not create a file that already exists"
|
||||||
|
* FUENTE: http://stackoverflow.com/questions/13025313/why-os-rename-is-raising-an-exception-in-python-2-7
|
||||||
|
LOCAL lnRet
|
||||||
|
lnRet = 0
|
||||||
|
*lnRet = MoveFile( FORCEPATH( laFile(1,1), JUSTPATH(lcFileName) ), lcFileName )
|
||||||
|
|
||||||
|
FOR I = 1 TO 10
|
||||||
|
lnRet = MoveFileEx( lpExistingFileName, lpNewFileName, 0x1 + 0x8 )
|
||||||
|
IF lnRet != 0
|
||||||
|
EXIT
|
||||||
|
ENDIF
|
||||||
|
Sleep(10)
|
||||||
|
ENDFOR
|
||||||
|
RETURN lnRet
|
||||||
|
ENDFUNC
|
||||||
|
|
||||||
|
|
||||||
ENDDEFINE && CLASS cl_FileName_Caps AS Custom
|
ENDDEFINE && CLASS cl_FileName_Caps AS Custom
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ Lparameters toUpdateInfo
|
|||||||
|
|
||||||
Local lcNote
|
Local lcNote
|
||||||
With toUpdateInfo
|
With toUpdateInfo
|
||||||
.VersionNumber = 'v1.19.48'
|
.VersionNumber = 'v1.19.49'
|
||||||
.VersionDate = Date(2016,07,11)
|
.VersionDate = Date(2017,02,17)
|
||||||
.SourceFileUrl = 'http://vfpxrepository.com/dl/thorupdate/Projects/FoxBin2Prg/FoxBin2Prg.Zip'
|
.SourceFileUrl = 'http://vfpxrepository.com/dl/thorupdate/Projects/FoxBin2Prg/FoxBin2Prg.Zip'
|
||||||
|
|
||||||
.Link = 'http://vfpx.codeplex.com/wikipage?title=FoxBin2PRG'
|
.Link = 'http://vfpx.codeplex.com/wikipage?title=FoxBin2PRG'
|
||||||
@@ -21,6 +21,9 @@ Demo video using FoxBin2Prg with PlasticSCM: http://youtu.be/sE4wQ50Itqg
|
|||||||
|
|
||||||
Change History -------------------------------------------------------------
|
Change History -------------------------------------------------------------
|
||||||
|
|
||||||
|
2017/02/17 v1.19.49
|
||||||
|
|
||||||
|
|
||||||
2016/07/11 v1.19.48
|
2016/07/11 v1.19.48
|
||||||
- Bug Fix: Error message 'variable tcOutputFile not found' (german version) (Andy Kasper)
|
- Bug Fix: Error message 'variable tcOutputFile not found' (german version) (Andy Kasper)
|
||||||
- Bug Fix: Menu location 'Before' always changed to 'after' when convert (Andy Kasper)
|
- Bug Fix: Menu location 'Before' always changed to 'after' when convert (Andy Kasper)
|
||||||
|
|||||||
@@ -48,7 +48,11 @@ Else
|
|||||||
Next
|
Next
|
||||||
|
|
||||||
If GetBit(nDebug, 4) Then
|
If GetBit(nDebug, 4) Then
|
||||||
MsgBox "End of Process!", 64, WScript.ScriptName
|
If nExitCode = 0 Then
|
||||||
|
MsgBox "End of Process!", 64, WScript.ScriptName
|
||||||
|
Else
|
||||||
|
MsgBox "End of Process!", 48, WScript.ScriptName
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@@ -93,7 +97,7 @@ Private Sub evaluateFile( tcFile )
|
|||||||
MsgBox cCMD, 0, "PARAMETERS"
|
MsgBox cCMD, 0, "PARAMETERS"
|
||||||
Else
|
Else
|
||||||
nRet = oVFP9.DoCmd( cCMD )
|
nRet = oVFP9.DoCmd( cCMD )
|
||||||
'nExitCode = oVFP9.Eval("_SCREEN.ExitCode")
|
nExitCode = oVFP9.Eval("_SCREEN.ExitCodeFNC")
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
*--------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
* (ES) AUTOGENERADO - <20><>ATENCI<43>N!! - <20><>NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!!
|
||||||
|
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
|
||||||
|
*--------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
*< FOXBIN2PRG: Version="1.19" SourceFile="fb2p_classperfile_text.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
|
||||||
|
*
|
||||||
|
DEFINE CLASS cl_commandgroup AS commandgroup && Descripci<63>n de cl_CommandGroup
|
||||||
|
*< CLASSDATA: Baseclass="commandgroup" Timestamp="" Scale="Pixels" Uniqueid="" />
|
||||||
|
|
||||||
|
#INCLUDE "..\..\include\principal.h"
|
||||||
|
*<DefinedPropArrayMethod>
|
||||||
|
*p: una_prop_cmgroup && Con comentario, pero sin valor
|
||||||
|
*</DefinedPropArrayMethod>
|
||||||
|
|
||||||
|
ButtonCount = 2
|
||||||
|
Height = 66
|
||||||
|
Name = "cl_commandgroup"
|
||||||
|
una_prop_cmgroup = .F. && Con comentario, pero sin valor
|
||||||
|
Value = 1
|
||||||
|
Width = 94
|
||||||
|
Command1.Caption = "Command1"
|
||||||
|
Command1.Height = 27
|
||||||
|
Command1.Left = 5
|
||||||
|
Command1.Name = "Command1"
|
||||||
|
Command1.Top = 5
|
||||||
|
Command1.Width = 84
|
||||||
|
Command2.Caption = "Command2"
|
||||||
|
Command2.Height = 27
|
||||||
|
Command2.Left = 5
|
||||||
|
Command2.Name = "Command2"
|
||||||
|
Command2.Top = 34
|
||||||
|
Command2.Width = 84
|
||||||
|
|
||||||
|
ENDDEFINE
|
||||||
121
TESTS/DATOS_READONLY/fb2p_classperfile_text.cl_form.vc2
Normal file
121
TESTS/DATOS_READONLY/fb2p_classperfile_text.cl_form.vc2
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
*--------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
* (ES) AUTOGENERADO - <20><>ATENCI<43>N!! - <20><>NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!!
|
||||||
|
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
|
||||||
|
*--------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
*< FOXBIN2PRG: Version="1.19" SourceFile="fb2p_classperfile_text.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
|
||||||
|
*
|
||||||
|
DEFINE CLASS cl_form AS form OLEPUBLIC && mi OLE server DLL
|
||||||
|
*< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" ProjectClassIcon="bmps\container.ico" ClassIcon="bmps\container.ico" />
|
||||||
|
|
||||||
|
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
|
||||||
|
*< OBJECTDATA: ObjPath="Cl_optiongroup1" UniqueID="" Timestamp="" />
|
||||||
|
*< OBJECTDATA: ObjPath="Cl_commandgroup1" UniqueID="" Timestamp="" />
|
||||||
|
*< OBJECTDATA: ObjPath="Cl_imagen1" UniqueID="" Timestamp="" />
|
||||||
|
*< OBJECTDATA: ObjPath="Cl_imagen2" UniqueID="" Timestamp="" />
|
||||||
|
|
||||||
|
*<DefinedPropArrayMethod>
|
||||||
|
*p: chidden && Prop.Hidden
|
||||||
|
*p: cprotected && Prop.Protegida
|
||||||
|
*a: ahidden[1,0] && Array Oculto
|
||||||
|
*a: aprotected[1,0] && Array Protegido
|
||||||
|
*p: _memberdata && XML Metadata for customizable properties
|
||||||
|
*</DefinedPropArrayMethod>
|
||||||
|
|
||||||
|
HIDDEN ahidden,chidden
|
||||||
|
PROTECTED aprotected,cprotected
|
||||||
|
Caption = "Form"
|
||||||
|
chidden = && Prop.Hidden
|
||||||
|
cprotected = && Prop.Protegida
|
||||||
|
DoCreate = .T.
|
||||||
|
Height = 345
|
||||||
|
Left = 0
|
||||||
|
Name = "cl_form"
|
||||||
|
Picture = bmps\scccheckout.bmp
|
||||||
|
Top = 0
|
||||||
|
Width = 570
|
||||||
|
_memberdata = <VFPData>
|
||||||
|
<memberdata name="ahidden" display="aHidden"/>
|
||||||
|
<memberdata name="aprotected" display="aProtected"/>
|
||||||
|
<memberdata name="chidden" display="cHidden"/>
|
||||||
|
<memberdata name="cprotected" display="cProtected"/>
|
||||||
|
</VFPData> && XML Metadata for customizable properties
|
||||||
|
|
||||||
|
ADD OBJECT 'Cl_commandgroup1' AS cl_commandgroup WITH ;
|
||||||
|
BackColor = 255,128,192, ;
|
||||||
|
Height = 66, ;
|
||||||
|
Left = 8, ;
|
||||||
|
Name = "Cl_commandgroup1", ;
|
||||||
|
Top = 88, ;
|
||||||
|
Width = 244, ;
|
||||||
|
Command1.Caption = "Abrir", ;
|
||||||
|
Command1.Height = 52, ;
|
||||||
|
Command1.Left = 8, ;
|
||||||
|
Command1.Name = "Command1", ;
|
||||||
|
Command1.Picture = bmps\carpetaabierta.bmp, ;
|
||||||
|
Command1.Top = 4, ;
|
||||||
|
Command1.Width = 104, ;
|
||||||
|
Command2.Caption = "Cerrar", ;
|
||||||
|
Command2.Height = 52, ;
|
||||||
|
Command2.Left = 124, ;
|
||||||
|
Command2.Name = "Command2", ;
|
||||||
|
Command2.Picture = bmps\carpetacerrada.bmp, ;
|
||||||
|
Command2.Top = 4, ;
|
||||||
|
Command2.Width = 104
|
||||||
|
*< END OBJECT: ClassLib="fb2p_test.vcx" BaseClass="commandgroup" />
|
||||||
|
|
||||||
|
ADD OBJECT 'Cl_imagen1' AS cl_imagen WITH ;
|
||||||
|
Height = 34, ;
|
||||||
|
Left = 452, ;
|
||||||
|
Name = "Cl_imagen1", ;
|
||||||
|
Picture = bmps\sobrepostal.bmp, ;
|
||||||
|
Stretch = 1, ;
|
||||||
|
Top = 276, ;
|
||||||
|
Width = 38
|
||||||
|
*< END OBJECT: ClassLib="fb2p_test.vcx" BaseClass="image" />
|
||||||
|
|
||||||
|
ADD OBJECT 'Cl_imagen2' AS cl_imagen WITH ;
|
||||||
|
Height = 34, ;
|
||||||
|
Left = 500, ;
|
||||||
|
Name = "Cl_imagen2", ;
|
||||||
|
Picture = bmps\treeview.bmp, ;
|
||||||
|
Stretch = 1, ;
|
||||||
|
Top = 276, ;
|
||||||
|
Width = 38
|
||||||
|
*< END OBJECT: ClassLib="fb2p_test.vcx" BaseClass="image" />
|
||||||
|
|
||||||
|
ADD OBJECT 'Cl_optiongroup1' AS cl_optiongroup WITH ;
|
||||||
|
BackColor = 0,128,255, ;
|
||||||
|
Height = 68, ;
|
||||||
|
Left = 8, ;
|
||||||
|
Name = "Cl_optiongroup1", ;
|
||||||
|
Top = 12, ;
|
||||||
|
Width = 244, ;
|
||||||
|
Option1.Height = 52, ;
|
||||||
|
Option1.Left = 8, ;
|
||||||
|
Option1.Name = "Option1", ;
|
||||||
|
Option1.Picture = bmps\scccheckout.bmp, ;
|
||||||
|
Option1.Style = 1, ;
|
||||||
|
Option1.Top = 8, ;
|
||||||
|
Option1.Width = 104, ;
|
||||||
|
Option2.Height = 52, ;
|
||||||
|
Option2.Left = 124, ;
|
||||||
|
Option2.Name = "Option2", ;
|
||||||
|
Option2.Picture = bmps\scccheckout.bmp, ;
|
||||||
|
Option2.Style = 1, ;
|
||||||
|
Option2.Top = 8, ;
|
||||||
|
Option2.Width = 104
|
||||||
|
*< END OBJECT: ClassLib="fb2p_test.vcx" BaseClass="optiongroup" />
|
||||||
|
|
||||||
|
PROCEDURE Cl_optiongroup1.Init
|
||||||
|
*-- Prueba para comprobar que respeta espacios y TABS del c<>digo
|
||||||
|
TEXT TO xx
|
||||||
|
* TAB a la izquierda del asterisco
|
||||||
|
* 2 TAB a la izquierda del asterisco
|
||||||
|
* 1 ESPACIO a la izquierda del asterisco
|
||||||
|
* 2 ESPACIOS a la izquierda del asterisco
|
||||||
|
1 TAB a la derecha del asterisco *
|
||||||
|
1 ESPACIO a la derecha del asterisco *
|
||||||
|
ENDTEXT && Esto termina sin ENTER
|
||||||
|
ENDPROC
|
||||||
|
|
||||||
|
ENDDEFINE
|
||||||
23
TESTS/DATOS_READONLY/fb2p_classperfile_text.cl_imagen.vc2
Normal file
23
TESTS/DATOS_READONLY/fb2p_classperfile_text.cl_imagen.vc2
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
*--------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
* (ES) AUTOGENERADO - <20><>ATENCI<43>N!! - <20><>NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!!
|
||||||
|
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
|
||||||
|
*--------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
*< FOXBIN2PRG: Version="1.19" SourceFile="fb2p_classperfile_text.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
|
||||||
|
*
|
||||||
|
DEFINE CLASS cl_imagen AS image OLEPUBLIC && otro ole
|
||||||
|
*< CLASSDATA: Baseclass="image" Timestamp="" Scale="Pixels" Uniqueid="" />
|
||||||
|
|
||||||
|
*<DefinedPropArrayMethod>
|
||||||
|
*m: un_metodo_de_clase && Para testear si el c<>digo se va a la clase cl_form
|
||||||
|
*</DefinedPropArrayMethod>
|
||||||
|
|
||||||
|
Height = 16
|
||||||
|
Name = "cl_imagen"
|
||||||
|
Picture = bmps\sobrepostal.bmp
|
||||||
|
Width = 17
|
||||||
|
|
||||||
|
PROCEDURE un_metodo_de_clase && Para testear si el c<>digo se va a la clase cl_form
|
||||||
|
* ESTE CODIGO ES DE "cl_imagen::un_metodo_de_clase"
|
||||||
|
ENDPROC
|
||||||
|
|
||||||
|
ENDDEFINE
|
||||||
14
TESTS/DATOS_READONLY/fb2p_classperfile_text.cl_olebound.vc2
Normal file
14
TESTS/DATOS_READONLY/fb2p_classperfile_text.cl_olebound.vc2
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
*--------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
* (ES) AUTOGENERADO - <20><>ATENCI<43>N!! - <20><>NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!!
|
||||||
|
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
|
||||||
|
*--------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
*< FOXBIN2PRG: Version="1.19" SourceFile="fb2p_classperfile_text.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
|
||||||
|
*
|
||||||
|
DEFINE CLASS cl_olebound AS oleboundcontrol
|
||||||
|
*< CLASSDATA: Baseclass="oleboundcontrol" Timestamp="" Scale="Pixels" Uniqueid="" />
|
||||||
|
|
||||||
|
Height = 100
|
||||||
|
Name = "cl_olebound"
|
||||||
|
Width = 100
|
||||||
|
|
||||||
|
ENDDEFINE
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
*--------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
* (ES) AUTOGENERADO - <20><>ATENCI<43>N!! - <20><>NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!!
|
||||||
|
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
|
||||||
|
*--------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
*< FOXBIN2PRG: Version="1.19" SourceFile="fb2p_classperfile_text.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
|
||||||
|
*
|
||||||
|
DEFINE CLASS cl_olecontrol AS olecontrol
|
||||||
|
*< CLASSDATA: Baseclass="olecontrol" Timestamp="" Scale="Pixels" Uniqueid="" Nombre="cl_olecontrol" Parent="" ObjName="cl_olecontrol" OLEObject="C:\Windows\system32\richtx32.ocx" Value="0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAEAAAAgAAAAEAAAD+////AAAAAAAAAAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/////v////7////+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1IAbwBvAHQAIABFAG4AdAByAHkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAUA//////////8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCpJ18M8c8BAwAAAAACAAAAAAAAAwBPAGwAZQBPAGIAagBlAGMAdABEAGEAdABhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAgEDAAAAAgAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAAAAAAAADAEEAYwBjAGUAcwBzAE8AYgBqAFMAaQB0AGUARABhAHQAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgACAP///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAABPAAAAAAAAAAMAQwBoAGEAbgBnAGUAZABQAHIAbwBwAHMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAIA////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAEoAAAAAAAAABAAAAAIAAAD+////BQAAAAYAAAD+////BwAAAP7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9giHw7j9cbELm1BAIcAJQCIUM0EggAAACKDQAA7QYAACFDNBIBAAYArAAAAAAA//8AAP//AQAAAAAAAAAAAAAATwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABcAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgcWhqIFp0dVFoYTtqZGZuW2lhZXRyIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAACADAAAAFJpZ2h0TWFyZ2luABEAAABODQAAAAcAAAAAAAAAAAAAAAUAAABUZXh0ABQAAABIAAAAAAsAAABPAAAAAAUAAIAAAAAAAAABAAAAAQABAAIACAAAAHtccnRmMVxhbnNpXGFuc2ljcGcxMjUyXGRlZmYwe1xmb250dGxlY29udHJvbDEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABibHtcZjBcZm5pbFxmY2hhcnNldDAgQXJpYWw7fX0NClx2aWV3a2luZDRcdWMxXHBhcmRcbGFuZzMwODJcZnMxOCBPbGVjb250cm9sMQ0KXHBhciB9DQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" />
|
||||||
|
|
||||||
|
Height = 67
|
||||||
|
Name = "cl_olecontrol"
|
||||||
|
Width = 131
|
||||||
|
|
||||||
|
ENDDEFINE
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
*--------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
* (ES) AUTOGENERADO - <20><>ATENCI<43>N!! - <20><>NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!!
|
||||||
|
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
|
||||||
|
*--------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
*< FOXBIN2PRG: Version="1.19" SourceFile="fb2p_classperfile_text.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
|
||||||
|
*
|
||||||
|
DEFINE CLASS cl_optiongroup AS optiongroup && descripcion
|
||||||
|
*< CLASSDATA: Baseclass="optiongroup" Timestamp="" Scale="Pixels" Uniqueid="" />
|
||||||
|
|
||||||
|
*<DefinedPropArrayMethod>
|
||||||
|
*m: propiedad_de_clase_con_valor_access
|
||||||
|
*m: propiedad_de_clase_con_valor_assign
|
||||||
|
*p: propiedad_de_clase_con_valor && Tiene un valor por defecto
|
||||||
|
*p: propiedad_de_clase_sin_valor && Una propiedad sin valor para heredar
|
||||||
|
*</DefinedPropArrayMethod>
|
||||||
|
|
||||||
|
ButtonCount = 2
|
||||||
|
Height = 46
|
||||||
|
Name = "cl_optiongroup"
|
||||||
|
propiedad_de_clase_con_valor = UN VALOR DE LA CLASE && Tiene un valor por defecto
|
||||||
|
propiedad_de_clase_sin_valor = .F. && Una propiedad sin valor para heredar
|
||||||
|
Value = 1
|
||||||
|
Width = 71
|
||||||
|
Option1.Caption = "Option1"
|
||||||
|
Option1.Height = 17
|
||||||
|
Option1.Left = 5
|
||||||
|
Option1.Name = "Option1"
|
||||||
|
Option1.Top = 5
|
||||||
|
Option1.Value = 1
|
||||||
|
Option1.Width = 61
|
||||||
|
Option2.Caption = "Option2"
|
||||||
|
Option2.Height = 17
|
||||||
|
Option2.Left = 5
|
||||||
|
Option2.Name = "Option2"
|
||||||
|
Option2.Top = 24
|
||||||
|
Option2.Width = 61
|
||||||
|
|
||||||
|
PROCEDURE propiedad_de_clase_con_valor_access
|
||||||
|
*To do: Modify this routine for the Access method
|
||||||
|
RETURN THIS.propiedad_de_clase_con_valor
|
||||||
|
|
||||||
|
ENDPROC
|
||||||
|
|
||||||
|
PROCEDURE propiedad_de_clase_con_valor_assign
|
||||||
|
LPARAMETERS vNewVal
|
||||||
|
*To do: Modify this routine for the Assign method
|
||||||
|
THIS.propiedad_de_clase_con_valor = m.vNewVal
|
||||||
|
|
||||||
|
ENDPROC
|
||||||
|
|
||||||
|
ENDDEFINE
|
||||||
14
TESTS/DATOS_READONLY/fb2p_classperfile_text.proj_hook.vc2
Normal file
14
TESTS/DATOS_READONLY/fb2p_classperfile_text.proj_hook.vc2
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
*--------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
* (ES) AUTOGENERADO - <20><>ATENCI<43>N!! - <20><>NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!!
|
||||||
|
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
|
||||||
|
*--------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
*< FOXBIN2PRG: Version="1.19" SourceFile="fb2p_classperfile_text.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
|
||||||
|
*
|
||||||
|
DEFINE CLASS proj_hook AS projecthook
|
||||||
|
*< CLASSDATA: Baseclass="projecthook" Timestamp="" Scale="Pixels" Uniqueid="" />
|
||||||
|
|
||||||
|
Height = 22
|
||||||
|
Name = "proj_hook"
|
||||||
|
Width = 23
|
||||||
|
|
||||||
|
ENDDEFINE
|
||||||
18
TESTS/DATOS_READONLY/fb2p_classperfile_text.vc2
Normal file
18
TESTS/DATOS_READONLY/fb2p_classperfile_text.vc2
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
*--------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
* (ES) AUTOGENERADO - <20><>ATENCI<43>N!! - <20><>NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!!
|
||||||
|
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
|
||||||
|
*--------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
*< FOXBIN2PRG: Version="1.19" SourceFile="fb2p_classperfile_text.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
|
||||||
|
*
|
||||||
|
*-- EXTERNAL_CLASS identify external member Class names / EXTERNAL_CLASS identifica los nombres de las Clases externas
|
||||||
|
*< EXTERNAL_CLASS: Name="cl_commandgroup" Baseclass="commandgroup" />
|
||||||
|
*< EXTERNAL_CLASS: Name="cl_form" Baseclass="form" />
|
||||||
|
*< EXTERNAL_CLASS: Name="cl_imagen" Baseclass="image" />
|
||||||
|
*< EXTERNAL_CLASS: Name="cl_olebound" Baseclass="oleboundcontrol" />
|
||||||
|
*< EXTERNAL_CLASS: Name="cl_olecontrol" Baseclass="olecontrol" />
|
||||||
|
*< EXTERNAL_CLASS: Name="cl_optiongroup" Baseclass="optiongroup" />
|
||||||
|
*< EXTERNAL_CLASS: Name="proj_hook" Baseclass="projecthook" />
|
||||||
|
|
||||||
|
*
|
||||||
|
*< LIBCOMMENT: Comentario principal de "fb2p_test.vcx" />
|
||||||
|
*
|
||||||
BIN
TESTS/DATOS_READONLY/fb2p_classperfile_text.vct
Normal file
BIN
TESTS/DATOS_READONLY/fb2p_classperfile_text.vct
Normal file
Binary file not shown.
BIN
TESTS/DATOS_READONLY/fb2p_classperfile_text.vcx
Normal file
BIN
TESTS/DATOS_READONLY/fb2p_classperfile_text.vcx
Normal file
Binary file not shown.
@@ -1709,6 +1709,119 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
|
|||||||
ENDFUNC
|
ENDFUNC
|
||||||
|
|
||||||
|
|
||||||
|
*******************************************************************************************************************************************
|
||||||
|
FUNCTION Evaluate_TX2_Output_Test_from_ClassPerFile_VCX
|
||||||
|
LPARAMETERS tcFileName
|
||||||
|
|
||||||
|
IF PCOUNT() = 0
|
||||||
|
THIS.messageout( "* Support method, not a valid test." )
|
||||||
|
RETURN .T.
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
LOCAL lnCodError, lnCodError_Esperado ;
|
||||||
|
, lc_File, lc_OutputFile, lc_OutputFileTx2, lc_OutputFileTx2s, lc_OutputFileBak, lcExt2, lcCFG, laFiles(1,5) ;
|
||||||
|
, lcParent, lcClass, lcObjName, loReg_Esperado ;
|
||||||
|
, loCtl AS f_optiongroup OF "TESTS\DATOS_READONLY\LIB_CONTROLES.VCX" ;
|
||||||
|
, loCnv AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
|
||||||
|
, loEx AS EXCEPTION
|
||||||
|
#IF .F.
|
||||||
|
PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
|
||||||
|
#ENDIF
|
||||||
|
|
||||||
|
TRY
|
||||||
|
loEx = NULL
|
||||||
|
TEXT TO lcCFG TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2+4
|
||||||
|
UseClassPerFile:1
|
||||||
|
RedirectClassPerFileToMain:1
|
||||||
|
ClassPerFileCheck:1
|
||||||
|
ENDTEXT
|
||||||
|
STRTOFILE(lcCFG, FORCEPATH('foxbin2prg.cfg', oFXU_LIB.cPathDatosTest))
|
||||||
|
loCnv = NEWOBJECT("c_foxbin2prg", "FOXBIN2PRG.PRG", "", 'TESTS\DATOS_TEST\foxbin2prg.cfg')
|
||||||
|
*loCnv = NEWOBJECT("c_foxbin2prg", "FOXBIN2PRG.PRG")
|
||||||
|
*loCnv.evaluateConfiguration( '1', '1', '1', '0', '1', '4', '1', '0' )
|
||||||
|
*loCnv.l_Test = .T.
|
||||||
|
|
||||||
|
|
||||||
|
*-- DATOS DE ENTRADA
|
||||||
|
STORE 0 TO lnCodError, lnCodError_Esperado
|
||||||
|
|
||||||
|
*-- Copio la librer<65>a en DATOS_TEST
|
||||||
|
lc_File = UPPER(tcFileName)
|
||||||
|
lcExt2 = loCnv.Get_Ext2FromExt( JUSTEXT( tcFileName ) )
|
||||||
|
lc_OutputFile = FORCEPATH( lc_File, oFXU_LIB.cPathDatosTest )
|
||||||
|
lc_OutputFileTx2 = FORCEPATH( FORCEEXT( lc_File, lcExt2 ), oFXU_LIB.cPathDatosTest )
|
||||||
|
lc_OutputFileTx2s = FORCEPATH( JUSTSTEM(lc_File) + '*.' + lcExt2, oFXU_LIB.cPathDatosTest )
|
||||||
|
lc_OutputFileBak = lc_OutputFileTx2 + '.bak'
|
||||||
|
|
||||||
|
* Copio los .??2
|
||||||
|
*oFXU_LIB.copiarArchivosParaTest( lc_OutputFileTx2s )
|
||||||
|
FOR I = 1 TO ADIR(laFiles, FORCEPATH(lc_OutputFileTx2s, oFXU_LIB.cPathDatosReadOnly))
|
||||||
|
COPY FILE (FORCEPATH( laFiles(I,1), oFXU_LIB.cPathDatosReadOnly )) TO (FORCEPATH( laFiles(I,1), oFXU_LIB.cPathDatosTest ))
|
||||||
|
ENDFOR
|
||||||
|
|
||||||
|
* Creo los .??2.BAK correspondientes
|
||||||
|
FOR I = 1 TO ADIR(laFiles, lc_OutputFileTx2s)
|
||||||
|
COPY FILE (FORCEPATH( laFiles(I,1), oFXU_LIB.cPathDatosTest )) TO (FORCEPATH( laFiles(I,1) + '.bak', oFXU_LIB.cPathDatosTest ))
|
||||||
|
ENDFOR
|
||||||
|
|
||||||
|
*-- Genero TX2
|
||||||
|
*loCnv.execute( lc_OutputFile, .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR() )
|
||||||
|
|
||||||
|
*-- Genero BIN
|
||||||
|
loCnv.execute( lc_OutputFileTx2, .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR() )
|
||||||
|
|
||||||
|
*-- Genero TX2
|
||||||
|
loCnv.execute( lc_OutputFile, .F., .F., .F., '1', '0', '1', '', '', .T., '', SYS(5)+CURDIR() )
|
||||||
|
|
||||||
|
*-- Comparo resultados
|
||||||
|
THIS.messageout( "Se compara el archivo de texto generado con el original luego de 2 regeneraciones, para saber si hay cambios" )
|
||||||
|
*THIS.messageout( "OutputFileTx2 = " + lc_OutputFileTx2 )
|
||||||
|
*THIS.messageout( "OutputFileBak = " + lc_OutputFileBak )
|
||||||
|
*THIS.asserttrue( FILETOSTR( lc_OutputFileTx2 ) == FILETOSTR( lc_OutputFileBak ), "COMPARACI<43>N DE ARCHIVOS TX2" )
|
||||||
|
|
||||||
|
FOR I = 1 TO ALEN(laFiles, 1)
|
||||||
|
THIS.messageout( "--------------------" )
|
||||||
|
THIS.messageout( "OutputFileTx2 = " + laFiles(I,1) )
|
||||||
|
THIS.messageout( "OutputFileBak = " + laFiles(I,1) + '.bak' )
|
||||||
|
THIS.asserttrue( FILETOSTR( FORCEPATH( laFiles(I,1), oFXU_LIB.cPathDatosTest ) ) == FILETOSTR( FORCEPATH( laFiles(I,1) + '.bak', oFXU_LIB.cPathDatosTest ) ), "COMPARACI<43>N DE ARCHIVOS TX2" )
|
||||||
|
ENDFOR
|
||||||
|
|
||||||
|
|
||||||
|
CATCH TO loEx
|
||||||
|
THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado )
|
||||||
|
|
||||||
|
FINALLY
|
||||||
|
* USE IN (SELECT("ARCHIVOBIN_IN"))
|
||||||
|
* USE IN (SELECT("TABLABIN"))
|
||||||
|
STORE NULL TO loCnv, loCtl
|
||||||
|
RELEASE loCnv, loCtl
|
||||||
|
ENDTRY
|
||||||
|
|
||||||
|
ENDFUNC
|
||||||
|
|
||||||
|
|
||||||
|
*******************************************************************************************************************************************
|
||||||
|
FUNCTION Deberia_Ejecutar_FOXBIN2PRG_Para_generar_un__VCX__con_ClassPerFile_ValidarEl_VC2_GeneradoConElOriginal_Y_NoEncontrarDiferencias
|
||||||
|
LOCAL lnCodError, lnCodError_Esperado ;
|
||||||
|
, lc_File, lcFileName, lc_OutputFile, lc_OutputFileTx2, lc_OutputFileBak, lcExt2 ;
|
||||||
|
, lcParent, lcClass, lcObjName, loReg_Esperado ;
|
||||||
|
, loCtl AS f_optiongroup OF "TESTS\DATOS_READONLY\LIB_CONTROLES.VCX" ;
|
||||||
|
, loCnv AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
|
||||||
|
, loEx AS EXCEPTION
|
||||||
|
#IF .F.
|
||||||
|
PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
|
||||||
|
#ENDIF
|
||||||
|
|
||||||
|
PUBLIC goFXU AS ut__foxbin2prg OF ut__foxbin2prg.prg
|
||||||
|
goFXU = THIS
|
||||||
|
loEx = NULL
|
||||||
|
|
||||||
|
*-- Comparo resultados
|
||||||
|
THIS.Evaluate_TX2_Output_Test_from_ClassPerFile_VCX( 'fb2p_classperfile_text.vcx' )
|
||||||
|
|
||||||
|
ENDFUNC
|
||||||
|
|
||||||
|
|
||||||
ENDDEFINE
|
ENDDEFINE
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
BIN
foxbin2prg.exe
BIN
foxbin2prg.exe
Binary file not shown.
@@ -26,7 +26,7 @@ _LegalTrademark = "Creative Commons 4: Reconocimiento - CompartirIgual (by-sa):
|
|||||||
_ProductName = "FOXBIN2PRG"
|
_ProductName = "FOXBIN2PRG"
|
||||||
_MajorVer = "1"
|
_MajorVer = "1"
|
||||||
_MinorVer = "19"
|
_MinorVer = "19"
|
||||||
_Revision = "48"
|
_Revision = "49"
|
||||||
_LanguageID = "1034"
|
_LanguageID = "1034"
|
||||||
_AutoIncrement = "0"
|
_AutoIncrement = "0"
|
||||||
*</DevInfo>
|
*</DevInfo>
|
||||||
@@ -93,7 +93,6 @@ WITH loProject.FILES
|
|||||||
.ADD('props_xmladapter.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" />
|
.ADD('props_xmladapter.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" />
|
||||||
.ADD('props_xmlfield.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" />
|
.ADD('props_xmlfield.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" />
|
||||||
.ADD('props_xmltable.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" />
|
.ADD('props_xmltable.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" />
|
||||||
.ADD('readme.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" />
|
|
||||||
*</BuildProj>
|
*</BuildProj>
|
||||||
|
|
||||||
.ITEM('__newproject.f2b').Remove()
|
.ITEM('__newproject.f2b').Remove()
|
||||||
@@ -104,7 +103,6 @@ WITH loProject.FILES
|
|||||||
*</FileComments>
|
*</FileComments>
|
||||||
|
|
||||||
*<ExcludedFiles>
|
*<ExcludedFiles>
|
||||||
.ITEM(lcCurdir + 'readme.txt').Exclude = .T.
|
|
||||||
*</ExcludedFiles>
|
*</ExcludedFiles>
|
||||||
|
|
||||||
*<TextFiles>
|
*<TextFiles>
|
||||||
|
|||||||
BIN
foxbin2prg.pjt
BIN
foxbin2prg.pjt
Binary file not shown.
BIN
foxbin2prg.pjx
BIN
foxbin2prg.pjx
Binary file not shown.
573
foxbin2prg.prg
573
foxbin2prg.prg
@@ -192,6 +192,13 @@
|
|||||||
* 10/07/2016 FDBOZZO v1.19.48 Fix defecto db2: Cuando se arregló el bug del memo multi-línea, se introdujo un nuevo defecto por el cual un memo de linea-simple se decodifica mal (Nathan Brown)
|
* 10/07/2016 FDBOZZO v1.19.48 Fix defecto db2: Cuando se arregló el bug del memo multi-línea, se introdujo un nuevo defecto por el cual un memo de linea-simple se decodifica mal (Nathan Brown)
|
||||||
* 11/07/2016 FDBOZZO v1.19.48 Bug Fix pj2: Cuando se regenera el binario de un PJ2 con archivos en una ruta con paréntesis y espacios, se genera un error "Error 36, Command contains unrecognized phrase/keyword" (Nathan Brown)
|
* 11/07/2016 FDBOZZO v1.19.48 Bug Fix pj2: Cuando se regenera el binario de un PJ2 con archivos en una ruta con paréntesis y espacios, se genera un error "Error 36, Command contains unrecognized phrase/keyword" (Nathan Brown)
|
||||||
* 11/07/2016 FDBOZZO v1.19.48 Bug Fix frx: Los ControlSource de objetos OLE que contienen comillas se generan mal (Nathan Brown)
|
* 11/07/2016 FDBOZZO v1.19.48 Bug Fix frx: Los ControlSource de objetos OLE que contienen comillas se generan mal (Nathan Brown)
|
||||||
|
* 23/03/2017 FDBOZZO v1.19.49 Bug Fix vcx: No funciona la generación de una clase individual con "classlib.vcx::classname" (Lutz Scheffler)
|
||||||
|
* 25/03/2017 FDBOZZO v1.19.49 Mejora vcx: Poder importar una clase (VC2 generado con ClassPerFile) en un VCX existente (Lutz Scheffler)
|
||||||
|
* 26/03/2017 FDBOZZO v1.19.49 Mejora cfg: Se permite indicar un archivo CFG por parámetro de cualquier directorio para anular los CFG predeterminados de los subdirectorios, para casos especiales donde sea necesario
|
||||||
|
* 28/03/2017 FDBOZZO v1.19.49 Mejora vcx: Implementada sintaxis para importar o exportar clases individuales usando "classlibrary.vcx::classname::import" y "classlibrary.vcx::classname::export"
|
||||||
|
* 11/04/2017 FDBOZZO v1.19.49 Bug Fix frx: Cuando dentro de una expresión se usa "&&", se corrompe el registro del FRX generado (Alejandro A Sosa)
|
||||||
|
* 11/04/2017 FDBOZZO v1.19.49 Mejora cfg : En modo objeto permitir indicar un objeto CFG en lugar de un archivo CFG (Lutz Scheffler)
|
||||||
|
* 12/04/2017 DH&FDBOZZO v1.19.49 Bug Fix & Report pjx: No se estaba guardando el campo User en los archivos PJX (Doug Hennig)
|
||||||
* </HISTORIAL DE CAMBIOS Y NOTAS IMPORTANTES>
|
* </HISTORIAL DE CAMBIOS Y NOTAS IMPORTANTES>
|
||||||
*
|
*
|
||||||
*---------------------------------------------------------------------------------------------------
|
*---------------------------------------------------------------------------------------------------
|
||||||
@@ -300,6 +307,11 @@
|
|||||||
* 10/07/2016 Nathan Brown Reporte defecto v1.19.48-Preview3: Cuando se arregló el bug del memo multi-línea, se introdujo un nuevo defecto por el cual un memo de linea-simple se decodifica mal (Arreglado en v1.19.48 Preview-4)
|
* 10/07/2016 Nathan Brown Reporte defecto v1.19.48-Preview3: Cuando se arregló el bug del memo multi-línea, se introdujo un nuevo defecto por el cual un memo de linea-simple se decodifica mal (Arreglado en v1.19.48 Preview-4)
|
||||||
* 11/07/2016 Nathan Brown Reporte bug pj2 v1.19.48-Preview4: Cuando se regenera el binario de un PJ2 con archivos en una ruta con paréntesis y espacios, se genera un error "Error 36, Command contains unrecognized phrase/keyword" (Arreglado en v1.19.48 Preview-5)
|
* 11/07/2016 Nathan Brown Reporte bug pj2 v1.19.48-Preview4: Cuando se regenera el binario de un PJ2 con archivos en una ruta con paréntesis y espacios, se genera un error "Error 36, Command contains unrecognized phrase/keyword" (Arreglado en v1.19.48 Preview-5)
|
||||||
* 11/07/2016 Nathan Brown Reporte bug frx v1.19.48-Preview5: Los ControlSource de objetos OLE que contienen comillas se generan mal (Arreglado en v1.19.48 Preview-6)
|
* 11/07/2016 Nathan Brown Reporte bug frx v1.19.48-Preview5: Los ControlSource de objetos OLE que contienen comillas se generan mal (Arreglado en v1.19.48 Preview-6)
|
||||||
|
* 23/03/2017 Lutz Scheffler Reporte bug vcx v1.19.48: No funciona la generación de una clase individual con "classlib.vcx::classname" (Arreglado en v1.19.49)
|
||||||
|
* 23/03/2017 Lutz Scheffler Mejora vcx v1.19.48: Poder importar una clase (VC2 generado con ClassPerFile) en un VCX existente (Agragado en v1.19.49)
|
||||||
|
* 30/03/2017 Alejandro A Sosa Reporte bug frx v1.19.48: Cuando dentro de una expresión se usa "&&", se corrompe el registro del FRX generado (Arreglado en v1.19.49)
|
||||||
|
* 28/03/2017 Lutz Scheffler Mejora cfg v1.19.48: En modo objeto permitir indicar un objeto CFG en lugar de un archivo CFG (Agragado en v1.19.49)
|
||||||
|
* 06/04/2017 Doug Hennig Reporte Bug y arreglo parcial PJX v1.19.48: No se estaba guardando el campo User en los archivos PJX (Agregado en v1.19.49)
|
||||||
* </TESTEO Y REPORTE DE BUGS (AGRADECIMIENTOS)>
|
* </TESTEO Y REPORTE DE BUGS (AGRADECIMIENTOS)>
|
||||||
*
|
*
|
||||||
*---------------------------------------------------------------------------------------------------
|
*---------------------------------------------------------------------------------------------------
|
||||||
@@ -761,11 +773,13 @@ DEFINE CLASS c_foxbin2prg AS Session
|
|||||||
c_Foxbin2prg_FullPath = ''
|
c_Foxbin2prg_FullPath = ''
|
||||||
c_Foxbin2prg_ConfigFile = ''
|
c_Foxbin2prg_ConfigFile = ''
|
||||||
c_CurDir = ''
|
c_CurDir = ''
|
||||||
|
c_TempDir = SYS(2023)
|
||||||
c_InputFile = ''
|
c_InputFile = ''
|
||||||
c_ClassToConvert = '' && Guarda el nombre de la clase a convertir, indicada en tcInputFile como "archivo.vcx::clase"
|
c_ClassToConvert = '' && Guarda el nombre de la clase a convertir, indicada en tcInputFile como "archivo.vcx::clase"
|
||||||
|
c_ClassOperationType = '' && (I)mport o (E)xport. Se usa solo para manejar clases individuales.
|
||||||
c_OriginalFileName = ''
|
c_OriginalFileName = ''
|
||||||
c_LogFile = ADDBS( SYS(2023) ) + 'FoxBin2Prg_Debug.LOG'
|
c_LogFile = ''
|
||||||
c_ErrorLogFile = ADDBS( SYS(2023) ) + 'FoxBin2Prg_Error.LOG'
|
c_ErrorLogFile = ''
|
||||||
c_TextLog = ''
|
c_TextLog = ''
|
||||||
c_OutputFile = ''
|
c_OutputFile = ''
|
||||||
c_Recompile = '1'
|
c_Recompile = '1'
|
||||||
@@ -775,6 +789,7 @@ DEFINE CLASS c_foxbin2prg AS Session
|
|||||||
lFileMode = .F.
|
lFileMode = .F.
|
||||||
n_ExisteCapitalizacion = -1
|
n_ExisteCapitalizacion = -1
|
||||||
l_CFG_CachedAccess = .F.
|
l_CFG_CachedAccess = .F.
|
||||||
|
n_CFG_EvaluateFromParam = 0
|
||||||
n_Debug = 0
|
n_Debug = 0
|
||||||
l_Error = .F. && Indicador de errores del proceso actual
|
l_Error = .F. && Indicador de errores del proceso actual
|
||||||
l_Errors = .F. && Indicador de error de la sesión actual, acumulativo de todos los procesos
|
l_Errors = .F. && Indicador de error de la sesión actual, acumulativo de todos los procesos
|
||||||
@@ -793,6 +808,7 @@ DEFINE CLASS c_foxbin2prg AS Session
|
|||||||
n_ExcludeDBFAutoincNextval = 0
|
n_ExcludeDBFAutoincNextval = 0
|
||||||
l_ClassPerFileCheck = .F.
|
l_ClassPerFileCheck = .F.
|
||||||
l_RedirectClassPerFileToMain = .F.
|
l_RedirectClassPerFileToMain = .F.
|
||||||
|
n_RedirectClassType = 0 && 0=Redireccionar Todas las clases, 1=Redireccionar solo la clase indicada
|
||||||
l_NoTimestamps = .T.
|
l_NoTimestamps = .T.
|
||||||
c_BackgroundImage = ''
|
c_BackgroundImage = ''
|
||||||
l_ClearUniqueID = .T.
|
l_ClearUniqueID = .T.
|
||||||
@@ -865,6 +881,14 @@ DEFINE CLASS c_foxbin2prg AS Session
|
|||||||
|
|
||||||
THIS.declareDLL()
|
THIS.declareDLL()
|
||||||
|
|
||||||
|
* Check if SYS(2023) point to "Program Files"
|
||||||
|
IF ATC("\PROGRAM FILES", THIS.c_TempDir) > 0 OR ATC("\ARCHIVOS DE PROGRAMA", THIS.c_TempDir) > 0
|
||||||
|
THIS.c_TempDir = GETENV("TEMP")
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
THIS.c_LogFile = ADDBS( THIS.c_TempDir ) + 'FoxBin2Prg_Debug.LOG'
|
||||||
|
THIS.c_ErrorLogFile = ADDBS( THIS.c_TempDir ) + 'FoxBin2Prg_Error.LOG'
|
||||||
|
|
||||||
IF ADIR(laDir, THIS.c_ErrorLogFile) > 0 THEN
|
IF ADIR(laDir, THIS.c_ErrorLogFile) > 0 THEN
|
||||||
IF ADIR(laDir, THIS.c_ErrorLogFile + '.BAK') > 0 THEN
|
IF ADIR(laDir, THIS.c_ErrorLogFile + '.BAK') > 0 THEN
|
||||||
THIS.changeFileAttribute( THIS.c_ErrorLogFile + '.BAK', '-R-S-H' )
|
THIS.changeFileAttribute( THIS.c_ErrorLogFile + '.BAK', '-R-S-H' )
|
||||||
@@ -1198,6 +1222,15 @@ DEFINE CLASS c_foxbin2prg AS Session
|
|||||||
ENDPROC
|
ENDPROC
|
||||||
|
|
||||||
|
|
||||||
|
PROCEDURE n_RedirectClassType_ACCESS
|
||||||
|
IF THIS.n_CFG_Actual = 0 OR ISNULL( THIS.o_Configuration( THIS.n_CFG_Actual ) )
|
||||||
|
RETURN THIS.n_RedirectClassType
|
||||||
|
ELSE
|
||||||
|
RETURN NVL( THIS.o_Configuration( THIS.n_CFG_Actual ).n_RedirectClassType, THIS.n_RedirectClassType )
|
||||||
|
ENDIF
|
||||||
|
ENDPROC
|
||||||
|
|
||||||
|
|
||||||
PROCEDURE l_RemoveNullCharsFromCode_ACCESS
|
PROCEDURE l_RemoveNullCharsFromCode_ACCESS
|
||||||
IF THIS.n_CFG_Actual = 0 OR ISNULL( THIS.o_Configuration( THIS.n_CFG_Actual ) )
|
IF THIS.n_CFG_Actual = 0 OR ISNULL( THIS.o_Configuration( THIS.n_CFG_Actual ) )
|
||||||
RETURN THIS.l_RemoveNullCharsFromCode
|
RETURN THIS.l_RemoveNullCharsFromCode
|
||||||
@@ -1814,6 +1847,7 @@ DEFINE CLASS c_foxbin2prg AS Session
|
|||||||
LOCAL lcConfigFile, llExiste_CFG_EnDisco, laConfig(1), I, lcConfData, lcExt, lcValue, lc_CFG_Path, lcConfigLine, laDirInfo(1,5) ;
|
LOCAL lcConfigFile, llExiste_CFG_EnDisco, laConfig(1), I, lcConfData, lcExt, lcValue, lc_CFG_Path, lcConfigLine, laDirInfo(1,5) ;
|
||||||
, lnDirs, laDirs(1), llMasterEval, lcProp ;
|
, lnDirs, laDirs(1), llMasterEval, lcProp ;
|
||||||
, lo_CFG AS CL_CFG OF 'FOXBIN2PRG.PRG' ;
|
, lo_CFG AS CL_CFG OF 'FOXBIN2PRG.PRG' ;
|
||||||
|
, loCFG_Manual AS CL_CFG OF 'FOXBIN2PRG.PRG' ;
|
||||||
, lo_Configuration AS Collection ;
|
, lo_Configuration AS Collection ;
|
||||||
, loLang as CL_LANG OF 'FOXBIN2PRG.PRG' ;
|
, loLang as CL_LANG OF 'FOXBIN2PRG.PRG' ;
|
||||||
, loEx as Exception
|
, loEx as Exception
|
||||||
@@ -1828,6 +1862,15 @@ DEFINE CLASS c_foxbin2prg AS Session
|
|||||||
tcInputFile_Type = EVL(tcInputFile_Type,'')
|
tcInputFile_Type = EVL(tcInputFile_Type,'')
|
||||||
lo_Configuration = .o_Configuration
|
lo_Configuration = .o_Configuration
|
||||||
|
|
||||||
|
IF VARTYPE(lcConfigFile) = "O"
|
||||||
|
loCFG_Manual = lcConfigFile && lcConfigFile is an object CFG generated by get_DirSettings()
|
||||||
|
toParentCFG = loCFG_Manual
|
||||||
|
lcConfigFile = FULLPATH('Personalized-CFG-Object', tc_InputFile)
|
||||||
|
loCFG_Manual.c_Foxbin2prg_ConfigFile = 'Personalized-CFG-Object'
|
||||||
|
ELSE
|
||||||
|
loCFG_Manual = NULL
|
||||||
|
ENDIF
|
||||||
|
|
||||||
IF VARTYPE(toParentCFG) <> 'O' THEN
|
IF VARTYPE(toParentCFG) <> 'O' THEN
|
||||||
toParentCFG = NULL
|
toParentCFG = NULL
|
||||||
ENDIF
|
ENDIF
|
||||||
@@ -1851,10 +1894,24 @@ DEFINE CLASS c_foxbin2prg AS Session
|
|||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
IF .l_Main_CFG_Loaded AND NOT EMPTY(tc_InputFile) AND NOT tcInputFile_Type == C_FILETYPE_QUERYSUPPORT THEN
|
IF .l_Main_CFG_Loaded AND NOT EMPTY(tc_InputFile) AND NOT tcInputFile_Type == C_FILETYPE_QUERYSUPPORT THEN
|
||||||
IF tcInputFile_Type == C_FILETYPE_DIRECTORY THEN
|
IF .n_CFG_EvaluateFromParam = 1
|
||||||
lcConfigFile = FULLPATH( 'foxbin2prg.cfg', ADDBS(tc_InputFile) )
|
* Si se indicó por parámetro (modo objeto), usarlo como Maestro
|
||||||
|
* Se saltea solo esta evaluación, y luego se usa la variable para determinar el Nº de CFG a usar.
|
||||||
|
.n_CFG_EvaluateFromParam = -1 && Luego se cambia por el Nº de CFG que corresponda.
|
||||||
ELSE
|
ELSE
|
||||||
lcConfigFile = FULLPATH( 'foxbin2prg.cfg', tc_InputFile )
|
IF tcInputFile_Type == C_FILETYPE_DIRECTORY THEN
|
||||||
|
* INDICÓ DIRECTORIO
|
||||||
|
IF ISNULL(loCFG_Manual)
|
||||||
|
*lcConfigFile = FULLPATH( 'foxbin2prg.cfg', ADDBS(tc_InputFile) )
|
||||||
|
lcConfigFile = FULLPATH( JUSTFNAME(lcConfigFile), ADDBS(tc_InputFile) )
|
||||||
|
ENDIF
|
||||||
|
ELSE
|
||||||
|
* INDICÓ ARCHIVO
|
||||||
|
IF ISNULL(loCFG_Manual)
|
||||||
|
*lcConfigFile = FULLPATH( 'foxbin2prg.cfg', tc_InputFile )
|
||||||
|
lcConfigFile = FULLPATH( JUSTFNAME(lcConfigFile), tc_InputFile )
|
||||||
|
ENDIF
|
||||||
|
ENDIF
|
||||||
ENDIF
|
ENDIF
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
@@ -1868,11 +1925,22 @@ DEFINE CLASS c_foxbin2prg AS Session
|
|||||||
IF .l_Main_CFG_Loaded
|
IF .l_Main_CFG_Loaded
|
||||||
|
|
||||||
IF lo_Configuration.Count > 0 THEN
|
IF lo_Configuration.Count > 0 THEN
|
||||||
.n_CFG_Actual = lo_Configuration.GetKey( lc_CFG_Path ) && 0 = No hay CFG cacheada, >0 = Hay CFG cacheada
|
IF .n_CFG_EvaluateFromParam > 1
|
||||||
|
* Especial: Si hay una configuración de bloqueo (CFG Manual), se usa
|
||||||
|
.n_CFG_Actual = .n_CFG_EvaluateFromParam
|
||||||
|
ELSE
|
||||||
|
* Normalmente se buscará el CFG del directorio analizado
|
||||||
|
.n_CFG_Actual = lo_Configuration.GetKey( lc_CFG_Path ) && 0 = No hay CFG cacheada, >0 = Hay CFG cacheada
|
||||||
|
ENDIF
|
||||||
|
|
||||||
IF .n_CFG_Actual > 0 THEN
|
IF .n_CFG_Actual > 0 THEN
|
||||||
lo_CFG = lo_Configuration.Item(.n_CFG_Actual)
|
lo_CFG = lo_Configuration.Item(.n_CFG_Actual)
|
||||||
.l_CFG_CachedAccess = .T.
|
.l_CFG_CachedAccess = .T.
|
||||||
|
|
||||||
|
IF NOT ISNULL(loCFG_Manual)
|
||||||
|
* Si le paso un objeto CFG, prevalece sobre el guardado
|
||||||
|
lo_CFG.CopyFrom(@loCFG_Manual)
|
||||||
|
ENDIF
|
||||||
ENDIF
|
ENDIF
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
@@ -2072,6 +2140,13 @@ DEFINE CLASS c_foxbin2prg AS Session
|
|||||||
.writeLog( C_TAB + JUSTFNAME(lcConfigFile) + ' > RedirectClassPerFileToMain: ' + TRANSFORM(lcValue) )
|
.writeLog( C_TAB + JUSTFNAME(lcConfigFile) + ' > RedirectClassPerFileToMain: ' + TRANSFORM(lcValue) )
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
|
CASE LEFT( laConfig(I), 18 ) == LOWER('RedirectClassType:')
|
||||||
|
lcValue = ALLTRIM( SUBSTR( laConfig(I), 19 ) )
|
||||||
|
IF INLIST( lcValue, '0', '1' ) THEN
|
||||||
|
lo_CFG.n_RedirectClassType = INT( VAL( lcValue ) )
|
||||||
|
.writeLog( C_TAB + JUSTFNAME(lcConfigFile) + ' > RedirectClassType: ' + TRANSFORM(lcValue) )
|
||||||
|
ENDIF
|
||||||
|
|
||||||
CASE LEFT( laConfig(I), 24 ) == LOWER('RemoveNullCharsFromCode:')
|
CASE LEFT( laConfig(I), 24 ) == LOWER('RemoveNullCharsFromCode:')
|
||||||
lcValue = ALLTRIM( SUBSTR( laConfig(I), 25 ) )
|
lcValue = ALLTRIM( SUBSTR( laConfig(I), 25 ) )
|
||||||
IF INLIST( lcValue, '0', '1' ) THEN
|
IF INLIST( lcValue, '0', '1' ) THEN
|
||||||
@@ -2213,7 +2288,13 @@ DEFINE CLASS c_foxbin2prg AS Session
|
|||||||
|
|
||||||
.l_Main_CFG_Loaded = .T.
|
.l_Main_CFG_Loaded = .T.
|
||||||
|
|
||||||
IF NOT llMasterEval
|
IF llMasterEval
|
||||||
|
* Si se inidicó un archivo CFG por parámetro (modo objeto), aqui se bloquea
|
||||||
|
* al Nº de configuración correspondiente.
|
||||||
|
IF .n_CFG_EvaluateFromParam = -1
|
||||||
|
.n_CFG_EvaluateFromParam = .n_CFG_Actual
|
||||||
|
ENDIF
|
||||||
|
ELSE
|
||||||
*-- Si no es llMasterEval, es porque esta llamada es cíclica desde este mismo método,
|
*-- Si no es llMasterEval, es porque esta llamada es cíclica desde este mismo método,
|
||||||
*-- y no hay parámetros para evaluar, ya que se mandan todos vacíos desde el inicial.
|
*-- y no hay parámetros para evaluar, ya que se mandan todos vacíos desde el inicial.
|
||||||
EXIT
|
EXIT
|
||||||
@@ -2232,6 +2313,7 @@ DEFINE CLASS c_foxbin2prg AS Session
|
|||||||
.writeLog( C_TAB + 'n_UseClassPerFile: ' + TRANSFORM(.n_UseClassPerFile) )
|
.writeLog( C_TAB + 'n_UseClassPerFile: ' + TRANSFORM(.n_UseClassPerFile) )
|
||||||
.writeLog( C_TAB + 'l_ClassPerFileCheck: ' + TRANSFORM(.l_ClassPerFileCheck) )
|
.writeLog( C_TAB + 'l_ClassPerFileCheck: ' + TRANSFORM(.l_ClassPerFileCheck) )
|
||||||
.writeLog( C_TAB + 'l_RedirectClassPerFileToMain: ' + TRANSFORM(.l_RedirectClassPerFileToMain) )
|
.writeLog( C_TAB + 'l_RedirectClassPerFileToMain: ' + TRANSFORM(.l_RedirectClassPerFileToMain) )
|
||||||
|
.writeLog( C_TAB + 'n_RedirectClassType: ' + TRANSFORM(.n_RedirectClassType) )
|
||||||
.writeLog( C_TAB + 'n_Debug: ' + TRANSFORM(.n_Debug) )
|
.writeLog( C_TAB + 'n_Debug: ' + TRANSFORM(.n_Debug) )
|
||||||
.writeLog( C_TAB + 'n_ExtraBackupLevels: ' + TRANSFORM(.n_ExtraBackupLevels) )
|
.writeLog( C_TAB + 'n_ExtraBackupLevels: ' + TRANSFORM(.n_ExtraBackupLevels) )
|
||||||
.writeLog( C_TAB + 'c_BackgroundImage: ' + TRANSFORM(.c_BackgroundImage) )
|
.writeLog( C_TAB + 'c_BackgroundImage: ' + TRANSFORM(.c_BackgroundImage) )
|
||||||
@@ -2537,8 +2619,8 @@ DEFINE CLASS c_foxbin2prg AS Session
|
|||||||
, lcExt == .c_LB2, .LBX_Conversion_Support = 2 ;
|
, lcExt == .c_LB2, .LBX_Conversion_Support = 2 ;
|
||||||
, lcExt == .c_MN2, .MNX_Conversion_Support = 2 ;
|
, lcExt == .c_MN2, .MNX_Conversion_Support = 2 ;
|
||||||
, lcExt == .c_DB2, NOT ISNULL(loDBF_CFG) AND INLIST(loDBF_CFG.DBF_Conversion_Support, 2, 8) ;
|
, lcExt == .c_DB2, NOT ISNULL(loDBF_CFG) AND INLIST(loDBF_CFG.DBF_Conversion_Support, 2, 8) ;
|
||||||
OR (INLIST(.DBF_Conversion_Support, 2, 8) ;
|
OR (INLIST(.DBF_Conversion_Support, 2, 8) ;
|
||||||
AND (ISNULL(loDBF_CFG) OR NOT INLIST(loDBF_CFG.DBF_Conversion_Support, 1, 4))) ;
|
AND (ISNULL(loDBF_CFG) OR NOT INLIST(loDBF_CFG.DBF_Conversion_Support, 1, 4))) ;
|
||||||
, lcExt == .c_DC2, .DBC_Conversion_Support = 2 ;
|
, lcExt == .c_DC2, .DBC_Conversion_Support = 2 ;
|
||||||
, .F. )
|
, .F. )
|
||||||
ENDWITH && THIS
|
ENDWITH && THIS
|
||||||
@@ -2637,6 +2719,7 @@ DEFINE CLASS c_foxbin2prg AS Session
|
|||||||
, lnFileCount, lcErrorInfo, lcErrorFile, lnPCount, laParams(1), lnConversionOption, lnErrorIcon, llError ;
|
, lnFileCount, lcErrorInfo, lcErrorFile, lnPCount, laParams(1), lnConversionOption, lnErrorIcon, llError ;
|
||||||
, lcOldSetEscape, lcOldOnEscape, llEscKeyRestored ;
|
, lcOldSetEscape, lcOldOnEscape, llEscKeyRestored ;
|
||||||
, loEx AS EXCEPTION ;
|
, loEx AS EXCEPTION ;
|
||||||
|
, loCFG AS CL_CFG OF 'FOXBIN2PRG.PRG' ;
|
||||||
, loFSO AS Scripting.FileSystemObject ;
|
, loFSO AS Scripting.FileSystemObject ;
|
||||||
, loLang AS CL_LANG OF 'FOXBIN2PRG.PRG' ;
|
, loLang AS CL_LANG OF 'FOXBIN2PRG.PRG' ;
|
||||||
, loFrm_Interactive AS frm_interactive OF 'FOXBIN2PRG.PRG' ;
|
, loFrm_Interactive AS frm_interactive OF 'FOXBIN2PRG.PRG' ;
|
||||||
@@ -2651,6 +2734,7 @@ DEFINE CLASS c_foxbin2prg AS Session
|
|||||||
loLang = _SCREEN.o_FoxBin2Prg_Lang
|
loLang = _SCREEN.o_FoxBin2Prg_Lang
|
||||||
loFSO = .o_FSO
|
loFSO = .o_FSO
|
||||||
loWSH = .o_WSH
|
loWSH = .o_WSH
|
||||||
|
loCFG = NULL
|
||||||
lnPCount = 0
|
lnPCount = 0
|
||||||
lcInputFile_Type = ''
|
lcInputFile_Type = ''
|
||||||
.l_Error = .F.
|
.l_Error = .F.
|
||||||
@@ -2703,12 +2787,31 @@ DEFINE CLASS c_foxbin2prg AS Session
|
|||||||
*ENDIF
|
*ENDIF
|
||||||
|
|
||||||
*-- Reconocimiento de la clase indicada
|
*-- Reconocimiento de la clase indicada
|
||||||
|
*-- Ej: [c:\desa\test\library.vcx::classname]
|
||||||
IF '::' $ tc_InputFile THEN
|
IF '::' $ tc_InputFile THEN
|
||||||
.c_ClassToConvert = LOWER( ALLTRIM( GETWORDNUM( tc_InputFile, 2, '::' ) ) )
|
tc_InputFile = STRTRAN(tc_InputFile, '::', '|')
|
||||||
tc_InputFile = LOWER( ALLTRIM( GETWORDNUM( tc_InputFile, 1, '::' ) ) )
|
.c_ClassOperationType = EVL( UPPER( LEFT( ALLTRIM( GETWORDNUM( tc_InputFile, 3, '|' ) ), 1) ), 'E')
|
||||||
|
.c_ClassToConvert = LOWER( ALLTRIM( GETWORDNUM( tc_InputFile, 2, '|' ) ) )
|
||||||
|
* CUIDADO!, evaluar esta última, que si no las anteriores no evalúan.
|
||||||
|
tc_InputFile = LOWER( ALLTRIM( GETWORDNUM( tc_InputFile, 1, '|' ) ) )
|
||||||
|
ELSE
|
||||||
|
.c_ClassOperationType = ''
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
.c_Foxbin2prg_ConfigFile = EVL( tcCFG_File, .c_Foxbin2prg_ConfigFile )
|
IF VARTYPE(tcCFG_File) = "O"
|
||||||
|
* Validar el objeto
|
||||||
|
loCFG = tcCFG_File
|
||||||
|
IF NOT (loCFG.Class == PROPER('CL_CFG'))
|
||||||
|
ERROR 'CFG object: Invalid class. Please, generate it with get_DirSettings()'
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
.c_Foxbin2prg_ConfigFile = loCFG
|
||||||
|
.n_CFG_EvaluateFromParam = 1
|
||||||
|
|
||||||
|
ELSE
|
||||||
|
.c_Foxbin2prg_ConfigFile = EVL( tcCFG_File, .c_Foxbin2prg_ConfigFile )
|
||||||
|
.n_CFG_EvaluateFromParam = (IIF(EMPTY(tcCFG_File), 0, 1))
|
||||||
|
ENDIF
|
||||||
|
|
||||||
*-- Ajusto la ruta si no es absoluta
|
*-- Ajusto la ruta si no es absoluta
|
||||||
tc_InputFile = .get_AbsolutePath( tc_InputFile, .c_CurDir )
|
tc_InputFile = .get_AbsolutePath( tc_InputFile, .c_CurDir )
|
||||||
@@ -2764,6 +2867,23 @@ DEFINE CLASS c_foxbin2prg AS Session
|
|||||||
.evaluateConfiguration( @tcDontShowProgress, @tcDontShowErrors, @tcNoTimestamps, @tcDebug, @tcRecompile, @tcBackupLevels ;
|
.evaluateConfiguration( @tcDontShowProgress, @tcDontShowErrors, @tcNoTimestamps, @tcDebug, @tcRecompile, @tcBackupLevels ;
|
||||||
, @tcClearUniqueID, @tcOptimizeByFilestamp, @tc_InputFile, @lcInputFile_Type )
|
, @tcClearUniqueID, @tcOptimizeByFilestamp, @tc_InputFile, @lcInputFile_Type )
|
||||||
|
|
||||||
|
* Redefinir nombre archivo de entrada según el tipo de conversión (IMPORT/EXPORT)
|
||||||
|
IF .c_ClassOperationType = 'I'
|
||||||
|
* En el caso de importar, debo cambiar la sintaxis de tc_InputFile para poder usar
|
||||||
|
* la conversión existente de clase vc2
|
||||||
|
IF .n_UseClassPerFile = 2
|
||||||
|
tc_InputFile = FORCEEXT(tc_InputFile, '') + '.*.' + .c_ClassToConvert + '.' + .c_VC2
|
||||||
|
|
||||||
|
IF ADIR(laFiles, tc_InputFile) = 1
|
||||||
|
tc_InputFile = FULLPATH( laFiles(1,1), tc_InputFile )
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
ELSE && Asumo .n_UseClassPerFile = 1
|
||||||
|
tc_InputFile = FORCEEXT(tc_InputFile, '') + '.' + .c_ClassToConvert + '.' + .c_VC2
|
||||||
|
|
||||||
|
ENDIF
|
||||||
|
ENDIF
|
||||||
|
|
||||||
loLang = _SCREEN.o_FoxBin2Prg_Lang
|
loLang = _SCREEN.o_FoxBin2Prg_Lang
|
||||||
|
|
||||||
DO CASE
|
DO CASE
|
||||||
@@ -3585,10 +3705,16 @@ DEFINE CLASS c_foxbin2prg AS Session
|
|||||||
lcForceAttribs = lcForceAttribs + '-R'
|
lcForceAttribs = lcForceAttribs + '-R'
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
|
|
||||||
*-- OPTIMIZACIÓN VC2/SC2/DC2: VERIFICO SI EL ARCHIVO BASE FUE PROCESADO PARA DESCARTAR REPROCESOS
|
*-- OPTIMIZACIÓN VC2/SC2/DC2: VERIFICO SI EL ARCHIVO BASE FUE PROCESADO PARA DESCARTAR REPROCESOS
|
||||||
IF .n_UseClassPerFile > 0 AND .l_RedirectClassPerFileToMain THEN
|
IF .n_UseClassPerFile > 0 AND .l_RedirectClassPerFileToMain THEN
|
||||||
DO CASE
|
DO CASE
|
||||||
|
CASE .n_RedirectClassType = 1 && Redireccionar solo esta clase
|
||||||
|
IF OCCURS('.', JUSTSTEM(.c_InputFile)) = 0 THEN
|
||||||
|
lc_BaseFile = .c_InputFile
|
||||||
|
ELSE
|
||||||
|
lc_BaseFile = FORCEPATH( FORCEEXT( JUSTSTEM( JUSTSTEM(.c_InputFile) ), JUSTEXT(.c_InputFile)) , JUSTPATH(.c_InputFile) )
|
||||||
|
ENDIF
|
||||||
|
|
||||||
CASE .n_UseClassPerFile = 1 AND INLIST(lcExtension,.c_VC2,.c_SC2)
|
CASE .n_UseClassPerFile = 1 AND INLIST(lcExtension,.c_VC2,.c_SC2)
|
||||||
IF OCCURS('.', JUSTSTEM(.c_InputFile)) = 0 THEN
|
IF OCCURS('.', JUSTSTEM(.c_InputFile)) = 0 THEN
|
||||||
lc_BaseFile = .c_InputFile
|
lc_BaseFile = .c_InputFile
|
||||||
@@ -3955,8 +4081,8 @@ DEFINE CLASS c_foxbin2prg AS Session
|
|||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
IF ISNULL(loCFG) THEN
|
IF ISNULL(loCFG) THEN
|
||||||
lo_CFG = CREATEOBJECT('CL_CFG')
|
loCFG = CREATEOBJECT('CL_CFG')
|
||||||
lo_CFG.CopyFrom(THIS)
|
loCFG.CopyFrom(THIS)
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
RETURN loCFG
|
RETURN loCFG
|
||||||
@@ -6313,10 +6439,10 @@ DEFINE CLASS c_conversor_base AS Custom
|
|||||||
|
|
||||||
|
|
||||||
PROCEDURE fileTypeCode
|
PROCEDURE fileTypeCode
|
||||||
LPARAMETERS tcExtension
|
LPARAMETERS tcExtension, tcOriginalType
|
||||||
tcExtension = UPPER(tcExtension)
|
tcExtension = UPPER(tcExtension)
|
||||||
RETURN ICASE( tcExtension = 'DBC', 'd' ;
|
RETURN ICASE( tcExtension = 'DBC', 'd' ;
|
||||||
, tcExtension = 'DBF', 'D' ;
|
, tcExtension = 'DBF', EVL(tcOriginalType, 'D') ;
|
||||||
, tcExtension = 'QPR', 'Q' ;
|
, tcExtension = 'QPR', 'Q' ;
|
||||||
, tcExtension = 'SCX', 'K' ;
|
, tcExtension = 'SCX', 'K' ;
|
||||||
, tcExtension = 'FRX', 'R' ;
|
, tcExtension = 'FRX', 'R' ;
|
||||||
@@ -7754,6 +7880,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
|||||||
, RESERVED2 ;
|
, RESERVED2 ;
|
||||||
, SCCDATA ;
|
, SCCDATA ;
|
||||||
, LOCAL ;
|
, LOCAL ;
|
||||||
|
, USER ;
|
||||||
, KEY ) ;
|
, KEY ) ;
|
||||||
VALUES ;
|
VALUES ;
|
||||||
( UPPER(EVL(THIS.c_OriginalFileName,THIS.c_OutputFile)) ;
|
( UPPER(EVL(THIS.c_OriginalFileName,THIS.c_OutputFile)) ;
|
||||||
@@ -7773,6 +7900,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
|||||||
, toProject._ServerHead.getRowServerInfo() ;
|
, toProject._ServerHead.getRowServerInfo() ;
|
||||||
, toProject._SccData ;
|
, toProject._SccData ;
|
||||||
, .T. ;
|
, .T. ;
|
||||||
|
, STRCONV(toProject._User,14) ;
|
||||||
, UPPER( JUSTSTEM( THIS.c_OutputFile) ) )
|
, UPPER( JUSTSTEM( THIS.c_OutputFile) ) )
|
||||||
|
|
||||||
ENDPROC
|
ENDPROC
|
||||||
@@ -8323,7 +8451,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
|||||||
lnSelect = SELECT()
|
lnSelect = SELECT()
|
||||||
SELECT 0
|
SELECT 0
|
||||||
USE (THIS.c_InputFile) SHARED AGAIN ALIAS _TABLABIN
|
USE (THIS.c_InputFile) SHARED AGAIN ALIAS _TABLABIN
|
||||||
COPY STRUCTURE EXTENDED TO ( FORCEPATH( '_FRX_STRUC.DBF', ADDBS( SYS(2023) ) ) )
|
COPY STRUCTURE EXTENDED TO ( FORCEPATH( '_FRX_STRUC.DBF', ADDBS( THIS.c_TempDir ) ) )
|
||||||
**** CONTINUAR SI ES NECESARIO - SIN USO POR AHORA /// DO NOT USE - NOT IMPLEMENTED!
|
**** CONTINUAR SI ES NECESARIO - SIN USO POR AHORA /// DO NOT USE - NOT IMPLEMENTED!
|
||||||
|
|
||||||
CATCH TO loEx
|
CATCH TO loEx
|
||||||
@@ -8462,7 +8590,8 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
|||||||
, RESERVED6 ;
|
, RESERVED6 ;
|
||||||
, RESERVED7 ;
|
, RESERVED7 ;
|
||||||
, RESERVED8 ;
|
, RESERVED8 ;
|
||||||
, USER) ;
|
, USER ;
|
||||||
|
, DEVINFO ) ;
|
||||||
VALUES ;
|
VALUES ;
|
||||||
( 'WINDOWS' ;
|
( 'WINDOWS' ;
|
||||||
, toObjeto._UniqueID ;
|
, toObjeto._UniqueID ;
|
||||||
@@ -8485,7 +8614,8 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
|||||||
, '' ;
|
, '' ;
|
||||||
, '' ;
|
, '' ;
|
||||||
, '' ;
|
, '' ;
|
||||||
, toObjeto._User )
|
, STRCONV(toObjeto._User,14) ;
|
||||||
|
, STRCONV(toObjeto._DevInfo,14) )
|
||||||
ENDIF
|
ENDIF
|
||||||
ENDWITH && THIS
|
ENDWITH && THIS
|
||||||
|
|
||||||
@@ -9836,7 +9966,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
|||||||
|
|
||||||
*-- Verificación de las Clases, si son Externas y se indicó chequearlas
|
*-- Verificación de las Clases, si son Externas y se indicó chequearlas
|
||||||
DO CASE
|
DO CASE
|
||||||
CASE toFoxBin2Prg.n_UseClassPerFile = 1 AND toFoxBin2Prg.l_ClassPerFileCheck
|
CASE toFoxBin2Prg.n_UseClassPerFile = 1 AND toFoxBin2Prg.l_ClassPerFileCheck AND EMPTY(toFoxBin2Prg.c_ClassOperationType)
|
||||||
*-- El ClassPerFile original, con nomenclatura 'Libreria.NombreClase.vc2'
|
*-- El ClassPerFile original, con nomenclatura 'Libreria.NombreClase.vc2'
|
||||||
FOR I = 1 TO toModulo._ExternalClasses_Count
|
FOR I = 1 TO toModulo._ExternalClasses_Count
|
||||||
lnItem = 0
|
lnItem = 0
|
||||||
@@ -9857,7 +9987,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
|||||||
toModulo._Clases(lnItem)._Checked = .T.
|
toModulo._Clases(lnItem)._Checked = .T.
|
||||||
ENDFOR
|
ENDFOR
|
||||||
|
|
||||||
CASE toFoxBin2Prg.n_UseClassPerFile = 2 AND toFoxBin2Prg.l_ClassPerFileCheck
|
CASE toFoxBin2Prg.n_UseClassPerFile = 2 AND toFoxBin2Prg.l_ClassPerFileCheck AND EMPTY(toFoxBin2Prg.c_ClassOperationType)
|
||||||
*-- El nuevo ClassPerFile, con nomenclatura 'Libreria.ClaseBase.NombreClase.vc2'
|
*-- El nuevo ClassPerFile, con nomenclatura 'Libreria.ClaseBase.NombreClase.vc2'
|
||||||
FOR I = 1 TO toModulo._ExternalClasses_Count
|
FOR I = 1 TO toModulo._ExternalClasses_Count
|
||||||
lnItem = 0
|
lnItem = 0
|
||||||
@@ -9914,7 +10044,7 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin
|
|||||||
|
|
||||||
TRY
|
TRY
|
||||||
LOCAL lnCodError, laCodeLines(1), lnCodeLines, lcInputFile, lcInputFile_Class, lnFileCount, laFiles(1,5) ;
|
LOCAL lnCodError, laCodeLines(1), lnCodeLines, lcInputFile, lcInputFile_Class, lnFileCount, laFiles(1,5) ;
|
||||||
, laLineasExclusion(1), lnBloquesExclusion, I, lcClassName, lnIDInputFile ;
|
, laLineasExclusion(1), lnBloquesExclusion, I, lcClassName, lnIDInputFile, llReplaceClass ;
|
||||||
, loLang as CL_LANG OF 'FOXBIN2PRG.PRG'
|
, loLang as CL_LANG OF 'FOXBIN2PRG.PRG'
|
||||||
|
|
||||||
WITH THIS AS c_conversor_prg_a_vcx OF 'FOXBIN2PRG.PRG'
|
WITH THIS AS c_conversor_prg_a_vcx OF 'FOXBIN2PRG.PRG'
|
||||||
@@ -9927,29 +10057,39 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin
|
|||||||
lnIDInputFile = toFoxBin2Prg.n_ProcessedFiles
|
lnIDInputFile = toFoxBin2Prg.n_ProcessedFiles
|
||||||
|
|
||||||
IF toFoxBin2Prg.n_UseClassPerFile > 0 AND toFoxBin2Prg.l_RedirectClassPerFileToMain
|
IF toFoxBin2Prg.n_UseClassPerFile > 0 AND toFoxBin2Prg.l_RedirectClassPerFileToMain
|
||||||
C_FB2PRG_CODE = FILETOSTR( .c_InputFile )
|
IF toFoxBin2Prg.n_RedirectClassType = 0 && Redireccionar todas las clases
|
||||||
|
C_FB2PRG_CODE = FILETOSTR( .c_InputFile )
|
||||||
|
|
||||||
lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE )
|
lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE )
|
||||||
|
|
||||||
.updateProgressbar( 'Identifying Header Blocks...', 1, lnCodeLines, 1 )
|
.updateProgressbar( 'Identifying Header Blocks...', 1, lnCodeLines, 1 )
|
||||||
.identifyHeaderBlocks( @laCodeLines, lnCodeLines, @laLineasExclusion, lnBloquesExclusion, @toModulo, @toFoxBin2Prg )
|
.identifyHeaderBlocks( @laCodeLines, lnCodeLines, @laLineasExclusion, lnBloquesExclusion, @toModulo, @toFoxBin2Prg )
|
||||||
|
|
||||||
.updateProgressbar( 'Loading Code...', 2, lnCodeLines, 1 )
|
.updateProgressbar( 'Loading Code...', 2, lnCodeLines, 1 )
|
||||||
|
ENDIF
|
||||||
|
|
||||||
*-- MÁSCARA DE BÚSQUEDA
|
*-- MÁSCARA DE BÚSQUEDA
|
||||||
IF toFoxBin2Prg.n_UseClassPerFile = 1 THEN
|
IF toFoxBin2Prg.n_UseClassPerFile = 1 THEN
|
||||||
*-- Esto crea la máscara de búsqueda "filename.*.ext" para encontrar las partes
|
*-- Esto crea la máscara de búsqueda "filename.*.ext" para encontrar las partes
|
||||||
|
*-- con la sintaxis "<path>Classlib.Classname.ext" o "<path>Database.MemberName.ext"
|
||||||
lcBaseFilename = JUSTSTEM( JUSTSTEM(.c_InputFile) )
|
lcBaseFilename = JUSTSTEM( JUSTSTEM(.c_InputFile) )
|
||||||
lcInputFile = ADDBS( JUSTPATH(.c_InputFile) ) + lcBaseFilename + '.*.' + JUSTEXT(.c_InputFile)
|
lcInputFile = ADDBS( JUSTPATH(.c_InputFile) ) + lcBaseFilename + '.*.' + JUSTEXT(.c_InputFile)
|
||||||
ELSE && toFoxBin2Prg.n_UseClassPerFile = 2
|
ELSE && toFoxBin2Prg.n_UseClassPerFile = 2
|
||||||
*-- Esto crea la m<EFBFBD>scara de b<EFBFBD>squeda "<path>Database.*.*.ext" para encontrar las partes
|
*-- Esto crea la máscara de búsqueda "<path>filename.*.*.ext" para encontrar las partes
|
||||||
*-- con la sintaxis "<path>Database.MemberType.MemberName.ext"
|
*-- con la sintaxis "<path>Classlib.ClassType.Classname.ext" o "<path>Database.MemberType.MemberName.ext"
|
||||||
lcBaseFilename = JUSTSTEM( JUSTSTEM( JUSTSTEM(.c_InputFile) ) )
|
lcBaseFilename = JUSTSTEM( JUSTSTEM( JUSTSTEM(.c_InputFile) ) )
|
||||||
lcInputFile = ADDBS( JUSTPATH(.c_InputFile) ) + lcBaseFilename + '.*.*.' + JUSTEXT(.c_InputFile)
|
lcInputFile = ADDBS( JUSTPATH(.c_InputFile) ) + lcBaseFilename + '.*.*.' + JUSTEXT(.c_InputFile)
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
|
IF toFoxBin2Prg.n_RedirectClassType = 1 && Redireccionar solo esta clase
|
||||||
|
lcInputFile = .c_InputFile
|
||||||
|
ENDIF
|
||||||
|
|
||||||
lnFileCount = ADIR( laFiles, lcInputFile, "", 1 )
|
lnFileCount = ADIR( laFiles, lcInputFile, "", 1 )
|
||||||
ASORT( laFiles, 1, 0, 0, 1)
|
|
||||||
|
IF lnFileCount > 1
|
||||||
|
ASORT( laFiles, 1, 0, 0, 1)
|
||||||
|
ENDIF
|
||||||
|
|
||||||
FOR I = 1 TO lnFileCount
|
FOR I = 1 TO lnFileCount
|
||||||
IF toFoxBin2Prg.n_UseClassPerFile = 1 THEN
|
IF toFoxBin2Prg.n_UseClassPerFile = 1 THEN
|
||||||
@@ -9957,20 +10097,22 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin
|
|||||||
lcClassName = LOWER( GETWORDNUM( JUSTFNAME( lcInputFile_Class ), 2, '.' ) )
|
lcClassName = LOWER( GETWORDNUM( JUSTFNAME( lcInputFile_Class ), 2, '.' ) )
|
||||||
|
|
||||||
*-- Verificación de las Clases, si son Externas y se indicó chequearlas
|
*-- Verificación de las Clases, si son Externas y se indicó chequearlas
|
||||||
IF toFoxBin2Prg.l_ClassPerFileCheck AND ASCAN( toModulo._ExternalClasses , lcClassName, 1, 0, 1, 1+2+4 ) = 0
|
IF toFoxBin2Prg.l_ClassPerFileCheck AND EMPTY(toFoxBin2Prg.c_ClassOperationType) ;
|
||||||
|
AND ASCAN( toModulo._ExternalClasses , lcClassName, 1, 0, 1, 1+2+4 ) = 0
|
||||||
.writeLog( C_TAB + '- ' + loLang.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC + ' [' + lcInputFile_Class + ']' )
|
.writeLog( C_TAB + '- ' + loLang.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC + ' [' + lcInputFile_Class + ']' )
|
||||||
.writeErrorLog( C_TAB + '- ' + loLang.C_WARNING_LOC + ' ' + loLang.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC + ' [' + lcInputFile_Class + ']' )
|
.writeErrorLog( C_TAB + '- ' + loLang.C_WARNING_LOC + ' ' + loLang.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC + ' [' + lcInputFile_Class + ']' )
|
||||||
LOOP && Salteo esta clase
|
LOOP && Salteo esta clase porque se indicó chequear y no concuerda con las anotadas
|
||||||
ENDIF
|
ENDIF
|
||||||
ELSE && toFoxBin2Prg.n_UseClassPerFile = 2
|
ELSE && toFoxBin2Prg.n_UseClassPerFile = 2
|
||||||
lcInputFile_Class = FORCEPATH( JUSTSTEM( laFiles(I,1) ), JUSTPATH( .c_InputFile ) ) + '.' + JUSTEXT( .c_InputFile )
|
lcInputFile_Class = FORCEPATH( JUSTSTEM( laFiles(I,1) ), JUSTPATH( .c_InputFile ) ) + '.' + JUSTEXT( .c_InputFile )
|
||||||
lcClassName = LOWER( GETWORDNUM( JUSTFNAME( lcInputFile_Class ), 2, '.' ) + '.' + GETWORDNUM( JUSTFNAME( lcInputFile_Class ), 3, '.' ) )
|
lcClassName = LOWER( GETWORDNUM( JUSTFNAME( lcInputFile_Class ), 2, '.' ) + '.' + GETWORDNUM( JUSTFNAME( lcInputFile_Class ), 3, '.' ) )
|
||||||
|
|
||||||
*-- Verificación de las Clases, si son Externas y se indicó chequearlas
|
*-- Verificación de las Clases, si son Externas y se indicó chequearlas
|
||||||
IF toFoxBin2Prg.l_ClassPerFileCheck AND ASCAN( toModulo._ExternalClasses , lcClassName, 1, 0, 2, 1+2+4 ) = 0
|
IF toFoxBin2Prg.l_ClassPerFileCheck AND EMPTY(toFoxBin2Prg.c_ClassOperationType) ;
|
||||||
|
AND ASCAN( toModulo._ExternalClasses , lcClassName, 1, 0, 2, 1+2+4 ) = 0
|
||||||
.writeLog( C_TAB + '- ' + loLang.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC + ' [' + lcInputFile_Class + ']' )
|
.writeLog( C_TAB + '- ' + loLang.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC + ' [' + lcInputFile_Class + ']' )
|
||||||
.writeErrorLog( C_TAB + '- ' + loLang.C_WARNING_LOC + ' ' + loLang.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC + ' [' + lcInputFile_Class + ']' )
|
.writeErrorLog( C_TAB + '- ' + loLang.C_WARNING_LOC + ' ' + loLang.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC + ' [' + lcInputFile_Class + ']' )
|
||||||
LOOP && Salteo esta clase porque no concuerda con las anotadas
|
LOOP && Salteo esta clase porque se indicó chequear y no concuerda con las anotadas
|
||||||
ENDIF
|
ENDIF
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
@@ -10030,9 +10172,23 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin
|
|||||||
|
|
||||||
toFoxBin2Prg.updateProcessedFile( lnIDInputFile )
|
toFoxBin2Prg.updateProcessedFile( lnIDInputFile )
|
||||||
.updateProgressbar( loLang.C_GENERATING_BINARY_LOC + '...', 0, lnCodeLines, 1 )
|
.updateProgressbar( loLang.C_GENERATING_BINARY_LOC + '...', 0, lnCodeLines, 1 )
|
||||||
toFoxBin2Prg.doBackup( .F., .T., '', '', '' )
|
|
||||||
.createClasslib()
|
IF toFoxBin2Prg.n_RedirectClassType = 1 && Redireccionar solo esta clase a main
|
||||||
.writeBinaryFile( @toModulo, @toFoxBin2Prg )
|
llReplaceClass = .T.
|
||||||
|
toFoxBin2Prg.c_OutputFile = FULLPATH( FORCEEXT( lcBaseFilename, 'VCX' ), .c_InputFile)
|
||||||
|
toFoxBin2Prg.doBackup( .F., .T., '', '', '' )
|
||||||
|
|
||||||
|
IF ADIR( laFiles, toFoxBin2Prg.c_OutputFile, "", 1 ) = 1
|
||||||
|
USE (toFoxBin2Prg.c_OutputFile) ALIAS TABLABIN AGAIN SHARED
|
||||||
|
ELSE
|
||||||
|
.createClasslib()
|
||||||
|
ENDIF
|
||||||
|
ELSE
|
||||||
|
toFoxBin2Prg.doBackup( .F., .T., '', '', '' )
|
||||||
|
.createClasslib()
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
.writeBinaryFile( @toModulo, @toFoxBin2Prg, llReplaceClass )
|
||||||
ENDWITH && THIS
|
ENDWITH && THIS
|
||||||
|
|
||||||
|
|
||||||
@@ -10056,7 +10212,7 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin
|
|||||||
|
|
||||||
|
|
||||||
PROCEDURE writeBinaryFile
|
PROCEDURE writeBinaryFile
|
||||||
LPARAMETERS toModulo, toFoxBin2Prg
|
LPARAMETERS toModulo, toFoxBin2Prg, tlReplaceClass
|
||||||
*-- Estructura del objeto toModulo generado:
|
*-- Estructura del objeto toModulo generado:
|
||||||
*-- -----------------------------------------------------------------------------------------------------------
|
*-- -----------------------------------------------------------------------------------------------------------
|
||||||
*-- Version Versión usada para generar la versión PRG analizada
|
*-- Version Versión usada para generar la versión PRG analizada
|
||||||
@@ -10128,7 +10284,7 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin
|
|||||||
#ENDIF
|
#ENDIF
|
||||||
|
|
||||||
TRY
|
TRY
|
||||||
LOCAL lcObjName, lnCodError, I, X, loEx AS EXCEPTION ;
|
LOCAL lcObjName, lnCodError, I, X, llReplace, laUniqueID(1,1), loEx AS EXCEPTION ;
|
||||||
, loClase AS CL_CLASE OF 'FOXBIN2PRG.PRG' ;
|
, loClase AS CL_CLASE OF 'FOXBIN2PRG.PRG' ;
|
||||||
, loFSO AS Scripting.FileSystemObject
|
, loFSO AS Scripting.FileSystemObject
|
||||||
|
|
||||||
@@ -10145,131 +10301,178 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin
|
|||||||
ERROR 'OutputFile Error Simulation'
|
ERROR 'OutputFile Error Simulation'
|
||||||
ENDCASE
|
ENDCASE
|
||||||
|
|
||||||
*-- Creo el registro de cabecera
|
IF tlReplaceClass
|
||||||
.createClasslib_RecordHeader( toModulo )
|
I = 1
|
||||||
|
loClase = toModulo._Clases(I)
|
||||||
|
LOCATE FOR PLATFORM == PADR('WINDOWS', FSIZE('PLATFORM')) AND OBJNAME == loClase._ObjName
|
||||||
|
llReplace = FOUND()
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF llReplace
|
||||||
|
*-- Reemplazar los campos del registro actual
|
||||||
|
IF EMPTY(loClase._TimeStamp)
|
||||||
|
loClase._TimeStamp = .rowTimeStamp( {^2013/11/04 20:00:00} )
|
||||||
|
ENDIF
|
||||||
|
IF EMPTY(loClase._UniqueID)
|
||||||
|
loClase._UniqueID = toFoxBin2Prg.unique_ID()
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
REPLACE ;
|
||||||
|
PLATFORM WITH 'WINDOWS' ;
|
||||||
|
, TIMESTAMP WITH loClase._TimeStamp ;
|
||||||
|
, CLASS WITH loClase._Class ;
|
||||||
|
, CLASSLOC WITH loClase._ClassLoc ;
|
||||||
|
, BASECLASS WITH loClase._BaseClass ;
|
||||||
|
, OBJNAME WITH loClase._ObjName ;
|
||||||
|
, PARENT WITH loClase._Parent ;
|
||||||
|
, PROPERTIES WITH loClase._PROPERTIES ;
|
||||||
|
, PROTECTED WITH loClase._PROTECTED ;
|
||||||
|
, METHODS WITH loClase._METHODS ;
|
||||||
|
, OLE WITH loClase._Ole ;
|
||||||
|
, OLE2 WITH loClase._Ole2 ;
|
||||||
|
, RESERVED1 WITH loClase._RESERVED1 ;
|
||||||
|
, RESERVED2 WITH loClase._RESERVED2 ;
|
||||||
|
, RESERVED3 WITH loClase._RESERVED3 ;
|
||||||
|
, RESERVED4 WITH loClase._RESERVED4 ;
|
||||||
|
, RESERVED5 WITH loClase._RESERVED5 ;
|
||||||
|
, RESERVED6 WITH loClase._RESERVED6 ;
|
||||||
|
, RESERVED7 WITH loClase._RESERVED7 ;
|
||||||
|
, RESERVED8 WITH loClase._RESERVED8 ;
|
||||||
|
, USER WITH loClase._User
|
||||||
|
|
||||||
|
.insert_AllObjects( @loClase, @toFoxBin2Prg )
|
||||||
|
|
||||||
|
ELSE
|
||||||
|
*-- Creo el registro de cabecera
|
||||||
|
IF tlReplaceClass AND RECCOUNT() > 0
|
||||||
|
SELECT MAX(VAL(SUBSTR(UNIQUEID,2))) FROM TABLABIN INTO ARRAY laUniqueID
|
||||||
|
toFoxBin2Prg.n_ID = laUniqueID(1)
|
||||||
|
ELSE
|
||||||
|
.createClasslib_RecordHeader( toModulo )
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
*-- Recorro las CLASES
|
||||||
|
FOR X = 1 TO 2
|
||||||
|
FOR I = 1 TO toModulo._Clases_Count
|
||||||
|
loClase = NULL
|
||||||
|
loClase = toModulo._Clases(I)
|
||||||
|
|
||||||
|
*-- El dataenvironment debe estar primero, luego lo demás.
|
||||||
|
IF X = 1 AND NOT loClase._BaseClass == 'dataenvironment' ;
|
||||||
|
OR X = 2 AND loClase._BaseClass == 'dataenvironment'
|
||||||
|
LOOP
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF EMPTY(loClase._TimeStamp)
|
||||||
|
loClase._TimeStamp = .rowTimeStamp( {^2013/11/04 20:00:00} )
|
||||||
|
ENDIF
|
||||||
|
IF EMPTY(loClase._UniqueID)
|
||||||
|
loClase._UniqueID = toFoxBin2Prg.unique_ID()
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
*-- Inserto la clase
|
||||||
|
INSERT INTO TABLABIN ;
|
||||||
|
( PLATFORM ;
|
||||||
|
, UNIQUEID ;
|
||||||
|
, TIMESTAMP ;
|
||||||
|
, CLASS ;
|
||||||
|
, CLASSLOC ;
|
||||||
|
, BASECLASS ;
|
||||||
|
, OBJNAME ;
|
||||||
|
, PARENT ;
|
||||||
|
, PROPERTIES ;
|
||||||
|
, PROTECTED ;
|
||||||
|
, METHODS ;
|
||||||
|
, OLE ;
|
||||||
|
, OLE2 ;
|
||||||
|
, RESERVED1 ;
|
||||||
|
, RESERVED2 ;
|
||||||
|
, RESERVED3 ;
|
||||||
|
, RESERVED4 ;
|
||||||
|
, RESERVED5 ;
|
||||||
|
, RESERVED6 ;
|
||||||
|
, RESERVED7 ;
|
||||||
|
, RESERVED8 ;
|
||||||
|
, USER) ;
|
||||||
|
VALUES ;
|
||||||
|
( 'WINDOWS' ;
|
||||||
|
, loClase._UniqueID ;
|
||||||
|
, loClase._TimeStamp ;
|
||||||
|
, loClase._Class ;
|
||||||
|
, loClase._ClassLoc ;
|
||||||
|
, loClase._BaseClass ;
|
||||||
|
, loClase._ObjName ;
|
||||||
|
, loClase._Parent ;
|
||||||
|
, loClase._PROPERTIES ;
|
||||||
|
, loClase._PROTECTED ;
|
||||||
|
, loClase._METHODS ;
|
||||||
|
, loClase._Ole ;
|
||||||
|
, loClase._Ole2 ;
|
||||||
|
, loClase._RESERVED1 ;
|
||||||
|
, loClase._RESERVED2 ;
|
||||||
|
, loClase._RESERVED3 ;
|
||||||
|
, loClase._ClassIcon ;
|
||||||
|
, loClase._ProjectClassIcon ;
|
||||||
|
, loClase._Scale ;
|
||||||
|
, loClase._Comentario ;
|
||||||
|
, loClase._includeFile ;
|
||||||
|
, loClase._User )
|
||||||
|
|
||||||
|
|
||||||
*-- Recorro las CLASES
|
.insert_AllObjects( @loClase, @toFoxBin2Prg )
|
||||||
FOR X = 1 TO 2
|
|
||||||
FOR I = 1 TO toModulo._Clases_Count
|
|
||||||
loClase = NULL
|
|
||||||
loClase = toModulo._Clases(I)
|
|
||||||
|
|
||||||
*-- El dataenvironment debe estar primero, luego lo dem<65>s.
|
|
||||||
IF X = 1 AND NOT loClase._BaseClass == 'dataenvironment' ;
|
|
||||||
OR X = 2 AND loClase._BaseClass == 'dataenvironment'
|
|
||||||
LOOP
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
IF EMPTY(loClase._TimeStamp)
|
|
||||||
loClase._TimeStamp = .rowTimeStamp( {^2013/11/04 20:00:00} )
|
|
||||||
ENDIF
|
|
||||||
IF EMPTY(loClase._UniqueID)
|
|
||||||
loClase._UniqueID = toFoxBin2Prg.unique_ID()
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
*-- Inserto la clase
|
|
||||||
INSERT INTO TABLABIN ;
|
|
||||||
( PLATFORM ;
|
|
||||||
, UNIQUEID ;
|
|
||||||
, TIMESTAMP ;
|
|
||||||
, CLASS ;
|
|
||||||
, CLASSLOC ;
|
|
||||||
, BASECLASS ;
|
|
||||||
, OBJNAME ;
|
|
||||||
, PARENT ;
|
|
||||||
, PROPERTIES ;
|
|
||||||
, PROTECTED ;
|
|
||||||
, METHODS ;
|
|
||||||
, OLE ;
|
|
||||||
, OLE2 ;
|
|
||||||
, RESERVED1 ;
|
|
||||||
, RESERVED2 ;
|
|
||||||
, RESERVED3 ;
|
|
||||||
, RESERVED4 ;
|
|
||||||
, RESERVED5 ;
|
|
||||||
, RESERVED6 ;
|
|
||||||
, RESERVED7 ;
|
|
||||||
, RESERVED8 ;
|
|
||||||
, USER) ;
|
|
||||||
VALUES ;
|
|
||||||
( 'WINDOWS' ;
|
|
||||||
, loClase._UniqueID ;
|
|
||||||
, loClase._TimeStamp ;
|
|
||||||
, loClase._Class ;
|
|
||||||
, loClase._ClassLoc ;
|
|
||||||
, loClase._BaseClass ;
|
|
||||||
, loClase._ObjName ;
|
|
||||||
, loClase._Parent ;
|
|
||||||
, loClase._PROPERTIES ;
|
|
||||||
, loClase._PROTECTED ;
|
|
||||||
, loClase._METHODS ;
|
|
||||||
, loClase._Ole ;
|
|
||||||
, loClase._Ole2 ;
|
|
||||||
, loClase._RESERVED1 ;
|
|
||||||
, loClase._RESERVED2 ;
|
|
||||||
, loClase._RESERVED3 ;
|
|
||||||
, loClase._ClassIcon ;
|
|
||||||
, loClase._ProjectClassIcon ;
|
|
||||||
, loClase._Scale ;
|
|
||||||
, loClase._Comentario ;
|
|
||||||
, loClase._includeFile ;
|
|
||||||
, loClase._User )
|
|
||||||
|
|
||||||
|
|
||||||
.insert_AllObjects( @loClase, @toFoxBin2Prg )
|
*-- Inserto el COMMENT
|
||||||
|
INSERT INTO TABLABIN ;
|
||||||
|
( PLATFORM ;
|
||||||
|
, UNIQUEID ;
|
||||||
|
, TIMESTAMP ;
|
||||||
|
, CLASS ;
|
||||||
|
, CLASSLOC ;
|
||||||
|
, BASECLASS ;
|
||||||
|
, OBJNAME ;
|
||||||
|
, PARENT ;
|
||||||
|
, PROPERTIES ;
|
||||||
|
, PROTECTED ;
|
||||||
|
, METHODS ;
|
||||||
|
, OLE ;
|
||||||
|
, OLE2 ;
|
||||||
|
, RESERVED1 ;
|
||||||
|
, RESERVED2 ;
|
||||||
|
, RESERVED3 ;
|
||||||
|
, RESERVED4 ;
|
||||||
|
, RESERVED5 ;
|
||||||
|
, RESERVED6 ;
|
||||||
|
, RESERVED7 ;
|
||||||
|
, RESERVED8 ;
|
||||||
|
, USER) ;
|
||||||
|
VALUES ;
|
||||||
|
( 'COMMENT' ;
|
||||||
|
, 'RESERVED' ;
|
||||||
|
, 0 ;
|
||||||
|
, '' ;
|
||||||
|
, '' ;
|
||||||
|
, '' ;
|
||||||
|
, loClase._ObjName ;
|
||||||
|
, '' ;
|
||||||
|
, '' ;
|
||||||
|
, '' ;
|
||||||
|
, '' ;
|
||||||
|
, '' ;
|
||||||
|
, '' ;
|
||||||
|
, '' ;
|
||||||
|
, IIF(loClase._OlePublic, 'OLEPublic', '') ;
|
||||||
|
, '' ;
|
||||||
|
, '' ;
|
||||||
|
, '' ;
|
||||||
|
, '' ;
|
||||||
|
, '' ;
|
||||||
|
, '' ;
|
||||||
|
, '' )
|
||||||
|
|
||||||
|
ENDFOR && I = 1 TO toModulo._Clases_Count
|
||||||
*-- Inserto el COMMENT
|
ENDFOR && X = 1 TO 2
|
||||||
INSERT INTO TABLABIN ;
|
ENDIF
|
||||||
( PLATFORM ;
|
|
||||||
, UNIQUEID ;
|
|
||||||
, TIMESTAMP ;
|
|
||||||
, CLASS ;
|
|
||||||
, CLASSLOC ;
|
|
||||||
, BASECLASS ;
|
|
||||||
, OBJNAME ;
|
|
||||||
, PARENT ;
|
|
||||||
, PROPERTIES ;
|
|
||||||
, PROTECTED ;
|
|
||||||
, METHODS ;
|
|
||||||
, OLE ;
|
|
||||||
, OLE2 ;
|
|
||||||
, RESERVED1 ;
|
|
||||||
, RESERVED2 ;
|
|
||||||
, RESERVED3 ;
|
|
||||||
, RESERVED4 ;
|
|
||||||
, RESERVED5 ;
|
|
||||||
, RESERVED6 ;
|
|
||||||
, RESERVED7 ;
|
|
||||||
, RESERVED8 ;
|
|
||||||
, USER) ;
|
|
||||||
VALUES ;
|
|
||||||
( 'COMMENT' ;
|
|
||||||
, 'RESERVED' ;
|
|
||||||
, 0 ;
|
|
||||||
, '' ;
|
|
||||||
, '' ;
|
|
||||||
, '' ;
|
|
||||||
, loClase._ObjName ;
|
|
||||||
, '' ;
|
|
||||||
, '' ;
|
|
||||||
, '' ;
|
|
||||||
, '' ;
|
|
||||||
, '' ;
|
|
||||||
, '' ;
|
|
||||||
, '' ;
|
|
||||||
, IIF(loClase._OlePublic, 'OLEPublic', '') ;
|
|
||||||
, '' ;
|
|
||||||
, '' ;
|
|
||||||
, '' ;
|
|
||||||
, '' ;
|
|
||||||
, '' ;
|
|
||||||
, '' ;
|
|
||||||
, '' )
|
|
||||||
|
|
||||||
ENDFOR && I = 1 TO toModulo._Clases_Count
|
|
||||||
ENDFOR && X = 1 TO 2
|
|
||||||
|
|
||||||
USE IN (SELECT("TABLABIN"))
|
USE IN (SELECT("TABLABIN"))
|
||||||
|
|
||||||
@@ -10375,7 +10578,8 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin
|
|||||||
lcClassName = LOWER( GETWORDNUM( JUSTFNAME( lcInputFile_Class ), 2, '.' ) )
|
lcClassName = LOWER( GETWORDNUM( JUSTFNAME( lcInputFile_Class ), 2, '.' ) )
|
||||||
|
|
||||||
*-- Verificación de las Clases, si son Externas y se indicó chequearlas
|
*-- Verificación de las Clases, si son Externas y se indicó chequearlas
|
||||||
IF toFoxBin2Prg.l_ClassPerFileCheck AND ASCAN( toModulo._ExternalClasses , lcClassName, 1, 0, 1, 1+2+4 ) = 0
|
IF toFoxBin2Prg.l_ClassPerFileCheck AND EMPTY(toFoxBin2Prg.c_ClassOperationType) ;
|
||||||
|
AND ASCAN( toModulo._ExternalClasses , lcClassName, 1, 0, 1, 1+2+4 ) = 0
|
||||||
.writeLog( C_TAB + '- ' + loLang.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC + ' [' + lcInputFile_Class + ']' )
|
.writeLog( C_TAB + '- ' + loLang.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC + ' [' + lcInputFile_Class + ']' )
|
||||||
.writeErrorLog( C_TAB + '- ' + loLang.C_WARNING_LOC + ' ' + loLang.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC + ' [' + lcInputFile_Class + ']' )
|
.writeErrorLog( C_TAB + '- ' + loLang.C_WARNING_LOC + ' ' + loLang.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC + ' [' + lcInputFile_Class + ']' )
|
||||||
LOOP && Salteo esta clase
|
LOOP && Salteo esta clase
|
||||||
@@ -10385,7 +10589,8 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin
|
|||||||
lcClassName = LOWER( GETWORDNUM( JUSTFNAME( lcInputFile_Class ), 2, '.' ) + '.' + GETWORDNUM( JUSTFNAME( lcInputFile_Class ), 3, '.' ) )
|
lcClassName = LOWER( GETWORDNUM( JUSTFNAME( lcInputFile_Class ), 2, '.' ) + '.' + GETWORDNUM( JUSTFNAME( lcInputFile_Class ), 3, '.' ) )
|
||||||
|
|
||||||
*-- Verificación de las Clases, si son Externas y se indicó chequearlas
|
*-- Verificación de las Clases, si son Externas y se indicó chequearlas
|
||||||
IF toFoxBin2Prg.l_ClassPerFileCheck AND ASCAN( toModulo._ExternalClasses , lcClassName, 1, 0, 2, 1+2+4 ) = 0
|
IF toFoxBin2Prg.l_ClassPerFileCheck AND EMPTY(toFoxBin2Prg.c_ClassOperationType) ;
|
||||||
|
AND ASCAN( toModulo._ExternalClasses , lcClassName, 1, 0, 2, 1+2+4 ) = 0
|
||||||
.writeLog( C_TAB + '- ' + loLang.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC + ' [' + lcInputFile_Class + ']' )
|
.writeLog( C_TAB + '- ' + loLang.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC + ' [' + lcInputFile_Class + ']' )
|
||||||
.writeErrorLog( C_TAB + '- ' + loLang.C_WARNING_LOC + ' ' + loLang.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC + ' [' + lcInputFile_Class + ']' )
|
.writeErrorLog( C_TAB + '- ' + loLang.C_WARNING_LOC + ' ' + loLang.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC + ' [' + lcInputFile_Class + ']' )
|
||||||
LOOP && Salteo esta clase
|
LOOP && Salteo esta clase
|
||||||
@@ -10907,10 +11112,12 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin
|
|||||||
, ID ;
|
, ID ;
|
||||||
, TIMESTAMP ;
|
, TIMESTAMP ;
|
||||||
, OBJREV ;
|
, OBJREV ;
|
||||||
|
, USER ;
|
||||||
|
, DEVINFO ;
|
||||||
, KEY ) ;
|
, KEY ) ;
|
||||||
VALUES ;
|
VALUES ;
|
||||||
( loFile._Name + CHR(0) ;
|
( loFile._Name + CHR(0) ;
|
||||||
, .fileTypeCode(JUSTEXT(loFile._Name)) ;
|
, .fileTypeCode(JUSTEXT(loFile._Name), loFile._Type) ;
|
||||||
, loFile._Exclude ;
|
, loFile._Exclude ;
|
||||||
, (loFile._Name == lcMainProg) ;
|
, (loFile._Name == lcMainProg) ;
|
||||||
, loFile._Comments ;
|
, loFile._Comments ;
|
||||||
@@ -10919,6 +11126,8 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin
|
|||||||
, loFile._ID ;
|
, loFile._ID ;
|
||||||
, loFile._TimeStamp ;
|
, loFile._TimeStamp ;
|
||||||
, loFile._ObjRev ;
|
, loFile._ObjRev ;
|
||||||
|
, STRCONV(loFile._User,14) ;
|
||||||
|
, STRCONV(loFile._DevInfo,14) ;
|
||||||
, UPPER(JUSTSTEM(loFile._Name)) )
|
, UPPER(JUSTSTEM(loFile._Name)) )
|
||||||
ENDFOR
|
ENDFOR
|
||||||
|
|
||||||
@@ -11091,6 +11300,8 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin
|
|||||||
loFile._TimeStamp = .get_ValueByName_FromListNamesWithValues( 'Timestamp', 'I', @laPropsAndValues )
|
loFile._TimeStamp = .get_ValueByName_FromListNamesWithValues( 'Timestamp', 'I', @laPropsAndValues )
|
||||||
loFile._ID = .get_ValueByName_FromListNamesWithValues( 'ID', 'I', @laPropsAndValues )
|
loFile._ID = .get_ValueByName_FromListNamesWithValues( 'ID', 'I', @laPropsAndValues )
|
||||||
loFile._ObjRev = .get_ValueByName_FromListNamesWithValues( 'ObjRev', 'I', @laPropsAndValues )
|
loFile._ObjRev = .get_ValueByName_FromListNamesWithValues( 'ObjRev', 'I', @laPropsAndValues )
|
||||||
|
loFile._User = .get_ValueByName_FromListNamesWithValues( 'User', 'C', @laPropsAndValues )
|
||||||
|
loFile._DevInfo = .get_ValueByName_FromListNamesWithValues( 'DevInfo', 'C', @laPropsAndValues )
|
||||||
|
|
||||||
toProject.ADD( loFile, loFile._Name )
|
toProject.ADD( loFile, loFile._Name )
|
||||||
|
|
||||||
@@ -11905,7 +12116,7 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin
|
|||||||
lnLenPropName = LEN(laProps(X))
|
lnLenPropName = LEN(laProps(X))
|
||||||
lnPos2 = AT( '"', SUBSTR( tcLine, lnPos + lnLenPropName + 2 ) )
|
lnPos2 = AT( '"', SUBSTR( tcLine, lnPos + lnLenPropName + 2 ) )
|
||||||
lcValue = SUBSTR( tcLine, lnPos + lnLenPropName + 2, lnPos2 - 1 )
|
lcValue = SUBSTR( tcLine, lnPos + lnLenPropName + 2, lnPos2 - 1 )
|
||||||
|
|
||||||
IF laProps(X) == ' NAME' AND NOT EMPTY(lcValue)
|
IF laProps(X) == ' NAME' AND NOT EMPTY(lcValue)
|
||||||
lcValue = THIS.denormalizeXMLValue(lcValue)
|
lcValue = THIS.denormalizeXMLValue(lcValue)
|
||||||
ENDIF
|
ENDIF
|
||||||
@@ -11964,9 +12175,6 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin
|
|||||||
I = I + 1
|
I = I + 1
|
||||||
EXIT
|
EXIT
|
||||||
|
|
||||||
CASE .lineIsOnlyCommentAndNoMetadata( @tcLine, @lcComment )
|
|
||||||
LOOP && Saltear comentarios
|
|
||||||
|
|
||||||
CASE .analyzeCodeBlock_platform( toReport, @tcLine, @taCodeLines, @I, @tnCodeLines, @loReg )
|
CASE .analyzeCodeBlock_platform( toReport, @tcLine, @taCodeLines, @I, @tnCodeLines, @loReg )
|
||||||
|
|
||||||
CASE .analyzeCodeBlock_CDATA_inline( toReport, @tcLine, @taCodeLines, @I, tnCodeLines, @loReg, 'picture' )
|
CASE .analyzeCodeBlock_CDATA_inline( toReport, @tcLine, @taCodeLines, @I, tnCodeLines, @loReg, 'picture' )
|
||||||
@@ -12080,10 +12288,10 @@ DEFINE CLASS c_conversor_prg_a_dbf AS c_conversor_prg_a_bin
|
|||||||
WITH toFoxBin2Prg
|
WITH toFoxBin2Prg
|
||||||
ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
|
ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
|
||||||
ENDWITH
|
ENDWITH
|
||||||
|
|
||||||
CASE lnFileCount = 1 AND loDBF_CFG.DBF_Conversion_Support > 0 && Implica 2 u 8
|
CASE lnFileCount = 1 AND loDBF_CFG.DBF_Conversion_Support > 0 && Implica 2 u 8
|
||||||
llImportData = (loDBF_CFG.DBF_Conversion_Support = 8)
|
llImportData = (loDBF_CFG.DBF_Conversion_Support = 8)
|
||||||
|
|
||||||
CASE toFoxBin2Prg.DBF_Conversion_Support = 8 && TXT2BIN (DATA IMPORT)
|
CASE toFoxBin2Prg.DBF_Conversion_Support = 8 && TXT2BIN (DATA IMPORT)
|
||||||
llImportData = .T.
|
llImportData = .T.
|
||||||
|
|
||||||
@@ -12589,7 +12797,8 @@ DEFINE CLASS c_conversor_prg_a_dbc AS c_conversor_prg_a_bin
|
|||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
*-- Verificación de los Miembros, si son Externos y se indicó chequearlos
|
*-- Verificación de los Miembros, si son Externos y se indicó chequearlos
|
||||||
IF toFoxBin2Prg.l_ClassPerFileCheck AND ASCAN( toDatabase._ExternalClasses, lcMemberType + '.' + lcMemberName, 1, 0, 1, 1+2+4 ) = 0
|
IF toFoxBin2Prg.l_ClassPerFileCheck AND EMPTY(toFoxBin2Prg.c_ClassOperationType) ;
|
||||||
|
AND ASCAN( toDatabase._ExternalClasses, lcMemberType + '.' + lcMemberName, 1, 0, 1, 1+2+4 ) = 0
|
||||||
.writeLog( C_TAB + '- ' + loLang.C_OUTER_MEMBER_DOES_NOT_MATCH_INNER_MEMBERS_LOC + ' [' + lcInputFile_Class + ']' )
|
.writeLog( C_TAB + '- ' + loLang.C_OUTER_MEMBER_DOES_NOT_MATCH_INNER_MEMBERS_LOC + ' [' + lcInputFile_Class + ']' )
|
||||||
.writeErrorLog( C_TAB + '- ' + loLang.C_WARNING_LOC + ' ' + loLang.C_OUTER_MEMBER_DOES_NOT_MATCH_INNER_MEMBERS_LOC + ' [' + lcInputFile_Class + ']' )
|
.writeErrorLog( C_TAB + '- ' + loLang.C_WARNING_LOC + ' ' + loLang.C_OUTER_MEMBER_DOES_NOT_MATCH_INNER_MEMBERS_LOC + ' [' + lcInputFile_Class + ']' )
|
||||||
LOOP && Salteo este miembro porque no concuerda con los anotados
|
LOOP && Salteo este miembro porque no concuerda con los anotados
|
||||||
@@ -12942,7 +13151,7 @@ DEFINE CLASS c_conversor_prg_a_dbc AS c_conversor_prg_a_bin
|
|||||||
loLang = _SCREEN.o_FoxBin2Prg_Lang
|
loLang = _SCREEN.o_FoxBin2Prg_Lang
|
||||||
|
|
||||||
*-- Verificación de los Miembros, si son Externos y se indicó chequearlos
|
*-- Verificación de los Miembros, si son Externos y se indicó chequearlos
|
||||||
IF toFoxBin2Prg.n_UseClassPerFile > 0 AND toFoxBin2Prg.l_ClassPerFileCheck
|
IF toFoxBin2Prg.n_UseClassPerFile > 0 AND toFoxBin2Prg.l_ClassPerFileCheck AND EMPTY(toFoxBin2Prg.c_ClassOperationType)
|
||||||
FOR I = 1 TO toDatabase._ExternalClasses_Count
|
FOR I = 1 TO toDatabase._ExternalClasses_Count
|
||||||
lnItem = 0
|
lnItem = 0
|
||||||
|
|
||||||
@@ -15871,8 +16080,11 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
|
|||||||
Timestamp="<<INT( loReg.TIMESTAMP )>>"
|
Timestamp="<<INT( loReg.TIMESTAMP )>>"
|
||||||
ID="<<INT( loReg.ID )>>"
|
ID="<<INT( loReg.ID )>>"
|
||||||
ObjRev="<<INT( loReg.OBJREV )>>"
|
ObjRev="<<INT( loReg.OBJREV )>>"
|
||||||
|
User="<<STRCONV(loReg.USER,13)>>"
|
||||||
|
DevInfo="<<STRCONV(loReg.DEVINFO,13)>>"
|
||||||
<<C_FILE_META_F>>
|
<<C_FILE_META_F>>
|
||||||
ENDTEXT
|
ENDTEXT
|
||||||
|
|
||||||
loReg = NULL
|
loReg = NULL
|
||||||
ENDFOR
|
ENDFOR
|
||||||
|
|
||||||
@@ -15961,6 +16173,7 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
|
|||||||
<<>> *<.CmntStyle = <<loProject._CmntStyle>> />
|
<<>> *<.CmntStyle = <<loProject._CmntStyle>> />
|
||||||
<<>> *<.NoLogo = <<loProject._NoLogo>> />
|
<<>> *<.NoLogo = <<loProject._NoLogo>> />
|
||||||
<<>> *<.SaveCode = <<loProject._SaveCode>> />
|
<<>> *<.SaveCode = <<loProject._SaveCode>> />
|
||||||
|
<<>> *<.User = '<<STRCONV(loProject._User,13)>>' />
|
||||||
<<>> .ProjectHookLibrary = '<<loProject._ProjectHookLibrary>>'
|
<<>> .ProjectHookLibrary = '<<loProject._ProjectHookLibrary>>'
|
||||||
<<>> .ProjectHookClass = '<<loProject._ProjectHookClass>>'
|
<<>> .ProjectHookClass = '<<loProject._ProjectHookClass>>'
|
||||||
<<>> <<C_PROJPROPS_F>>
|
<<>> <<C_PROJPROPS_F>>
|
||||||
@@ -15968,7 +16181,6 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
|
|||||||
<<>>
|
<<>>
|
||||||
ENDTEXT
|
ENDTEXT
|
||||||
|
|
||||||
|
|
||||||
*-- Build y cierre
|
*-- Build y cierre
|
||||||
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
|
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
|
||||||
<<>>
|
<<>>
|
||||||
@@ -16091,6 +16303,7 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
|
|||||||
loProject._ServerInfo = loReg.RESERVED2
|
loProject._ServerInfo = loReg.RESERVED2
|
||||||
loProject._Debug = loReg.DEBUG
|
loProject._Debug = loReg.DEBUG
|
||||||
loProject._Encrypted = loReg.ENCRYPT
|
loProject._Encrypted = loReg.ENCRYPT
|
||||||
|
loProject._User = loReg.USER
|
||||||
loProject.parseDeviceInfo( loReg.DEVINFO )
|
loProject.parseDeviceInfo( loReg.DEVINFO )
|
||||||
|
|
||||||
*-- Información de los Servidores definidos
|
*-- Información de los Servidores definidos
|
||||||
@@ -16128,7 +16341,7 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
|
|||||||
*-- Escaneo el proyecto
|
*-- Escaneo el proyecto
|
||||||
SCAN ALL FOR NOT INLIST(TYPE, 'H','W','i' )
|
SCAN ALL FOR NOT INLIST(TYPE, 'H','W','i' )
|
||||||
loReg = NULL
|
loReg = NULL
|
||||||
SCATTER FIELDS NAME,TYPE,EXCLUDE,COMMENTS,CPID,TIMESTAMP,ID,OBJREV MEMO NAME loReg
|
SCATTER FIELDS NAME,TYPE,EXCLUDE,COMMENTS,CPID,TIMESTAMP,ID,OBJREV,USER,DEVINFO MEMO NAME loReg
|
||||||
|
|
||||||
IF toFoxBin2Prg.l_NoTimestamps
|
IF toFoxBin2Prg.l_NoTimestamps
|
||||||
loReg.TIMESTAMP = 0
|
loReg.TIMESTAMP = 0
|
||||||
@@ -16501,6 +16714,7 @@ DEFINE CLASS c_conversor_pjm_a_prg AS c_conversor_bin_a_prg
|
|||||||
<<>> *<.CmntStyle = <<loProject._CmntStyle>> />
|
<<>> *<.CmntStyle = <<loProject._CmntStyle>> />
|
||||||
<<>> *<.NoLogo = <<loProject._NoLogo>> />
|
<<>> *<.NoLogo = <<loProject._NoLogo>> />
|
||||||
<<>> *<.SaveCode = <<loProject._SaveCode>> />
|
<<>> *<.SaveCode = <<loProject._SaveCode>> />
|
||||||
|
<<>> *<.User = <<loProject._User>> />
|
||||||
<<>> .ProjectHookLibrary = '<<loProject._ProjectHookLibrary>>'
|
<<>> .ProjectHookLibrary = '<<loProject._ProjectHookLibrary>>'
|
||||||
<<>> .ProjectHookClass = '<<loProject._ProjectHookClass>>'
|
<<>> .ProjectHookClass = '<<loProject._ProjectHookClass>>'
|
||||||
<<>> <<C_PROJPROPS_F>>
|
<<>> <<C_PROJPROPS_F>>
|
||||||
@@ -18103,6 +18317,7 @@ DEFINE CLASS CL_PROJECT AS CL_COL_BASE
|
|||||||
+ [<memberdata name="_revision" display="_Revision"/>] ;
|
+ [<memberdata name="_revision" display="_Revision"/>] ;
|
||||||
+ [<memberdata name="_languageid" display="_LanguageID"/>] ;
|
+ [<memberdata name="_languageid" display="_LanguageID"/>] ;
|
||||||
+ [<memberdata name="_autoincrement" display="_AutoIncrement"/>] ;
|
+ [<memberdata name="_autoincrement" display="_AutoIncrement"/>] ;
|
||||||
|
+ [<memberdata name="_user" display="_User"/>] ;
|
||||||
+ [<memberdata name="decode_specialcodes_cr_lf" display="decode_SpecialCodes_CR_LF"/>] ;
|
+ [<memberdata name="decode_specialcodes_cr_lf" display="decode_SpecialCodes_CR_LF"/>] ;
|
||||||
+ [<memberdata name="encode_specialcodes_cr_lf" display="encode_SpecialCodes_CR_LF"/>] ;
|
+ [<memberdata name="encode_specialcodes_cr_lf" display="encode_SpecialCodes_CR_LF"/>] ;
|
||||||
+ [<memberdata name="getformatteddeviceinfotext" display="getFormattedDeviceInfoText"/>] ;
|
+ [<memberdata name="getformatteddeviceinfotext" display="getFormattedDeviceInfoText"/>] ;
|
||||||
@@ -18136,6 +18351,7 @@ DEFINE CLASS CL_PROJECT AS CL_COL_BASE
|
|||||||
_TimeStamp = 0
|
_TimeStamp = 0
|
||||||
_Version = ''
|
_Version = ''
|
||||||
_SccData = ''
|
_SccData = ''
|
||||||
|
_User = ''
|
||||||
|
|
||||||
*-- Dev.info
|
*-- Dev.info
|
||||||
_Author = ''
|
_Author = ''
|
||||||
@@ -24665,6 +24881,8 @@ DEFINE CLASS CL_PROJ_FILE AS CL_CUS_BASE
|
|||||||
+ [<memberdata name="_objrev" display="_ObjRev"/>] ;
|
+ [<memberdata name="_objrev" display="_ObjRev"/>] ;
|
||||||
+ [<memberdata name="_timestamp" display="_Timestamp"/>] ;
|
+ [<memberdata name="_timestamp" display="_Timestamp"/>] ;
|
||||||
+ [<memberdata name="_type" display="_Type"/>] ;
|
+ [<memberdata name="_type" display="_Type"/>] ;
|
||||||
|
+ [<memberdata name="_user" display="_User"/>] ;
|
||||||
|
+ [<memberdata name="_devinfo" display="_DevInfo"/>] ;
|
||||||
+ [</VFPData>]
|
+ [</VFPData>]
|
||||||
|
|
||||||
_Name = ''
|
_Name = ''
|
||||||
@@ -24675,6 +24893,8 @@ DEFINE CLASS CL_PROJ_FILE AS CL_CUS_BASE
|
|||||||
_ID = 0
|
_ID = 0
|
||||||
_ObjRev = 0
|
_ObjRev = 0
|
||||||
_TimeStamp = 0
|
_TimeStamp = 0
|
||||||
|
_User = ''
|
||||||
|
_DevInfo = ''
|
||||||
|
|
||||||
ENDDEFINE
|
ENDDEFINE
|
||||||
|
|
||||||
@@ -27376,6 +27596,7 @@ DEFINE CLASS CL_CFG AS CUSTOM
|
|||||||
+ [<memberdata name="n_excludedbfautoincnextval" display="n_ExcludeDBFAutoincNextval"/>] ;
|
+ [<memberdata name="n_excludedbfautoincnextval" display="n_ExcludeDBFAutoincNextval"/>] ;
|
||||||
+ [<memberdata name="l_recompile" display="l_Recompile"/>] ;
|
+ [<memberdata name="l_recompile" display="l_Recompile"/>] ;
|
||||||
+ [<memberdata name="l_redirectclassperfiletomain" display="l_RedirectClassPerFileToMain"/>] ;
|
+ [<memberdata name="l_redirectclassperfiletomain" display="l_RedirectClassPerFileToMain"/>] ;
|
||||||
|
+ [<memberdata name="n_redirectclasstype" display="n_RedirectClassType"/>] ;
|
||||||
+ [<memberdata name="l_showerrors" display="l_ShowErrors"/>] ;
|
+ [<memberdata name="l_showerrors" display="l_ShowErrors"/>] ;
|
||||||
+ [<memberdata name="n_showprogressbar" display="n_ShowProgressbar"/>] ;
|
+ [<memberdata name="n_showprogressbar" display="n_ShowProgressbar"/>] ;
|
||||||
+ [<memberdata name="n_useclassperfile" display="n_UseClassPerFile"/>] ;
|
+ [<memberdata name="n_useclassperfile" display="n_UseClassPerFile"/>] ;
|
||||||
@@ -27412,6 +27633,7 @@ DEFINE CLASS CL_CFG AS CUSTOM
|
|||||||
n_OptimizeByFilestamp = NULL
|
n_OptimizeByFilestamp = NULL
|
||||||
n_ExcludeDBFAutoincNextval = NULL
|
n_ExcludeDBFAutoincNextval = NULL
|
||||||
l_RedirectClassPerFileToMain = NULL
|
l_RedirectClassPerFileToMain = NULL
|
||||||
|
n_RedirectClassType = NULL
|
||||||
l_RemoveNullCharsFromCode = NULL
|
l_RemoveNullCharsFromCode = NULL
|
||||||
l_RemoveZOrderSetFromProps = NULL
|
l_RemoveZOrderSetFromProps = NULL
|
||||||
n_UseClassPerFile = NULL
|
n_UseClassPerFile = NULL
|
||||||
@@ -27456,6 +27678,7 @@ DEFINE CLASS CL_CFG AS CUSTOM
|
|||||||
.n_OptimizeByFilestamp = toParentCFG.n_OptimizeByFilestamp
|
.n_OptimizeByFilestamp = toParentCFG.n_OptimizeByFilestamp
|
||||||
.n_ExcludeDBFAutoincNextval = toParentCFG.n_ExcludeDBFAutoincNextval
|
.n_ExcludeDBFAutoincNextval = toParentCFG.n_ExcludeDBFAutoincNextval
|
||||||
.l_RedirectClassPerFileToMain = toParentCFG.l_RedirectClassPerFileToMain
|
.l_RedirectClassPerFileToMain = toParentCFG.l_RedirectClassPerFileToMain
|
||||||
|
.n_RedirectClassType = toParentCFG.n_RedirectClassType
|
||||||
.l_RemoveNullCharsFromCode = toParentCFG.l_RemoveNullCharsFromCode
|
.l_RemoveNullCharsFromCode = toParentCFG.l_RemoveNullCharsFromCode
|
||||||
.l_RemoveZOrderSetFromProps = toParentCFG.l_RemoveZOrderSetFromProps
|
.l_RemoveZOrderSetFromProps = toParentCFG.l_RemoveZOrderSetFromProps
|
||||||
.n_UseClassPerFile = toParentCFG.n_UseClassPerFile
|
.n_UseClassPerFile = toParentCFG.n_UseClassPerFile
|
||||||
@@ -27795,7 +28018,7 @@ DEFINE CLASS CL_LANG AS Custom
|
|||||||
.C_OPTION_LOC = "Opción"
|
.C_OPTION_LOC = "Opción"
|
||||||
.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC = "La clase externa no coincide con las clases internas"
|
.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC = "La clase externa no coincide con las clases internas"
|
||||||
.C_OUTER_MEMBER_DOES_NOT_MATCH_INNER_MEMBERS_LOC = "El miembro externo no coincide con los miembros internos"
|
.C_OUTER_MEMBER_DOES_NOT_MATCH_INNER_MEMBERS_LOC = "El miembro externo no coincide con los miembros internos"
|
||||||
.C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC = "Optimizaci<EFBFBD>n: el archivo de salida [<<lcOutputFile>>] no se sobreescribe por ser igual al generado."
|
.C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC = "Optimización: el archivo de salida [<<lcOutputFile>>] no se sobreescribe por ser igual al ya existente."
|
||||||
.C_OUTPUTFILE_TIMESTAMP_EQUAL_THAN_INPUTFILE_TIMESTAMP_LOC = "Optimización: el archivo de salida [<<THIS.c_OutputFile>>] no se regenera por tener el mismo timestamp que el de entrada."
|
.C_OUTPUTFILE_TIMESTAMP_EQUAL_THAN_INPUTFILE_TIMESTAMP_LOC = "Optimización: el archivo de salida [<<THIS.c_OutputFile>>] no se regenera por tener el mismo timestamp que el de entrada."
|
||||||
.C_OUTPUTFILE_TIMESTAMP_NEWER_THAN_INPUTFILE_TIMESTAMP_LOC = "Optimización: el archivo de salida [<<THIS.c_OutputFile>>] no se regenera por tener un timestamp más nuevo que el de entrada."
|
.C_OUTPUTFILE_TIMESTAMP_NEWER_THAN_INPUTFILE_TIMESTAMP_LOC = "Optimización: el archivo de salida [<<THIS.c_OutputFile>>] no se regenera por tener un timestamp más nuevo que el de entrada."
|
||||||
.C_PRESS_ESC_TO_CANCEL = "Pulse Esc para Cancelar"
|
.C_PRESS_ESC_TO_CANCEL = "Pulse Esc para Cancelar"
|
||||||
@@ -28007,7 +28230,7 @@ DEFINE CLASS CL_LANG AS Custom
|
|||||||
.C_OPTION_LOC = "Option"
|
.C_OPTION_LOC = "Option"
|
||||||
.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC = "The outer class does not match the inner classes"
|
.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC = "The outer class does not match the inner classes"
|
||||||
.C_OUTER_MEMBER_DOES_NOT_MATCH_INNER_MEMBERS_LOC = "The outer member does not match the inner members"
|
.C_OUTER_MEMBER_DOES_NOT_MATCH_INNER_MEMBERS_LOC = "The outer member does not match the inner members"
|
||||||
.C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC = "Optimization: output file [<<lcOutputFile>>] was not overwritten because it is the same as was generated."
|
.C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC = "Optimization: output file [<<lcOutputFile>>] was not overwritten because it is the same as the existing one."
|
||||||
.C_OUTPUTFILE_TIMESTAMP_EQUAL_THAN_INPUTFILE_TIMESTAMP_LOC = "Optimization: output file [<<THIS.c_OutputFile>>] was not regenerated because it's filestamp is equal than the inputfile."
|
.C_OUTPUTFILE_TIMESTAMP_EQUAL_THAN_INPUTFILE_TIMESTAMP_LOC = "Optimization: output file [<<THIS.c_OutputFile>>] was not regenerated because it's filestamp is equal than the inputfile."
|
||||||
.C_OUTPUTFILE_TIMESTAMP_NEWER_THAN_INPUTFILE_TIMESTAMP_LOC = "Optimization: output file [<<THIS.c_OutputFile>>] was not regenerated because it's filestamp is newer than the inputfile."
|
.C_OUTPUTFILE_TIMESTAMP_NEWER_THAN_INPUTFILE_TIMESTAMP_LOC = "Optimization: output file [<<THIS.c_OutputFile>>] was not regenerated because it's filestamp is newer than the inputfile."
|
||||||
.C_PRESS_ESC_TO_CANCEL = "Press Esc to Cancel"
|
.C_PRESS_ESC_TO_CANCEL = "Press Esc to Cancel"
|
||||||
|
|||||||
Reference in New Issue
Block a user