From e88367127d39a76d221817ec075c4d4d4af00bba Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Sat, 6 Feb 2016 16:22:56 +0100 Subject: [PATCH] =?UTF-8?q?Preview=209:=20-=20Bug=20Fix=20Pj2:=20Se=20gene?= =?UTF-8?q?ra=20un=20error=20al=20regenerar=20un=20PJX=20desde=20un=20PJ2?= =?UTF-8?q?=20donde=20alg=C3=BAn=20archivo=20contiene=20par=C3=A9ntesis=20?= =?UTF-8?q?(EddieC)=20-=20Mejora=20dbf:=20Nuevo=20par=C3=A1metro=20Exclude?= =?UTF-8?q?DBFAutoincNextval=20para=20evitar=20diferencias=20por=20este=20?= =?UTF-8?q?dato=20(edyshor)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FoxBin2PRGVersionFile.txt | 6 ++-- foxbin2prg.cfg.txt | 1 + foxbin2prg.exe | Bin 607012 -> 608063 bytes foxbin2prg.prg | 58 ++++++++++++++++++++++++++++++++------ 4 files changed, 55 insertions(+), 10 deletions(-) diff --git a/FoxBin2PRGVersionFile.txt b/FoxBin2PRGVersionFile.txt index 7f4a43e..91d3f94 100644 --- a/FoxBin2PRGVersionFile.txt +++ b/FoxBin2PRGVersionFile.txt @@ -3,7 +3,7 @@ Lparameters toUpdateInfo Local lcNote With toUpdateInfo .VersionNumber = 'v1.19.46' - .VersionDate = Date(2015,11,04) + .VersionDate = Date(2015,11,25) .SourceFileUrl = 'http://vfpxrepository.com/dl/thorupdate/Projects/FoxBin2Prg/FoxBin2Prg.Zip' .Link = 'http://vfpx.codeplex.com/wikipage?title=FoxBin2PRG' @@ -17,7 +17,7 @@ Demo video using FoxBin2Prg with PlasticSCM: http://youtu.be/sE4wQ50Itqg Change History ------------------------------------------------------------- -2015/11/04 v1.19.46 +2015/11/25 v1.19.46 - Bug Fix: set_UserValue() method causes error when trying to get information about another error and the VFP binary table can not be opened (ie, because corrupted memo) - Feature: Added internal support for querying directory cfg information, with a new optional parameter, for API methods that require it (ie: get_Ext2FromExt, hasSupport*) - Feature: Convert FUNCTION to PROCEDURE for maintaining compatibility with the way that VFP save methods on binaries @@ -30,6 +30,8 @@ Change History ------------------------------------------------------------- - Bug Fix frx/lbx: When regenerating reports or labels with multiline texts center or right aligned, alignment is not completely right (Ryan Harris) - Bug Fix frx/lbx: When grouping objects in design mode, generating text and regenerating binary cause the lost of the grouping (does not affect data) (Lutz Scheffler) - Bug Fix Pjx: SPR and MPR files are not correctly identified in the PJX Project info (Ralf Wagner) +- Bug Fix Pj2: An error is thrown when regenerating a PJX from a PJ2 when some file have parenthesis in it's name (EddieC) +- Feature (dbf): New ExcludeDBFAutoincNextval parameter for minimizing DB2 differences (edyshor) 2015/06/21 v1.19.45 diff --git a/foxbin2prg.cfg.txt b/foxbin2prg.cfg.txt index 08596bc..da907ad 100644 --- a/foxbin2prg.cfg.txt +++ b/foxbin2prg.cfg.txt @@ -24,6 +24,7 @@ * RemoveNullCharsFromCode: 1 && 1=Drop NULL chars from source code / 0=Leave Nulls in code, if any * RemoveZOrderSetFromProps: 0 && 0=Do not remove ZOrderSet property from object, 1=Remove ZOrderSet property from object / 0=No quitar la propiedad ZOrderSet de los objetos, 1=Quitar la propiedad ZOrderSet de los objetos * Language: (auto) && Language of shown messages and LOGs. EN=English, FR=French, ES=Español, DE=German, Not defined = AUTOMATIC [DEFAULT] +* ExcludeDBFAutoincNextval: 0 && [0=Do not exclude this value from db2], 1=Exclude this value from db2 *-- CONVERTION OPTIONS / OPCIONES DE CONVERSIÓN * PJX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) diff --git a/foxbin2prg.exe b/foxbin2prg.exe index d2b533866aaff72d5a4e34cabad00c4091c6d7b5..ca9710d5966865705d355fe03cf639dc80962a83 100644 GIT binary patch delta 20908 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

