Changeset: 11 Changeset: 11 Creación de proyectos y clases ahora se hacen con SQL, porque BUILD PROJ y CREATE CLASSLIB no funcionan en un EXE

This commit is contained in:
fernando
2013-11-25 23:37:58 +01:00
parent 406bec7c8c
commit 3f376a2177

View File

@@ -776,8 +776,9 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
+ [<memberdata name="getclasspropertycomment" type="method" display="getClassPropertyComment"/>] ; + [<memberdata name="getclasspropertycomment" type="method" display="getClassPropertyComment"/>] ;
+ [<memberdata name="get_listnameswithvaluesfrom_inline_metadatatag" type="method" display="get_ListNamesWithValuesFrom_InLine_MetadataTag"/>] ; + [<memberdata name="get_listnameswithvaluesfrom_inline_metadatatag" type="method" display="get_ListNamesWithValuesFrom_InLine_MetadataTag"/>] ;
+ [<memberdata name="classprops2memo" type="method" display="classProps2Memo"/>] ; + [<memberdata name="classprops2memo" type="method" display="classProps2Memo"/>] ;
+ [<memberdata name="createform" type="method" display="createForm"/>] ;
+ [<memberdata name="createclasslib" type="method" display="createClasslib"/>] ; + [<memberdata name="createclasslib" type="method" display="createClasslib"/>] ;
+ [<memberdata name="createform" type="method" display="createForm"/>] ;
+ [<memberdata name="createproject" type="method" display="createProject"/>] ;
+ [<memberdata name="defined_pem2memo" type="method" display="defined_PEM2Memo"/>] ; + [<memberdata name="defined_pem2memo" type="method" display="defined_PEM2Memo"/>] ;
+ [<memberdata name="escribirarchivobin" type="method" display="escribirArchivoBin"/>] ; + [<memberdata name="escribirarchivobin" type="method" display="escribirArchivoBin"/>] ;
+ [<memberdata name="evaluate_pem" type="method" display="Evaluate_PEM"/>] ; + [<memberdata name="evaluate_pem" type="method" display="Evaluate_PEM"/>] ;
@@ -1107,11 +1108,130 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
ENDPROC ENDPROC
*******************************************************************************************************************
PROCEDURE createProject
LPARAMETERS toProject
#IF .F.
LOCAL toProject AS CL_PROJECT OF 'FOXBIN2PRG.PRG'
#ENDIF
*-- Esto no funciona con el runtime
*STRTOFILE( '', '__newproject.f2b' )
*BUILD PROJECT (THIS.c_outputFile) FROM '__newproject.f2b'
*ERASE ( '__newproject.f2b' )
CREATE TABLE (THIS.c_outputFile) ;
( NAME M ;
, TYPE C(1) ;
, ID N(10) ;
, TIMESTAMP N(10) ;
, OUTFILE M ;
, HOMEDIR M ;
, EXCLUDE L ;
, MAINPROG L ;
, SAVECODE L ;
, DEBUG L ;
, ENCRYPT L ;
, NOLOGO L ;
, CMNTSTYLE N(1) ;
, OBJREV N(5) ;
, DEVINFO M ;
, SYMBOLS M ;
, OBJECT M ;
, CKVAL N(6) ;
, CPID N(5) ;
, OSTYPE C(4) ;
, OSCREATOR C(4) ;
, COMMENTS M ;
, RESERVED1 M ;
, RESERVED2 M ;
, SCCDATA M ;
, LOCAL L ;
, KEY C(32) ;
, USER M )
USE (THIS.c_outputFile) ALIAS TABLABIN AGAIN SHARED
INSERT INTO TABLABIN ;
( NAME ;
, TYPE ;
, TIMESTAMP ;
, OUTFILE ;
, HOMEDIR ;
, SAVECODE ;
, DEBUG ;
, ENCRYPT ;
, NOLOGO ;
, CMNTSTYLE ;
, OBJREV ;
, DEVINFO ;
, OBJECT ;
, RESERVED1 ;
, RESERVED2 ;
, LOCAL ;
, KEY ) ;
VALUES ;
( UPPER(THIS.c_outputFile) ;
, 'H' ;
, 0 ;
, '<Source>' + CHR(0) ;
, toProject._HomeDir + CHR(0) ;
, toProject._SaveCode ;
, toProject._Debug ;
, toProject._Encrypted ;
, toProject._NoLogo ;
, toProject._CmntStyle ;
, 260 ;
, toProject.getRowDeviceInfo() ;
, toProject._HomeDir + CHR(0) ;
, UPPER(THIS.c_outputFile) ;
, toProject._ServerHead.getRowServerInfo() ;
, .T. ;
, UPPER( JUSTSTEM( THIS.c_outputFile) ) )
ENDPROC
******************************************************************************************************************* *******************************************************************************************************************
PROCEDURE createClasslib PROCEDURE createClasslib
CREATE CLASSLIB (THIS.c_outputFile) * No funciona con el EXE
*CREATE CLASSLIB (THIS.c_outputFile)
CREATE TABLE (THIS.c_outputFile) ;
( PLATFORM C(8) ;
, UNIQUEID C(10) ;
, TIMESTAMP N(10) ;
, CLASS M ;
, CLASSLOC M ;
, BASECLASS M ;
, OBJNAME M ;
, PARENT M ;
, PROPERTIES M ;
, PROTECTED M ;
, METHODS M ;
, OBJCODE M NOCPTRANS ;
, OLE M ;
, OLE2 M ;
, RESERVED1 M ;
, RESERVED2 M ;
, RESERVED3 M ;
, RESERVED4 M ;
, RESERVED5 M ;
, RESERVED6 M ;
, RESERVED7 M ;
, RESERVED8 M ;
, USER M )
USE (THIS.c_outputFile) ALIAS TABLABIN AGAIN SHARED USE (THIS.c_outputFile) ALIAS TABLABIN AGAIN SHARED
INSERT INTO TABLABIN ;
( PLATFORM ;
, UNIQUEID ;
, RESERVED1 ) ;
VALUES ;
( 'COMMENT' ;
, 'Class' ;
, 'VERSION = 3.00' )
ENDPROC ENDPROC
@@ -2542,11 +2662,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin
THIS.doBackup() THIS.doBackup()
*-- Creo solo la cabecera del proyecto *-- Creo solo la cabecera del proyecto
STRTOFILE( '', '__newproject.f2b' ) THIS.createProject( toProject )
BUILD PROJECT (THIS.c_outputFile) FROM '__newproject.f2b'
ERASE ( '__newproject.f2b' )
USE (THIS.c_outputFile) ALIAS TABLABIN AGAIN SHARED
lcMainProg = '' lcMainProg = ''
@@ -2555,29 +2671,46 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin
ENDIF ENDIF
*-- Actualizo informaci<63>n del HEADER *-- Actualizo informaci<63>n del HEADER
SCATTER FIELDS DEVINFO,RESERVED2,CMNTSTYLE,NOLOGO,SAVECODE MEMO NAME loReg *SCATTER FIELDS DEVINFO,RESERVED2,CMNTSTYLE,NOLOGO,SAVECODE MEMO NAME loReg
loReg.DEVINFO = toProject.getRowDeviceInfo() *loReg.DEVINFO = toProject.getRowDeviceInfo()
loServerHead = toProject._ServerHead *loServerHead = toProject._ServerHead
loReg.RESERVED2 = loServerHead.getRowServerInfo() *loReg.RESERVED2 = loServerHead.getRowServerInfo()
loReg.CMNTSTYLE = toProject._CmntStyle *loReg.CMNTSTYLE = toProject._CmntStyle
loReg.NOLOGO = toProject._NoLogo *loReg.NOLOGO = toProject._NoLogo
loReg.SAVECODE = toProject._SaveCode *loReg.SAVECODE = toProject._SaveCode
GATHER NAME loReg FIELDS DEVINFO,RESERVED2,CMNTSTYLE,NOLOGO,SAVECODE MEMO *GATHER NAME loReg FIELDS DEVINFO,RESERVED2,CMNTSTYLE,NOLOGO,SAVECODE MEMO
*-- Si hay ProjectHook, reutilizo registro del archivo dummy *-- Si hay ProjectHook, reutilizo registro del archivo dummy
GOTO RECORD 2 *GOTO RECORD 2
IF EMPTY(toProject._ProjectHookLibrary) *IF EMPTY(toProject._ProjectHookLibrary)
*-- Erase Dummy file record '__newproject.f2b' * *-- Erase Dummy file record '__newproject.f2b'
DELETE * DELETE
ELSE *ELSE
*-- PROJECT HOOK * *-- PROJECT HOOK
REPLACE ; * REPLACE ;
NAME WITH toProject._ProjectHookLibrary + CHR(0), ; * NAME WITH toProject._ProjectHookLibrary + CHR(0), ;
TYPE WITH 'W', ; * TYPE WITH 'W', ;
EXCLUDE WITH .T., ; * EXCLUDE WITH .T., ;
KEY WITH UPPER(JUSTSTEM(toProject._ProjectHookLibrary)), ; * KEY WITH UPPER(JUSTSTEM(toProject._ProjectHookLibrary)), ;
RESERVED1 WITH toProject._ProjectHookClass + CHR(0) * RESERVED1 WITH toProject._ProjectHookClass + CHR(0)
*ENDIF
*-- Si hay ProjectHook de proyecto, lo inserto
IF NOT EMPTY(toProject._ProjectHookLibrary)
INSERT INTO TABLABIN ;
( NAME ;
, TYPE ;
, EXCLUDE ;
, KEY ;
, RESERVED1 ) ;
VALUES ;
( toProject._ProjectHookLibrary + CHR(0) ;
, 'W' ;
, .T. ;
, UPPER(JUSTSTEM(toProject._ProjectHookLibrary)) ;
, toProject._ProjectHookClass + CHR(0) )
ENDIF ENDIF
*-- Si hay ICONO de proyecto, lo inserto *-- Si hay ICONO de proyecto, lo inserto
@@ -3744,8 +3877,13 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
ENDTEXT ENDTEXT
ENDIF ENDIF
IF NOT EMPTY(loProject._Icon)
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_TAB>>.Icon = lcCurdir + '<<loProject._Icon>>'
ENDTEXT
ENDIF
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
<<C_TAB>>.Icon = lcCurdir + '<<loProject._Icon>>'
<<C_TAB>>.Debug = <<loProject._Debug>> <<C_TAB>>.Debug = <<loProject._Debug>>
<<C_TAB>>.Encrypted = <<loProject._Encrypted>> <<C_TAB>>.Encrypted = <<loProject._Encrypted>>
<<C_TAB>>*<.CmntStyle = <<loProject._CmntStyle>> /> <<C_TAB>>*<.CmntStyle = <<loProject._CmntStyle>> />