Mini Kabibi Habibi

Current Path : C:/Users/ITO/Desktop/VF9/program files/microsoft visual foxpro 9/wizards/
Upload File :
Current File : C:/Users/ITO/Desktop/VF9/program files/microsoft visual foxpro 9/wizards/appbldr.sct

�VERSION =   3.00	appbldr.hdataenvironmentdataenvironmentDataenvironment_Top = 220
Left = 1
Width = 520
Height = 200
DataSource = .NULL.
Name = "Dataenvironment"
12formform
frmAppBuilder�DataSession = 2
Height = 284
Width = 456
DoCreate = .T.
ShowTips = .T.
AutoCenter = .T.
BorderStyle = 2
Caption = "Application Builder"
MaxButton = .F.
cmetadbf = 
lframework = 
chookclass = 
chookfile = 
napptype = 1
nautoupdate = 1
lautoaddfile = .T.
cmultilocks = 
csavehelp = 
lskipassist = .T.
nbldrdatasession = 0
lcheckformobjectonedit = .T.
Name = "frmAppBuilder"
��PROCEDURE adddoc
LPARAMETER cFileName, cClassName, lNoshow, cMetaType

* lNoShow is primarily for Data page batch processing
LOCAL cExt,cDocType

IF !THIS.CheckProject()
	RETURN .F.
ENDIF

IF VARTYPE(m.cFileName)#"C" OR !THIS.lFramework
	RETURN .F.
ENDIF

IF VARTYPE(THIS.lAutoAddFile)#"L"
	THIS.lAutoAddFile=.F.
ENDIF

cEXT = UPPER(JUSTEXT(m.cFileName))
IF !m.lNoShow AND !INLIST(UPPER(cEXT),"FRX","SCX","LBX")
	RETURN
ENDIF

IF VARTYPE(m.cMetaType)#"C" OR !INLIST(m.cMetaType,"R","F","r","f")
	cMetaType = ""
ENDIF
cDocType = IIF(!EMPTY(cMetaType),cMetaType,IIF(INLIST(cEXT,"FRX","LBX"),"R","F"))

IF m.lNoShow
	THIS.AddToMeta(m.cFileName,m.cClassName,m.cDocType)
	RETURN
ENDIF

IF !THIS.lAutoAddFile AND MESSAGEBOX(C_ADDFILE_LOC,36)#6
	THIS.UpdateDocs()
	RETURN .F.
ENDIF

THIS.AddToMeta(m.cFileName,m.cClassName,m.cDocType)

*** Update meta table.
THIS.UpdateDocs()

*** Need to update Form/Report listbox here!
DO CASE
CASE UPPER(m.cDocType) = "F"
	THIS.pf1.ActivePage = 4
CASE UPPER(m.cDocType) = "R"
	THIS.pf1.ActivePage = 5
ENDCASE

ENDPROC
PROCEDURE addtometa
LPARAMETER tcFileName,tcClassName,tcDocType

LOCAL nSaveArea, cDocType, cExt, cDocDesc, lcDocwrap
nSaveArea = SELECT()
cExt = UPPER(JUSTEXT(m.tcFileName))
IF VARTYPE(tcDocType)#"C" OR !INLIST(UPPER(tcDocType),"R","F")
	tcDocType=IIF(INLIST(cEXT,"FRX","LBX"),"R","F")
ENDIF
cDocType = UPPER(tcDocType)
IF VARTYPE(tcClassName)#"C"
	tcClassName=""
ENDIF	

DO CASE
CASE m.cDocType="F"
	cDocDesc = C_FORMDESCSUFFIX_LOC 
CASE m.cDocType="R"
	cDocDesc = C_RPTDESCSUFFIX_LOC 
OTHERWISE
	RETURN .F.
ENDCASE