Z+wDO>tfsVuh>OkhwjO>rZ#*k;?UR{ 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 * *--------------------------------------------------------------------------------------------------- @@ -276,6 +278,8 @@ * 17/09/2015 Ryan Harris Reporte bug Frx/Lbx v1.19.45: Cuando se regeneran reportes o etiquetas con textos multilinea alineados al centro o a la derecha, la alineación no es completamente correcta (Arreglado en v1.19.46) * 11/10/2015 Lutz Scheffler Reporte bug Frx/Lbx v1.19.45: Cuando se agrupan controles en diseño y se convierte a texto, al regenerar se pierden las agrupaciones (Arreglado en v1.19.46 Preview-7) * 04/11/2015 Ralf Wagner Reporte bug Pjx v1.19.45: Los archivos SPR y MPR no estan bien representados en la información del proyecto (Arreglado en v1.19.46 Preview-8) +* 20/11/2015 EddieC Reporte bug Pjx v1.19.45: Se genera un error al regenerar un PJX desde un PJ2 donde algún archivo contiene paréntesis (Arreglado en v1.19.46 Preview-9) +* 24/11/2015 edyshor Mejora dbf v1.19.45: Nuevo parámetro ExcludeDBFAutoincNextval para evitar diferencias por este dato (Agregado en v1.19.46 Preview-9) * * *--------------------------------------------------------------------------------------------------- @@ -510,8 +514,12 @@ LPARAMETERS tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDeb #DEFINE C_FILETYPE_QUERYSUPPORT "Q" *-- Fin / End +*-- Predefine 64MB of RAM +SYS(3050,1,64*1024*1024) +SYS(3050,2,64*1024*1024) + IF _VFP.StartMode > 0 THEN - SYS(2450,1) + SYS(2450,1) && Set Application Search Path Order to APP/EXE 1st when not in Dev-Mode ENDIF LOCAL loCnv AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' @@ -762,6 +770,7 @@ DEFINE CLASS c_foxbin2prg AS Session l_RemoveZOrderSetFromProps = .F. l_Recompile = .T. n_UseClassPerFile = 0 + n_ExcludeDBFAutoincNextval = 0 l_ClassPerFileCheck = .F. l_RedirectClassPerFileToMain = .F. l_NoTimestamps = .T. @@ -1402,6 +1411,15 @@ DEFINE CLASS c_foxbin2prg AS Session ENDPROC + PROCEDURE n_ExcludeDBFAutoincNextval_ACCESS + IF THIS.n_CFG_Actual = 0 OR ISNULL( THIS.o_Configuration( THIS.n_CFG_Actual ) ) + RETURN THIS.n_ExcludeDBFAutoincNextval + ELSE + RETURN NVL( THIS.o_Configuration( THIS.n_CFG_Actual ).n_ExcludeDBFAutoincNextval, THIS.n_ExcludeDBFAutoincNextval ) + ENDIF + ENDPROC + + PROCEDURE changeFileAttribute * Using Win32 Functions in Visual FoxPro * example=103 @@ -1843,7 +1861,8 @@ DEFINE CLASS c_foxbin2prg AS Session toParentCFG = THIS IF LEFT( lc_CFG_Path, 2 ) == '\\' THEN - lnDirs = OCCURS( '\', lc_CFG_Path ) - 3 + *lnDirs = OCCURS( '\', lc_CFG_Path ) - 3 + lnDirs = OCCURS( '\', lc_CFG_Path ) - 2 ELSE lnDirs = OCCURS( '\', lc_CFG_Path ) ENDIF @@ -2124,6 +2143,13 @@ DEFINE CLASS c_foxbin2prg AS Session .writeLog( C_TAB + JUSTFNAME(lcConfigFile) + ' > BackgroundImage: ' + TRANSFORM(lo_CFG.c_BackgroundImage) ) ENDIF + CASE LEFT( laConfig(I), 25 ) == LOWER('ExcludeDBFAutoincNextval:') + lcValue = ALLTRIM( SUBSTR( laConfig(I), 26 ) ) + IF INLIST( lcValue, '0', '1' ) THEN + lo_CFG.n_ExcludeDBFAutoincNextval = INT( VAL( lcValue ) ) + .writeLog( C_TAB + JUSTFNAME(lcConfigFile) + ' > ExcludeDBFAutoincNextval: ' + TRANSFORM(lo_CFG.n_ExcludeDBFAutoincNextval) ) + ENDIF + ENDCASE ENDFOR @@ -2184,6 +2210,7 @@ DEFINE CLASS c_foxbin2prg AS Session .writeLog( C_TAB + 'n_ExtraBackupLevels: ' + TRANSFORM(.n_ExtraBackupLevels) ) .writeLog( C_TAB + 'c_BackgroundImage: ' + TRANSFORM(.c_BackgroundImage) ) .writeLog( C_TAB + 'n_OptimizeByFilestamp: ' + TRANSFORM(.n_OptimizeByFilestamp) ) + .writeLog( C_TAB + 'n_ExcludeDBFAutoincNextval: ' + TRANSFORM(.n_ExcludeDBFAutoincNextval) ) .writeLog( C_TAB + 'l_RemoveNullCharsFromCode: ' + TRANSFORM(.l_RemoveNullCharsFromCode) ) .writeLog( C_TAB + 'l_RemoveZOrderSetFromProps: ' + TRANSFORM(.l_RemoveZOrderSetFromProps) ) .writeLog( C_TAB + 'l_ClearDBFLastUpdate: ' + TRANSFORM(.l_ClearDBFLastUpdate) ) @@ -11139,7 +11166,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin EXIT OTHERWISE - lcFile = LOWER( ALLTRIM( STRTRAN( CHRTRAN( NORMALIZE( STREXTRACT( tcLine, ".ITEM(", ")", 1, 1 ) ), ["], [] ), 'lcCurDir+', '', 1, 1, 1) ) ) + lcFile = LOWER( ALLTRIM( STRTRAN( CHRTRAN( NORMALIZE( STREXTRACT( tcLine, ".ITEM(", ").Description", 1, 1 ) ), ["], [] ), 'lcCurDir+', '', 1, 1, 1) ) ) lcComment = ALLTRIM( CHRTRAN( STREXTRACT( tcLine, "=", "", 1, 2 ), ['], [] ) ) loFile = toProject( lcFile ) loFile._Comments = lcComment @@ -11202,7 +11229,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin EXIT OTHERWISE - lcFile = LOWER( ALLTRIM( STRTRAN( CHRTRAN( NORMALIZE( STREXTRACT( tcLine, ".ITEM(", ")", 1, 1 ) ), ["], [] ), 'lcCurDir+', '', 1, 1, 1) ) ) + lcFile = LOWER( ALLTRIM( STRTRAN( CHRTRAN( NORMALIZE( STREXTRACT( tcLine, ".ITEM(", ").Exclude", 1, 1 ) ), ["], [] ), 'lcCurDir+', '', 1, 1, 1) ) ) llExclude = EVALUATE( ALLTRIM( CHRTRAN( STREXTRACT( tcLine, "=", "", 1, 2 ), ['], [] ) ) ) loFile = toProject( lcFile ) loFile._Exclude = llExclude @@ -12006,7 +12033,13 @@ DEFINE CLASS c_conversor_prg_a_dbf AS c_conversor_prg_a_bin *-- AutoInc IF loField._AutoInc_NextVal <> '0' - lcFieldDef = lcFieldDef + ' AUTOINC NEXTVAL ' + loField._AutoInc_NextVal + ' STEP ' + loField._AutoInc_Step + IF toFoxBin2Prg.n_ExcludeDBFAutoincNextval = 1 + *-- If AutoIncNextVal is excluded from text, then assign 1 for allowing regeneration + *-- of DBF with this field. + lcFieldDef = lcFieldDef + ' AUTOINC NEXTVAL 1 STEP ' + loField._AutoInc_Step + ELSE + lcFieldDef = lcFieldDef + ' AUTOINC NEXTVAL ' + loField._AutoInc_NextVal + ' STEP ' + loField._AutoInc_Step + ENDIF ENDIF loField = NULL @@ -22796,11 +22829,11 @@ DEFINE CLASS CL_DBF_TABLE AS CL_CUS_BASE loFields = THIS._Fields *** DH 06/02/2014: passed variables to toText - lcText = lcText + loFields.toText(@laFields, @lnFieldCount) + lcText = lcText + loFields.toText(@laFields, @lnFieldCount, @toFoxBin2Prg) *-- Indexes loIndexes = THIS._Indexes - lcText = lcText + loIndexes.toText( '', '', tc_InputFile ) + lcText = lcText + loIndexes.toText( '', '', tc_InputFile, @toFoxBin2Prg ) *-- If table CFG exists, use it for DBF-specific configuration. FDBOZZO. 2014/06/15 lcTableCFG = tc_InputFile + '.CFG' @@ -22986,6 +23019,12 @@ DEFINE CLASS CL_DBF_FIELDS AS CL_COL_BASE loField = CREATEOBJECT('CL_DBF_FIELD') FOR I = 1 TO tnField_Count + IF taFields(I,17) > 0 AND toFoxBin2Prg.n_ExcludeDBFAutoincNextval = 1 + *-- If AutoIncNextVal is excluded from text, then assign 1 for allowing regeneration + *-- of DBF with this field. + taFields(I,17) = 1 + ENDIF + lcText = lcText + loField.toText( @taFields, I ) ENDFOR @@ -26764,6 +26803,7 @@ DEFINE CLASS CL_CFG AS CUSTOM + [] ; + [] ; + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -26800,6 +26840,7 @@ DEFINE CLASS CL_CFG AS CUSTOM l_ClearUniqueID = NULL l_ClearDBFLastUpdate = NULL n_OptimizeByFilestamp = NULL + n_ExcludeDBFAutoincNextval = NULL l_RedirectClassPerFileToMain = NULL l_RemoveNullCharsFromCode = NULL l_RemoveZOrderSetFromProps = NULL @@ -26843,6 +26884,7 @@ DEFINE CLASS CL_CFG AS CUSTOM .l_ClearUniqueID = toParentCFG.l_ClearUniqueID .l_ClearDBFLastUpdate = toParentCFG.l_ClearDBFLastUpdate .n_OptimizeByFilestamp = toParentCFG.n_OptimizeByFilestamp + .n_ExcludeDBFAutoincNextval = toParentCFG.n_ExcludeDBFAutoincNextval .l_RedirectClassPerFileToMain = toParentCFG.l_RedirectClassPerFileToMain .l_RemoveNullCharsFromCode = toParentCFG.l_RemoveNullCharsFromCode .l_RemoveZOrderSetFromProps = toParentCFG.l_RemoveZOrderSetFromProps