//********************************************************************** // DFM.DF3 for DataFlex 3.2 // // By Sture Andersen // // Create: Wed 09-02-2000 // // //********************************************************************** #REM DFM.DF3 - SOME TOOLS FOR CHARACTER MODE DATAFLEX 3.2 Use Allentry Set_Option AUTOCLEAR use base.nui Use LangSymb.pkg // Language symbols define lng_default for LNG_ENGLISH Use DfApp // Character Mode DataFlex application stuff Use Output.utl // Basic sequential output service Use FDX.utl // cFDX class Use Fdx1.utl // FDX aware display global attributes (FDX_DisplayGlobalAttributes procedure) Use Fdx2.utl // FDX aware object for displaying a table definiton Use Fdx4.utl // FDX aware cFileList_List selector object Use DFMatrix.utl // Use Focus.utl // Retrieve basic information about object send DfApp.About_Fill app.DFMatrix.Title app.DFMatrix.Version "Sture Andersen" "" use traceobj /Main_Menu ______ ______ ___________ _______________ ÿ /FilePullDown.img ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ _______________________ ³ ³ _______________________ ³ ³ _______________________ ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ _______________________ ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ _______________________ ³ ³ _______________________ ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ _______________________ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ /ViewPullDown.img ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ________________________ ³ ³ ________________________ ³ ³ ________________________ ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ________________________ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ /EnvPullDown.img ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ________________________ ³ ³ ________________________ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ /SetsPullDown.img ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ________________________ ³ ³ ________________________ ³ ³ ________________________ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ /FunctionPullDown.img ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ____________________________ ³ ³ ____________________________ ³ ³ ____________________________ ³ ³ ____________________________ ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ____________________________ ³ ³ ____________________________ ³ ³ ____________________________ ³ ³ ____________________________ ³ ³ ____________________________ ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ____________________________ ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ____________________________ ³ ³ ____________________________ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ /TestFacilities.img ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ _____________________ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ /DacUtilities.img ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ________________________ ³ ³ ________________________ ³ ³ ________________________ ³ ³ ________________________ ³ ³ ________________________ ³ ³ ________________________ ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ________________________ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ /* create_menu main_menu location 1 0 absolute set action_bar_keys_msg to main_menu_keys on_item " &File " begin_pull_down FilePullDown.img on_item "Open ¤t definitions" send DFMatrix_PrimaryOpenCurrentFilelist to desktop on_item "&Open FDX file..." send DFMatrix_PrimaryOpenFdxFile to desktop on_item "C&lose" send DFMatrix_CloseAll to desktop on_item "&Save as..." send DFMatrix_PrimarySaveFdxAs to desktop on_item "Log&in" send DFMatrix_Login to desktop on_item "Lo&gout" send DFMatrix_Logout to desktop on_item "E&xit \aAlt+F4" send exit_area Procedure Activate local integer Shade_CloseAndSave# fdx# fdx_state# move (fdx.object_id(0)) to fdx# get piDataOrigin of fdx# to fdx_state# move (fdx_state#=FDX_EMPTY) to Shade_CloseAndSave# set Shadow_State item 2 to Shade_CloseAndSave# set Shadow_State item 3 to Shade_CloseAndSave# //local integer fdx# shade# fdx_state# //move (fdx.object_id(0)) to fdx# //get piDataOrigin of fdx# to fdx_state# //if fdx_state# eq FDX_EMPTY move 1 to shade# //if fdx_state# eq FDX_REAL_WORLD move 0 to shade# // It's OK even to reload if you're running on real data //if fdx_state# eq FDX_READ_FROM_FILE begin // move (not(piDirsPresentInFile(fdx#))) to shade# // ifnot shade# move (piDirsLoaded(fdx#)) to shade# //end //set shadow_state item 2 to shade# //set shadow_state item 3 to (fdx_state#=FDX_EMPTY) // If Empty, we can't save forward send Activate End_Procedure end_pull_down on_item " &View " begin_pull_down ViewPullDown.img on_item "Table selector" send Activate_Table_Selector to desktop on_item "Table definitions" send Activate_Table_Definition to desktop on_item "&Environment\a" begin_pull_down EnvPullDown.img on_item "Global attributes" send Activate_Global_Attributes to desktop on_item "Directory contents" send Activate_Directory_Contents to desktop end_pull_down on_item "Build &sets\a" begin_pull_down SetsPullDown.img on_item "Build set of &tables" send Activate_SetOfTables to desktop on_item "Build set of &fields" send Activate_SetOfFields to desktop on_item "Build set of &indices" send Activate_SetOfIndices to desktop end_pull_down end_pull_down on_item " Fu&nctions " begin_pull_down FunctionPullDown.img on_item "Check definitions" send Activate_FdxCheck_Vw to desktop on_item "Find stray index files" send Popup_FindStrayIndexFiles to desktop on_item "&Restructure programs" send Activate_RestructPrograms to desktop on_item "Create empty tables" send Popup_CreateFromFdx to desktop // on_item "Create DEF/FD files" send Popup_CreateDEF_FD to desktop on_item "Reindex" send Activate_SortUtil_Vw to desktop on_item "Year 2000 check" send Activate_Conv2000_Vw to desktop on_item "Import/Export data" send Popup_ImportExport to desktop on_item "Field statistics" send Activate_DataSampler_Vw to desktop on_item "Read test of data files" send Activate_DataTest_Vw to desktop on_item "Update DBD tables (fastview)" send PopUp_UpdateDBDTablesDFM to desktop on_item "Find file" send Activate_SetDirTestVw to desktop on_item "Compare dir contents" send Activate_Dircomp_Vw to desktop // on_item "Browse current data" send Activate_Table_Browse to desktop // on_item "Test facilities\a" begin_pull_down TestFacilities.img // on_item "DF-Script..." send Activate_DFScript_ide to desktop // end_pull_down end_pull_down on_item " DAW-&Utilities " begin_pull_down DacUtilities.img on_item "DF&QUERY" send run_dfquery to desktop on_item "DF&BROWSE" send run_dfbrowse to desktop on_item "DF&MAINT" send run_dfmaint to desktop on_item "DF&FILE" send run_dffile to desktop on_item "RE&INDEX ALL" send output.run_dfindex_all to desktop on_item "DF&CONFIG" send run_dfconfig to desktop on_item "About" send DfApp.About to desktop end_pull_down end_menu procedure main_menu_keys for desktop integer obj# on_key key_alt+key_f send activate to (FilePullDown.img(obj#)) private on_key key_alt+key_v send activate to (ViewPullDown.img(obj#)) private on_key key_alt+key_n send activate to (FunctionPullDown.img(obj#)) private on_key key_alt+key_u send activate to (DacUtilities.img(obj#)) private end_procedure Use DFMatrix.vw // Table selector, Global attr and table definition Use StrucTrc.vw // Object for tracing a restructure operation Use FdxRpt01 // Validity check Use FDXSet.vw // Display contents of cSetOfFiles cSetOfFields Use DfmFnc01.pkg // Create table definitions (Popup_CreateFromFdx) Use DfmFnc03.pkg // Find stray index files (Popup_FindStrayIndexFiles) Use DfmFnc05.pkg // Import Export data Use DfmFnc07.pkg // Create DEF/FD files (Popup_CreateDEF_FD) Use Browse.utl // A DFBrowse replacement Use DataSamp.vw // Field statistics Use FdxCheck.vw // View for interfacing validity check of table definitions Use Dircomp.vw Use SortUtil.vw Use DataTest.vw Use SetDir.vw // Use Conv2000.vw // Activate_Conv2000_Vw (for use in the DFMatrix environment) use dbd.nui object oDFM_DBD_System is a cDBD_System object oDBD_TableAccess is a cDBD_TableAccess set pbOpenTablesOnDefine to false set psRootNamePrefix to "db" function bConvertFilelistTo4095 returns integer function_return (MB_Verify4("Your filelist.cfg is an old one","with less than 256 entries.","","Should it be converted to a 4095 entry filelist?",1)) end_function end_object object oDBD_Updater is a cDBD_Updater set phFDX to (fdx.object_id(0)) procedure OnUpdateBegin send ScreenEndWait_On 0 0 send ScreenEndWait_SetText "Reading (new) tables and fields" end_procedure procedure OnHandleTable string lsMsg send ScreenEndWait_SetText lsMsg end_procedure procedure OnHandleField string lsMsg send ScreenEndWait_SetText2 lsMsg end_procedure procedure OnHandleIndex string lsMsg send ScreenEndWait_SetText2 lsMsg end_procedure procedure OnUpdateEnd send ScreenEndWait_Off end_procedure end_object procedure DoTheTwist if (DFMatrix_RealDataPrimary()) begin if (DoOpenTables(oDBD_TableAccess(self))) begin send DoUpdateDatabase to (oDBD_Updater(self)) send DoCloseTables to (oDBD_TableAccess(self)) send obs "Done" end else send obs "DBD tables not found" end else send obs "You need 'real data' to do this" end_procedure end_object // oDFM_DBD_System procedure PopUp_UpdateDBDTablesDFM send DoTheTwist to (oDFM_DBD_System(self)) end_procedure Use StrucPgm.vw // View for creating and executing RS programs Use DFScript.vw // DFScript test procedure set DFMatrix_App_Label string str# send DfApp.Title_Bar str# end_procedure send DFMatrix_Update_App_Title send deferred_message MSG_DoDfMatrixCommandLine //use object.nui start_ui (main_menu(self))