From 347d0b3811ce0cd4ca4280d28d96ad29ec7eb10a Mon Sep 17 00:00:00 2001 From: fernando Date: Fri, 3 Jan 2014 16:55:54 +0100 Subject: [PATCH] =?UTF-8?q?Changeset:=20128=20-=20Agregado=20Unit=20Testin?= =?UTF-8?q?g=20de=20men=C3=BAs=20-=20Arreglo=20de=20las=20incidencias=20re?= =?UTF-8?q?portadas=20del=20menu=20MNX-MN2=20(Fidel=20Charny)=20-=20Agrega?= =?UTF-8?q?dos=202=20scripts=20VBS=20para=20conversi=C3=B3n=20Batch=20-=20?= =?UTF-8?q?Agregada=20propiedad=20=5Fscreen.ExitCode=20consultable=20para?= =?UTF-8?q?=20saber=20el=20estado=20de=20finalizaci=C3=B3n=20para=20llamad?= =?UTF-8?q?as=20en=20modo=20objeto?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Convert_VFP9_BIN_2_PRG.vbs | 128 +++++++++ Convert_VFP9_PRG_2_BIN.vbs | 128 +++++++++ README.txt | 2 +- TESTS/DATOS_READONLY/menu1.MNT | Bin 0 -> 3198 bytes TESTS/DATOS_READONLY/menu1.mnx | Bin 0 -> 2345 bytes TESTS/DATOS_READONLY/menu2.mnt | Bin 0 -> 3099 bytes TESTS/DATOS_READONLY/menu2.mnx | Bin 0 -> 2345 bytes TESTS/DATOS_READONLY/menu3.mnt | Bin 0 -> 713 bytes TESTS/DATOS_READONLY/menu3.mnx | Bin 0 -> 1409 bytes TESTS/DATOS_READONLY/menu_shortcut.MNT | Bin 0 -> 3231 bytes TESTS/DATOS_READONLY/menu_shortcut.mnx | Bin 0 -> 2657 bytes TESTS/DATOS_READONLY/menu_shortcut2.MNT | Bin 0 -> 3198 bytes TESTS/DATOS_READONLY/menu_shortcut2.mnx | Bin 0 -> 2657 bytes foxbin2prg.pj2 | 8 +- foxbin2prg.pjt | Bin 2880 -> 311296 bytes foxbin2prg.pjx | Bin 1583 -> 1583 bytes foxbin2prg.prg | 354 +++++++++++++++--------- 17 files changed, 485 insertions(+), 135 deletions(-) create mode 100644 Convert_VFP9_BIN_2_PRG.vbs create mode 100644 Convert_VFP9_PRG_2_BIN.vbs create mode 100644 TESTS/DATOS_READONLY/menu1.MNT create mode 100644 TESTS/DATOS_READONLY/menu1.mnx create mode 100644 TESTS/DATOS_READONLY/menu2.mnt create mode 100644 TESTS/DATOS_READONLY/menu2.mnx create mode 100644 TESTS/DATOS_READONLY/menu3.mnt create mode 100644 TESTS/DATOS_READONLY/menu3.mnx create mode 100644 TESTS/DATOS_READONLY/menu_shortcut.MNT create mode 100644 TESTS/DATOS_READONLY/menu_shortcut.mnx create mode 100644 TESTS/DATOS_READONLY/menu_shortcut2.MNT create mode 100644 TESTS/DATOS_READONLY/menu_shortcut2.mnx diff --git a/Convert_VFP9_BIN_2_PRG.vbs b/Convert_VFP9_BIN_2_PRG.vbs new file mode 100644 index 0000000..7e9e6b5 --- /dev/null +++ b/Convert_VFP9_BIN_2_PRG.vbs @@ -0,0 +1,128 @@ +'--------------------------------------------------------------------------------------------------- +' Convert_VFP9_BIN_2_PRG.vbs - 03/01/2014 - Fernando D. Bozzo (fdbozzo@gmail.com) +'--------------------------------------------------------------------------------------------------- +' ENGLISH: +' USE: Copy this file in the same directory of FoxBin2prg and create a shortcut +' on user's "SendTo" folder +' +' ESPAÑOL: +' USO: Copie este archivo en el mismo directorio que FoxBin2prg y cree un acceso directo +' en la carpeta "SendTo" del usuario +'--------------------------------------------------------------------------------------------------- +Const ForReading = 1 +Dim WSHShell, FileSystemObject +Dim oVFP9, nExitCode, cEXETool, cCMD, nDebug, cConvertType, aExtensions(8), foxbin2prg_cfg +Dim i, x, str_cfg, aConf +Set WSHShell = WScript.CreateObject("WScript.Shell") +Set FileSystemObject = WScript.CreateObject("Scripting.FileSystemObject") +Set oVFP9 = CreateObject("VisualFoxPro.Application.9") +cConvertType = "BIN2PRG" +foxbin2prg_cfg = Replace(WScript.ScriptFullName, WScript.ScriptName, "foxbin2prg.cfg") +nExitCode = 0 +'--------------------------------------------------------------------------------------------------- +nDebug = 1 '0=OFF, 1=Create FoxBin2prg LOG, 2=Only show calls, 3=Only show calls of the LOG call +'--------------------------------------------------------------------------------------------------- + +If cConvertType = "BIN2PRG" Then + aExtensions(1) = "PJX" + aExtensions(2) = "VCX" + aExtensions(3) = "SCX" + aExtensions(4) = "FRX" + aExtensions(5) = "LBX" + aExtensions(6) = "DBF" + aExtensions(7) = "DBC" + aExtensions(8) = "MNX" +Else + '-- Extensiones TXT por defecto + aExtensions(1) = "PJ2" + aExtensions(2) = "VC2" + aExtensions(3) = "SC2" + aExtensions(4) = "FR2" + aExtensions(5) = "LB2" + aExtensions(6) = "DB2" + aExtensions(7) = "DC2" + aExtensions(8) = "MN2" + + If FileSystemObject.FileExists( foxbin2prg_cfg ) Then + '-- Existe el archivo de configuración foxbin2prg.cgf + Set objTextFile = FileSystemObject.OpenTextFile( foxbin2prg_cfg, ForReading ) + + Do Until objTextFile.AtEndOfStream + strNextLine = objTextFile.Readline + arrFb2p_CFG = Split(strNextLine , ",") + For i = 0 to Ubound(arrFb2p_CFG) + If Left( arrFb2p_CFG(i), 10 ) = "extension:" Then + 'Wscript.Echo "CFG line: " & arrFb2p_CFG(i) + aConf = Split( arrFb2p_CFG(i), ":" ) 'Obtengo la separación de "extensión:" y "ext:equiv" + str_cfg = UCase( Trim( aConf(1) ) ) + aConf = Split( str_cfg, "=" ) 'Obtengo la separación de extensión y equivalencia (vc2=vca) + 'Wscript.Echo "[" & aConf(0) & "] [" & aConf(1) & "]" + + For x = 1 TO 8 + If aExtensions(x) = aConf(0) Then + aExtensions(x) = UCase( aConf(1) ) + Exit For + End If + Next + Else + 'Wscript.Echo "Saltear: " & arrFb2p_CFG(i) + End If + Next + Loop + End If +End if + +If WScript.Arguments.Count = 0 Then + nExitCode = 1 + MsgBox "Sin parametros" +Else + cEXETool = Replace(WScript.ScriptFullName, WScript.ScriptName, "foxbin2prg.exe") + + For i = 0 To WScript.Arguments.Count-1 + scanDirs( WScript.Arguments(i) ) + Next +End If + +WScript.Quit(nExitCode) + + +Private Sub scanDirs( tcArgument ) + Dim omFolder, oFolder + If FileSystemObject.FolderExists( tcArgument ) Then + '-- Es un directorio + 'WScript.Echo "Argument: " & "[" & tcArgument & "]" + Set omFolder = FileSystemObject.GetFolder( tcArgument ) + 'WScript.Echo "Dir: " & "[" & omFolder.Path & "]" + For Each oFile IN omFolder.Files + 'WScript.Echo "File: " & "[" & oFile.Path & "]" + evaluateFile( oFile.Path ) + Next + For Each oFolder IN omFolder.SubFolders + 'WScript.Echo "SubDir: " & "[" & oFolder.Name & "] [" & oFolder.Path & "]" + scanDirs( oFolder.Path ) + Next + Else + '-- Es un archivo + evaluateFile( tcArgument ) + End If +End Sub + + +Private Sub evaluateFile( tcFile ) + For x = 1 TO 8 + If aExtensions(x) = UCase( FileSystemObject.GetExtensionName( tcFile ) ) Then + If nDebug = 1 OR nDebug = 3 Then + cCMD = "DO " & chr(34) & cEXETool & chr(34) & " WITH '" & tcFile & "','0','0','0','0','1'" + Else + cCMD = "DO " & chr(34) & cEXETool & chr(34) & " WITH " & chr(34) & tcFile & chr(34) + End If + If nDebug = 2 Or nDebug = 3 Then + MsgBox cCMD, 0, "PARAMETROS ENVIADOS" + Else 'nDebug = 0 Or nDebug = 2 + oVFP9.DoCmd( cCMD ) + nExitCode = oVFP9.Eval("_SCREEN.ExitCode") + End If + Exit For + End If + Next +End Sub diff --git a/Convert_VFP9_PRG_2_BIN.vbs b/Convert_VFP9_PRG_2_BIN.vbs new file mode 100644 index 0000000..569d334 --- /dev/null +++ b/Convert_VFP9_PRG_2_BIN.vbs @@ -0,0 +1,128 @@ +'--------------------------------------------------------------------------------------------------- +' Convert_VFP9_PRG_2_BIN.vbs - 03/01/2014 - Fernando D. Bozzo (fdbozzo@gmail.com) +'--------------------------------------------------------------------------------------------------- +' ENGLISH: +' USE: Copy this file in the same directory of FoxBin2prg and create a shortcut +' on user's "SendTo" folder +' +' ESPAÑOL: +' USO: Copie este archivo en el mismo directorio que FoxBin2prg y cree un acceso directo +' en la carpeta "SendTo" del usuario +'--------------------------------------------------------------------------------------------------- +Const ForReading = 1 +Dim WSHShell, FileSystemObject +Dim oVFP9, nExitCode, cEXETool, cCMD, nDebug, cConvertType, aExtensions(8), foxbin2prg_cfg +Dim i, x, str_cfg, aConf +Set WSHShell = WScript.CreateObject("WScript.Shell") +Set FileSystemObject = WScript.CreateObject("Scripting.FileSystemObject") +Set oVFP9 = CreateObject("VisualFoxPro.Application.9") +cConvertType = "PRG2BIN" +foxbin2prg_cfg = Replace(WScript.ScriptFullName, WScript.ScriptName, "foxbin2prg.cfg") +nExitCode = 0 +'--------------------------------------------------------------------------------------------------- +nDebug = 1 '0=OFF, 1=Create FoxBin2prg LOG, 2=Only show calls, 3=Only show calls of the LOG call +'--------------------------------------------------------------------------------------------------- + +If cConvertType = "BIN2PRG" Then + aExtensions(1) = "PJX" + aExtensions(2) = "VCX" + aExtensions(3) = "SCX" + aExtensions(4) = "FRX" + aExtensions(5) = "LBX" + aExtensions(6) = "DBF" + aExtensions(7) = "DBC" + aExtensions(8) = "MNX" +Else + '-- Extensiones TXT por defecto + aExtensions(1) = "PJ2" + aExtensions(2) = "VC2" + aExtensions(3) = "SC2" + aExtensions(4) = "FR2" + aExtensions(5) = "LB2" + aExtensions(6) = "DB2" + aExtensions(7) = "DC2" + aExtensions(8) = "MN2" + + If FileSystemObject.FileExists( foxbin2prg_cfg ) Then + '-- Existe el archivo de configuración foxbin2prg.cgf + Set objTextFile = FileSystemObject.OpenTextFile( foxbin2prg_cfg, ForReading ) + + Do Until objTextFile.AtEndOfStream + strNextLine = objTextFile.Readline + arrFb2p_CFG = Split(strNextLine , ",") + For i = 0 to Ubound(arrFb2p_CFG) + If Left( arrFb2p_CFG(i), 10 ) = "extension:" Then + 'Wscript.Echo "CFG line: " & arrFb2p_CFG(i) + aConf = Split( arrFb2p_CFG(i), ":" ) 'Obtengo la separación de "extensión:" y "ext:equiv" + str_cfg = UCase( Trim( aConf(1) ) ) + aConf = Split( str_cfg, "=" ) 'Obtengo la separación de extensión y equivalencia (vc2=vca) + 'Wscript.Echo "[" & aConf(0) & "] [" & aConf(1) & "]" + + For x = 1 TO 8 + If aExtensions(x) = aConf(0) Then + aExtensions(x) = UCase( aConf(1) ) + Exit For + End If + Next + Else + 'Wscript.Echo "Saltear: " & arrFb2p_CFG(i) + End If + Next + Loop + End If +End if + +If WScript.Arguments.Count = 0 Then + nExitCode = 1 + MsgBox "Sin parametros" +Else + cEXETool = Replace(WScript.ScriptFullName, WScript.ScriptName, "foxbin2prg.exe") + + For i = 0 To WScript.Arguments.Count-1 + scanDirs( WScript.Arguments(i) ) + Next +End If + +WScript.Quit(nExitCode) + + +Private Sub scanDirs( tcArgument ) + Dim omFolder, oFolder + If FileSystemObject.FolderExists( tcArgument ) Then + '-- Es un directorio + 'WScript.Echo "Argument: " & "[" & tcArgument & "]" + Set omFolder = FileSystemObject.GetFolder( tcArgument ) + 'WScript.Echo "Dir: " & "[" & omFolder.Path & "]" + For Each oFile IN omFolder.Files + 'WScript.Echo "File: " & "[" & oFile.Path & "]" + evaluateFile( oFile.Path ) + Next + For Each oFolder IN omFolder.SubFolders + 'WScript.Echo "SubDir: " & "[" & oFolder.Name & "] [" & oFolder.Path & "]" + scanDirs( oFolder.Path ) + Next + Else + '-- Es un archivo + evaluateFile( tcArgument ) + End If +End Sub + + +Private Sub evaluateFile( tcFile ) + For x = 1 TO 8 + If aExtensions(x) = UCase( FileSystemObject.GetExtensionName( tcFile ) ) Then + If nDebug = 1 OR nDebug = 3 Then + cCMD = "DO " & chr(34) & cEXETool & chr(34) & " WITH '" & tcFile & "','0','0','0','0','1'" + Else + cCMD = "DO " & chr(34) & cEXETool & chr(34) & " WITH " & chr(34) & tcFile & chr(34) + End If + If nDebug = 2 Or nDebug = 3 Then + MsgBox cCMD, 0, "PARAMETROS ENVIADOS" + Else 'nDebug = 0 Or nDebug = 2 + oVFP9.DoCmd( cCMD ) + nExitCode = oVFP9.Eval("_SCREEN.ExitCode") + End If + Exit For + End If + Next +End Sub diff --git a/README.txt b/README.txt index 230e7fd..39ea12d 100644 --- a/README.txt +++ b/README.txt @@ -1,4 +1,4 @@ -02/01/2014 FOXBIN2PRG VER.1.16 FOR VISUAL FOXPRO 9 BINARIES Fernando D. Bozzo (fdbozzo@gmail.com) +02/01/2014 FOXBIN2PRG VER.1.17 FOR VISUAL FOXPRO 9 BINARIES Fernando D. Bozzo (fdbozzo@gmail.com) ESPAÑOL -------------------------------------------------------------------------------------------- diff --git a/TESTS/DATOS_READONLY/menu1.MNT b/TESTS/DATOS_READONLY/menu1.MNT new file mode 100644 index 0000000000000000000000000000000000000000..0e068b592f2a540de4609b0d8a8611e970a81449 GIT binary patch literal 3198 zcmeH}No(6c6o4JN(3l!RQVOM)u}n*r+Qd$1N=X{LC?IOfuH_H{0Wp@xsZv=|wcz9@ z_s~;sJ$0T&+enHF?KQ$i*0?;)GHVY7t zu&xf2OJyL+=jpBC7=V6FZV$x3%no+I&`SBDEltpcB=?3FNC+IDONoU-h6uelJq;~S zYXTK7hPI~vGEtj4VItR`E{OR%f&h5b6Z_Hc+#7)BBj0eT3C9%tlqCQtE1#v2dNv$y z?_`(RS(LjL)#_nKw~B!pIO^gXf^1Arq{!p~_aa$=4Qx+a?JCi9@&-VF!y1i;U9opQ z7Ezxd4KJqp4@3-PT8pVes>z1jD5V0m>&@JHkaBMtjVt<@TerTcdsp*YA8X%CYiW?# zHGu%Qjp@S9?`1Qf;#ufLfdUrEN(j`Ob;X}%M1h3=w_!`6RpDvAr_wX=)rsyIBvu3} zj<_lkZwO^EqDPErT_Fq2eKW{7?kMZc@BsNpwqnWgAO*BriXYF%0{}Ln6sfl$5DhM1 z0PNF@a$S6#$*2fN+Y{ZklB(L_(+ebMNo_V&rcQ0EEtRTM6p>gRksURmD%~W?J=n*0l-R#;05)t6ua3j=4J}Uv41lNI$+*8KX7{q+093-_E#v@r zEe|K?+7L}VrFjaD#$Kj$6)Rvld6HB&U%rvaVX!F%DT3~TP6SP@hFS$3Bclt9{K)qQ z-pZBY;aow&+A3!NIQgfnX4%)`vxiE{J)k0+w1;U5fX2$CJq#VC2}qlXpGjHfW?4PB zGxlfiKal;ja5e@NZ-YNI-Aoel9kPjIA={ccI!3yK@OS@beseGb5+0vPa`m3|Ak+fy z1>pP<_k)i8-U>cKv2+uau@(x`4*IL0K7^fiDm>D@eN^07Xc`~KQNQSwj)sN Yo(Cj6v1sE1aYYXRFS&bJ80n7i2N46<1ONa4 literal 0 HcmV?d00001 diff --git a/TESTS/DATOS_READONLY/menu1.mnx b/TESTS/DATOS_READONLY/menu1.mnx new file mode 100644 index 0000000000000000000000000000000000000000..5b374f17de0fb478c11ccab00be0b5fbb7c383b4 GIT binary patch literal 2345 zcmeHI$&S-N5N(Fx0AeI|!LXHB1!9RkA&HP!jN{B?#%)`10)$0D0uD$BapAys^8>us zcG~S8i!Y$0Dp%L*dc9S*ds`>3ol;8eZDz1-**L0H{%U`|ED{3Q5txm37vga~u5ffe zglCa9ARv7VX4A_rX1OlrCa8~h;Bl^Xl#SUzZ*|~0Da&Zr453eV;NXwz1!U)ea}BN# zPsWQG81w}I{`|^hz9=e!Y#X?rZ}5sxU+&0{(%hx{X)(!XK$L#ifs;Jmi!y9+8UXjl&lY+*Pjm?= z3t{~FNR!t|TFo%-13v+Eg~{MxD1HvZ8ghl_pJb*$bOgX(Uz*3!e44X(Ggg5=ei`p2 zbp>X-UHGz`C7eC-r!fBd0NVZC2kwv0n*1+Hi3B0fza;@*mf#G{S(w(|Nn3hMlmJ2F zNGQQMdX5CVzruhqbgWDyTU*`(HjbY15GdIK5%|>2qkoaC_hSGsd`Y{9l+;SiyM<{RI686{us>63ute_YAjhefWW~ I^^&*$0_TdfnE(I) literal 0 HcmV?d00001 diff --git a/TESTS/DATOS_READONLY/menu2.mnt b/TESTS/DATOS_READONLY/menu2.mnt new file mode 100644 index 0000000000000000000000000000000000000000..038126205fbb28f2b3a34af0010fc5c45ed071be GIT binary patch literal 3099 zcmeH}-)qxQ6vsRKfh!iqrh@o#nxgE7Eo(PaWE0vhgW#Ihreg@haFgE7%ruGlLAO8I z2cLZN$$Ro+Np7+V`ns@^o14!)=iKi-=PZ><jw<{z!L~mm5Oq~>T1{{jI=cCY>_A*;ktZ3;5UjftPjr*;_{6n&j^OV!~SG^vLo_qqh|za zaq*UN2)vMo6Sy!%i)buQaicf8%=jvI5FOTGTHX2bO+t>vW*DXjT!)>g$2v*_Iwc*0 z^Myga&-aIXluOOyxuS)YWt&0Z@Sn0e%DzrMdziJtg)aD{-Oo}8w3a6Ae!NkZfUKDW zT*}6UqwZasyVE!C=x)|{G)5P%!hcDIl_unCaHwm8V^3X!fZ+o99{emW4rkE9{bNb4 z-|{|`TFCDL@%#}LBF|b2U3@x~CfUjC7y(|%JsybaVw{~$$7tcNz>>Pic}vY^N9dxS z)`eGE7)$M-g_=5_8LD^fIj&*(S^I2^z)oIjt|{)tva?calxZHh7#vF~`^FfJC7IV8 zf#mz47gntvb@?O|1R^DS$yEN1K=}PYA?!c}41tYe3raZzo~KH}l!AHlg`lyQ2$X+6 nL?Op*M_|}37g~5=v&M(!$}R++opq%NoJsQ0@C<}l>7MWhpi{gW literal 0 HcmV?d00001 diff --git a/TESTS/DATOS_READONLY/menu2.mnx b/TESTS/DATOS_READONLY/menu2.mnx new file mode 100644 index 0000000000000000000000000000000000000000..be3596eb2c843ae452e54898638a4dab2f348648 GIT binary patch literal 2345 zcmeHI+iuf95M4@n08xqirBE?~0^+LJO_K-#!gV%HTCW}Aq!0w^1Mq-^5HCFN-TVOO ztey4RwfF*#G?Upmv$H$v*-dBT{MH4f)ObCGu4C=AQrX_Yd^y!5(o;}t^$_xLHY|9A zpWxHTSQ3;u1GV0mKb>V}I=4=9wuO%~W1@7(0JG7;8=dFTzFopxY~hhVE(=Jnf@cjr z$m`)^h79H!i01xsJzq?V1nDOD=6uT+3C*pR`EjD7w48sZWxnMXQ)Vy%)m-01vqO?V zybaY{|4=ViM{MqcZ_WpwM0+{`WgfNg`Qc$4~SLn)Enkl(+CfG5?rR`A-IBp&|wt~hmnNGCST_0l?8GX*+h1P5%}%*Y48Ccc#(xhr4%p!b;u36 zMf_~RP56SIOB+h(HatFpEsTU7t7tf2Z`se!-~RlFj^o@Vk*+Yp?TwGa3PPh&964Zb zem34oB^{&{8aTJkUAjCJA#{l6EzFSwWi}qYJ2$ttUjG3C??E1xbA`W^;>e-eo6T13 zZ5tu3Qa(c~2#rc{}xl>0=jL82_%cTUHw8zgj9C*q(V(W_*g@;5n4g zVHFLBYHv1MRVgD-X|Mkh2DkhQ@`6r?r_>IHd=Pi(cHh)y3)!r!v`D+^-Z$_P5kzQI ziX(?cHZEkdm6rk?61&*K2!;%yZ50g%bjb0}@9&*2y}?(u840Z5bqGBp2%k?ru>$cF zM-G_jXFG9j{Q;kPKD5LPA~Y(c_-|L?&uk!5bo*c;vcRM5ajP32g<8nPFfL5DxoGnCo;^b1eVEts)PB=oo=(b(Q5Q zWrd%i6TCvMQzB(oynx07oQ!j7<4e$FfWu!m2e8-Re1@)=n^l>^fo=f8`py((RvXwU zc$n{bZAiBR`8qMmHu?7h`JR^yyg&3?co15Z2$D>gS5-5j@NXPt?*RK=d@g z-9FCNX$~Ujd4RLI-YSbLPUhfYeOppo7;->1LJ0dKF`p)>cc@>$Pw{lc$?)JQ{ei$e z)D{1KV|{~=0tnBSq*@hm%FS!J3&Q$NZ%xyIb~D5)mmA(a@?(VXe1Pr!?!d$P+>`$j zLdto>|Gy`081Wl=cPIOr@lrX%q#wvg&d+(&kvEb&;R6p^t!4B@u5##=5+1dilnco# z@P2*c!356*4XRU5`Uv;Y0F-4?JiUxcOV+lX{csH|a1} Apa1{> literal 0 HcmV?d00001 diff --git a/TESTS/DATOS_READONLY/menu_shortcut.MNT b/TESTS/DATOS_READONLY/menu_shortcut.MNT new file mode 100644 index 0000000000000000000000000000000000000000..792bef1c5826f76146744240bd730cc167a794a2 GIT binary patch literal 3231 zcmeH|?Q7FO7{DvOuoVkqiXehqGlZ@qb!`WNOeJkI39e~PI)+dPX`0T=HVJv5+u!Xs zKY35?(%dCk1@W6Z*5z{f-Sc+O^IWA;nN=#4I{w{{`v^b;9^hZIDT-)lyD=IEo@LMD zz(${CRo0|))X?oH_TToGw&}+HVM)+H!X8LSNMw0)yH;g60QLc(LJ9}~yT(xerVnNH zg565z092=^`gbpgtT-wX0PNiTnYj77Nxk$pUN%D8iru*xI9{1+tRhhHeB@isPZvqp z1s8?!Y-PK@QV4*D1Nl6CFFXNwI*ym28K6@Pe#{d9RP`^)*f<+$jS_a z!_d6S9e0YO#>DZxtgsLHvj+*EnqzI$mj@S`oOFSjT6H&R5DwZDPQ6xb z%IX02@wHAoU zxRBa!FuFD}a}$v8A*(FDbW)RPEHMTdfNqm6(8JYyfI21BTB71TUz@y@TgAh%B}V>L zPLkZ|@MoX1FL?zO`II|hK>%7?Q|^TNfinkJdYnr*;ziZy-mco+lN*1=3MX?=@#suZ z>%~tQAn-N-&d0Bymz9>N_lGeb*>?GY1nZc9F)bJs2H9p2EO0Nnxf`o4nTUb z_L7paNQcGi$pC;vvPV~P4*-&j)kaBsC}03QEB1$s1K?#ANi?_7a&vV;iULr6u@aMM nPY^J6#{dbBJ=~Q*T-gBNKZ(POOG%laOGO=wE|EYJsweygvSG|N literal 0 HcmV?d00001 diff --git a/TESTS/DATOS_READONLY/menu_shortcut.mnx b/TESTS/DATOS_READONLY/menu_shortcut.mnx new file mode 100644 index 0000000000000000000000000000000000000000..19658788179d5cd5673d061ade075f1376bbc8f6 GIT binary patch literal 2657 zcmeHI+iuf95OryJ013n$QEme&h^vU5Kr4g**KwM(Sv$l@QMg6W7kGeHs7UbL`~c^y zo%MQS!VfUgOm^qYo}HbYtQ#knmd|;f*Ih|qt8!%7^U}@j(PR)4NS0uZR6~eIX*{&hnsO9kh)ugXFI(?CmjOu)WaH_hm@5cQ+!>9%PIMfy{1_xcya~SrJExi9Y(G8+P0PgwvX%vonDVsN87r6Up zQ8z9+FxjfZC)qG&_E_J8anA?P)OQ=WyFYvKzj&TVE8zWC#6N|pe}?8POr>^Gl?E3| z15Q1VKzu$+wy^y?F@^&p9r33sn`G#fF*tHIk)|*Lzw7H9@Bx^Ka8Me~jDW#r%Qr@D z1#KV=J{7k37cmohwBf)=M}qA0{`bSZABP~Gkw{AzVRE}v#9yP6!W-Cw12%I#p8&iG;eM%?PGF}r?KGu)v zHg~Go0v6pmY4Oi`0WakxRG^mO%!tFrjchh_$fk+S2aD_GPn*BK`pwqQgHJVe%TF4C zr~_?71!@`2j376gZLV(X8?O+{j|e4&3J0a}x|s4K!ViUW(iXqKteekImFc%3CY0Au z;h;1gze@b@jp?rb>w{hTD*yTkJhuF!ZuZ%z z-@Ugz?aq>GS@u#Gds{_Czdy}OGR-O0(%Iw7dCZs5CnG2p7G7-Y5j9?D(@pu zoSYcnz17+Z*I6P0dd_y>d4;dik5?%eLJKbkzUBOMNfQ>~k|3NeZTDBqAn>rGoyG5& zCj!rg;Ub_basuEdnTUckzUV`{LLnY~s@uC3zt$ z*_rW36a$;nG}}fzoIC}9G}T)2A?_jYu3DYIZ|+@(uCt!ZuS076aJ|jKo?Y4)eo&n* z{dk7_L<>)O3^@*%4kZq#HPr~Gl8Jv4!-oxZ)@0+jGjBr_?aGGKq6GA(FhV>s51|4e z9a1{0HLh-2sJav(yb3_GZsepj0=x14sdZduHKhjv?_s-xfL==59pmI+?D$?%w}8?E@dz$H*~Q#n4Iv^ z;eiQyAn>F;9-SR&@?7?gK#3PlE{DLI{$NZl7n)0_kY%`pIDS*`mG6M<#c5Jm(v~vm z>s(8~FayXrVjlrnhlUKWq#cRFNgplT32aH)l()pJ*h3fPBx!@(tleq{EtJgV+%bcjz=s=M zzB&;&N=q#rNDVGK)WLq9=FCN}tDA6r4@Y`m)*ONOVr@kwWw8?$#-oM+Q?kWJqz3}g z#cGr2c*tM~yvUvp35USzL`gEU$>R3v#1us!|6*k!^D{vK><HL~Rig$aNi(Hfx7CsR*|q`a&O|6)F;ZH$T8R zYiD=8HRT5wX(zLDW{+oQC%dh)3k#QmAm}Y+&~;fn5d`_h)_6Kh31kaUi}euVNxoU) z2tR^nvC<$QbrNdHTR$A-YB<(Tb*ceRa;4&IlL6{X1Fq7dh+pYXsPhdt_>*b_*=69| zgDb?-&B+K1>Iwiqzakw^h9yC^4BTI@@sd#8Xjq>N(m1Qu-)>m1@yU=3N}&Ajt9Z0c z5R$Aw`QP78r}Gl4d%*qmzz6Y0Isl{|G~mT{f7s1OKmzro0VjFVi!+pX5CZqVpG{PM zoT>s)7D4&_F-UjPL78FF0e%|86)pw`UC9e5_K+()|1{GLqGAC4{swsxkNY{BH)9w0 z-!GD0T6JLdstKPKqm#CwyMu`1@ZT*HNs!3I5PqUm(AwJThp8ZugJLw4XZdaV%c=vbm!Mk z;h~8wjpKLPsd9@7wC}uoO^2*&&!dX*F@D3RP(p`RG>q8XG@IQiBe2u5ZgfA#ct$6N zqXKTHjlm1sV~bYlv;9{6vv_q=USbFht2i^_vGF4=8#*L5v88c*-NIS>*VnM!`FZfU zp>E|)H$cRvA;Ay~M{#BZxw&jd>bAB%L~OT;=Zhn>tqSPoBOYiCiK};K;7QJxp>9?|OQ_y|F_=q7G Xjtbsl`VQkg-6Aeq_<_E8Zp(iF@D (Solo para binarios VFP 9 / Only for VFP 9 binaries) +*< FOXBIN2PRG: Version="1.17" SourceFile="C:\DESA\foxbin2prg\foxbin2prg.pjx" Generated="2014/01/03 16:29:53" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) * LPARAMETERS tcDir @@ -25,8 +25,8 @@ _LegalCopyright = "Open Source - LICENCIA Creative Commons: Reconocimiento - Co _LegalTrademark = "Open Source" _ProductName = " FOXBIN2PRG" _MajorVer = "1" -_MinorVer = "16" -_Revision = " 144" +_MinorVer = "17" +_Revision = " 152" _LanguageID = "1034" _AutoIncrement = "1" * @@ -51,7 +51,7 @@ loProject = _VFP.Projects('foxbin2prg.pjx') WITH loProject.FILES .ADD('config\config.fpw') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="1132857145" ID="1131721714" ObjRev="0" /> - .ADD('foxbin2prg.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="1143083468" ID="1130644423" ObjRev="544" /> + .ADD('foxbin2prg.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="1143178164" ID="1130644423" ObjRev="544" /> * .ITEM('__newproject.f2b').Remove() diff --git a/foxbin2prg.pjt b/foxbin2prg.pjt index 2cf9a08226e90cf448ad4ac24ef2cf337d5ca480..008199c8c0c9f9a77791fcce9af8737461c4b38d 100644 GIT binary patch literal 311296 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 F{{=@?g@OP8 delta 155 zcmZo@5I!Kr!N9-=>a9GfLOuE#K6F4@*7rX01rYEUjP6A delta 128 zcmZ3_vz~{=fRB-BBg+<+$ * *--------------------------------------------------------------------------------------------------- @@ -67,7 +68,8 @@ * 07/12/2013 Edgar Kummers REPORTE BUG: Cuando se parsea una clase con un _memberdata largo, se parsea mal y se corrompe el valor (arreglado en v.1.11) * 08/12/2013 Fidel Charny REPORTE BUG: Cuando se convierten algunos reportes da "Error 1924, TOREG is not an object" (arreglado en v.1.13) * 14/12/2013 Arturo Ramos REPORTE BUG: La regeneración de los forms (SCX) no respeta la propiedad AutoCenter, estando pero no funcionando. (arreglado en v.1.14) -* 14/12/2013 Fidel Charny REPORRE BUG: La regeneración de los forms (SCX) no regenera el último registro COMMENT (arreglado en v.1.14) +* 14/12/2013 Fidel Charny REPORTE BUG: La regeneración de los forms (SCX) no regenera el último registro COMMENT (arreglado en v.1.14) +* 01/01/2014 Fidel Charny REPORTE BUG v1.16: El menú no siempre respeta la posición original LOCATION y a veces se genera mal el MNX (se arregla en v1.17) * * *--------------------------------------------------------------------------------------------------- @@ -202,6 +204,8 @@ LPARAMETERS tc_InputFile, tcType_na, tcTextName_na, tlGenText_na, tcDontShowErro #DEFINE C_MENUCODE_F '*' #DEFINE C_MENUTYPE_I '*' #DEFINE C_MENUTYPE_F '' +#DEFINE C_MENULOCATION_I '*' +#DEFINE C_MENULOCATION_F '' *-- #DEFINE C_TAB CHR(9) #DEFINE C_CR CHR(13) @@ -284,6 +288,7 @@ goCnv = CREATEOBJECT("c_foxbin2prg") lnResp = goCnv.ejecutar( tc_InputFile, tcType_na, tcTextName_na, tlGenText_na, tcDontShowErrors, tcDebug ; , '', NULL, NULL, .F., tcOriginalFileName ) +ADDPROPERTY(_SCREEN, 'ExitCode', lnResp) IF _VFP.STARTMODE <= 1 RETURN lnResp ENDIF @@ -307,6 +312,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM + [] ; + [] ; + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -322,6 +328,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM + [] ; + [] ; + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -343,11 +350,12 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM *-- - n_FB2PRG_Version = 1.16 + n_FB2PRG_Version = 1.17 *-- c_Foxbin2prg_FullPath = '' c_CurDir = '' c_InputFile = '' + c_OriginalFileName = '' c_LogFile = '' c_TextLog = '' c_OutputFile = '' @@ -381,6 +389,8 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM SET CENTURY ON SET SAFETY OFF SET TABLEPROMPT OFF + SET POINT TO '.' + SET SEPARATOR TO ',' THIS.c_Foxbin2prg_FullPath = SUBSTR( SYS(16), AT( 'C_FOXBIN2PRG.INIT', SYS(16) ) + LEN('C_FOXBIN2PRG.INIT') + 1 ) THIS.c_CurDir = SYS(5) + CURDIR() THIS.o_FSO = NEWOBJECT("Scripting.FileSystemObject") @@ -489,7 +499,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDPROC - PROCEDURE Ejecutar + PROCEDURE ejecutar *-------------------------------------------------------------------------------------------------------------- * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * tc_InputFile (!v IN ) Nombre del archivo de entrada @@ -682,6 +692,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM IF NOT EMPTY(tcOriginalFileName) tcOriginalFileName = loFSO.GetAbsolutePathName( tcOriginalFileName ) ENDIF + .c_OriginalFileName = EVL( tcOriginalFileName, .c_InputFile ) THIS.writeLog( 'c_InputFile=' + .c_InputFile ) .o_Conversor = NULL @@ -819,6 +830,24 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDPROC + PROCEDURE get_PROGRAM_HEADER + LOCAL lcText + lcText = '' + + *-- Cabecera del PRG e inicio de DEF_CLASS + TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 + *-------------------------------------------------------------------------------------------------------------------------------------------------------- + * (ES) AUTOGENERADO - ¡¡ATENCIÓN!! - ¡¡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!! + *-------------------------------------------------------------------------------------------------------------------------------------------------------- + <> Version="<>" SourceFile="<>" Generated="<>" <> (Solo para binarios VFP 9 / Only for VFP 9 binaries) + * + ENDTEXT + + RETURN lcText + ENDPROC + + PROCEDURE getNext_BAK *-------------------------------------------------------------------------------------------------------------- * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) @@ -6205,11 +6234,13 @@ DEFINE CLASS c_conversor_prg_a_mnx AS c_conversor_prg_a_bin LOCAL THIS AS c_conversor_prg_a_mnx OF 'FOXBIN2PRG.PRG' #ENDIF _MEMBERDATA = [] ; + + [] ; + [] ; + [] n_MenuType = 0 + c_MenuLocation = '' ******************************************************************************************************************* PROCEDURE Convertir @@ -6412,7 +6443,6 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base + [] ; + [] ; + [] ; - + [] ; + [] ; + [] @@ -7383,25 +7413,6 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base ENDPROC - ******************************************************************************************************************* - PROCEDURE write_PROGRAM_HEADER - LOCAL lcText - lcText = '' - - *-- Cabecera del PRG e inicio de DEF_CLASS - TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 - *-------------------------------------------------------------------------------------------------------------------------------------------------------- - * (ES) AUTOGENERADO - ¡¡ATENCIÓN!! - ¡¡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!! - *-------------------------------------------------------------------------------------------------------------------------------------------------------- - <> Version="<>" SourceFile="<>" Generated="<>" <> (Solo para binarios VFP 9 / Only for VFP 9 binaries) - * - ENDTEXT - - RETURN lcText - ENDPROC - - ******************************************************************************************************************* PROCEDURE write_PROTECTED_Properties *-- Escribo la definición PROTECTED de propiedades @@ -7917,7 +7928,7 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg INDEX ON PADR(LOWER(PLATFORM + IIF(EMPTY(PARENT),'',ALLTRIM(PARENT)+'.')+OBJNAME),240) TAG PARENT_OBJ OF TABLABIN ADDITIVE SET ORDER TO 0 IN TABLABIN - C_FB2PRG_CODE = C_FB2PRG_CODE + THIS.write_PROGRAM_HEADER() + C_FB2PRG_CODE = C_FB2PRG_CODE + toFoxbin2prg.get_PROGRAM_HEADER() THIS.get_NombresObjetosOLEPublic( @la_NombresObjsOle ) @@ -7999,7 +8010,7 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg IF THIS.l_Test toModulo = C_FB2PRG_CODE ELSE - lnLen = LEN( THIS.write_PROGRAM_HEADER() ) + lnLen = LEN( toFoxbin2prg.get_PROGRAM_HEADER() ) DO CASE CASE FILE(THIS.c_OutputFile) AND SUBSTR( FILETOSTR( THIS.c_OutputFile ), lnLen ) == SUBSTR( C_FB2PRG_CODE, lnLen ) THIS.writeLog( 'El archivo de salida [' + THIS.c_OutputFile + '] no se sobreescribe por ser igual al generado.' ) @@ -8063,7 +8074,7 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg *toModulo = NULL *toModulo = CREATEOBJECT('CL_MODULO') - C_FB2PRG_CODE = C_FB2PRG_CODE + THIS.write_PROGRAM_HEADER() + C_FB2PRG_CODE = C_FB2PRG_CODE + toFoxbin2prg.get_PROGRAM_HEADER() THIS.get_NombresObjetosOLEPublic( @la_NombresObjsOle ) @@ -8164,7 +8175,7 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg IF THIS.l_Test toModulo = C_FB2PRG_CODE ELSE - lnLen = LEN( THIS.write_PROGRAM_HEADER() ) + lnLen = LEN( toFoxbin2prg.get_PROGRAM_HEADER() ) DO CASE CASE FILE(THIS.c_OutputFile) AND SUBSTR( FILETOSTR( THIS.c_OutputFile ), lnLen ) == SUBSTR( C_FB2PRG_CODE, lnLen ) THIS.writeLog( 'El archivo de salida [' + THIS.c_OutputFile + '] no se sobreescribe por ser igual al generado.' ) @@ -8280,7 +8291,7 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg ENDSCAN - C_FB2PRG_CODE = C_FB2PRG_CODE + THIS.write_PROGRAM_HEADER() + C_FB2PRG_CODE = C_FB2PRG_CODE + toFoxbin2prg.get_PROGRAM_HEADER() *-- Directorio de inicio @@ -8469,7 +8480,7 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg IF THIS.l_Test toModulo = C_FB2PRG_CODE ELSE - lnLen = LEN( THIS.write_PROGRAM_HEADER() ) + lnLen = LEN( toFoxbin2prg.get_PROGRAM_HEADER() ) DO CASE CASE FILE(THIS.c_OutputFile) AND SUBSTR( FILETOSTR( THIS.c_OutputFile ), lnLen ) == SUBSTR( C_FB2PRG_CODE, lnLen ) THIS.writeLog( 'El archivo de salida [' + THIS.c_OutputFile + '] no se sobreescribe por ser igual al generado.' ) @@ -8572,7 +8583,7 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg USE IN (SELECT("TABLABIN_0")) - C_FB2PRG_CODE = C_FB2PRG_CODE + THIS.write_PROGRAM_HEADER() + C_FB2PRG_CODE = C_FB2PRG_CODE + toFoxbin2prg.get_PROGRAM_HEADER() *-- Recorro los registros y genero el texto IF VARTYPE(loRegCab) = "O" @@ -8601,7 +8612,7 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg IF THIS.l_Test toModulo = C_FB2PRG_CODE ELSE - lnLen = LEN( THIS.write_PROGRAM_HEADER() ) + lnLen = LEN( toFoxbin2prg.get_PROGRAM_HEADER() ) DO CASE CASE FILE(THIS.c_OutputFile) AND SUBSTR( FILETOSTR( THIS.c_OutputFile ), lnLen ) == SUBSTR( C_FB2PRG_CODE, lnLen ) THIS.writeLog( 'El archivo de salida [' + THIS.c_OutputFile + '] no se sobreescribe por ser igual al generado.' ) @@ -8659,7 +8670,7 @@ DEFINE CLASS c_conversor_dbf_a_prg AS c_conversor_bin_a_prg THIS.getDBFmetadata( THIS.c_InputFile, @ln_HexFileType, @ll_FileHasCDX, @ll_FileHasMemo, @ll_FileIsDBC, @lc_DBC_Name ) USE (THIS.c_InputFile) SHARED NOUPDATE ALIAS TABLABIN - C_FB2PRG_CODE = C_FB2PRG_CODE + THIS.write_PROGRAM_HEADER() + C_FB2PRG_CODE = C_FB2PRG_CODE + toFoxbin2prg.get_PROGRAM_HEADER() *-- Header loTable = CREATEOBJECT('CL_DBF_TABLE') @@ -8672,7 +8683,7 @@ DEFINE CLASS c_conversor_dbf_a_prg AS c_conversor_bin_a_prg IF THIS.l_Test toModulo = C_FB2PRG_CODE ELSE - lnLen = LEN( THIS.write_PROGRAM_HEADER() ) + lnLen = LEN( toFoxbin2prg.get_PROGRAM_HEADER() ) DO CASE CASE FILE(THIS.c_OutputFile) AND SUBSTR( FILETOSTR( THIS.c_OutputFile ), lnLen ) == SUBSTR( C_FB2PRG_CODE, lnLen ) THIS.writeLog( 'El archivo de salida [' + THIS.c_OutputFile + '] no se sobreescribe por ser igual al generado.' ) @@ -8740,7 +8751,7 @@ DEFINE CLASS c_conversor_dbc_a_prg AS c_conversor_bin_a_prg USE (THIS.c_InputFile) SHARED NOUPDATE ALIAS TABLABIN OPEN DATABASE (THIS.c_InputFile) SHARED NOUPDATE - C_FB2PRG_CODE = C_FB2PRG_CODE + THIS.write_PROGRAM_HEADER() + C_FB2PRG_CODE = C_FB2PRG_CODE + toFoxbin2prg.get_PROGRAM_HEADER() *-- Header toDatabase = CREATEOBJECT('CL_DBC') @@ -8753,7 +8764,7 @@ DEFINE CLASS c_conversor_dbc_a_prg AS c_conversor_bin_a_prg IF THIS.l_Test toModulo = C_FB2PRG_CODE ELSE - lnLen = LEN( THIS.write_PROGRAM_HEADER() ) + lnLen = LEN( toFoxbin2prg.get_PROGRAM_HEADER() ) DO CASE CASE FILE(THIS.c_OutputFile) AND SUBSTR( FILETOSTR( THIS.c_OutputFile ), lnLen ) == SUBSTR( C_FB2PRG_CODE, lnLen ) THIS.writeLog( 'El archivo de salida [' + THIS.c_OutputFile + '] no se sobreescribe por ser igual al generado.' ) @@ -8810,7 +8821,7 @@ DEFINE CLASS c_conversor_mnx_a_prg AS c_conversor_bin_a_prg USE (THIS.c_InputFile) SHARED NOUPDATE ALIAS TABLABIN *-- Header - C_FB2PRG_CODE = C_FB2PRG_CODE + THIS.write_PROGRAM_HEADER() + C_FB2PRG_CODE = C_FB2PRG_CODE + toFoxbin2prg.get_PROGRAM_HEADER() toMenu = CREATEOBJECT('CL_MENU') toMenu.get_DataFromTablabin() @@ -8823,7 +8834,7 @@ DEFINE CLASS c_conversor_mnx_a_prg AS c_conversor_bin_a_prg IF THIS.l_Test toMenu = C_FB2PRG_CODE ELSE - lnLen = LEN( THIS.write_PROGRAM_HEADER() ) + lnLen = LEN( toFoxbin2prg.get_PROGRAM_HEADER() ) DO CASE CASE FILE(THIS.c_OutputFile) AND SUBSTR( FILETOSTR( THIS.c_OutputFile ), lnLen ) == SUBSTR( C_FB2PRG_CODE, lnLen ) THIS.writeLog( 'El archivo de salida [' + THIS.c_OutputFile + '] no se sobreescribe por ser igual al generado.' ) @@ -14285,7 +14296,7 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE LOCAL loBarPop AS CL_MENU_BARPOP OF 'FOXBIN2PRG.PRG' LOCAL llBloqueEncontrado, loReg, lcComment, lcExpr, lcProcName, lcProcCode, loEx AS EXCEPTION ; , llBloque_SetupCode_Analizado, llBloque_CleanupCode_Analizado, llBloque_MenuCode_Analizado ; - , llBloque_MenuType_Analizado, llBloque_Procedure_Analizado + , llBloque_MenuType_Analizado, llBloque_Procedure_Analizado, llBloque_MenuLocation_Analizado STORE '' TO lcComment llBloqueEncontrado = .T. @@ -14309,6 +14320,23 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE loReg.ObjType = toConversor.n_MenuType llBloque_MenuType_Analizado = .T. + CASE NOT llBloque_MenuLocation_Analizado AND LEFT( tcLine, LEN(C_MENULOCATION_I) ) == C_MENULOCATION_I + toConversor.c_MenuLocation = STREXTRACT( tcLine, C_MENULOCATION_I, C_MENULOCATION_F ) + DO CASE + CASE toConversor.c_MenuLocation == 'REPLACE' + loReg.Location = 0 + CASE toConversor.c_MenuLocation == 'APPEND' + loReg.Location = 1 + OTHERWISE + IF LEFT(toConversor.c_MenuLocation,7) == 'BEFORE' + loReg.Location = 2 + ELSE + loReg.Location = 3 + ENDIF + loReg.NAME = GETWORDNUM(toConversor.c_MenuLocation,2) + ENDCASE + llBloque_MenuLocation_Analizado = .T. + CASE NOT llBloque_SetupCode_Analizado AND THIS.analizarBloque_SetupCode( @tcLine, @taCodeLines, @I, tnCodeLines, toConversor ) llBloque_SetupCode_Analizado = .T. @@ -14469,32 +14497,33 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE IF LEFT(tcLine, LEN(C_MENUCODE_I)) == C_MENUCODE_I llBloqueEncontrado = .T. - *-- HEADER - WITH loReg - .OBJCODE = 22 - .PROCTYPE = 1 - .MARK = CHR(4) - .LOCATION = 1 - .SETUPTYPE = 1 - .CLEANTYPE = 1 - .ITEMNUM = STR(0,3) - IF .ObjType = 4 && Shortcut menu - lcExpr = ALLTRIM( STREXTRACT( C_FB2PRG_CODE, 'ON SELECTION POPUP ALL ', CR_LF ) ) + FOR I = I + 0 TO tnCodeLines + STORE '' TO lcExpr, lcProcName, lcProcCode + THIS.set_Line( @tcLine, @taCodeLines, I ) - IF NOT EMPTY(lcExpr) - THIS.AnalizarSiExpresionEsComandoOProcedimiento( lcExpr, @lcProcName, @lcProcCode, @C_FB2PRG_CODE, -1, .F. ) + DO CASE + CASE EMPTY( tcLine ) + LOOP + + CASE toConversor.lineIsOnlyCommentAndNoMetadata( @tcLine, @lcComment ) + LOOP && Saltear comentarios + + CASE LEFT( tcLine, LEN(C_MENUCODE_F) ) == C_MENUCODE_F + EXIT + + CASE LEFT( tcLine, LEN(C_MENUCODE_I) ) == C_MENUCODE_I + + CASE LEFT( tcLine, 12 ) == 'DEFINE MENU ' + loReg.OBJCODE = 22 + loReg.PROCTYPE = 1 + loReg.MARK = CHR(4) + loReg.SETUPTYPE = 1 + loReg.CLEANTYPE = 1 + loReg.ITEMNUM = STR(0,3) + lcMenuType = ALLTRIM( GETWORDNUM( tcLine, 3 ) ) + loReg.ObjType = IIF( lcMenuType = '_MSYSMENU', 1, 5 ) - IF EMPTY(lcProcCode) - *-- Comando - .PROCEDURE = lcExpr - ELSE - *-- Procedure - lcProcCode = STRTRAN( lcProcCode, '<>', lcProcName ) - .PROCEDURE = lcProcCode - ENDIF - ENDIF - ELSE && .OBJTYPE = 1 ó 5 lcExpr = ALLTRIM( STREXTRACT( C_FB2PRG_CODE, 'ON SELECTION MENU _MSYSMENU ', CR_LF ) ) IF NOT EMPTY(lcExpr) @@ -14502,52 +14531,86 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE IF EMPTY(lcProcCode) *-- Comando - .PROCEDURE = lcExpr + loReg.PROCEDURE = lcExpr ELSE *-- Procedure lcProcCode = STRTRAN( lcProcCode, '<>', lcProcName ) - .PROCEDURE = lcProcCode + loReg.PROCEDURE = lcProcCode ENDIF ENDIF - ENDIF - ENDWITH + loBarPop = CREATEOBJECT('CL_MENU_BARPOP') + loBarPop.c_ParentName = '' + loBarPop.n_ParentCode = THIS.oReg.OBJCODE + loBarPop.n_ParentType = THIS.oReg.ObjType + loBarPop.analizarBloque( @tcLine, @taCodeLines, @I, @tnCodeLines, toConversor ) + THIS.ADD( loBarPop ) + EXIT - loBarPop = CREATEOBJECT('CL_MENU_BARPOP') - loBarPop.c_ParentName = '' - loBarPop.n_ParentCode = THIS.oReg.OBJCODE - loBarPop.n_ParentType = THIS.oReg.ObjType - loBarPop.analizarBloque( @tcLine, @taCodeLines, @I, @tnCodeLines, toConversor ) - THIS.ADD( loBarPop ) + CASE LEFT( tcLine, 13 ) == 'DEFINE POPUP ' + loReg.OBJCODE = 22 + loReg.PROCTYPE = 1 + loReg.MARK = CHR(4) + loReg.SETUPTYPE = 1 + loReg.CLEANTYPE = 1 + loReg.ITEMNUM = STR(0,3) + *loReg.NAME = ALLTRIM( GETWORDNUM( tcLine, 3 ) ) + *IF RIGHT(loReg.NAME,5) == '_FB2P' && Originalmente era vacío y se la había puesto un nombre temporal. + * loReg.NAME = '' + *ENDIF + *loReg.LevelName = loReg.NAME + loReg.SCHEME = 0 + lcExpr = ALLTRIM( STREXTRACT( C_FB2PRG_CODE, 'ON SELECTION POPUP ALL ', CR_LF ) ) + THIS.AnalizarSiExpresionEsComandoOProcedimiento( lcExpr, @lcProcName, @lcProcCode, @C_FB2PRG_CODE, -1, .F. ) - IF loReg.ObjType = 4 && Shortcut menu - *-- Creo option - loOption = CREATEOBJECT("CL_MENU_OPTION") - loOption.oReg = toConversor.emptyRecord() - WITH loOption.oReg - .ObjType = 3 - .OBJCODE = 77 - .PROMPT = '\>', lcProcName ) + loReg.PROCEDURE = lcProcCode + ENDIF + + loBarPop = CREATEOBJECT('CL_MENU_BARPOP') + loBarPop.c_ParentName = '' + loBarPop.n_ParentCode = THIS.oReg.OBJCODE + loBarPop.n_ParentType = THIS.oReg.ObjType + loBarPop.analizarBloque( @tcLine, @taCodeLines, @I, @tnCodeLines, toConversor ) + THIS.ADD( loBarPop ) + + *-- Creo option + loOption = CREATEOBJECT("CL_MENU_OPTION") + loOption.oReg = toConversor.emptyRecord() + WITH loOption.oReg + .ObjType = 3 + .OBJCODE = 77 + .MARK = CHR(0) + .PROMPT = '\><><> + <><><> ENDTEXT IF NOT EMPTY(loReg.SETUP) @@ -14654,6 +14729,19 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE <> ENDTEXT + DO CASE + CASE loHeader.ObjType = 1 && Menu Bar (Sistema) + lcText = lcText + CR_LF + 'DEFINE MENU _MSYSMENU BAR' + + CASE loHeader.ObjType = 5 && Menu Bar (On top) + lcText = lcText + CR_LF + 'DEFINE MENU _ONTOP BAR' + + CASE loHeader.ObjType = 4 && Shortcut + lcText = lcText + CR_LF + 'DEFINE POPUP ' + THIS.ITEM(1).ITEM(1).ITEM(1).oReg.NAME + ' SHORTCUT RELATIVE FROM MROW(),MCOL()' + + ENDCASE + + *-- Bars and Popups IF THIS.COUNT > 0 FOR EACH loBarPop IN THIS FOXOBJECT @@ -14802,7 +14890,7 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE + ', Name=' + TRANSFORM(loReg.NAME) ; + ', LevelName=' + TRANSFORM(loReg.LevelName) ; + ', ItemNum=' + TRANSFORM(loReg.ITEMNUM) ; - + ', Location=' + TRANSFORM(loReg.LOCATION) ; + + ', Location=' + TRANSFORM(loReg.Location) ; + ', Prompt=' + TRANSFORM(loReg.PROMPT) ; + ', Message=' + TRANSFORM(loReg.MESSAGE) ; + ', KeyName=' + TRANSFORM(loReg.KEYNAME) ; @@ -14875,7 +14963,7 @@ DEFINE CLASS CL_MENU_BARPOP AS CL_MENU_COL_BASE TRY LOCAL loOption AS CL_MENU_OPTION OF 'FOXBIN2PRG.PRG' - LOCAL llBloqueEncontrado, lcSubName, lcComment, lnLast_I, loReg, lcExpr, lcProcName, lcProcCode ; + LOCAL llBloqueEncontrado, lcSubName, lcComment, lnLast_I, loReg, lcExpr, lcProcName, lcProcCode, lcMenuType ; , loEx AS EXCEPTION STORE '' TO lcSubName, lcComment, lcExpr, lcProcName, lcProcCode @@ -14883,6 +14971,7 @@ DEFINE CLASS CL_MENU_BARPOP AS CL_MENU_COL_BASE loReg = THIS.oReg loReg.ObjType = 2 loReg.PROCTYPE = 1 + loReg.MARK = CHR(0) loReg.ITEMNUM = STR(0,3) llBloqueEncontrado = .T. @@ -14900,33 +14989,41 @@ DEFINE CLASS CL_MENU_BARPOP AS CL_MENU_COL_BASE CASE LEFT( tcLine, LEN(C_MENUCODE_F) ) == C_MENUCODE_F EXIT - CASE LEFT( tcLine, LEN(C_MENUCODE_I) ) == C_MENUCODE_I + CASE LEFT( tcLine, LEN('ON SELECTION POPUP ' + loReg.NAME) ) == 'ON SELECTION POPUP ' + loReg.NAME + EXIT + + CASE LEFT( tcLine, 12 ) == 'DEFINE MENU ' loReg.OBJCODE = 1 loReg.NAME = '_MSYSMENU' loReg.LevelName = loReg.NAME loReg.SCHEME = IIF( loReg.OBJCODE = 1, 3, 4 ) - IF THIS.n_ParentType = 4 - EXIT - ELSE - lcExpr = STREXTRACT( C_FB2PRG_CODE, 'ON SELECTION POPUP ALL ', CR_LF ) - THIS.AnalizarSiExpresionEsComandoOProcedimiento( lcExpr, @lcProcName, @lcProcCode, @C_FB2PRG_CODE, -1 ) - loReg.PROCEDURE = EVL(lcProcCode, lcExpr) - ENDIF - - CASE LEFT( tcLine, LEN('ON SELECTION POPUP ' + loReg.NAME) ) == 'ON SELECTION POPUP ' + loReg.NAME - EXIT + lcExpr = STREXTRACT( C_FB2PRG_CODE, 'ON SELECTION POPUP ALL ', CR_LF ) + THIS.AnalizarSiExpresionEsComandoOProcedimiento( lcExpr, @lcProcName, @lcProcCode, @C_FB2PRG_CODE, -1 ) + loReg.PROCEDURE = EVL(lcProcCode, lcExpr) CASE LEFT( tcLine, 13 ) == 'DEFINE POPUP ' - loReg.OBJCODE = 0 - loReg.NAME = ALLTRIM( GETWORDNUM( tcLine, 3 ) ) - IF RIGHT(loReg.NAME,5) == '_FB2P' && Originalmente era vacío y se la había puesto un nombre temporal. - loReg.NAME = '' + IF THIS.n_ParentCode = 22 + loReg.OBJCODE = 1 + loReg.NAME = '_MSYSMENU' + loReg.LevelName = loReg.NAME + loReg.SCHEME = 3 + + IF THIS.n_ParentType = 4 + EXIT + ENDIF + ELSE + loReg.OBJCODE = 0 + loReg.SCHEME = 4 + loReg.NAME = ALLTRIM( GETWORDNUM( tcLine, 3 ) ) + IF RIGHT(loReg.NAME,5) == '_FB2P' && Originalmente era vacío y se la había puesto un nombre temporal. + loReg.NAME = '' + ENDIF + loReg.LevelName = loReg.NAME + lcExpr = ALLTRIM( STREXTRACT( C_FB2PRG_CODE, 'ON SELECTION POPUP ' + loReg.NAME + ' ', CR_LF ) ) + THIS.AnalizarSiExpresionEsComandoOProcedimiento( lcExpr, @lcProcName, @lcProcCode, @C_FB2PRG_CODE, -1 ) + loReg.PROCEDURE = EVL(lcProcCode, lcExpr) ENDIF - loReg.LevelName = loReg.NAME - lcExpr = ALLTRIM( STREXTRACT( C_FB2PRG_CODE, 'ON SELECTION POPUP ' + loReg.NAME + ' ', CR_LF ) ) - THIS.AnalizarSiExpresionEsComandoOProcedimiento( lcExpr, @lcProcName, @lcProcCode, @C_FB2PRG_CODE, -1 ) - loReg.PROCEDURE = EVL(lcProcCode, lcExpr) CASE LEFT( tcLine, 11 ) == 'DEFINE PAD ' OR LEFT( tcLine, 11 ) == 'DEFINE BAR ' loOption = CREATEOBJECT("CL_MENU_OPTION") @@ -14993,10 +15090,6 @@ DEFINE CLASS CL_MENU_BARPOP AS CL_MENU_COL_BASE IF toHeader.ObjType = 4 *-- Shortcut IF NOT PEMSTATUS(toHeader,'_MenuInicializado', 5) && Header - TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 - <>*---------------------------------- - <>DEFINE POPUP <> SHORTCUT RELATIVE FROM MROW(),MCOL() - ENDTEXT ADDPROPERTY(toHeader,'_MenuInicializado', .T.) ELSE && Rest TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 @@ -15099,6 +15192,7 @@ DEFINE CLASS CL_MENU_OPTION AS CL_MENU_COL_BASE THIS.oReg = toConversor.emptyRecord() loReg = THIS.oReg + loReg.MARK = CHR(0) loReg.ITEMNUM = STR(0,3) llBloqueEncontrado = .T. @@ -15216,7 +15310,7 @@ DEFINE CLASS CL_MENU_OPTION AS CL_MENU_COL_BASE loReg.NAME = lcPadName loReg.LevelName = ALLTRIM( STREXTRACT( tcLine, ' OF ', ' PROMPT ' ) ) - IF loReg.LevelName # THIS.c_ParentName + IF UPPER(loReg.LevelName) # UPPER(THIS.c_ParentName) EXIT ENDIF @@ -15244,7 +15338,7 @@ DEFINE CLASS CL_MENU_OPTION AS CL_MENU_COL_BASE , '______,NONE__,LEFT__,MIDDLE,RIGHT_' ) / 7 - 1 ) lnNegObject = INT( AT( ',' + PADR( ALLTRIM(GETWORDNUM( lcExpr, 2, ',' )), 6, '_' ) ; , '______,NONE__,LEFT__,MIDDLE,RIGHT_' ) / 7 - 1 ) - loReg.LOCATION = lnNegContainer + lnNegObject * 2^4 + loReg.Location = lnNegContainer + lnNegObject * 2^4 CASE LEFT( tcLine, 4 ) == 'KEY ' lcExpr = ALLTRIM( STREXTRACT( tcLine, 'KEY ', ';', 1, 2 ) ) @@ -15399,7 +15493,7 @@ DEFINE CLASS CL_MENU_OPTION AS CL_MENU_COL_BASE loReg.LevelName = ALLTRIM( STREXTRACT( tcLine, ' OF ', ' PROMPT ' ) ) - IF loReg.LevelName # THIS.c_ParentName + IF UPPER(loReg.LevelName) # UPPER(THIS.c_ParentName) EXIT ENDIF @@ -15427,7 +15521,7 @@ DEFINE CLASS CL_MENU_OPTION AS CL_MENU_COL_BASE , '______,NONE__,LEFT__,MIDDLE,RIGHT_' ) / 7 - 1 ) lnNegObject = INT( AT( ',' + PADR( ALLTRIM(GETWORDNUM( lcExpr, 2, ',' )), 6, '_' ) ; , '______,NONE__,LEFT__,MIDDLE,RIGHT_' ) / 7 - 1 ) - loReg.LOCATION = lnNegContainer + lnNegObject * 2^4 + loReg.Location = lnNegContainer + lnNegObject * 2^4 CASE LEFT( tcLine, 4 ) == 'KEY ' lcExpr = ALLTRIM( STREXTRACT( tcLine, 'KEY ', ';', 1, 2 ) ) @@ -15719,9 +15813,9 @@ DEFINE CLASS CL_MENU_OPTION AS CL_MENU_COL_BASE + ' PROMPT "' + toReg.PROMPT + '"' ; + ' COLOR SCHEME ' + TRANSFORM(toBarPop.SCHEME) - IF NOT EMPTY(toReg.LOCATION) - lnContainer = toReg.LOCATION % 2^4 - lnObject = INT( (toReg.LOCATION - lnContainer) / 2^4 ) + IF NOT EMPTY(toReg.Location) + lnContainer = toReg.Location % 2^4 + lnObject = INT( (toReg.Location - lnContainer) / 2^4 ) lcText = lcText + ' ;' + CR_LF + lcTab + ' NEGOTIATE ' + GETWORDNUM('NONE,LEFT,MIDDLE,RIGHT',lnContainer+1,',') ; + ', ' + GETWORDNUM('NONE,LEFT,MIDDLE,RIGHT',lnObject+1,',') ENDIF