lcDocwrap = IIF(ATC(m.cExt,"PRG,FXP,APP,EXE,MPR,MPX,QPR,QPX")#0,.T.,.F.)

SELECT appbldr_meta

* Check to see if item already exists.
LOCATE FOR UPPER(doc_type) == UPPER(cDocType) AND ;
	LOWER(doc_exec) == LOWER(JUSTSTEM(m.tcFileName)) ;
	AND NOT DELETED()

IF !FOUND()
	INSERT INTO (THIS.cMetaDBF) ;
		(doc_type, doc_descr, doc_exec, doc_class, ;
		doc_new, doc_open, doc_wrap, doc_go, doc_nav);
	 	VALUES(m.cDocType, ;
	 	PROPER(IIF(!EMPTY(tcClassName),tcClassName,JUSTSTEM(m.tcFileName)))+m.cDocDesc, ;
	 	LOWER(JUSTSTEM(m.tcFileName)), LOWER(tcClassName),;
	 	.T., .T., lcDocwrap, .T., .T.)

	IF USED("APPBLDR_META")
		SELECT appbldr_meta
		TABLEUPDATE(0)	&&only commit new record
	ENDIF
ENDIF

SELECT (m.nSaveArea)
ENDPROC
PROCEDURE setupframework
LOCAL aTmp,lcProjName

*Check if user has own custom project hook already installed.
IF !EMPTY(THIS.oProject.ProjectHookLibrary) AND;
	ATC(APPHOOK_FILE,THIS.oProject.ProjectHookLibrary)=0
	RETURN
ENDIF

DO CASE
CASE FILE(THIS.cHookFile) AND !EMPTY(THIS.cHookClass)
	* User providing own classlib and class
CASE FILE(HOME()+"WIZARDS\"+APPHOOK_FILE)
	THIS.cHookFile = HOME()+"WIZARDS\"+APPHOOK_FILE
	THIS.cHookClass = APPHOOK_CLASS
CASE FILE(HOME()+APPHOOK_FILE)
	THIS.cHookFile = HOME()+APPHOOK_FILE
	THIS.cHookClass = APPHOOK_CLASS
OTHERWISE
	DIMENSION aTmp[1]
	AGETCLASS(aTmp,'apphook','apphook',C_SELECTHOOK_LOC)
	THIS.cHookFile = aTmp[1] 
	IF EMPTY(aTmp[1] ) OR !FILE(aTmp[1])
		THIS.cHookFile = ""
		THIS.cHookClass = ""
		RETURN .F.
	ENDIF
	THIS.cHookFile = aTmp[1] 
	THIS.cHookClass = aTmp[2] 
ENDCASE

THIS.oProject.ProjectHookLibrary = THIS.cHookFile 
THIS.oProject.ProjectHookClass = THIS.cHookClass
MESSAGEBOX(C_INSTALLFRAMEWORK2_LOC)

ENDPROC
PROCEDURE lframework_access
LOCAL nSaveArea,lValidHook,lValidMeta,lProjectNotRegistered,lnMessageResponse
nSaveArea = SELECT()

IF VARTYPE(THIS.lFramework)#"L"

	* Allow user to specify alternative meta table
	IF EMPTY(THIS.cMetaDBF)
		THIS.cMetaDBF = ADDBS(JUSTPATH(THIS.oProject.Name))+;
			JUSTSTEM(THIS.oProject.Name)+APP_BUILDER_FILE_SUFFIX+".DBF"
	ENDIF

	lProjectNotRegistered = THIS.UpdateProjectsList()
	lValidHook = TYPE("THIS.oProject.ProjectHook")="O" AND ATC(APPHOOK_FILE,THIS.oProject.ProjectHookLibrary)#0
	lValidMeta = THIS.CheckMeta() AND !EMPTY(THIS.cMetaDBF)

	THIS.lFramework = .T.
	lnMessageResponse = 0

	DO CASE
	CASE EMPTY(THIS.cMetaDBF)	&& has table but is wrong structure -- fairly rare
		MESSAGEBOX(C_INSTALLFRAMEWORK4_LOC)
		THIS.lFramework = .F.
	CASE !lProjectNotRegistered	&&project already handled
		THIS.lFramework = lValidMeta
	CASE !lValidHook AND !EMPTY(THIS.oProject.ProjectHookLibrary)	&& has custom hook
		WAIT WINDOW C_INSTALLFRAMEWORK3_LOC TIMEOUT 2
	CASE !lValidHook AND !lValidMeta			&& no project hook or meta installed
		lnMessageResponse = MESSAGEBOX(C_INSTALLFRAMEWORK_LOC,35)
		THIS.lFramework = (lnMessageResponse=6) AND THIS.SetupFrameWork()
	CASE !lValidHook 							&& has valid meta table but no hooks
		lnMessageResponse = MESSAGEBOX(C_INSTALLFRAMEWORK1_LOC,35)
		THIS.lFramework = (lnMessageResponse=6) AND THIS.SetupFrameWork()
	CASE !lValidMeta	&& has valid hooks but no table
		lnMessageResponse = MESSAGEBOX(C_INSTALLFRAMEWORK_LOC,35)
		THIS.lFramework = (lnMessageResponse=6)
	ENDCASE
	IF lnMessageResponse = 2
		THIS.lUserCancel = .T.
	ENDIF

	IF THIS.lFramework
		IF !FILE(THIS.cMetaDBF)
			THIS.MakeMetaTable()
			THIS.oProject.Files.Add(THIS.cMetaDBF)
		ENDIF
		IF !THIS.OPENMETA()
			THIS.cMetaDBF=""
		ENDIF
	ELSE
		THIS.cMetaDBF = ""
	ENDIF

ENDIF
SELECT (m.nSaveArea)
RETURN THIS.lFramework

ENDPROC
PROCEDURE makedatadocs
LOCAL nSaveArea, lcAlias, aFiles, cOldSafe, nSaveMediator, i
LOCAL lcPath, lcFormsPath, lcReportsPath, lcProjName, lIsView

IF VARTYPE(THIS.oProject)#"O"
	RETURN .F.
ENDIF

* Skip ProjectHook's adding of mediator object since Wizard already does this.
IF VARTYPE(THIS.oProject.ProjectHook)="O" AND;
 PEMSTATUS(THIS.oProject.ProjectHook,"lByPassBuilder",5)
	THIS.oProject.ProjectHook.lByPassBuilder=.T.
	nSaveMediator = THIS.oProject.ProjectHook.nInstallMediator
	THIS.oProject.ProjectHook.nInstallMediator=1
ENDIF

DIMENSION aFiles[1]
nSaveArea = SELECT()
lcProjName = THIS.oProject.Name
lcPath = ADDBS(JUSTPATH(lcProjName))
lcFormsPath = IIF(ADIR(aFiles,m.lcPath+C_FORMSFOLDER,"D")>0,;
	ADDBS(m.lcPath+C_FORMSFOLDER),m.lcPath)
lcReportsPath = IIF(ADIR(aFiles,m.lcPath+C_REPORTSFOLDER,"D")>0,;
	ADDBS(m.lcPath+C_REPORTSFOLDER),m.lcPath)

SELECT wizdocs
GO TOP

DO WHILE !EOF()

	lIsView = ATC(".DBC",cFileName)#0

	* Create new form from Wizard
	IF lForm
		THIS.MakeWizardDoc("F",lcFormsPath)
	ENDIF

	* Create new report from Wizard
	IF lReport
		THIS.MakeWizardDoc("R",lcReportsPath)
	ENDIF
	

	THIS.lSetErrorOff = .T.				&& handle situation where DBC for table already in PJX
	IF !lIsView
		THIS.oProject.Files.Add(ALLTRIM(cFileName))	&& add datasource to project
	ENDIF
	THIS.lSetErrorOff = .F.

	SKIP
	
ENDDO


IF VARTYPE(THIS.oProject.ProjectHook)="O" AND;
 PEMSTATUS(THIS.oProject.ProjectHook,"lByPassBuilder",5)
	THIS.oProject.ProjectHook.lByPassBuilder = .F.
	THIS.oProject.ProjectHook.nInstallMediator= nSaveMediator
ENDIF

cOldSafe = SET("SAFE")
SET SAFETY OFF
ZAP
SET SAFETY &cOldSafe
SELECT (m.nSaveArea)
THIS.UpdateDocs()

ENDPROC
PROCEDURE makemetatable
CREATE TABLE (THIS.cMetaDBF);
 (doc_type c(1),;
 doc_descr c(60),;
 doc_exec m,;
 doc_class m,;
 doc_new l,;
 doc_open l,;
 doc_single l,;
 doc_noshow l,;
 doc_wrap l,;
 doc_go l,;
 doc_nav l,;
 alt_exce m,;
 properties m,;
 user_notes m)
 USE
 
ENDPROC
PROCEDURE getapppems
LOCAL oAPP,cAppClass,cAppClasslib,nSaveArea
LOCAL lcHeaderFile, lcContents, lcHeaderLine

cAppClass = APP_BUILDER_CLASS_PREFIX+APP_BUILDER_APP

cAppClassLib =  JUSTPATH(THIS.oProject.Name)+APPOBJECT_PATH+;
				JUSTSTEM(THIS.oProject.Name)+APPOBJECT_FILE

IF !FILE(m.cAppClassLib)
	m.cAppClassLib = ADDBS(JUSTPATH(THIS.oProject.Name))+;
				JUSTSTEM(THIS.oProject.Name)+APPOBJECT_FILE
ENDIF

THIS.lHasAppObject = FILE(m.cAppClassLib)

IF !THIS.lHasAppObject
	RETURN
ENDIF
	
oAPP = NEWOBJECT(cAppClass,cAppClassLib)

IF VARTYPE(oApp) # "O"
	WAIT WINDOW C_FAILAPPOBJ_LOC
	RETURN
ENDIF

* Application Page
WITH THIS.pf1.pgApp
	.txtAppName.Value = ALLTRIM(oAPP.cCaption)
	.txtAppImage.Value = ALLTRIM(oAPP.cImage)
	.imgAppIcon.Picture = oApp.cIcon
	.chkAbout.Value = oApp.lAboutBox
	.chkQuickStart.Value = oApp.lStartupForm
	.chkUserLogins.Value = oApp.lUserPreferences
	DO CASE
	CASE ATC(APP_BUILDER_APPENDMENU_SUFFIX, oApp.cStartupMenu)#0
		.ogAppType.Value = 2
	CASE ATC(APP_BUILDER_TOPMENU_SUFFIX, oApp.cStartupMenu)#0
		.ogAppType.Value = 3
	OTHERWISE
		.ogAppType.Value = 1
	ENDCASE
	THIS.nAppType = .ogAppType.Value

	* Check for Splash
	lcHeaderFile = ADDBS(JUSTPATH(THIS.oProject.Name)) + ;
		JUSTSTEM(THIS.oProject.Name) + APP_BUILDER_FILE_SUFFIX + ".H"
	lcContents =""
	lcContents = FILETOSTR(lcHeaderFile)
	IF !EMPTY(lcContents)	&&empty - failed to open file - may be in use
		lcHeaderLine = MLINE(lcContents,ATCLINE("#DEFINE APP_SPLASHCLASS ",lcContents))
		THIS.lHasSplash = (UPPER(ALLTRIM(LEFT(lcHeaderLine,4)))="#DEF")
		THIS.pf1.pgApp.chkSplash.Value = THIS.lHasSplash 
	ENDIF

ENDWITH

* Version Page
WITH THIS.pf1.pgCredits
	.txtAuthor.Value = oAPP.cAuthor
	.txtCompany.Value = oAPP.cCompany
	.txtVersion.Value = TRANS(oAPP.cVersion)
	.txtCopyright.Value = TRANS(oAPP.cCopyright)
	.txtTrademark.Value = TRANS(oAPP.cTrademark)
	IF EMPTY(.txtCompany.Value)
		.txtCompany.Value = THIS.oProject.VersionCompany
	ENDIF
	IF EMPTY(.txtCopyright.Value)
		.txtCopyright.Value = THIS.oProject.VersionCopyright 
	ENDIF
	IF EMPTY(.txtTrademark.Value)
		.txtTrademark.Value = THIS.oProject.VersionTrademarks 
	ENDIF
	* Always update Version with latest if one exists
	IF !INLIST(THIS.oProject.versionnumber,"..","0.0.0")
		.txtVersion.Value = THIS.oProject.VersionNumber
	ENDIF
ENDWITH

* Advanced Page
WITH THIS.pf1.pgAdv
	.txtHelpFile.Value = oAPP.cHelpFile
	.txtDataFolder.Value = oAPP.cDataFolder
	.chkToolbar.Value = oApp.lStartupToolbar
	.chkFavorites.Value = oApp.lFavorites
ENDWITH

oApp=null

nSaveArea = SELECT()
SELECT 0 

* Clear user applicaton classes
USE (m.cAppClassLib) AGAIN SHARED
IF !EMPTY(ALIAS())
	LOCATE FOR ALLTR(LOWER(objName)) == LOWER(cAppClass) AND NOT DELETED()
	IF FOUND()
		THIS.ClearClass()
		USE
	ENDIF	
ENDIF
CLEAR CLASS &cAppClass

* Clear _applicaton classes
USE (HOME()+C_BASEAPPCLASSLIB) AGAIN SHARED
IF !EMPTY(ALIAS())
	LOCATE FOR ALLTR(LOWER(objName)) == LOWER(C_BASEAPPCLASS) AND NOT DELETED()
	IF FOUND()
		THIS.ClearClass()
		USE
	ENDIF
ENDIF
CLEAR CLASS C_BASEAPPCLASS

SELECT (m.nSaveArea)
ENDPROC
PROCEDURE setapppems
LOCAL nSaveArea,cAppClass,cAppClasslib,cSplashClass,lcGoMenu,lcfile
LOCAL lcContents, lcHeaderFile, liHeaderLine, lcHeaderLine, lcSplashDefineString
LOCAL aFiles,lcPath,lcMenuPath,lcMenuName,lcOldMenuName,cSafety,nSetMemo,cSetComp

IF !THIS.lHasAppObject
	RETURN
ENDIF

IF VARTYPE(THIS.nAutoUpdate)#"N"
	* 0 - prompt update, 1 - force update, 2 - skip update
	THIS.nAutoUpdate = 0
ENDIF

IF THIS.nAutoUpdate=2
	RETURN
ENDIF

IF THIS.nAutoUpdate=2 OR ;
	(THIS.nAutoUpdate=0 AND MESSAGEBOX(WRITEOUTPROJECT_LOC,36)#6)
	RETURN
ENDIF

cAppClass = APP_BUILDER_CLASS_PREFIX+APP_BUILDER_APP
cSplashClass = APP_BUILDER_CLASS_PREFIX+APP_BUILDER_SPLASH

cAppClassLib =  JUSTPATH(THIS.oProject.Name)+APPOBJECT_PATH+;
				JUSTSTEM(THIS.oProject.Name)+APPOBJECT_FILE

IF !FILE(m.cAppClasslib)
	cAppClassLib =  ADDBS(JUSTPATH(THIS.oProject.Name))+;
				JUSTSTEM(THIS.oProject.Name)+APPOBJECT_FILE
	IF !FILE(m.cAppClasslib)
		RETURN
	ENDIF
ENDIF

CLEAR CLASS (m.cAppClass)
CLEAR CLASS (m.cSplashClass)

nSaveArea = SELECT()
SELECT 0 
USE (m.cAppClassLib) AGAIN SHARED
IF EMPTY(ALIAS())
	MESSAGEBOX(C_NOUPDATE1_LOC + m.cAppClassLib + C_NOUPDATE2_LOC )
	RETURN
ENDIF

*Locate application class
LOCATE FOR ALLTR(LOWER(objName)) == LOWER(cAppClass) AND NOT DELETED()
IF NOT FOUND()
	MESSAGEBOX(C_NOFIND_LOC)
	USE
	SELECT (m.nSaveArea)
	RETURN
ENDIF

WAIT WINDOW NOWAIT STAT_UPDATE_LOC

cSetComp = SET("Compatible")
SET COMPATIBLE OFF
nMemoWidth = SET("MEMO")
SET MEMO TO 256
* Update Project Name
THIS.AdjustProperties("cProjectName",JUSTSTEM(THIS.oProject.Name))

*Update App Page
WITH THIS.pf1.pgApp

	* Update general properties
	THIS.AdjustProperties("cCaption",.txtAppName.Value)
	THIS.AdjustProperties("cImage",.txtAppImage.Value)
	THIS.AdjustProperties("cIcon",.imgAppIcon.Picture)
	THIS.AdjustProperties("lAboutbox",.chkAbout.Value)
	THIS.AdjustProperties("lStartupForm",.chkQuickStart.Value)
	THIS.AdjustProperties("lUserPreferences",.chkUserLogins.Value)
	
	* Update application type only if changed
	IF THIS.nAppType # .ogAppType.Value

		* Find go menu
		lcGoMenu = JUSTSTEM(THIS.oProject.Name)+APP_BUILDER_GOMENU_SUFFIX+".MNX"
		FOR EACH lcFile IN THIS.oProject.Files
			IF ATC(lcGoMenu,lcFile.Name)#0
				lcGoMenu = lcFile.Name
				EXIT
			ENDIF
		ENDFOR

		DIMENSION aFiles[1]
		lcPath = ADDBS(JUSTPATH(THIS.oProject.Name))
		lcMenuPath = IIF(ADIR(aFiles,m.lcPath+C_MENUSFOLDER,"D")>0,;
			ADDBS(m.lcPath+C_MENUSFOLDER),m.lcPath)
		lcOldMenuName = JUSTSTEM(THIS.oProject.Name) + IIF(THIS.nAppType=2,;
			APP_BUILDER_APPENDMENU_SUFFIX,IIF(THIS.nAppType=3,;
			APP_BUILDER_TOPMENU_SUFFIX,APP_BUILDER_MAINMENU_SUFFIX))+ ".MNX"

		DO CASE
		CASE .ogAppType.Value = 2	&&module
			lcMenuName = JUSTSTEM(THIS.oProject.Name)+APP_BUILDER_APPENDMENU_SUFFIX
			THIS.AdjustProperties("cStartupMenuPad","_MSM_APP")
			THIS.AdjustProperties("cStartupMenuPopup","_MAPP")
			THIS.AdjustProperties("cFrameClass","")
			THIS.AdjustProperties("lReadEvents",.F.)
			THIS.UpdateMenu(lcGoMenu,NORMALMENU_OBJTYPE)
		CASE .ogAppType.Value = 3	&&top
			lcMenuName = JUSTSTEM(THIS.oProject.Name)+APP_BUILDER_TOPMENU_SUFFIX
			THIS.AdjustProperties("cStartupMenuPad","")
			THIS.AdjustProperties("cStartupMenuPopup","")
			THIS.AdjustProperties("cFrameClass",;
				APP_BUILDER_CLASS_PREFIX+APP_BUILDER_TOPFORM)
			THIS.AdjustProperties("lReadEvents",.T.)
			THIS.UpdateMenu(lcGoMenu,TOPMENU_OBJTYPE)
		OTHERWISE
			lcMenuName = JUSTSTEM(THIS.oProject.Name)+APP_BUILDER_MAINMENU_SUFFIX
			THIS.AdjustProperties("cStartupMenuPad","")
			THIS.AdjustProperties("cStartupMenuPopup","")
			THIS.AdjustProperties("cFrameClass","")
			THIS.AdjustProperties("lReadEvents",.T.)
			THIS.UpdateMenu(lcGoMenu,NORMALMENU_OBJTYPE)
		ENDCASE
		THIS.AdjustProperties("cStartupMenu",lcMenuName)
		THIS.oProject.Files.Add(lcMenuPath + lcMenuName + ".MNX")
		IF TYPE('THIS.oProject.Files[lcOldMenuName].Name')="C"
			THIS.oProject.Files[lcOldMenuName].Remove()
		ENDIF
	ENDIF
ENDWITH

* Update Version Page
WITH THIS.pf1.pgCredits
	THIS.AdjustProperties("cAuthor",.txtAuthor.Value)
	THIS.AdjustProperties("cCompany",.txtCompany.Value)
	THIS.AdjustProperties("cVersion",TRANS(.txtVersion.Value))
	THIS.AdjustProperties("cCopyright",TRANS(.txtCopyright.Value))
	THIS.AdjustProperties("cTrademark",TRANS(.txtTrademark.Value))
	IF !EMPTY(.txtCompany.Value)
		THIS.oProject.VersionCompany = .txtCompany.Value
	ENDIF
	IF !EMPTY(TRANS(.txtCopyright.Value))
		THIS.oProject.VersionCopyright = TRANS(.txtCopyright.Value)
	ENDIF
	IF !EMPTY(TRANS(.txtTrademark.Value))
		THIS.oProject.VersionTrademarks = TRANS(.txtTrademark.Value)
	ENDIF
ENDWITH

* Update Advanced Page
WITH THIS.pf1.pgAdv
	THIS.AdjustProperties("cHelpFile",.txtHelpFile.Value)
	THIS.AdjustProperties("cDataFolder",.txtDataFolder.Value)
	THIS.AdjustProperties("lFavorites",.chkFavorites.Value)
	THIS.AdjustProperties("lStartupToolbar",.chkToolbar.Value)
ENDWITH

* Locate splash class
LOCATE FOR ALLTR(LOWER(objName)) == LOWER(cSplashClass) AND NOT DELETED()
IF NOT FOUND()
	MESSAGEBOX(C_NOSPLASH_LOC)
ELSE
	WITH THIS.pf1.pgApp
		THIS.AdjustProperties("cCaption",.txtAppName.Value)
		THIS.AdjustProperties("cImage",.txtAppImage.Value)
	ENDWITH
	WITH THIS.pf1.pgCredits
		THIS.AdjustProperties("cAuthor",.txtAuthor.Value)
		THIS.AdjustProperties("cCompany",.txtCompany.Value)
		THIS.AdjustProperties("cVersion",TRANS(.txtVersion.Value))
		THIS.AdjustProperties("cCopyright",TRANS(.txtCopyright.Value))
		THIS.AdjustProperties("cTrademark",TRANS(.txtTrademark.Value))
	ENDWITH
ENDIF
USE
SELECT (m.nSaveArea)
SET MEMOWIDTH TO m.nMemoWidth
IF m.cSetComp = "ON"
	SET COMPATIBLE ON
ENDIF

* Adjust .H header file for Splash screen
IF THIS.pf1.pgApp.chkSplash.Value # THIS.lHasSplash
	lcHeaderFile = ADDBS(JUSTPATH(THIS.oProject.Name)) + ;
		JUSTSTEM(THIS.oProject.Name) + APP_BUILDER_FILE_SUFFIX + ".H"
	lcContents =""
	lcContents = FILETOSTR(lcHeaderFile)
	IF EMPTY(lcContents)	&&failed to open file - may be in use
		RETURN
	ENDIF
	lcSplashDefineString = "#DEFINE APP_SPLASHCLASS "
	* the final space in the string above is deliberate, to
	* distinguish between this #DEFINE and the APP_SPLASHCLASSLIB,
	* in case somebody changes the order of these two lines in the H file.
	SET MEMOWIDTH TO 100
	liHeaderLine = ATCLINE(lcSplashDefineString,lcContents)
	lcHeaderLine = MLINE(lcContents,liHeaderLine)
	IF NOT THIS.pf1.pgApp.chkSplash.Value
		lcSplashDefineString = "* " + lcSplashDefineString
	ENDIF
	lcContents = STRTRAN(lcContents,lcHeaderLine, ;
	     lcSplashDefineString+SPACE(10)+ ["]+cSplashClass+["])
	cSafety = SET("SAFETY")
	SET SAFETY OFF
	STRTOFILE(lcContents,lcHeaderFile)
	SET SAFETY &cSafety
	SET MEMOWIDTH TO m.nMemoWidth
ENDIF

THISFORM.WriteLog(LOG_UPDATE_LOC)

WAIT CLEAR

ENDPROC
PROCEDURE adjustproperties
LPARAMETERS tcProperty,tvValue

* this function assumes that you are pointed
* at the right record of a VCX already....
ASSERT TYPE(ALIAS()+".Properties") = "M" AND NOT EOF()
IF VARTYPE("tcProperty")#"C" OR EMPTY(tcProperty)
	RETURN
ENDIF
LOCAL liLines, lcProperties, lcValue, ;
	llFound, liPos, lcLine, liIndex, lcNewLine

liLines = MEMLINES(Properties)
lcProperties = Properties
_MLINE = 0

DO CASE
	CASE PCOUNT() < 2
		lcValue = NULL
	CASE VARTYPE(tvValue) = "C"
		lcValue = ALLTRIM(tvValue)
		*lcValue = [("]+tvValue+[")]
	OTHERWISE
		lcValue = TRANSFORM(tvValue)
ENDCASE

IF VARTYPE(lcValue) = "C"
	lcValue = LEFTC(ALLTRIM(lcValue),128)
ENDIF

FOR liIndex = 1 TO liLines
	lcLine = MLINE(lcProperties, 1, _MLINE)
	IF NOT EMPTY(ATC(tcProperty+" =",lcLine))
		* Need to adjust here since MLINE() removes trailing spaces
		IF UPPER(tcProperty)+" =" == UPPER(lcLine)
			lcLine=lcLine+" "
		ENDIF
		IF ISNULL(lcValue) && resettodefault
			lcProperties = STRTRAN(lcProperties,lcLine+CHR(13)+CHR(10),"")
		ELSE
			liPos = ATC("=",lcLine)
			lcNewLine = SUBSTR(lcLine,1,liPos)+" "+lcValue
			lcProperties = STRTRAN(lcProperties,lcLine,lcNewLine)
		ENDIF
		llFound = .T.
		EXIT
	ENDIF
ENDFOR
IF NOT llFound AND !EMPTY(m.lcValue)&& add this information at the bottom
	lcProperties = lcProperties+ ;
		ALLTR(tcProperty)+" = "+lcValue + ;
		CHR(13)+CHR(10)
ENDIF

REPLACE Properties WITH lcProperties

RETURN

ENDPROC
PROCEDURE updatedocs
LOCAL nSaveArea
nSaveArea = SELECT()

IF EMPTY(THIS.cMetaDBF) OR !THIS.OpenMeta()
	RETURN
ENDIF

* Update Forms list
WITH THIS.pf1.pgForms
	.lstForms.Clear
	SCAN FOR doc_type = "F" AND !DELETED()
		.lstForms.AddItem(ALLTRIM(doc_exec)+;
			IIF(!EMPTY(doc_class)," ("+ALLTRIM(doc_class)+")",""))
	ENDSCAN
	.lstForms.Value = .lstForms.List(1)
	.cmdEdit.Enabled = .lstForms.Listcount#0
	.cmdRemove.Enabled = .lstForms.Listcount#0
ENDWITH

* Update Reports list
WITH THIS.pf1.pgReports
	.lstReports.Clear
	SCAN FOR doc_type = "R"  AND !DELETED()
		.lstReports.AddItem(ALLTRIM(doc_exec)+;
			IIF(!EMPTY(doc_class)," ("+ALLTRIM(doc_class)+")",""))
	ENDSCAN
	.lstReports.Value=.lstReports.List(1)
	.cmdEdit.Enabled = .lstReports.Listcount#0
	.cmdRemove.Enabled = .lstReports.Listcount#0
ENDWITH

* Bind controls to meta table fields
IF EMPTY(THIS.pf1.pgForms.txtName.ControlSource)
	WITH THIS.pf1.pgForms
		.txtName.ControlSource = "doc_descr"
		.chkMulti.ControlSource = "doc_single"
		.chkNavToolbar.ControlSource = "doc_nav"
		.chkNavMenu.ControlSource = "doc_go"
		.chkFileNew.ControlSource = "doc_new"
		.chkFileOpen.ControlSource = "doc_open"
	ENDWITH
	
	WITH THIS.pf1.pgReports
		.txtName.ControlSource = "doc_descr"
		.chkDialog.ControlSource = "doc_open"
	ENDWITH
ENDIF

SELECT (m.nSaveArea)
ENDPROC
PROCEDURE refreshdoc
LPARAMETER tcDocType
IF VARTYPE(tcDocType)#"C" OR !INLIST(UPPER(tcDocType),"R","F")
	tcDocType = "F"
ENDIF

LOCAL lcGetClass, lcGetFile, lcExpr, lnPos 

SELECT APPBLDR_META

DO CASE
CASE UPPER(tcDocType) = "F"
	lcExpr = ALLTRIM(LOWER(THIS.pf1.pgForms.lstForms.Value))
CASE UPPER(tcDocType) = "R"
	lcExpr = ALLTRIM(LOWER(THIS.pf1.pgReports.lstReports.Value))
ENDCASE

lnPos = ATC("(",lcExpr)

IF lnPos # 0
	lcGetFile = ALLTRIM(SUBSTRC(lcExpr,1,lnPos-1))
	lcGetClass = ALLTRIM(STRTRAN(SUBSTRC(lcExpr,lnPos+1),")",""))
ELSE
	lcGetClass = ""
	lcGetFile = lcExpr
ENDIF

LOCATE FOR ALLTRIM(LOWER(doc_exec)) == lcGetFile AND;
	ALLTRIM(LOWER(doc_class)) == lcGetClass AND;
	ALLTRIM(UPPER(doc_type)) == tcDocType AND;
	NOT DELETED()

THISFORM.REFRESH()

ENDPROC
PROCEDURE updatemenu
LPARAMETERS cMenuName, nObjType

cSaveArea = SELECT()
SELECT 0
USE (m.cMenuName) AGAIN SHARED
IF !EMPTY(ALIAS())
	GO TOP
	REPLACE objtype WITH nObjType
	USE
ELSE
	MESSAGEBOX(C_NOUPDATEGO_LOC)
ENDIF
SELECT (m.cSaveArea)

ENDPROC
PROCEDURE getreportstyle
LPARAMETER tcstylename

LOCAL cReportWizStyleFile,nSaveArea,lcRptname
cReportWizStyleFile = HOME()+C_WIZSTYLETABLE3
IF !FILE(m.cReportWizStyleFile)
	RETURN C_RPTSTYLE1_FILE
ENDIF

nSaveArea = SELECT()
SELECT 0
USE (m.cReportWizStyleFile) ALIAS rptstyles AGAIN
IF !EMPTY(ALIAS())
	LOCATE FOR ATC(tcstylename,stylename)#0
	IF FOUND()
		lcRptname = ALLTRIM(stylehfile)
		* Check if name is expression
		IF TYPE("EVAL(lcRptName)")="C"
			lcRptname = EVAL(lcRptName)
		ENDIF
	ENDIF
	USE IN rptstyles
ENDIF
SELECT (m.nSaveArea)

RETURN IIF(!EMPTY(lcRptname),lcRptname,C_RPTSTYLE1_FILE)

ENDPROC
PROCEDURE selectdoc
PARAMETER tcDocType

IF VARTYPE(tcDocType)#"C" OR !INLIST(UPPER(tcDocType),"R","F")
	tcDocType = "F"
ENDIF

LOCAL lcFile,lcClass,aDocClass,lcDocType,lcExt

lcDocType = UPPER(tcDocType)
lcClass=""

lcFile= GETFILE(IIF(lcDocType="F",FORM_TYPE_EXTENSIONS,REPORT_TYPE_EXTENSIONS))

DIMENSION aDocClass[1]

IF EMPTY(lcFile) OR !FILE(lcFile)
	RETURN .F.
ENDIF

lcExt = UPPER(JUSTEXT(lcFile))

* Check for invalid file type
IF  (lcDocType="F" AND ATC(lcExt,FORM_TYPE_EXTENSIONS)=0) OR ;
	(lcDocType="R" AND ATC(lcExt,REPORT_TYPE_EXTENSIONS)=0)
	MESSAGEBOX(BADFILETYPE_LOC)
	RETURN .F.
ENDIF

IF ATC("VCX",JUSTEXT(lcFile))#0
	IF AGETCLASS(aDocClass,lcFile)
		lcFile = aDocClass[1]
		lcClass = aDocClass[2]
	ENDIF
ENDIF

IF PEMSTATUS(THIS.oProject.ProjectHook,"lByPassBuilder",5)
	THIS.oProject.ProjectHook.lByPassBuilder = .T.
ENDIF
THIS.oProject.Files.Add(lcFile)
THIS.AddDoc(lcFile,lcClass,.T.,lcDocType)
IF PEMSTATUS(THIS.oProject.ProjectHook,"lByPassBuilder",5)
	THIS.oProject.ProjectHook.lByPassBuilder = .F.
ENDIF
THIS.UpdateDocs()

ENDPROC
PROCEDURE removefrommeta
LPARAMETER tcFileName

LOCAL lcExt,lcFileName,lcDocType,nSaveArea

nSaveArea = SELECT()

lcExt = UPPER(JUSTEXT(tcFileName))
lcFileName = UPPER(JUSTSTEM(tcFileName))

SELECT appbldr_meta

DO CASE
CASE INLIST(lcExt,"FRX","SCX","LBX")
	lcDocType = IIF(lcExt="SCX","F","R")
	DELETE ALL FOR UPPER(doc_type) = lcDocType AND !doc_wrap AND;
		UPPER(ALLTRIM(doc_exec))== lcFileName AND;
		EMPTY(ALLTRIM(doc_class)) AND NOT DELETED()
CASE lcExt="VCX"
	DELETE ALL FOR !doc_wrap AND !EMPTY(ALLTRIM(doc_class)) AND;
		UPPER(ALLTRIM(doc_exec))== lcFileName AND NOT DELETED()
CASE ATC(lcExt,"PRG,FXP,APP,EXE,MPR,MPX,QPR,QPX")#0
	DELETE ALL FOR doc_wrap AND EMPTY(ALLTRIM(doc_class)) AND;
		UPPER(ALLTRIM(doc_exec))== lcFileName AND NOT DELETED()
ENDCASE
TABLEUPDATE(.T.)

SELECT (m.nSaveArea)
ENDPROC
PROCEDURE cleanup
LOCAL nSaveArea, lcFileName, lcFileName2, lcStemName, lcDBF
LOCAL oProjFile, lcDocType

IF MESSAGEBOX(CLEANUPMETA_LOC,36)#6
	RETURN
ENDIF

nSaveArea=SELECT()

IF !USED("appbldr_meta")
	RETURN
ENDIF

SELECT appbldr_meta

* Check meta table
WAIT WINDOW NOWAIT STAT_UPDATEMETA_LOC 
SCAN FOR !DELETED()
	lcStemName = ALLTRIM(doc_exec)
	lcFileName = ""
	DO CASE
	CASE doc_wrap OR EMPTY(lcStemName)
		LOOP
	CASE !EMPTY(ALLTRIM(doc_class))
		lcFileName = FORCEEXT(lcStemName,"VCX")
	CASE UPPER(doc_type) = "R"
		lcFileName = FORCEEXT(lcStemName,"FRX")
		lcFileName2 = FORCEEXT(lcStemName,"LBX")
	CASE UPPER(doc_type) = "F"
		lcFileName = FORCEEXT(lcStemName,"SCX")
	OTHERWISE
		LOOP	
	ENDCASE
	
	IF TYPE("THIS.oProject.Files[lcFileName].Name")#"C" AND;
		TYPE("THIS.oProject.Files[lcFileName2].Name")#"C"
		DELETE
	ENDIF
ENDSCAN

* Check against project
WAIT WINDOW NOWAIT STAT_UPDATEPJX_LOC 
FOR EACH oProjFile IN THIS.oProject.Files
	IF ATC(JUSTEXT(oProjFile.Name),"SCX,FRX,LBX")=0
		LOOP
	ENDIF
	lcStemName = UPPER(JUSTSTEM(oProjFile.Name))
	lcDocType = IIF(UPPER(JUSTEXT(oProjFile.Name))="SCX","F","R")
	LOCATE FOR UPPER(doc_type) == lcDocType AND !doc_wrap AND;
		UPPER(ALLTRIM(doc_exec))== lcStemName AND;
		EMPTY(ALLTRIM(doc_class)) AND NOT DELETED()
	IF FOUND()
		LOOP
	ENDIF
	THIS.AddToMeta(oProjFile.Name)
ENDFOR


lcDBF = DBF()
TABLEUPDATE(.T.)
USE IN APPBLDR_META
USE (lcDBF) EXCLUSIVE
IF !EMPTY(ALIAS())
	PACK
	USE
ENDIF
THIS.OpenMeta()

SELECT (m.nSaveArea)

THIS.UpdateDocs()

WAIT WINDOW STAT_REFRESHDONE_LOC TIMEOUT 2

ENDPROC
PROCEDURE removedoc
LPARAMETER tcFileName

IF !THIS.CheckProject()
	RETURN .F.
ENDIF

THIS.RemoveFromMeta(tcFileName)
THIS.UpdateDocs()

ENDPROC
PROCEDURE checkproject
LPARAMETERS lFromInit

LOCAL nSaveArea

* Check for project reference accidentally released and reestablish it.
IF TYPE("THIS.oProject.Baseclass")#"C"
	IF !EMPTY(lFromInit) OR TYPE("_VFP.ActiveProject")="U"
		RETURN .F.
	ENDIF
	THIS.ResetBldr()
	lFromInit = .T.	&&treat as if first time in
ENDIF

IF EMPTY(lFromInit)
	IF TYPE("_VFP.ActiveProject.Name")#"C"
		RETURN .F.
	ENDIF
	
	* Check if activeproject is same one in builder
	IF THIS.oProject.Name=_VFP.ActiveProject.Name
		RETURN
	ENDIF
	
	* Save out existing settings
	IF !EMPTY(THIS.cMetaDBF)
		THIS.SetAppPems()
		nSaveArea = SELECT()
		SELECT appbldr_meta
		TABLEUPDATE(.T.)
		USE
		SELECT (m.nSaveArea)
	ENDIF
	
	* Reset certain settings
	THIS.ResetBldr()

ENDIF

THIS.Caption = CAPTION_LOC +": "+ DISPLAYPATH(THIS.oProject.Name, 230)

IF THIS.lFramework
	THIS.GetAppPems()
	THIS.UpdateDocs()
ENDIF

THIS.RefreshPages()

ENDPROC
PROCEDURE addappobject
* Adds application object to form (form_mediator object).
* This is now an abstact method which has been moved to APPHOOK class.
LPARAMETER oFormRef

ENDPROC
PROCEDURE editdoc
LOCAL nSaveArea, lcFileName, lcDocType, lcClass, laSelObj
nSaveArea = SELECT()
DIMENSION laSelObj[1]

SELECT appbldr_meta
lcClass = ALLTRIM(doc_class)
lcDocType = UPPER(doc_type)
 
lcFileName = THIS.GetProjectFileName()
IF !FILE(lcFileName)
	RETURN .F.
ENDIF
THIS.oProject.Files[lcFileName].Modify(lcClass)

IF VARTYPE(THIS.lCheckFormObjectOnEdit)#"L"
	THIS.lCheckFormObjectOnEdit = .T.
ENDIF

IF THIS.lCheckFormObjectOnEdit AND THIS.lHasAppObject AND lcDocType = "F" AND !doc_wrap
	IF ASELOBJ(laSelObj,1)= 1
		* Check if ProjectHook has AddAppObject method, else use internal one.
		IF PEMSTATUS(THIS.oProject.ProjectHook,"addappobject",5)
			THIS.oProject.ProjectHook.AddAppObject(laSelObj[1])
		ELSE
			THIS.AddAppObject(laSelObj[1])
		ENDIF
	ENDIF
ENDIF

SELECT (m.nSaveArea)

ENDPROC
PROCEDURE cleardoc
PARAMETER tcType

LOCAL lcListRef, lnIndex, lcType, lcFileName

IF VARTYPE(tcType)#"C"
	RETURN .F.
ENDIF

IF VARTYPE(THIS.lRemoveFileFromProject)#"L"
	THIS.lRemoveFileFromProject=.F.
ENDIF

IF THIS.lRemoveFileFromProject
	IF MESSAGEBOX(DELETEFROMMETA2_LOC,36)#6
		RETURN
	ENDIF
	lcFileName = THIS.GetProjectFileName()
	IF !EMPTY(lcFileName)
		THIS.oProject.Files(lcFileName).Remove()
	ENDIF
ELSE
	IF MESSAGEBOX(DELETEFROMMETA_LOC,36)#6
		RETURN
	ENDIF
	lcType = UPPER(tcType)
	lcListRef = IIF(lcType="R","THIS.PF1.PGReports.lstReports",;
		"THIS.PF1.PGForms.lstForms")
	WITH &lcListRef
		lnIndex = .ListIndex
		THIS.RefreshDoc(lcType)	&&ensure we have right record
		DELETE
		THIS.UpdateDocs()
		IF .ListCount=0
			RETURN
		ENDIF
		lnIndex = MIN(lnIndex,.ListCount)
		.Value = .ListItem[lnIndex]
	ENDWITH
ENDIF
THIS.RefreshDoc(lcType)

ENDPROC
PROCEDURE refreshpages
WITH THIS.pf1

	IF !THIS.lFramework OR VARTYPE(THIS.oProject.ProjectHook)#"O"
		.pgApp.Enabled = .F.
		.pgForms.Enabled = .F.
		.pgReports.Enabled = .F.
		.pgAdv.Enabled = .F.
		.pgCredits.Enabled = .F.
		.pgData.Enabled = .T.
		.ActivePage = 3
		RETURN
	ENDIF

	.pgForms.Enabled = .T.
	.pgReports.Enabled = .T.
	IF !THIS.lHasAppObject
		.pgApp.Enabled = .F.
		.pgCredits.Enabled = .F.
		.pgAdv.Enabled = .F.
		.ActivePage = 3
	ELSE
		.pgApp.Enabled = .T.
		.pgCredits.Enabled = .T.
		.pgAdv.Enabled = .T.
		.ActivePage = 1
	ENDIF

ENDWITH

ENDPROC
PROCEDURE openmeta
LOCAL nSaveArea
SET DATASESSION TO THIS.nBldrDataSession 
nSaveArea = SELECT()

IF USED("APPBLDR_META")
	SELECT APPBLDR_META
	RETURN
ENDIF

IF EMPTY(THIS.cMetaDBF)
	RETURN
ENDIF

SELECT 0
USE (THIS.cMetaDBF) AGAIN SHARED ALIAS "APPBLDR_META"
IF EMPTY(ALIAS())
	MESSAGEBOX(C_METAEXCL1_LOC+UPPER(THIS.cMetaDBF)+C_METAEXCL2_LOC)
	THIS.lFramework = .F.
	SELECT (m.nSaveArea)
	RETURN .F.
ELSE
	SET MULTILOCKS ON
	CURSORSETPROP("BUFFERING",5)
ENDIF

ENDPROC
PROCEDURE clearclass
LPARAMETERS tlClearAll

LOCAL lcObjName,lcClass,lnChildCount,lnCount,lnRecNo

lnRecNo=IIF(EOF(),1,RECNO())
lcObjName=LOWER(MLINE(ObjName,1))
IF NOT EMPTY(lcObjName) AND NOT lcObjName==LOWER(MLINE(BaseClass,1))
	CLEAR CLASS (lcObjName)
ENDIF
lcClass=LOWER(MLINE(Class,1))
IF NOT EMPTY(lcClass) AND NOT lcClass==LOWER(MLINE(BaseClass,1))
	CLEAR CLASS (lcClass)
ENDIF
lnChildCount=VAL(MLINE(Reserved2,1))-1
FOR lnCount = 1 TO lnChildCount
	SKIP
	lcClass=LOWER(MLINE(Class,1))
	IF NOT EMPTY(lcClass) AND NOT lcClass==LOWER(MLINE(BaseClass,1))
		CLEAR CLASS (lcClass)
	ENDIF
ENDFOR

IF tlClearAll
	FOR lnCount = 1 TO this.nClassCount
		lcClass=this.aClassList[lnCount,1]
		IF EMPTY(lcClass) OR "."$lcClass OR lcClass==this.aClassList[lnCount,8]
			LOOP
		ENDIF
		CLEAR CLASS (lcClass)
	ENDFOR
ENDIF

GO lnRecNo

ENDPROC
PROCEDURE rundatawizard
LPARAMETER tlTableWizard

LOCAL lcParm, lcPath, aFiles, lcDataPath, lcSaveDefault

lcWhichWizard = IIF(tlTableWizard,C_TABLEWIZ,C_DATAWIZ)

DIMENSION aFiles[1]

lcPath = ADDBS(JUSTPATH(THIS.oProject.Name))
lcDataPath = IIF(ADIR(aFiles,m.lcPath+C_DATAFOLDER,"D")>0,;
	ADDBS(m.lcPath+C_DATAFOLDER),m.lcPath)

cOutPut = ''
lcParm = 'cOutPut'
lcSaveDefault = FULLPATH(SET("DEFAULT"))
SET DEFAULT TO (lcDataPath)
SET DATASESSION TO 1
DO (HOME()+lcWhichWizard) WITH m.lcParm
SET DATASESSION TO THIS.nBldrDataSession 
SET DEFAULT TO (lcSaveDefault)
IF !EMPTY(cOutPut) AND cOutPut#"0"
	THIS.SelectData(SUBSTR(cOutPut,2))
ENDIF
THIS.pf1.pgData.Grid1.RecordSource="wizdocs"

ENDPROC
PROCEDURE selectdata
LPARAMETER tcFileName
LOCAL lcData,lnTotTables,lnTotViews,aTables,aViews

IF EMPTY(tcFileName) OR !FILE(tcFileName)
	lcData = GETFILE("DBF;DBC")
ELSE
	lcData = tcFileName
ENDIF

IF EMPTY(lcData)
	RETURN
ENDIF

SELECT wizDocs
*(datasource c(35),lform l, lreport l, cfilename m)
DO CASE
CASE UPPER(JUSTEXT(lcDATA))="DBC"
	OPEN DATA (lcData)
	DIMENSION aTables[1],aViews[1]
	* Handle tables
	lnTotTables = ADBOBJECTS(aTables,"TABLE")
	FOR i = 1 TO lnTotTables
		INSERT INTO wizdocs VALUES(aTables[m.i],.F.,.F.,;
			FULLPATH(DBGETPROP(aTables[m.i],"TABLE","PATH"),DBC()))
	ENDFOR

	* Handle views
	lnTotViews = ADBOBJECTS(aViews,"VIEW")
	FOR i = 1 TO lnTotViews
		INSERT INTO wizdocs VALUES(ALLTRIM(aViews[m.i]),.F.,.F.,DBC())
	ENDFOR

CASE UPPER(JUSTEXT(lcDATA))="DBF"
	INSERT INTO wizdocs VALUES(JUSTFNAME(lcData),.T.,.T.,lcData)
ENDCASE

GO TOP
THIS.pf1.pgData.Grid1.RecordSource="wizdocs"
THIS.REFRESH
THIS.pf1.pgData.cmdClear.Enabled = .T.
THIS.pf1.pgData.cmdAdd.Enabled = .T.

ENDPROC
PROCEDURE checkmeta
IF !FILE(THIS.cMetaDBF)
	RETURN .F.
ENDIF

IF THIS.OPENMETA() AND ATC(FIELD(1),METAFIELD1)=0
	THIS.cMetaDBF = ""
ENDIF

ENDPROC
PROCEDURE updateprojectslist
LOCAL lnAlen,lcSaveExact

lnAlen=ALEN(THIS.aProjects)

IF !EMPTY(THIS.aProjects[1])
	lcSaveExact = SET("EXACT")
	SET EXACT ON
	lnPos = ASCAN(THIS.aProjects,THIS.oProject.Name)
	SET EXACT &lcSaveExact
	IF lnPos#0
		RETURN .F.
	ENDIF
	lnAlen=lnAlen+1
	DIMENSION THIS.aProjects[lnAlen]
ENDIF

THIS.aProjects[lnAlen]=THIS.oProject.Name


ENDPROC
PROCEDURE writelog
LPARAMETER tcContents

LOCAL lcLogFile,lcStr

IF TYPE("THIS.oProject.Name")#"C" OR VARTYPE(tcContents)#"C" OR EMPTY(tcContents)
	RETURN .F.
ENDIF

lcLogFile=ADDBS(JUSTPATH(THIS.oProject.Name)) + ;
		JUSTSTEM(THIS.oProject.Name) + APP_BUILDER_FILE_SUFFIX + ".LOG"	
IF !FILE(lcLogFile)
	RETURN	.F.
ENDIF

lcStr = CRLF + "* -- " + TRANS(DATETIME()) + " -- " + ALLTRIM(tcContents)

STRTOFILE(lcStr,lcLogFile,.T.)

ENDPROC
PROCEDURE help
LPARAMETER lOverallTopic
LOCAL lnPageRef,lcHelpFile
lnPageRef = THIS.Pf1.ActivePage

IF VARTYPE(lOverallTopic)#"L"
	lOverallTopic = .F.
ENDIF

IF EMPTY(THIS.cSaveHelp)
	THIS.cSaveHelp = SET("HELP",1)
ENDIF

IF ATC("FOXHELP.CHM",SET("HELP",1))=0 AND ATC("MSDNVS98.COL",SET("HELP",1))=0
	THIS.lSetErrorOff=.T.
	SET HELP TO
	THIS.lSetErrorOff=.F.
ENDIF

IF ATC("FOXHELP.CHM",SET("HELP",1))=0 AND ATC("MSDNVS98.COL",SET("HELP",1))=0 	
	MESSAGEBOX(C_NOHELP_LOC)
	RETURN
ENDIF

IF SET("HELP")="OFF"
	SET HELP ON
ENDIF

HELP ID 22990000

ENDPROC
PROCEDURE resetbldr
LOCAL oTmpProj

* Reset certain settings
THIS.oProject=""
THIS.lFramework = ""
THIS.lHasAppObject = .F.
oTmpProj=_VFP.ActiveProject
THIS.oProject=_VFP.Projects[oTmpProj.Name]
THIS.cMetaDBF=""
IF USED("APPBLDR_META")
	USE IN APPBLDR_META
ENDIF

ENDPROC
PROCEDURE getwizstyleref
LOCAL loWizRef,nSaveArea,nPos,oDataPage

nSaveArea = SELECT()
oDataPage = THIS.pf1.pgData

lowizref = NEWOBJECT(C_GALLERYCLASS,HOME()+C_GALLERYCLASSLIB)
IF VARTYPE(lowizref)#"O"
	RETURN ""
ENDIF
lowizref.lAddAppObject =.T.

* Form Style info
STORE "" TO lowizref.aWizStyles
IF TYPE("oDataPage.cboFrmStyle.BaseClass")="C"
	nPos = ASCAN(THIS.aFrmVisuals,ALLTRIM(oDataPage.cboFrmStyle.Value))
	lowizref.aWizStyles[1,1] = ALLTRIM(THIS.aFrmVisuals[m.nPos+1])
	lowizref.aWizStyles[1,2] = ALLTRIM(THIS.aFrmVisuals[m.nPos+2])
ENDIF
lowizref.lUsePages = .F.
lowizref.nWizAction = 1
 
* Report Style info
DO CASE
CASE ALLTRIM(oDataPage.cboRptStyle.Value) = C_RPTSTYLE1_LOC 
	lowizref.cStyleFile = C_RPTSTYLE1_FILE 
CASE ALLTRIM(oDataPage.cboRptStyle.Value) = C_RPTSTYLE2_LOC 
	lowizref.cStyleFile = C_RPTSTYLE2_FILE 
CASE ALLTRIM(oDataPage.cboRptStyle.Value) = C_RPTSTYLE3_LOC 
	lowizref.cStyleFile = C_RPTSTYLE3_FILE 
OTHERWISE
	lowizref.cStyleFile = THIS.GetReportStyle(oDataPage.cboRptStyle.Value)
ENDCASE

SELECT (m.nSaveArea)

RETURN lowizref
ENDPROC
PROCEDURE getprojectfilename
LOCAL lcFileStem, lcDocType, lcFileName, lcExt, lcClass
lcClass = ALLTRIM(doc_class)
lcDocType = UPPER(doc_type)
IF !INLIST(lcDocType,"R","F")
	RETURN ""
ENDIF

lcFileStem = ALLTRIM(doc_exec)

DO CASE
CASE !EMPTY(JUSTEXT(lcFileStem))
	lcFileName = lcFileStem
CASE doc_wrap
	lcFileName = FORCEEXT(lcFileStem,"PRG")
CASE !EMPTY(lcClass)
	lcFileName = FORCEEXT(lcFileStem,"VCX")
CASE lcDocType = "F"
	lcFileName = FORCEEXT(lcFileStem,"SCX")
CASE lcDocType = "R"
	lcFileName = FORCEEXT(lcFileStem,"FRX")
	IF TYPE("THIS.oProject.Files[lcFileName].Name")#"C"
		lcFileName = FORCEEXT(lcFileStem,"LBX")
	ENDIF
OTHERWISE
	RETURN ""	
ENDCASE

IF TYPE("THIS.oProject.Files[lcFileName].Name")#"C"
	RETURN ""
ENDIF

lcFileName = THIS.oProject.Files[lcFileName].Name
RETURN lcFileName

ENDPROC
PROCEDURE makewizarddoc
LPARAMETERS tcDocType, tcDocPath

PRIVATE loWiz
LOCAL lcExt,lcWizard, lnSaveArea, lcSaveDBC
LOCAL lcOutFile, lcDBCName, lcDataFile

* Create new form from Wizard
IF tcDocType="R"	&&report
	lcExt="FRX"
	lcWizard = "AUTOREPORT"
ELSE
	lcExt="SCX"
	lcWizard = "AUTOFORM"
ENDIF

lIsView = ATC(".DBC",cFileName)#0
lcDataFile = IIF(lIsView,ALLTRIM(datasource),ALLTRIM(cFileName))
lcOutFile = UPPER(tcDocPath+FORCEEXT(JUSTFNAME(lcDataFile),lcExt))
lcDBCName = ALLTRIM(cFileName)

IF FILE(lcOutFile) AND ;
	MESSAGEBOX(C_WIZFILEEXISTS1_LOC + lcOutFile + C_WIZFILEEXISTS2_LOC,36)#6
	RETURN
ENDIF

loWiz = THIS.GetWizStyleRef()
lowiz.cOutFile = lcOutFile

SET DATASESSION TO 1
IF lIsView
	lnSaveArea = SELECT()
	lcSaveDBC = SET("DATABASE")
	SELECT 0
	SET DATABASE TO (lcDBCName)
	THIS.lSetErrorOff = .T.
	USE (lcDataFile) NODATA AGAIN SHARED
	THIS.lSetErrorOff = .F.
	lowiz.cWizAlias = ALIAS()
ELSE
	lowiz.cWizTable = lcDataFile
ENDIF

IF lIsView AND EMPTY(ALIAS())
	* Continue or handle error
ELSE
	DO (_WIZARD) WITH lcWizard,"","",lowiz
ENDIF

IF lIsView
	USE
	SELECT (lnSaveArea)
	IF EMPTY(lcSaveDBC)
		SET DATABASE TO
	ELSE
		SET DATABASE TO (lcSaveDBC)
	ENDIF
ENDIF

SET DATASESSION TO THIS.nBldrDataSession

THIS.oProject.Files.Add(lcOutFile)
THIS.AddDoc(lcOutFile,"",.T.)
RELEASE loWiz

ENDPROC
PROCEDURE RightClick
PRIVATE oTHISForm

* Check if menu class in use
IF TYPE("THIS.cusMenu.BaseClass")#"C"
	RETURN
ENDIF
oTHISForm=THIS

WITH THIS.cusMenu
	.ClearMenu()
	.AddMenuBar(MENU_ONTOP_LOC,"oTHISForm.AlwaysOnTop = !oTHISForm.AlwaysOnTop",,,THIS.AlwaysOnTop)
	.AddMenuSeparator()
	.AddMenuBar(MENU_CLEANUP_LOC,"oTHISForm.Cleanup()")
	.AddMenuBar(MENU_HELP_LOC,"oTHISForm.Help(.T.)")
	.AddMenuSeparator()
	.AddMenuBar(MENU_CANCEL_LOC)
	.ShowMenu()
ENDWITH

ENDPROC
PROCEDURE Deactivate
SET MESSAGE TO
ACTIVATE SCREEN
ENDPROC
PROCEDURE Activate
SET MESSAGE TO STAT_APPBLDR_LOC
IF THIS.nBldrDataSession # SET("DATASESSION")
	SET DATASESSION TO THIS.nBldrDataSession 
ENDIF
IF !THIS.CheckProject()
	RETURN .F.
ENDIF

ENDPROC
PROCEDURE QueryUnload
THIS.Release()

ENDPROC
PROCEDURE Init
LPARAMETER p1,p2,p3,p4,p5,p6,p7,p8,p9
*-- P1-P3 are reserved for Wizard use

*-- Setup menu item which you can optionally uncomment if you want to your Tools menu
*!*	DEFINE BAR 33 OF _mtools AFTER _mtl_gallery;
*!*			PROMPT MENU_PROMPT_LOC ;
*!*			MESSAGE MENU_MESSAGE_LOC
*!*	ON SELECTION BAR 33 OF _msm_tools DO (_WIZARD) WITH "PROJECT"
*!*	SET SYSMENU SAVE

LOCAL oTmpProj
PUBLIC _oappbldr
_oappbldr = THIS

oTmpProj= _VFP.ActiveProject
THIS.oProject = _VFP.Projects[oTmpProj.Name]
THIS.cMULTILOCKS = SET("MULTI")
THIS.nBldrDataSession = THIS.DataSessionId
* Setup or refresh builder
THIS.CheckProject(.T.)
IF THIS.lUserCancel
	RETURN .F.
ENDIF

SET MESSAGE TO STAT_APPBLDR_LOC

THIS.NewObject("cusMenu","_shortcutmenu",HOME()+"WIZARDS\APPHOOK.VCX")

IF VARTYPE(m.p4)="L" AND m.p4 AND !THIS.lSkipAssist
	* Open Builder with Help launched -- called from Application Wizard
	THIS.Help(.T.)
ENDIF

ENDPROC
PROCEDURE Load
LOCAL i

* Check for project open
IF TYPE("_VFP.ActiveProject") # "O"
	WAIT WINDOW C_NOPROJ_LOC TIMEOUT 3
	RETURN .F.
ENDIF

* Prevent from loading form twice
IF TYPE("_oAppBldr.baseclass")="C"
	* Check if we have a new activeproject
	IF _oAppBldr.oProject.Name # _VFP.ActiveProject.Name
		_oAppBldr.CheckProject()
	ENDIF
	_oAppBldr.Show()
	RETURN .F.
ENDIF	

SET MESSAGE TO STAT_LOADING_LOC

* Cursor for storing Data tab files
CREATE CURSOR wizdocs (datasource c(35),lform l, lreport l, cfilename m)

ENDPROC
PROCEDURE Release
IF TYPE("_VFP.ActiveProject")="O" AND !_VFP.ActiveProject.Visible
	_VFP.ActiveProject.Visible = .T.
ENDIF

IF USED("APPBLDR_META")
	SELECT appbldr_meta
	TABLEUPDATE(.T.)
	USE
ENDIF

IF USED("WIZDOCS")
	USE IN wizdocs
ENDIF

_oappbldr = ""
RELEASE _oappbldr

IF !EMPTY(THIS.cSaveHelp) AND ATC("FOXHELP.CHM",THIS.cSaveHelp)=0
	SET HELP TO (THIS.cSaveHelp)
ENDIF

IF VARTYPE(THISFORM.oHelpForm)="O"
	THISFORM.oHelpForm.Release()
	THISFORM.oHelpForm = ""
ENDIF

IF THIS.cMULTILOCKS="OFF"
	SET MULTI OFF
ENDIF
SET MESSAGE TO
ENDPROC
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
LOCAL nErrHandler

DO CASE
CASE INLIST(nError,3,1752)
	RETURN
CASE THIS.lSetErrorOff
	RETURN
ENDCASE

nErrHandler = MESSAGEBOX( MSG_ERROR_LOC+TRANS(nError)+CRLF+;
	MSG_METHOD_LOC+cMethod+CRLF+;
	MSG_LINENUM_LOC+TRANS(nLine)+CRLF+;
	MSG_MESSAGE_LOC+MESSAGE()+CRLF+;
	MSG_LINE_LOC+MESSAGE(1)+CRLF+CRLF+;
	MSG_ERRORCONTINUE_LOC ,2)

DO CASE
CASE nErrHandler = 3	&&abort
	CANCEL
CASE nErrHandler = 4	&&retry
	SET STEP ON
	RETRY
OTHERWISE				&&ignore
	RETURN
ENDCASE

ENDPROC
�v�� ]�]���*%�w���{�U�����������%�C��
��7�B�-���"%�C�
����C���
��d�B�-���%�C��	���L����T��	�-���T��CC�
���f��.%��
�
�CC�f�FRX�SCX�LBX�
	����B��3%�C�
����C�C�
��R�F�r�f�
���
T������<T��CC��
���!CC��FRX�LBX���R��F66��%��
�������C�
��
��
���
��B��c%���	
�OC�AWould you also like to add this file to the framework meta table?�$�x�	��	�
��C����B�-�����C�
��
��
���
��
��C����
H�F����C�
�f�F��o�T���
�����C�
�f�R����T���
�����U	CFILENAME
CCLASSNAMELNOSHOW	CMETATYPECEXTCDOCTYPETHISCHECKPROJECT
LFRAMEWORKLAUTOADDFILE	ADDTOMETA
UPDATEDOCSPF1
ACTIVEPAGE�������������T��CW��T��CC�
���f��)%�C����C�CC�f�R�F�
����+T��CC��FRX�LBX���R��F6���T��C�f��%�C����C����
T������
H���=���
��F���T��� Form����
��R��.�T��� Report��2�=�B�-���AT��CC�
��PRG,FXP,APP,EXE,MPR,MPX,QPR,QPX���a�-6��F��--�C�	fC�f�C�
@CC�
���@	�C'
	��
%�C4
�����r������	�
�
���������
���CCC��
���C�
���6��
���CC�
���@��C�@��a��a�����a��a��%�C�APPBLDR_META���}�F����C�����F��
���U
TCFILENAMETCCLASSNAME	TCDOCTYPE	NSAVEAREACDOCTYPECEXTCDOCDESC	LCDOCWRAPAPPBLDR_METADOC_TYPEDOC_EXECTHISCMETADBF	DOC_DESCR	DOC_CLASSDOC_NEWDOC_OPENDOC_WRAPDOC_GODOC_NAV�����7%�C����
�C�APPHOOK.VCX�����	��F�B��
H�W���C��0�
C���
	��v�*�CC�Q�WIZARDS\�APPHOOK.VCX0����+T���C�Q�WIZARDS\�APPHOOK.VCX��T����APPHOOK���CC�Q�APPHOOK.VCX0��6�T���C�Q�APPHOOK.VCX��T����APPHOOK��2��
�����B��C���apphook�apphook�Select Application Hook Class���T���C����!%�CC����CC��0
����T������T������B�-���T���C����T���C�����T��������T��������_��C�SYou will have to close and reopen the project once for full changes to take effect.�x��UATMP
LCPROJNAMETHISOPROJECTPROJECTHOOKLIBRARY	CHOOKFILE
CHOOKCLASSPROJECTHOOKCLASSs�������T��CW��%�C�����L��T�%�C�������9T���CC���	����C���	���_app�.DBF���T��C��
��NT��C�THIS.oProject.ProjectHookb�O�C�APPHOOK.VCX�����	��T��C���
C���
	��T���a��
T�����
H�/����C���������C٨It appears that you have an application meta table for this project, but it is not a valid structure for use by this builder. Certain builders options will be disabled.�x��T���-����
��!�T��������
�
C����
	����bR,�����RYou have a custom project hook installed. Certain builder options may be disabled.����
��
	��e��T��C�GThe Application Builder will allow you to store additional information �Nfor your forms and reports if you chose to install an application meta table. �-Would you like to install the meta table now?C�
 C�
 C�
 C�
 ٕNote: certain tabs on the builder are only available if you create a project using the Application Wizard which has a complete application framework.�#�x�� T������C��
	����
����ZT��C�LIt appears that you already have an application meta table for this project �Fbut no project hooks. Would you like to install the project hooks now?C�
 C�
 C�
 C�
 ٕNote: certain tabs on the builder are only available if you create a project using the Application Wizard which has a complete application framework.�#�x�� T������C��
	����
�����T��C�GThe Application Builder will allow you to store additional information �Nfor your forms and reports if you chose to install an application meta table. �-Would you like to install the meta table now?C�
 C�
 C�
 C�
 ٕNote: certain tabs on the builder are only available if you create a project using the Application Wizard which has a complete application framework.�#�x��T��������%�������T���a���%�����8�%�C��0
���
��C������C���������%�C��
��4�T��������P�T��������F��
���B�����U	NSAVEAREA
LVALIDHOOK
LVALIDMETALPROJECTNOTREGISTEREDLNMESSAGERESPONSETHIS
LFRAMEWORKCMETADBFOPROJECTNAMEUPDATEPROJECTSLISTPROJECTHOOKLIBRARY	CHECKMETASETUPFRAMEWORKLUSERCANCEL
MAKEMETATABLEFILESADDOPENMETA3�������������	�
�%�C�����O��Q�B�-���?%�C���
���O�!C���
�lByPassBuilder��h	����T���
��a��T�����
���T���
������
�����T��CW��T�	������T��CC�	�����FT��CC���
��FORMS�D���C�
��FORMS����
�6��JT��CC���
��REPORTS�D���C�
��REPORTS����
�6��F��#)�+�C+
��q�T�
�C�.DBC�����
%��������C�F������
%����#���C�R������T���a��%��

��[���CC���������T���-��H��?%�C���
���O�!C���
�lByPassBuilder��h	����T���
��-��T���
������T��C�SAFEv��G.�S�SET SAFETY &cOldSafe
F��
���
��C����U	NSAVEAREALCALIASAFILESCOLDSAFE
NSAVEMEDIATORILCPATHLCFORMSPATH
LCREPORTSPATH
LCPROJNAMELISVIEWTHISOPROJECTPROJECTHOOKLBYPASSBUILDERNINSTALLMEDIATORNAMEWIZDOCS	CFILENAMELFORM
MAKEWIZARDDOCLREPORTLSETERROROFFFILESADD
UPDATEDOCS��h1������C�����C��<���M��M��L��L��L�	�L�
�L��L��L�
�M��M��M�Q�UTHISCMETADBFDOC_TYPE	DOC_DESCRDOC_EXEC	DOC_CLASSDOC_NEWDOC_OPEN
DOC_SINGLE
DOC_NOSHOWDOC_WRAPDOC_GODOC_NAVALT_EXCE
PROPERTIES
USER_NOTES1����������� T���app�_application��9T��C���	���\libs\C���	���_app.vcx��%�C�
�0
����4T�
��CC���	����C���	���_app.vcx���T��
�C�
�0��%���

����B��T��C�����%�C����O��C�%R,��Failed to create App Object��B���������E�T��
��C�����T����C�����T��������T��������T��������T��������
H���[� �C�_append�������T��������C�_top������B�T�������2�[�T��������T��������4T��CC���	����C���	���_app�.H��
T�����T��C����%�C��
��A�/T��C�C�#DEFINE APP_SPLASHCLASS �����"T���CCC��=�f�#DEF��T������������������ ����T��!����"��T��#����$��T��%��C��&_��T��'��C��(_��T��)��C��*_��%�C��#������T��#�����+���%�C��'�����T��'�����,���%�C��)����L�T��)�����-���#%�C���.�..�0.0.0�
����T��%�����.����������/����T��0����1��T��2����3��T��4����5��T��6����7����T���T��CW��F��Q��
����%�CC�
��q�-�CC�8@�C�@�C'
	��%�C4��m�
��C��9��Q���CLEAR CLASS &cAppClass
$Q�C�Q�WIZARDS\_FRAMEWK.VCX���%�CC�
��
�'-�CC�8@�C�_application@�C'
	��%�C4���
��C��9��Q���O�_application�F��
���U:OAPP	CAPPCLASSCAPPCLASSLIB	NSAVEAREALCHEADERFILE
LCCONTENTSLCHEADERLINETHISOPROJECTNAME
LHASAPPOBJECTPF1PGAPP
TXTAPPNAMEVALUECCAPTIONTXTAPPIMAGECIMAGE
IMGAPPICONPICTURECICONCHKABOUT	LABOUTBOX
CHKQUICKSTARTLSTARTUPFORM
CHKUSERLOGINSLUSERPREFERENCESCSTARTUPMENU	OGAPPTYPENAPPTYPE
LHASSPLASH	CHKSPLASH	PGCREDITS	TXTAUTHORCAUTHOR
TXTCOMPANYCCOMPANY
TXTVERSIONCVERSIONTXTCOPYRIGHT
CCOPYRIGHTTXTTRADEMARK
CTRADEMARKVERSIONCOMPANYVERSIONCOPYRIGHTVERSIONTRADEMARKS
VERSIONNUMBERPGADVTXTHELPFILE	CHELPFILE
TXTDATAFOLDERCDATAFOLDER
CHKTOOLBARLSTARTUPTOOLBARCHKFAVORITES
LFAVORITESOBJNAME
CLEARCLASS��������������	�
�#����
������%���
��j�B��%�C�����N����T�������%��������B���%���������yC�kThe Application Builder currently contains data from another project. Would you like to save these changes?�$�x�	��Y�B�� T���app�_application��T���app�_splash��9T��C������\libs\C������_app.vcx��%�C�
�0
��/�2T��CC�������C������_app.vcx��%�C�
�0
��+�B���
O��
���
O��
���T��CW��F��Q��
����%�CC�����X��C�3Could not update Application class. Make sure file �
�� is not in use.�x��B��-�CC�@�C�@�C'
	��
%�C4
��F�-��C�!Could not find Application class.�x��Q�F��
���B��=R,:��2Please be patient while application is updated....��T��C�
Compatiblev��GA�T��C�MEMOv��G$(����(��C�cProjectNameC����������������'	���C�cCaption���������C�cImage���������C�cIcon�� �!���� ��C�	lAboutbox��"�����#��C�lStartupForm��#�����'��C�lUserPreferences��$�����%���%��&���#	�%T��C������_go�.MNX�������'�E�%�C�������A�T������!����
�����T��CC��������FT�
�CC���
��MENUS�D���C�
��MENUS����
�6��\T��C�����C��%��
�_append�!C��%��
�_top��_main66�.MNX��
H�������&������!T��C������_append��*��C�cStartupMenuPad�_MSM_APP����)��C�cStartupMenuPopup�_MAPP������C�cFrameClass�������C�lReadEvents-������C����(�����&������T��C������_top��"��C�cStartupMenuPad�����$��C�cStartupMenuPopup�����-��C�cFrameClass�app�_topform������C�lReadEventsa������C����(��2���T��C������_main��"��C�cStartupMenuPad�����$��C�cStartupMenuPopup�������C�cFrameClass�������C�lReadEventsa������C����(��� ��C�cStartupMenu�����"��C�
��.MNX���'�)��;%�C�'THIS.oProject.Files[lcOldMenuName].Nameb�C��	���CC����'�*�����������+��w
���C�cAuthor��,�������C�cCompany��-�����!��C�cVersionC��.�_����#��C�
cCopyrightC��/�_����#��C�
cTrademarkC��0�_����%�C��-��
��
�T���1���-����%�CC��/�_�
��@
�T���2�C��/�_���%�CC��0�_�
��s
�T���3�C��0�_����������4��� ��C�	cHelpFile��5�����"��C�cDataFolder��6�����!��C�
lFavorites��7�����&��C�lStartupToolbar��8�������-�CC�@�C�@�C'
	��
%�C4
��k�(��C�Could not find Splash class.�x����������������C�cCaption���������C�cImage��������������+��}���C�cAuthor��,�������C�cCompany��-�����!��C�cVersionC��.�_����#��C�
cCopyrightC��/�_����#��C�
cTrademarkC��0�_�������Q�F��
���
G$(��
���%��
��ON����GA �� %�����9���:��E�4T��CC�������C������_app�.H��
T�����T��C����%�C����E
�B��%T�
��#DEFINE APP_SPLASHCLASS ��G$(��d��T��C�
����T�	�C�����%�����9�
���
�T�
��* �
���)T��C��	�
C�
X�"��"���T��C�SAFETYv��G.���C�����SET SAFETY &cSafety

G$(��
����F��C�6Updated project with new Application Builder settings.�;�<��R�U=	NSAVEAREA	CAPPCLASSCAPPCLASSLIBCSPLASHCLASSLCGOMENULCFILE
LCCONTENTSLCHEADERFILELIHEADERLINELCHEADERLINELCSPLASHDEFINESTRINGAFILESLCPATH
LCMENUPATH
LCMENUNAME
LCOLDMENUNAMECSAFETYNSETMEMOCSETCOMPTHIS
LHASAPPOBJECTNAUTOUPDATEOPROJECTNAMEOBJNAME
NMEMOWIDTHADJUSTPROPERTIESPF1PGAPP
TXTAPPNAMEVALUETXTAPPIMAGE
IMGAPPICONPICTURECHKABOUT
CHKQUICKSTART
CHKUSERLOGINSNAPPTYPE	OGAPPTYPEFILES
UPDATEMENUADDREMOVE	PGCREDITS	TXTAUTHOR
TXTCOMPANY
TXTVERSIONTXTCOPYRIGHTTXTTRADEMARKVERSIONCOMPANYVERSIONCOPYRIGHTVERSIONTRADEMARKSPGADVTXTHELPFILE
TXTDATAFOLDERCHKFAVORITES
CHKTOOLBAR	CHKSPLASH
LHASSPLASHTHISFORMWRITELOG�����%��CC�.Propertiesb�M�C+
	��(%�C�
tcProperty���C�C����\�B��#���������	�T��C�
���
T���
��T�"����
H�����C�t�
����T����C����C����T��C����2��T��C�_���%�C����C��=�T��CC������������(����M�T��C���"���%�CC�� =���
��I�%�C�f� =C�f����T���� ���%�C�����!T��C��C�
 C�
 �����6�T��C�=����T�	�C���\� ���T��C���	����T��a��!����%��
�	C�
��
	����*T���C��� = �C�
 C�
 ���
>�
����B�U
TCPROPERTYTVVALUELILINESLCPROPERTIESLCVALUELLFOUNDLIPOSLCLINELIINDEX	LCNEWLINE
PROPERTIES����T��CW��%�C����	C��
��5�B����������������~���F�C'
	����5��CC�
�CC��
�� (C���)��6���	���T����C����
��T����������T��������������������������~���R�C'
	��f�5��CC�
�CC��
�� (C���)��6���	���T����C����
��T����������T������������%�C�����������������|�T�����	doc_descr��T�����
doc_single��T�����doc_nav��T�����doc_go��T�����doc_new��T�����doc_open�������������T�����	doc_descr��T�����doc_open�����F��
���U	NSAVEAREATHISCMETADBFOPENMETAPF1PGFORMSLSTFORMSCLEARDOC_TYPEADDITEMDOC_EXEC	DOC_CLASSVALUELISTCMDEDITENABLED	LISTCOUNT	CMDREMOVE	PGREPORTS
LSTREPORTSTXTNAME
CONTROLSOURCECHKMULTI
CHKNAVTOOLBAR
CHKNAVMENU
CHKFILENEWCHKFILEOPEN	CHKDIALOG����)%�C����C�CC�f�R�F�
��>�T���F���������F��
H�i����C�f�F����T��CC����	�
@����C�f�R����T��CC�����
@����T��C�(����%�����1�T��CC����굛��"T��CCC�����)������S�
T�����
T������7-�CC�
@���CC�@��	�CC�f��	�C'
	��
��C����U	TCDOCTYPE
LCGETCLASS	LCGETFILELCEXPRLNPOSAPPBLDR_METATHISPF1PGFORMSLSTFORMSVALUE	PGREPORTS
LSTREPORTSDOC_EXEC	DOC_CLASSDOC_TYPETHISFORMREFRESH�����T��CW��F��Q��
����%�CC�
��R�#)�
>�����Q����C��C�7Could not update Go menu. Make sure file is not in use.�x���F��
���U	CMENUNAMENOBJTYPE	CSAVEAREAOBJTYPEA��������%T��C�Q�WIZARDS\RPTSTYLE.DBF��%�C�
�0
��a�B��Style1H.FRX���T��CW��F��Q��
�����%�CC�
��	�-�C������%�C4����T��C����#%�C�EVAL(lcRptName)b�C����T��C�����Q���F��
���%B�CC��
����Style1H.FRX6��UTCSTYLENAMECREPORTWIZSTYLEFILE	NSAVEAREA	LCRPTNAME	RPTSTYLES	STYLENAME
STYLEHFILE�4��)%�C����C�CC�f�R�F�
��>�T���F����������T��C�f��
T�����8T��CC��F��SCX;VCX;PRG��FRX;LBX;PRG6���
�����%�C���C�0
����B�-���T��CC���f��V%���F�C��SCX;VCX;PRG��	�%��R�C��FRX;LBX;PRG��	��t�'��C�Invalid file type selected.�x��B�-���%�C�VCXC��Ӹ�����%�C��������T��C����T��C������*%�C����lByPassBuilder��h���T����	�a�����C����
�����C��a�����*%�C����lByPassBuilder��h����T����	�-���
��C��
��U	TCDOCTYPELCFILELCCLASS	ADOCCLASS	LCDOCTYPELCEXTTHISOPROJECTPROJECTHOOKLBYPASSBUILDERFILESADDADDDOC
UPDATEDOCS����������T��CW��T��CC���f��T��CC���f��F��
H�^���!�C��FRX�SCX�LBX�����$T��C��SCX��F��R6��:�C�f���
	�CC�	�f�	�CC�
��	�C'
	�����VCX���.��
�	CC�
��
	�CC�	�f�	�C'
	��5�C��PRG,FXP,APP,EXE,MPR,MPX,QPR,QPX������,���CC�
��	�CC�	�f�	�C'
	���
��Ca��F��
���U
TCFILENAMELCEXT
LCFILENAME	LCDOCTYPE	NSAVEAREAAPPBLDR_METAALLDOC_TYPEDOC_WRAPDOC_EXEC	DOC_CLASS�������������%�C��This routine will synchronize the active project to entries in the application meta table by adding/removing files from meta table to correspond with those in the active project. Would you like to continue?�$�x����B��T��CW��%�C�appbldr_meta�
��;�B��F��HR,:��=Removing files from meta table not found in active project...��~�C'
����T��C����
T�����
H���}���	�C������.��CC�
��
���T��C��VCX����C�f�R��G�T��C��FRX���T��C��LBX����C�f�F��q�T��C��SCX���2�}�.��k%�C�$THIS.oProject.Files[lcFileName].Nameb�C�0C�%THIS.oProject.Files[lcFileName2].Nameb�C	�������DR,:��9Adding new files to meta table found in active project...������
��!�'%�CC�����SCX,FRX,LBX����|�.��T��CC����f��,T��CCC����f�SCX��F��R6��9-�C�f���	
	�CC��f�	�CC�
��	�C'
	��%�C4��
�.����C��������T��C&��
��Ca��Q��Q�����%�CC�
��e�3�Q��
��C����F��
���
��C����"R,�����Finished updating.��U	NSAVEAREA
LCFILENAMELCFILENAME2
LCSTEMNAMELCDBF	OPROJFILE	LCDOCTYPEAPPBLDR_METADOC_EXECDOC_WRAP	DOC_CLASSDOC_TYPETHISOPROJECTFILESNAME	ADDTOMETAOPENMETA
UPDATEDOCSE���%�C��
�� �B�-�����C�����
��C����U
TCFILENAMETHISCHECKPROJECTREMOVEFROMMETA
UPDATEDOCS�������+%�C�THIS.oProject.Baseclassb�C����0%�C��
�C�_VFP.ActiveProjectb�U��p�B�-���
��C����T��a���%�C����W�+%�C�_VFP.ActiveProject.Nameb�C����B�-���%�����C������B��%�C���
��F�
��C����T��CW��F�	�
��Ca��Q�F��
����
��C�����9T��
��Application Builder�: C�������%�������
��C����
��C��
���
��C����U	LFROMINIT	NSAVEAREATHIS	RESETBLDROPROJECTNAME
ACTIVEPROJECTCMETADBF
SETAPPPEMSAPPBLDR_METACAPTION
LFRAMEWORK
GETAPPPEMS
UPDATEDOCSREFRESHPAGES
���UOFORMREF��������T��CW��
�����F��T��C����T��C�f��T��C��	��%�C�0
��}�B�-������
���������%�C��
���L����T��
�a���.%���
���	�	��F	��
	��t�%�C����`���p�(%�C��
��addappobject��h��P���CC����
�����l���CC���������F��
���U	NSAVEAREA
LCFILENAME	LCDOCTYPELCCLASSLASELOBJAPPBLDR_META	DOC_CLASSDOC_TYPETHISGETPROJECTFILENAMEOPROJECTFILESMODIFYLCHECKFORMOBJECTONEDIT
LHASAPPOBJECTDOC_WRAPPROJECTHOOKADDAPPOBJECT�4��������%�C����C��6�B�-���%�C�����L��`�T���-���%�����#�j%�C�SAre you sure you want to remove this document from both the project and meta table?�$�x�����B��T��C����%�C��
�����CC����	�
����}�Y%�C�BAre you sure you want to remove this document from the meta table?�$�x�����B��T��C�f��VT��C��R�#�THIS.PF1.PGReports.lstReports��THIS.PF1.PGForms.lstForms6��WITH &lcListRef�y�T�������C������
��C��
��%�����N�B��T��C��F��T��C���������C�����UTCTYPE	LCLISTREFLNINDEXLCTYPE
LCFILENAMETHISLREMOVEFILEFROMPROJECTGETPROJECTFILENAMEOPROJECTFILESREMOVE	LISTINDEX
REFRESHDOC
UPDATEDOCS	LISTCOUNTVALUELISTITEM^������W�&%���
�C������O����T����-��T����-��T����-��T��	��-��T��
��-��T����a��T�����B��T����a��T����a��%���

���T����-��T��
��-��T��	��-��T������S�T����a��T��
��a��T��	��a��T��������UTHISPF1
LFRAMEWORKOPROJECTPROJECTHOOKPGAPPENABLEDPGFORMS	PGREPORTSPGADV	PGCREDITSPGDATA
ACTIVEPAGE
LHASAPPOBJECT����G�(�����T��CW��%�C�APPBLDR_META���G�F��B��%�C�����a�B��F��Q������APPBLDR_META�%�CC���d����C�The meta table C��fف could not be opened because it may be used exclusively. You need to close it or open it shared for use with Application Builder.�x��T���-��F��
���B�-�����G_ ���C�	BUFFERING����U	NSAVEAREATHISNBLDRDATASESSIONAPPBLDR_METACMETADBF
LFRAMEWORK�����������T��CC+���CO6��T��CC���@��#%�C��
��CC���@
	��y�O�����T��CC���@��#%�C��
��CC���@
	����O�����T��CC�	��g��������(����<�H�T��CC���@��#%�C��
��CC���@
	��8�O�������
%�����������(��
�����T��C���
���1%�C���	�.���C���
�����.��O�������	#����U

TLCLEARALL	LCOBJNAMELCCLASSLNCHILDCOUNTLNCOUNTLNRECNOOBJNAME	BASECLASSCLASS	RESERVED2THISNCLASSCOUNT
ACLASSLIST�����������?T��C���WIZARDS\WZTABLE.APP��WIZARDS\WZDBC.APP6��
�����T��CC���	�����DT��CC���
��DATA�D���C�
��DATA����
�6��
T�
����T���cOutPut��T��CC�DEFAULTv���G(����G�(�����C�Q���
��G�(�����G(����%�C�
�
�	�
�0	��v���CC�
�\����� T��
�����wizdocs��U
TLTABLEWIZARDLCPARMLCPATHAFILES
LCDATAPATH
LCSAVEDEFAULT
LCWHICHWIZARDTHISOPROJECTNAMECOUTPUTNBLDRDATASESSION
SELECTDATAPF1PGDATAGRID1RECORDSOURCER����������%�C���C�0
��M�T��C�DBF;DBC����b�
T������%�C����y�B��F��
H������CC���f�DBC������������������T��C���TABLE�������(����G�Jr��wizdocs��C�
����-��-��CCC�
���TABLE�PATH�Cꖻ����T��C���VIEW�������(������.r��wizdocs��CC�
�����-��-��C�����CC���f�DBF����(r��wizdocs��C����a��a������#)� T��	�
����wizdocs��
���
�T��	�
���a��T��	�
���a��U
TCFILENAMELCDATALNTOTTABLES
LNTOTVIEWSATABLESAVIEWSWIZDOCSITHISPF1PGDATAGRID1RECORDSOURCEREFRESHCMDCLEARENABLEDCMDADD`%�C��0
���B�-���+%�C���CC�/�DOC_TYPE��	��Y�T�������UTHISCMETADBFOPENMETA�����T��C����%�CC����
����T��C�EXACTv��G �T��C��������SET EXACT &lcSaveExact
%�������B�-���T�������������T�����������ULNALENLCSAVEEXACTTHIS	APROJECTSLNPOSOPROJECTNAME��������>%�C�THIS.oProject.Nameb�C�C����C�C����W�B�-���6T��CC�������C������_app�.LOG��%�C�0
����B�-���2T��C�
 C�
 �* -- CC�_� -- C������C��a���U
TCCONTENTS	LCLOGFILELCSTRTHISOPROJECTNAME0�������T�������%�C����L��E�T��-���%�C�����t�T���C�HELP�v���O%�C�FOXHELP.CHMC�HELP�v���"C�MSDNVS98.COLC�HELP�v��	����T���a��G(�T���-���O%�C�FOXHELP.CHMC�HELP�v���"C�MSDNVS98.COLC�HELP�v��	�������C٩The FOXHELP.CHM file could not be loaded. This Help file contains valuable tips and ideas for developing your applications using the Application Builder and other tools.�x��B��%�C�HELPv�OFF���G ��$I����^���U
LOVERALLTOPIC	LNPAGEREF
LCHELPFILETHISPF1
ACTIVEPAGE	CSAVEHELPLSETERROROFF����T������T������T���-��T���C���T���C���C���T������%�C�APPBLDR_META�����Q�	��U
OTMPPROJTHISOPROJECT
LFRAMEWORK
LHASAPPOBJECT
ACTIVEPROJECTPROJECTSNAMECMETADBFAPPBLDR_METAv������T��CW��T�������6T��C�galleryutilsC�Q�GALLERY\VFPGLRY.VCX���%�C����O����	B�����T���a��J���(���3%�C�oDataPage.cboFrmStyle.BaseClassb�C��O�T��C��	C��
�����+T���������CC�
����	���+T���������CC�
����	����T���-��T��
����
H�~�Z�%�C�����Presentation����T����Style1H.FRX���C�����Ledger����T����Style2H.FRX��"�C�����	Executive��5�T����Style3H.FRX��2�Z�T���C��������F��
���	B����ULOWIZREF	NSAVEAREANPOS	ODATAPAGETHISPF1PGDATA
LADDAPPOBJECT
AWIZSTYLESAFRMVISUALSCBOFRMSTYLEVALUE	LUSEPAGES
NWIZACTIONCBORPTSTYLE
CSTYLEFILEGETREPORTSTYLE�������T��C����T��C�f��%�C��R�F�
��V�	B�����T��C����
H�v����CC��ӡ
����
T�����
������T��C��PRG����C��
����T��C��VCX������F���T��C��SCX������R����T��C��FRX���8%�C�$THIS.oProject.Files[lcFileName].Nameb�C��}�T��C��LBX����2���	B�����8%�C�$THIS.oProject.Files[lcFileName].Nameb�C����	B�����T��C��	�
����	B����U

LCFILESTEM	LCDOCTYPE
LCFILENAMELCEXTLCCLASS	DOC_CLASSDOC_TYPEDOC_EXECDOC_WRAPTHISOPROJECTFILESNAME����5������������	�%���R��m�T���FRX��T���
AUTOREPORT�����T���SCX��T���AUTOFORM���T�
�C�.DBC�����T�	�C�
�C���C��6��T��C�CC�	����f��T��C����w%�C�0�eC�	The file ��F already exists. Would you like to have the Wizard generate a new one?�$�x�	��}�B��T��C�
���T������G�(����
%��
��)�T��CW��T��C�DATABASEv��F��G(����T�
��a��
Q��	���T�
��-��T���C���A�T����	���%��
�CC�	��Z�����<�����������
%��
����Q�
F����%�C������G(����G(������G�(��
�����C��
�������C��a�
���<��U	TCDOCTYPE	TCDOCPATHLOWIZLCEXTLCWIZARD
LNSAVEAREA	LCSAVEDBC	LCOUTFILE	LCDBCNAME
LCDATAFILELISVIEW	CFILENAME
DATASOURCETHISGETWIZSTYLEREFCOUTFILELSETERROROFF	CWIZALIAS	CWIZTABLENBLDRDATASESSIONOPROJECTFILESADDADDDOCP5��*%�C�THIS.cusMenu.BaseClassb�C��5�B��
T�����������I���C���V��C�\<Always On Top�.oTHISForm.AlwaysOnTop = !oTHISForm.AlwaysOnTop���������C���-��C�	\<Cleanup�oTHISForm.Cleanup()���0��C�A\<ssistance�oTHISForm.Help(.T.)�����C�����C�Cancel�����C�����U	OTHISFORMTHISCUSMENU	CLEARMENU
ADDMENUBARALWAYSONTOPADDMENUSEPARATORSHOWMENUG&(�t&�UqG&(��Application Builder��!%���C�DATASESSIONv��M�G�(������%�C��
��j�B�-���UTHISNBLDRDATASESSIONCHECKPROJECT
��C����UTHISRELEASE\'�������������	�7�
�
T�
����T�	��C���T��
�C�	��C���T���C�MULTIv��T���������Ca����%�������B�-���G&(��Application Builder��A��C�cusMenu�
_shortcutmenuC�Q�WIZARDS\APPHOOK.VCX����+%�C�
����L��
�	���
	��U���Ca�����UP1P2P3P4P5P6P7P8P9OTMPPROJ	_OAPPBLDRTHIS
ACTIVEPROJECTOPROJECTPROJECTSNAMECMULTILOCKSNBLDRDATASESSION
DATASESSIONIDCHECKPROJECTLUSERCANCEL	NEWOBJECTLSKIPASSISTHELP<���&%�C�_VFP.ActiveProjectb�O��h�4R,�����$You must have a project open to use.��B�-���'%�C�_oAppBldr.baseclassb�C����%�����C������
��C�����
��C����B�-���*G&(��Loading Application Builder....��7h��wizdocs��C��#��	�L�
�L��M�UI	_OAPPBLDROPROJECTNAME
ACTIVEPROJECTCHECKPROJECTSHOWWIZDOCS
DATASOURCELFORMLREPORT	CFILENAME[3%�C�_VFP.ActiveProjectb�O�
�C��
	��C�T�C���a���%�C�APPBLDR_META���w�F��
��Ca��Q��%�C�WIZDOCS�����Q���
T�����<��1%�C���
�C�FOXHELP.CHM����	����G(������%�C�����O��-���C���	��T�������%���
�OFF��N�G_��G&(�U
ACTIVEPROJECTVISIBLEAPPBLDR_METAWIZDOCS	_OAPPBLDRTHIS	CSAVEHELPTHISFORM	OHELPFORMRELEASECMULTILOCKS���������
H�#�Q��C�������=�B������Q�B���T��C�Error number: C�_C�
 C�
 �Method: �C�
 C�
 �
Line number: C�_C�
 C�
 �	Message: CEC�
 C�
 �Line: C�EC�
 C�
 C�
 C�
 �+Would you like to continue running builder?��x��
H�G��������\�������w�G1 �X�2���B��UNERRORCMETHODNLINENERRHANDLERTHISLSETERROROFFadddoc,��	addtometa`��setupframework���lframework_access�	��makedatadocs1��
makemetatablew��
getapppems���
setapppems�!��adjustproperties�2��
updatedocs	6��
refreshdoc:��
updatemenuR<��getreportstyle/=��	selectdoc�>��removefrommeta�A��cleanupD��	removedoc|I��checkprojectJ��addappobject|L��editdoc�L��cleardoc�N��refreshpagesIR��openmeta2T��
clearclassV��
rundatawizardnX��
selectdata�Z��	checkmeta�]��updateprojectslist)^��writelogN_��helpw`��	resetbldrc��getwizstylerefd��getprojectfilename7g��
makewizarddoc�i��
RightClick�m��
Deactivatevo��Activate�o��QueryUnload#p��InitFp��Loadur��Release&t��Error�u��11�"qA"qA��AB�AA2�A���AA2�qA���a1a1A3�r�A��A�Q�A�A!AA�qAr����q�AA�2�tAA����q��q��!AqAAAAba�3q��#�A�����!A���!a�����QA�A1��A!A�AB��3�q�qA�AaaA��11b�rQ���QA�QA���A�BB�AaA2aA���3�A31��"BABAA2RQAA3aaAAAA���AAD��!�AB3AAaaa1qA1qA1qA2qAA3AAAAA��������AAA�C�q��AAAA�2�q1AA�ABAA�	AA��""!AAA�������AA���A�AA��a1��3���1q�SQ�AAA��b��Q����AQ�!A��A��!A��AA!��AAA3��11AqAa�Aa�AA3!aA����1��A1��11AAA��QaAB��AAQ�!!�1A�Qa�q�AbR3�T�AA2�����Q���ARQArA��!A��1�QA�AAA��A�B3q��AA3��RA���A3��RA���A�1���q��A2��AA�2q��A2r�A�A�A2�!���Au�3�����Q�A�1A�3q�Q!AA���1��2�AA�A�R3q��Ar�����qA"dqqA�QAA�AAq��AA�3q2�"!r�A�A�Q�A��2q�RAA��AAr�����aA!aAaaAa�AA�AAACQqAAQ���AA1A�����AAA���"3q"qA�3qr�qA��A��qA�AA3��q�A�A�B���A�3s3q��r��qA���A�����AAAA�3q2RqA��A�AA�A��AA�bq�A�!AA1AAA3b�������AA�����������AB3q���qAA"AA����
��q�a�A3qr�A1�AA1�A�qAA1�AA���AA�AA�3qr���B�A���A���QA3qq�a��A�AAr���q�q�A�q�A��AR�qq31qA�A3�"rAa��qAA�4q��qAcqA"3q�1R�A"�A��a�A�QAA�aA3q�����A31�1bQ�A�1���A��Q���!���A��2q����A��1��aa!a!a�aA��A��A��3�r1�#q�QA����sAA���q�������AR��A�A��a��AA�rQq3q�AA��a���A�A3aQ2��A!qA3�3qzq���q1�qA���A3qcAqAs��A�qA�s31A�q�AAb�A�q�A�AraAa2�q�aAAAW�AaA�AA2B%bR	5Dw	I
f`q
�����������,)M)BD��iDJd�;JwO��O�R�#�R�S�0�S+VFKV}Z!g�Z�]Py�]$dm�Dd�d���d�h���h;i��Yi�l���l
p0phrG3�rZtfI{t�w�g�w�z�z�z�~���~P��y؀�����������
�	�>�.�^�M�����sύ��L0����\�;��_Z�
��g,�<��iW���{� �#�>�b�<�~���\)]�)oproject
cmetadbf
lframework
chookclass
chookfile
napptype
lhassplash
nautoupdate
lautoaddfile
cmultilocks
lhasappobject
ohelpform
lseterroroff
csavehelp
lskipassist
nbldrdatasession
lusercancel
lcheckformobjectonedit
lremovefilefromproject
*adddoc 
^afrmvisuals[1,0] 
*addtometa 
*setupframework 
*lframework_access 
*makedatadocs 
*makemetatable 
*getapppems 
*setapppems 
*adjustproperties 
*updatedocs 
*refreshdoc 
*updatemenu 
*getreportstyle 
*selectdoc 
*removefrommeta 
*cleanup 
*removedoc 
*checkproject 
*addappobject 
*editdoc 
*cleardoc 
*refreshpages 
*openmeta 
*clearclass 
*rundatawizard 
*selectdata 
*checkmeta 
^aprojects[1,0] 
*updateprojectslist 
*writelog 
*help 
*resetbldr 
*getwizstyleref 
*getprojectfilename 
*makewizarddoc 
	pageframe	pageframepf1
frmAppBuildersErasePage = .T.
PageCount = 6
TabStyle = 1
Top = 9
Left = 7
Width = 444
Height = 232
Tabs = .T.
TabIndex = 1
Name = "pf1"
Page1.FontName = "MS Sans Serif"
Page1.FontSize = 8
Page1.Caption = "General"
Page1.PageOrder = 1
Page1.Name = "pgApp"
Page2.FontName = "MS Sans Serif"
Page2.FontSize = 8
Page2.Caption = "Forms"
Page2.PageOrder = 3
Page2.Name = "pgForms"
Page3.FontName = "MS Sans Serif"
Page3.FontSize = 8
Page3.Caption = "Reports"
Page3.PageOrder = 4
Page3.Name = "pgReports"
Page4.FontName = "MS Sans Serif"
Page4.FontSize = 8
Page4.Caption = "Advanced"
Page4.PageOrder = 6
Page4.Name = "pgAdv"
Page5.FontName = "MS Sans Serif"
Page5.FontSize = 8
Page5.Caption = "Data"
Page5.PageOrder = 5
Page5.Name = "pgData"
Page6.FontName = "MS Sans Serif"
Page6.FontSize = 8
Page6.Caption = "Credits"
Page6.PageOrder = 2
Page6.Name = "pgCredits"
OPROCEDURE RightClick
THISFORM.RightClick()
ENDPROC
PROCEDURE pgApp.RightClick
THISFORM.RightClick()
ENDPROC
PROCEDURE pgForms.RightClick
THISFORM.RightClick()
ENDPROC
PROCEDURE pgForms.Activate
SELECT appbldr_meta
THISFORM.RefreshDoc("F")

ENDPROC
PROCEDURE pgReports.RightClick
THISFORM.RightClick()
ENDPROC
PROCEDURE pgReports.Activate
SELECT appbldr_meta
THISFORM.RefreshDoc("R")

ENDPROC
PROCEDURE pgAdv.RightClick
THISFORM.RightClick()
ENDPROC
PROCEDURE pgData.RightClick
THISFORM.RightClick()
ENDPROC
PROCEDURE pgData.Activate
* Cursor for storing Data tab files
IF !USED("wizdocs")
	CREATE CURSOR wizdocs (datasource c(35),lform l, lreport l, cfilename m)
ENDIF
SELECT wizdocs

ENDPROC
PROCEDURE pgData.Init
THIS.PageOrder = 3

ENDPROC
PROCEDURE pgCredits.RightClick
THISFORM.RightClick()
ENDPROC
�� ��79%����U
��C����UTHISFORM
RIGHTCLICK
��C����UTHISFORM
RIGHTCLICK
��C����UTHISFORM
RIGHTCLICKF����C�F����UAPPBLDR_METATHISFORM
REFRESHDOC
��C����UTHISFORM
RIGHTCLICKF����C�R����UAPPBLDR_METATHISFORM
REFRESHDOC
��C����UTHISFORM
RIGHTCLICK
��C����UTHISFORM
RIGHTCLICK\%�C�wizdocs�
��N�7h��wizdocs��C��#���L��L��M��F��UWIZDOCS
DATASOURCELFORMLREPORT	CFILENAMET������UTHIS	PAGEORDER
��C����UTHISFORM
RIGHTCLICK
RightClick,��pgApp.RightClickV��pgForms.RightClick���pgForms.Activate���pgReports.RightClick���pgReports.Activate��pgAdv.RightClickZ��pgData.RightClick���pgData.Activate���pgData.Init>��pgCredits.RightClickf��1�2�2�2q3�2q3�2�2rqAq33�1+Rg����

&;d����2��%/D))�optiongroupoptiongroup	ogAppTypefrmAppBuilder.pf1.pgAppAutoSize = .F.
ButtonCount = 3
BackStyle = 0
Value = 1
Height = 72
Left = 304
Top = 19
Width = 116
TabIndex = 11
_memberdata = 
Name = "ogAppType"
Option1.FontName = "MS Sans Serif"
Option1.FontSize = 8
Option1.BackStyle = 0
Option1.Caption = "N\<ormal"
Option1.Value = 1
Option1.Height = 17
Option1.Left = 9
Option1.ToolTipText = "Application runs in VFP desktop"
Option1.Top = 9
Option1.Width = 61
Option1.Name = "Option1"
Option2.FontName = "MS Sans Serif"
Option2.FontSize = 8
Option2.BackStyle = 0
Option2.Caption = "\<Module"
Option2.Height = 17
Option2.Left = 9
Option2.ToolTipText = "Application added as menu module to existing application"
Option2.Top = 28
Option2.Width = 61
Option2.Name = "Option2"
Option3.FontName = "MS Sans Serif"
Option3.FontSize = 8
Option3.BackStyle = 0
Option3.Caption = "\<Top-Level"
Option3.Height = 17
Option3.Left = 9
Option3.ToolTipText = "Application runs in its own frame"
Option3.Top = 47
Option3.Width = 92
Option3.AutoSize = .F.
Option3.Name = "Option3"
shapeshapeShape2frmAppBuilder.pf1.pgApp_Top = 104
Left = 11
Height = 60
Width = 240
SpecialEffect = 0
Style = 3
Name = "Shape2"
shapeshapeShape1frmAppBuilder.pf1.pgApp`Top = 104
Left = 304
Height = 60
Width = 115
SpecialEffect = 0
Style = 3
Name = "Shape1"
checkboxcheckbox	chkSplashfrmAppBuilder.pf1.pgApp	Top = 116
Left = 31
Height = 15
Width = 85
FontName = "MS Sans Serif"
FontSize = 8
AutoSize = .T.
BackStyle = 0
Caption = "\<Splash screen"
Value = .T.
TabIndex = 7
ToolTipText = "Display startup screen while application is loading"
Name = "chkSplash"
textboxtextbox
txtAppNamefrmAppBuilder.pf1.pgApp�FontName = "MS Sans Serif"
FontSize = 8
Height = 23
InputMask = (REPLICATE("X",128))
Left = 59
TabIndex = 2
ToolTipText = "Name of application used in titlebar and dialogs"
Top = 20
Width = 216
Name = "txtAppName"
labellabelLabel1frmAppBuilder.pf1.pgApp�FontName = "MS Sans Serif"
FontSize = 8
BackStyle = 0
Caption = "\<Name:"
Height = 17
Left = 15
Top = 24
Width = 40
TabIndex = 1
Name = "Label1"
checkboxcheckbox
chkQuickStartfrmAppBuilder.pf1.pgAppTop = 116
Left = 141
Height = 15
Width = 69
FontName = "MS Sans Serif"
FontSize = 8
AutoSize = .T.
BackStyle = 0
Caption = "\<Quick start"
Value = .T.
TabIndex = 8
ToolTipText = "Display startup dialog to pick form or report"
Name = "chkQuickStart"
textboxtextboxtxtAppImagefrmAppBuilder.pf1.pgApp�FontName = "MS Sans Serif"
FontSize = 8
Height = 23
InputMask = (REPLICATE("X",128))
Left = 59
TabIndex = 4
ToolTipText = "Image used in Splash and About dialogs"
Top = 50
Width = 186
Name = "txtAppImage"
labellabelLabel4frmAppBuilder.pf1.pgApp�AutoSize = .F.
FontName = "MS Sans Serif"
FontSize = 8
BackStyle = 0
Caption = "\<Image:"
Height = 17
Left = 15
Top = 54
Width = 40
TabIndex = 3
Name = "Label4"

commandbutton
commandbuttoncmdGetImagefrmAppBuilder.pf1.pgApp�AutoSize = .F.
Top = 50
Left = 253
Height = 23
Width = 23
FontName = "MS Sans Serif"
FontSize = 8
Caption = "..."
TabIndex = 5
Name = "cmdGetImage"
�PROCEDURE Click
LOCAL cAppImage
cAppImage = GETPICT()
IF !EMPTY(cAppImage)
	THIS.Parent.txtAppImage.Value = cAppImage
ENDIF
ENDPROC
�� /%����UA���
T��C��%�C��
��:�T���������U	CAPPIMAGETHISPARENTTXTAPPIMAGEVALUEClick,��1q�aA1�)checkboxcheckboxchkAboutfrmAppBuilder.pf1.pgApp�Top = 140
Left = 31
Height = 15
Width = 77
FontName = "MS Sans Serif"
FontSize = 8
AutoSize = .T.
BackStyle = 0
Caption = "\<About dialog"
Value = .T.
TabIndex = 9
ToolTipText = "Include menu option for About dialog"
Name = "chkAbout"
checkboxcheckbox
chkUserLoginsfrmAppBuilder.pf1.pgApp�Top = 140
Left = 141
Height = 15
Width = 70
FontName = "MS Sans Serif"
FontSize = 8
AutoSize = .T.
BackStyle = 0
Caption = "\<User logins"
TabIndex = 10
ToolTipText = "Display password login dialog at startup"
Name = "chkUserLogins"
imageimage
imgAppIconfrmAppBuilder.pf1.pgApp�Stretch = 1
Height = 32
Left = 326
Top = 116
Width = 32
ToolTipText = "Icon used in application titlebar"
Name = "imgAppIcon"

commandbutton
commandbutton
cmdGetIconfrmAppBuilder.pf1.pgApp�AutoSize = .F.
Top = 124
Left = 369
Height = 23
Width = 23
FontName = "MS Sans Serif"
FontSize = 8
Caption = "..."
TabIndex = 14
Name = "cmdGetIcon"
�PROCEDURE Click
LOCAL cAppIcon
cAppIcon = GETPICT()
IF !EMPTY(cAppIcon)
	THIS.Parent.imgAppIcon.Picture = cAppIcon 
ENDIF
ENDPROC
�� /%����UA���
T��C��%�C��
��:�T���������UCAPPICONTHISPARENT
IMGAPPICONPICTUREClick,��1q�aA1~)labellabelLabel5frmAppBuilder.pf1.pgApp�AutoSize = .T.
FontName = "MS Sans Serif"
FontSize = 8
BackStyle = 1
Caption = "Common Dialogs"
Height = 15
Left = 21
Top = 98
Width = 81
TabIndex = 6
Style = 3
Name = "Label5"
labellabelLabel6frmAppBuilder.pf1.pgApp�AutoSize = .T.
FontName = "MS Sans Serif"
FontSize = 8
Caption = "Icon"
Height = 15
Left = 314
Top = 97
Width = 23
TabIndex = 13
Style = 3
Name = "Label6"
labellabelLabel2frmAppBuilder.pf1.pgApp�AutoSize = .T.
FontName = "MS Sans Serif"
FontSize = 8
Caption = "Application Type"
Height = 15
Left = 315
Top = 12
Width = 81
TabIndex = 12
Style = 3
_memberdata = 
Name = "Label2"
listboxlistboxlstFormsfrmAppBuilder.pf1.pgFormszFontName = "MS Sans Serif"
FontSize = 8
Height = 187
Left = 15
TabIndex = 1
Top = 8
Width = 204
Name = "lstForms"
PROCEDURE DblClick
THISFORM.EditDoc()
ENDPROC
PROCEDURE InteractiveChange
THISFORM.RefreshDoc("F")

ENDPROC
PROCEDURE MouseUp
LPARAMETERS nButton, nShift, nXCoord, nYCoord
THISFORM.RefreshDoc("F")

ENDPROC
PROCEDURE ProgrammaticChange
THISFORM.RefreshDoc("F")

ENDPROC
�� ���q%�
m�U
��C����UTHISFORMEDITDOC��C�F����UTHISFORM
REFRESHDOC'��������C�F����UNBUTTONNSHIFTNXCOORDNYCOORDTHISFORM
REFRESHDOC��C�F����UTHISFORM
REFRESHDOCDblClick,��InteractiveChangeS��MouseUp���ProgrammaticChange���1�23132&Nh���
)�checkboxcheckboxchkMultifrmAppBuilder.pf1.pgFormsTop = 50
Left = 231
Height = 15
Width = 90
FontName = "MS Sans Serif"
FontSize = 8
AutoSize = .T.
BackStyle = 0
Caption = "\<Single instance"
Value = .T.
TabIndex = 4
ToolTipText = "Allow only one instance of form to be present at a time"
Name = "chkMulti"
textboxtextboxtxtNamefrmAppBuilder.pf1.pgForms�FontName = "MS Sans Serif"
FontSize = 8
Height = 23
Left = 273
TabIndex = 3
ToolTipText = "Friendly name used in document dialogs"
Top = 16
Width = 152
Name = "txtName"
labellabelLabel1frmAppBuilder.pf1.pgForms�FontName = "MS Sans Serif"
FontSize = 8
BackStyle = 0
Caption = "\<Name:"
Height = 18
Left = 231
Top = 20
Width = 42
TabIndex = 2
Name = "Label1"
checkboxcheckbox
chkFileNewfrmAppBuilder.pf1.pgFormsTop = 122
Left = 231
Height = 15
Width = 138
FontName = "MS Sans Serif"
FontSize = 8
AutoSize = .T.
BackStyle = 0
Caption = "Appear in \<File New dialog"
Value = .T.
TabIndex = 7
ToolTipText = "Display form in File New dialog"
Name = "chkFileNew"
checkboxcheckboxchkFileOpenfrmAppBuilder.pf1.pgFormsTop = 146
Left = 231
Height = 15
Width = 142
FontName = "MS Sans Serif"
FontSize = 8
AutoSize = .T.
BackStyle = 0
Caption = "Appear in File \<Open dialog"
Value = .T.
TabIndex = 8
ToolTipText = "Display form in File Open dialog"
Name = "chkFileOpen"
checkboxcheckbox
chkNavToolbarfrmAppBuilder.pf1.pgFormsTop = 74
Left = 231
Height = 15
Width = 126
FontName = "MS Sans Serif"
FontSize = 8
AutoSize = .T.
BackStyle = 0
Caption = "Use Navigation \<toolbar"
Value = .T.
TabIndex = 5
ToolTipText = "Display navigation toolbar when form is present"
Name = "chkNavToolbar"
checkboxcheckbox
chkNavMenufrmAppBuilder.pf1.pgForms
Top = 98
Left = 231
Height = 15
Width = 120
FontName = "MS Sans Serif"
FontSize = 8
AutoSize = .T.
BackStyle = 0
Caption = "Use Navigation \<menu"
Value = .T.
TabIndex = 6
ToolTipText = "Display navigation menu when form is present"
Name = "chkNavMenu"

commandbutton
commandbuttoncmdAddfrmAppBuilder.pf1.pgForms�Top = 171
Left = 232
Height = 23
Width = 62
FontName = "MS Sans Serif"
FontSize = 8
Caption = "\<Add..."
TabIndex = 9
Name = "cmdAdd"
�PROCEDURE Click
IF THISFORM.SelectDoc()
	WITH THIS.Parent.lstForms
		.Value = .List(.ListCount)
	ENDWITH
	THISFORM.RefreshDoc("F")
ENDIF
ENDPROC
V�� ==��%����UT%�C����M��������8�T��C��������C�F�����U	THISFORM	SELECTDOCTHISPARENTLSTFORMSVALUELIST	LISTCOUNT
REFRESHDOCClick,��11AAA1�)=
commandbutton
commandbuttoncmdEditfrmAppBuilder.pf1.pgForms�Top = 171
Left = 301
Height = 23
Width = 62
FontName = "MS Sans Serif"
FontSize = 8
Caption = "\<Edit"
TabIndex = 10
Name = "cmdEdit"
.PROCEDURE Click
THISFORM.EditDoc()
ENDPROC
�� ���%Shb�U
��C����UTHISFORMEDITDOCClick,��1�1#)�
commandbutton
commandbutton	cmdRemovefrmAppBuilder.pf1.pgForms�Top = 171
Left = 370
Height = 23
Width = 62
FontName = "MS Sans Serif"
FontSize = 8
Caption = "\<Remove"
TabIndex = 11
Name = "cmdRemove"
2PROCEDURE Click
THISFORM.ClearDoc("F")
ENDPROC
�� ��6v%Xmg�U��C�F����UTHISFORMCLEARDOCClick,��11')�listboxlistbox
lstReportsfrmAppBuilder.pf1.pgReports|FontName = "MS Sans Serif"
FontSize = 8
Height = 187
Left = 15
TabIndex = 1
Top = 8
Width = 204
Name = "lstReports"
PROCEDURE DblClick
THISFORM.EditDoc()
ENDPROC
PROCEDURE ProgrammaticChange
THISFORM.RefreshDoc("R")

ENDPROC
PROCEDURE MouseUp
LPARAMETERS nButton, nShift, nXCoord, nYCoord
THISFORM.RefreshDoc("R")

ENDPROC
PROCEDURE InteractiveChange
THISFORM.RefreshDoc("R")

ENDPROC
�� ���q%�
m�U
��C����UTHISFORMEDITDOC��C�R����UTHISFORM
REFRESHDOC'��������C�R����UNBUTTONNSHIFTNXCOORDNYCOORDTHISFORM
REFRESHDOC��C�R����UTHISFORM
REFRESHDOCDblClick,��ProgrammaticChangeS��MouseUp���InteractiveChange���1�23132&Oi���
)�checkboxcheckbox	chkDialogfrmAppBuilder.pf1.pgReportsTop = 50
Left = 231
Height = 15
Width = 158
FontName = "MS Sans Serif"
FontSize = 8
AutoSize = .T.
BackStyle = 0
Caption = "Appear in \<Print Reports dialog"
Value = .T.
TabIndex = 4
ToolTipText = "Display report in print dialog"
Name = "chkDialog"
textboxtextboxtxtNamefrmAppBuilder.pf1.pgReports�FontName = "MS Sans Serif"
FontSize = 8
Height = 23
Left = 273
TabIndex = 3
ToolTipText = "Friendly name used in document dialogs"
Top = 16
Width = 152
Name = "txtName"
labellabelLabel1frmAppBuilder.pf1.pgReports�AutoSize = .T.
FontName = "MS Sans Serif"
FontSize = 8
BackStyle = 0
Caption = "\<Name:"
Height = 15
Left = 231
Top = 20
Width = 33
TabIndex = 2
Name = "Label1"

commandbutton
commandbuttoncmdAddfrmAppBuilder.pf1.pgReports�Top = 171
Left = 232
Height = 23
Width = 62
FontName = "MS Sans Serif"
FontSize = 8
Caption = "\<Add..."
TabIndex = 5
Name = "cmdAdd"
�PROCEDURE Click
IF THISFORM.SelectDoc("R")
	WITH THIS.Parent.lstReports
		.Value = .List(.ListCount)
	ENDWITH
	THISFORM.RefreshDoc("R")
ENDIF
ENDPROC
\�� CC��%����UX%�C�R����Q��������<�T��C��������C�R�����U	THISFORM	SELECTDOCTHISPARENT
LSTREPORTSVALUELIST	LISTCOUNT
REFRESHDOCClick,��1Q1AAA1�)C
commandbutton
commandbuttoncmdEditfrmAppBuilder.pf1.pgReports�Top = 171
Left = 301
Height = 23
Width = 62
FontName = "MS Sans Serif"
FontSize = 8
Caption = "\<Edit"
TabIndex = 6
Name = "cmdEdit"
.PROCEDURE Click
THISFORM.EditDoc()
ENDPROC
�� ���%Shb�U
��C����UTHISFORMEDITDOCClick,��1�1#)�
commandbutton
commandbutton	cmdRemovefrmAppBuilder.pf1.pgReports�Top = 171
Left = 370
Height = 23
Width = 62
FontName = "MS Sans Serif"
FontSize = 8
Caption = "\<Remove"
TabIndex = 7
Name = "cmdRemove"
4PROCEDURE Click
THISFORM.ClearDoc("R")

ENDPROC
�� ��6v%Xmg�U��C�R����UTHISFORMCLEARDOCClick,��12))�shapeshapeShape1frmAppBuilder.pf1.pgAdv^Top = 99
Left = 12
Height = 60
Width = 168
SpecialEffect = 0
Style = 3
Name = "Shape1"
textboxtextboxtxtHelpFilefrmAppBuilder.pf1.pgAdv�FontName = "MS Sans Serif"
FontSize = 8
Height = 23
InputMask = (REPLICATE("X",128))
Left = 76
TabIndex = 2
ToolTipText = "Help file for application"
Top = 24
Width = 295
Name = "txtHelpFile"
labellabelLabel3frmAppBuilder.pf1.pgAdv�AutoSize = .F.
FontName = "MS Sans Serif"
FontSize = 8
BackStyle = 0
Caption = "H\<elp file:"
Height = 17
Left = 11
Top = 28
Width = 54
TabIndex = 1
Name = "Label3"

commandbutton
commandbutton
cmdGetHelpfrmAppBuilder.pf1.pgAdv�AutoSize = .F.
Top = 24
Left = 383
Height = 23
Width = 23
FontName = "MS Sans Serif"
FontSize = 8
Caption = "..."
TabIndex = 3
Name = "cmdGetHelp"
�PROCEDURE Click
LOCAL lcHelpFile
lcHelpFile = GETFILE("CHM,HLP,HTM")
IF !EMPTY(lcHelpFile) AND FILE(lcHelpFile)
	THIS.Parent.txtHelpFile.Value = lcHelpFile
ENDIF

ENDPROC
4�� #�%����UW���T��C�CHM,HLP,HTM���%�C��
�C�0	��P�T���������U
LCHELPFILETHISPARENTTXTHELPFILEVALUEClick,��1q��aA2�)
commandbutton
commandbutton
cmdGetDataDirfrmAppBuilder.pf1.pgAdv�AutoSize = .F.
Top = 56
Left = 383
Height = 23
Width = 23
FontName = "MS Sans Serif"
FontSize = 8
Caption = "..."
TabIndex = 6
Name = "cmdGetDataDir"
|PROCEDURE Click
LOCAL lcDir
lcDir=GETDIR()
IF !EMPTY(lcDir)
	THIS.Parent.txtDataFolder.Value = lcDir
ENDIF

ENDPROC
�� ]i%����UA���
T��C�3��%�C��
��:�T���������ULCDIRTHISPARENT
TXTDATAFOLDERVALUEClick,��1q�aA2q)textboxtextbox
txtDataFolderfrmAppBuilder.pf1.pgAdv�FontName = "MS Sans Serif"
FontSize = 8
Height = 23
InputMask = (REPLICATE("X",128))
Left = 148
TabIndex = 5
ToolTipText = "Directory where data is stored"
Top = 56
Width = 223
Name = "txtDataFolder"
labellabelLabel2frmAppBuilder.pf1.pgAdv�AutoSize = .T.
FontName = "MS Sans Serif"
FontSize = 8
BackStyle = 0
Caption = "\<Default data directory:"
Height = 15
Left = 11
Top = 60
Width = 106
TabIndex = 4
Name = "Label2"
checkboxcheckbox
chkToolbarfrmAppBuilder.pf1.pgAdvTop = 110
Left = 23
Height = 15
Width = 96
FontName = "MS Sans Serif"
FontSize = 8
AutoSize = .T.
BackStyle = 0
Caption = "\<Standard toolbar"
Value = .T.
TabIndex = 8
ToolTipText = "Include Standard toolbar with application"
Name = "chkToolbar"
checkboxcheckboxchkFavoritesfrmAppBuilder.pf1.pgAdvTop = 134
Left = 23
Height = 15
Width = 90
FontName = "MS Sans Serif"
FontSize = 8
AutoSize = .T.
BackStyle = 0
Caption = "\<Favorites menu"
Value = .T.
Enabled = .T.
TabIndex = 9
ToolTipText = "Include Favorites menu with application"
Name = "chkFavorites"

commandbutton
commandbutton
cmdCleanupfrmAppBuilder.pf1.pgAdv�Top = 99
Left = 334
Height = 23
Width = 72
FontName = "MS Sans Serif"
FontSize = 8
Caption = "\<Cleanup"
TabIndex = 10
Name = "cmdCleanup"
.PROCEDURE Click
THISFORM.Cleanup()
ENDPROC
�� ���%Shb�U
��C����UTHISFORMCLEANUPClick,��1�1#)�labellabelLabel6frmAppBuilder.pf1.pgAdv�AutoSize = .T.
FontName = "MS Sans Serif"
FontSize = 8
Caption = "Menus"
Height = 15
Left = 22
Top = 92
Width = 34
TabIndex = 7
Style = 3
Name = "Label6"

commandbutton
commandbutton	cmdSelectfrmAppBuilder.pf1.pgData�Top = 60
Left = 357
Height = 23
Width = 72
FontName = "MS Sans Serif"
FontSize = 8
Caption = "\<Select..."
TabIndex = 4
ToolTipText = "Select data sources to generate documents"
Name = "cmdSelect"
3PROCEDURE Click
THISFORM.SelectData()

ENDPROC
�� ��Q%Vke�U
��C����UTHISFORM
SELECTDATAClick,��1�2()�gridgridGrid1frmAppBuilder.pf1.pgData�ColumnCount = 3
FontName = "MS Sans Serif"
FontSize = 8
DeleteMark = .F.
Height = 143
Left = 11
Panel = 1
RecordSource = "wizdocs"
RowHeight = 16
TabIndex = 1
Top = 12
Width = 335
Name = "Grid1"
Column1.FontName = "MS Sans Serif"
Column1.FontSize = 8
Column1.ControlSource = ""
Column1.Width = 226
Column1.ReadOnly = .T.
Column1.Name = "Column1"
Column2.FontName = "MS Sans Serif"
Column2.FontSize = 8
Column2.ControlSource = ""
Column2.Width = 33
Column2.Sparse = .F.
Column2.Name = "Column2"
Column3.FontName = "MS Sans Serif"
Column3.FontSize = 8
Column3.ControlSource = ""
Column3.Width = 44
Column3.Sparse = .F.
Column3.Name = "Column3"
headerheaderHeader1&frmAppBuilder.pf1.pgData.Grid1.Column1TFontName = "MS Sans Serif"
FontSize = 8
Caption = "Datasource"
Name = "Header1"
textboxtextboxText1&frmAppBuilder.pf1.pgData.Grid1.Column1�FontName = "MS Sans Serif"
FontSize = 8
BorderStyle = 0
Margin = 0
ReadOnly = .T.
ForeColor = 0,0,0
BackColor = 255,255,255
Name = "Text1"
headerheaderHeader1&frmAppBuilder.pf1.pgData.Grid1.Column2NFontName = "MS Sans Serif"
FontSize = 8
Caption = "Form"
Name = "Header1"
�PROCEDURE DblClick
LOCAL lnRec,llToggleTrue,lnTmpCount
lnRec = RECNO()
COUNT FOR lForm TO lnTmpCount
llToggleTrue = lnTmpCount*2 < RECCOUNT()
REPLACE ALL lForm WITH llToggleTrue
IF RECCOUNT()>0
	GO lnRec
ENDIF
ENDPROC
P�� 77eO%��
��Uk�����T��CO�����(��T����CN
��>�����%�CN���d�	#�����ULNRECLLTOGGLETRUE
LNTMPCOUNTLFORMALLDblClick,��1���A��A1�)7checkboxcheckboxCheck1&frmAppBuilder.pf1.pgData.Grid1.Column2�Top = 23
Left = 25
Height = 17
Width = 60
FontName = "MS Sans Serif"
FontSize = 8
Caption = ""
ToolTipText = "Hint: double-click on column to toggle all"
Name = "Check1"
headerheaderHeader1&frmAppBuilder.pf1.pgData.Grid1.Column3PFontName = "MS Sans Serif"
FontSize = 8
Caption = "Report"
Name = "Header1"
�PROCEDURE DblClick
LOCAL lnRec,llToggleTrue,lnTmpCount
lnRec = RECNO()
COUNT FOR lReport TO lnTmpCount
llToggleTrue = lnTmpCount*2 < RECCOUNT()
REPLACE ALL lReport WITH llToggleTrue 
IF RECCOUNT()>0
	GO lnRec
ENDIF
ENDPROC
R�� 99��%��
��Uk�����T��CO�����(��T����CN
��>�����%�CN���d�	#�����ULNRECLLTOGGLETRUE
LNTMPCOUNTLREPORTALLDblClick,��1���A��A1�)9checkboxcheckboxCheck1&frmAppBuilder.pf1.pgData.Grid1.Column3�Top = 23
Left = 9
Height = 17
Width = 60
FontName = "MS Sans Serif"
FontSize = 8
Caption = ""
ToolTipText = "Hint: double-click on column to toggle all"
Name = "Check1"

commandbutton
commandbuttoncmdClearfrmAppBuilder.pf1.pgData�Top = 84
Left = 357
Height = 23
Width = 72
FontName = "MS Sans Serif"
FontSize = 8
Caption = "\<Clear"
Enabled = .F.
TabIndex = 5
ToolTipText = "Clear current selections"
Name = "cmdClear"
"PROCEDURE Click
LOCAL cOldSafe,nSaveArea
IF !USED("wizdocs")
	RETURN
ENDIF
nSaveArea = SELECT()
cOldSafe = SET("SAFE")
SELECT wizdocs
SET SAFETY OFF
ZAP
SET SAFETY &cOldSafe
SELECT (m.nSaveArea)
THISFORM.REFRESH()
THIS.Parent.cmdAdd.Enabled = .F.
THIS.Enabled = .F.
ENDPROC
��� ����%0_?�U�����%�C�wizdocs�
��&�B��T��CW��T��C�SAFEv��F��G.�S�SET SAFETY &cOldSafe
F��
���
��C����T�����-��T���-��U	COLDSAFE	NSAVEAREAWIZDOCSTHISFORMREFRESHTHISPARENTCMDADDENABLEDClick,��1�qAA�1qaA���A�1)�
commandbutton
commandbuttoncmdAddfrmAppBuilder.pf1.pgData�Top = 132
Left = 357
Height = 23
Width = 72
FontName = "MS Sans Serif"
FontSize = 8
Caption = "\<Generate"
Enabled = .F.
TabIndex = 6
ToolTipText = "Create forms and reports for selected data sources."
Name = "cmdAdd"
�PROCEDURE Click
IF THISFORM.MakeDataDocs()
	THIS.Parent.cmdClear.Enabled = .F.
	THIS.Enabled = .F.
	THISFORM.WriteLog(LOG_NEWDATA_LOC)
ENDIF
ENDPROC
i�� PPf�%���Uw%�C����p�T�����-��T���-��=��C�-Added data, form, or report files to project.�����UTHISFORMMAKEDATADOCSTHISPARENTCMDCLEARENABLEDWRITELOGClick,��1A��A1�)PcomboboxcomboboxcboFrmStylefrmAppBuilder.pf1.pgData�FontName = "MS Sans Serif"
FontSize = 8
Height = 23
Left = 77
Style = 2
TabIndex = 8
ToolTipText = "Wizard style used when generating forms"
Top = 169
Width = 92
Name = "cboFrmStyle"
�PROCEDURE Init
LOCAL i,cFormWizStyleFile,nSaveArea 

cFormWizStyleFile = HOME()+C_WIZSTYLETABLE2
IF !FILE(m.cFormWizStyleFile)
	cFormWizStyleFile = HOME()+C_WIZSTYLETABLE1
	IF !FILE(m.cFormWizStyleFile)
		MESSAGEBOX(C_NOSTYLETABLE_LOC)
		RETURN .F.
	ENDIF
ENDIF

nSaveArea = SELECT()
SELECT 0
USE (m.cFormWizStyleFile) ALIAS formstyles AGAIN
IF !EMPTY(ALIAS())
	SELECT styledesc,stylename,vcxfile FROM formstyles ;
		 WHERE UPPER(styletype)="V" AND Wizard ;
		 INTO ARRAY THISFORM.aFrmVisuals
	FOR i = 1 TO ALEN(THISFORM.aFrmVisuals,1)
		THIS.AddItem(THISFORM.aFrmVisuals[m.i,1])
	ENDFOR 
	USE IN formstyles 
	THIS.Value = C_DEFAULTSTYLE
ENDIF
SELECT (m.nSaveArea)

ENDPROC
8�� �a%����U������%T��C�Q�WIZARDS\FRMSTYL2.DBF��%�C�
�0
����%T��C�Q�WIZARDS\FRMSTYLE.DBF��%�C�
�0
����l��C�`In order to use the Data page, please run the Form Wizard once to create the visual style table.�x��B�-����T��CW��F��Q��
�����%�CC�
����?o�
formstyles����������C�f�V��	���	�
������(�C�	�
�������CC�
���	�
������Q��T��
��Embossed���F��
���UICFORMWIZSTYLEFILE	NSAVEAREA
FORMSTYLES	STYLEDESC	STYLENAMEVCXFILE	STYLETYPEWIZARDTHISFORMAFRMVISUALSTHISADDITEMVALUEInit,��1�R!Q!�qAA������A��A�2�)labellabelLabel1frmAppBuilder.pf1.pgData�AutoSize = .T.
FontName = "MS Sans Serif"
FontSize = 8
BackStyle = 0
Caption = "\<Form Style:"
Height = 15
Left = 11
Top = 173
Width = 54
TabIndex = 7
Name = "Label1"
comboboxcomboboxcboRptStylefrmAppBuilder.pf1.pgData�FontName = "MS Sans Serif"
FontSize = 8
Height = 23
Left = 256
Style = 2
TabIndex = 10
ToolTipText = "Wizard style used when generating reports"
Top = 169
Width = 92
Name = "cboRptStyle"
PROCEDURE Init
LOCAL cReportWizStyleFile,nSaveArea

* Add default settings
THIS.AddItem(C_RPTSTYLE1_LOC)
THIS.AddItem(C_RPTSTYLE2_LOC)
THIS.AddItem(C_RPTSTYLE3_LOC)
THIS.Value = C_RPTSTYLE1_LOC 

cReportWizStyleFile = HOME()+C_WIZSTYLETABLE3
IF !FILE(m.cReportWizStyleFile)
	RETURN
ENDIF

nSaveArea = SELECT()
SELECT 0
USE (m.cReportWizStyleFile) ALIAS rptstyles AGAIN
IF !EMPTY(ALIAS())
	SCAN
		THIS.AddItem(ALLTRIM(stylename))
	ENDSCAN
	USE IN rptstyles
ENDIF
SELECT (m.nSaveArea)

ENDPROC
4�� �_%����U������C�Presentation������C�Ledger������C�	Executive����T����Presentation��%T��C�Q�WIZARDS\RPTSTYLE.DBF��%�C�
�0
����B��T��CW��F��Q��
�����%�CC�
���~�����CC�������Q���F��
���UCREPORTWIZSTYLEFILE	NSAVEAREATHISADDITEMVALUE	RPTSTYLES	STYLENAMEInit,��1��a��R!AA����!A�A�2�)labellabelLabel2frmAppBuilder.pf1.pgData�AutoSize = .T.
FontName = "MS Sans Serif"
FontSize = 8
BackStyle = 0
Caption = "\<Report Style:"
Height = 15
Left = 180
Top = 173
Width = 63
TabIndex = 9
Name = "Label2"

commandbutton
commandbutton
cmdDataWizfrmAppBuilder.pf1.pgData�Top = 13
Left = 354
Height = 36
Width = 36
Picture = graphics\datawiz.bmp
Caption = ""
TabIndex = 2
ToolTipText = "Database Wizard"
Name = "cmdDataWiz"
4PROCEDURE Click
THISFORM.RunDataWizard()
ENDPROC
�� ���e%Ynh�U
��C����UTHISFORM
RUNDATAWIZARDClick,��1�1))�
commandbutton
commandbuttoncmdTableWizfrmAppBuilder.pf1.pgData�Top = 13
Left = 395
Height = 36
Width = 36
Picture = graphics\tablewiz.bmp
Caption = ""
TabIndex = 3
ToolTipText = "Table Wizard"
Name = "cmdTableWiz"
7PROCEDURE Click
THISFORM.RunDataWizard(.T.)
ENDPROC
�� ����%Zoi�U��Ca����UTHISFORM
RUNDATAWIZARDClick,��1�1,)�textboxtextbox	txtAuthorfrmAppBuilder.pf1.pgCredits�FontName = "MS Sans Serif"
FontSize = 8
Height = 23
InputMask = (REPLICATE("X",50))
Left = 100
TabIndex = 2
ToolTipText = "Author for use in Splash and About dialogs"
Top = 28
Width = 315
Name = "txtAuthor"
labellabelLabel1frmAppBuilder.pf1.pgCredits�AutoSize = .F.
FontName = "MS Sans Serif"
FontSize = 8
BackStyle = 0
Caption = "\<Author:"
Height = 15
Left = 23
Top = 32
Width = 53
TabIndex = 1
Name = "Label1"
textboxtextbox
txtCompanyfrmAppBuilder.pf1.pgCredits�FontName = "MS Sans Serif"
FontSize = 8
Height = 23
InputMask = (REPLICATE("X",50))
Left = 100
TabIndex = 4
ToolTipText = "Company for use in Splash and About dialogs"
Top = 60
Width = 315
Name = "txtCompany"
labellabelLabel2frmAppBuilder.pf1.pgCredits�AutoSize = .F.
FontName = "MS Sans Serif"
FontSize = 8
BackStyle = 0
Caption = "\<Company:"
Height = 15
Left = 23
Top = 64
Width = 62
TabIndex = 3
Name = "Label2"
textboxtextbox
txtVersionfrmAppBuilder.pf1.pgCredits�FontName = "MS Sans Serif"
FontSize = 8
Alignment = 0
Height = 23
InputMask = (REPLICATE("X",50))
Left = 100
TabIndex = 6
ToolTipText = "Version for use in Splash and About dialogs"
Top = 92
Width = 315
Name = "txtVersion"
labellabelLabel3frmAppBuilder.pf1.pgCredits�FontName = "MS Sans Serif"
FontSize = 8
BackStyle = 0
Caption = "C\<opyright:"
Height = 18
Left = 23
Top = 128
Width = 49
TabIndex = 7
Name = "Label3"
textboxtextboxtxtCopyrightfrmAppBuilder.pf1.pgCredits�FontName = "MS Sans Serif"
FontSize = 8
Alignment = 0
Height = 23
InputMask = (REPLICATE("X",50))
Left = 100
TabIndex = 8
ToolTipText = "Copyright for use in Splash and About dialogs"
Top = 124
Width = 315
Name = "txtCopyright"
labellabelLabel4frmAppBuilder.pf1.pgCredits�AutoSize = .F.
FontName = "MS Sans Serif"
FontSize = 8
BackStyle = 0
Caption = "\<Version:"
Height = 15
Left = 23
Top = 96
Width = 48
TabIndex = 5
Name = "Label4"
textboxtextboxtxtTrademarkfrmAppBuilder.pf1.pgCredits�FontName = "MS Sans Serif"
FontSize = 8
Alignment = 0
Height = 23
InputMask = (REPLICATE("X",50))
Left = 100
TabIndex = 10
ToolTipText = "Trademark for use in Splash and About dialogs"
Top = 156
Width = 315
Name = "txtTrademark"
labellabelLabel5frmAppBuilder.pf1.pgCredits�FontName = "MS Sans Serif"
FontSize = 8
BackStyle = 0
Caption = "\<Trademark:"
Height = 15
Left = 23
Top = 159
Width = 72
TabIndex = 9
Name = "Label5"

commandbutton
commandbuttoncmdOK
frmAppBuilder�Top = 252
Left = 300
Height = 23
Width = 72
FontName = "MS Sans Serif"
FontSize = 8
Caption = "OK"
Default = .T.
TabIndex = 2
Name = "cmdOK"
;PROCEDURE Click
THISFORM.nAutoUpdate=1
* Check if there is outstanding data still in Data Page
IF THISFORM.pf1.pgData.cmdAdd.Enabled
	THISFORM.pf1.ActivePage = 3
	IF MESSAGEBOX(C_DATAPAGEOPEN_LOC,36)=6
		THISFORM.pf1.pgData.cmdAdd.Click()
	ENDIF
ENDIF
THISFORM.SetAppPems()
THISFORM.Release()

ENDPROC
'�� +%����UT������%����������T��������%�CمYou have outstanding items selected in the Data page that have not yet been processed. Would you like to process them before exiting?�$�x�������C���������
��C����
��C��	��U
THISFORMNAUTOUPDATEPF1PGDATACMDADDENABLED
ACTIVEPAGECLICK
SETAPPPEMSRELEASEClick,��1�1�	aAA��20)
commandbutton
commandbuttoncmdHelp
frmAppBuilder�Top = 252
Left = 8
Height = 23
Width = 72
FontName = "MS Sans Serif"
FontSize = 8
Caption = "\<Help"
TabIndex = 4
Name = "cmdHelp"
-PROCEDURE Click
THISFORM.Help()

ENDPROC
�� ����%Pe_�U
��C����UTHISFORMHELPClick,��1�2")�
commandbutton
commandbutton	cmdCancel
frmAppBuilder�Top = 252
Left = 378
Height = 23
Width = 72
FontName = "MS Sans Serif"
FontSize = 8
Cancel = .T.
Caption = "Cancel"
TabIndex = 3
Name = "cmdCancel"
0PROCEDURE Click
THISFORM.Release()

ENDPROC
�� ���%Shb�U
��C����UTHISFORMRELEASEClick,��1�2%)�JArial, 0, 9, 5, 15, 12, 32, 3, 0
MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
	appbldr.h����+