MESSAGE "Generating Office Library..." Off_Lib = "OFFICE" CREATELIB Off_Lib SIZE 128 PROC Change_Date(Sign) if (SYSMODE() = "CoEdit") AND (FIELDTYPE() = "D") then if ISBLANK([]) then [] = TODAY() else if (Sign = 43) then [] = [] + 1 else [] = [] - 1 endif endif else RETURN 0 endif RETURN 1 ENDPROC WRITELIB Off_Lib Change_Date PROC Main_Table_Edit() ; allowing editing of current table image, do not break wait if (SYSMODE() = "Main") then COEDITKEY MENUDISABLE "Edit\Mode" MENUDISABLE "Ask" MENUENABLE "Main\Mode" endif RETURN 1 ENDPROC WRITELIB Off_Lib Main_Table_Edit PROC Main_Table_End_Edit() ; exit edit mode, if possible, do not break out of wait cycle if (HELPMODE() = "LookupHelp") then ; if user was in lookup help and pressed RETURN 0 ; F2 to select, do not exit wait loop endif if NOT ISVALID() then ; if in coedit and field data is not valid, MESSAGE "Error: The data for this field is not valid." RETURN 1 ; do not exit wait endif if ISFIELDVIEW() then ; if in field view, do not exit wait loop DO_IT! RETURN 1 endif DO_IT! if (SYSMODE() = "Main") then ; record posted successfully MENUDISABLE "Main\Mode" MENUENABLE "Edit\Mode" MENUENABLE "Ask" else ECHO NORMAL ; key violation exists DO_IT! endif RETURN 1 ENDPROC WRITELIB Off_Lib Main_Table_End_Edit PROC Main_Table_Clear() ; exit edit mode by calling main mode, clear workspace and exit wait if (SYSMODE() = "CoEdit") then Main_Table_End_Edit() endif if (SYSMODE() = "Main") then ECHO OFF CLEARALL ECHO NORMAL RETURN 2 ; back in main mode so exit wait else RETURN 1 ; cannot get to main mode - wait continues endif ENDPROC WRITELIB Off_Lib Main_Table_Clear PROC Display_Memo(Tbl) ; move to proper table image, then memo field, enter field view and pop up ; memo window - if available, wait until F2 is pressed if ISFIELDVIEW() then ; if in field view, do not exit wait loop DO_IT! endif if NOT ISVALID() then ; if in coedit and field data is not valid, RETURN 0 ; do not exit wait endif MOVETO Tbl MOVETO FIELD "Memo" SHOWPULLDOWN ENDMENU CLEARSPEEDBAR if (Field() = "Memo") then ECHO OFF FIELDVIEW WINDOW HANDLE CURRENT TO Memo_Win DYNARRAY Atts[] DYNARRAY Colors[] Colors["1"] = 31 Atts["ORIGINROW"] = 13 Atts["ORIGINCOL"] = 0 Atts["CANMOVE"] = False Atts["CANRESIZE"] = False Atts["CANCLOSE"] = False Atts["HEIGHT"] = 11 Atts["WIDTH"] = 80 Atts["HASSHADOW"] = FALSE Atts["TITLE"] = " Memo " WINDOW SETATTRIBUTES Memo_Win FROM Atts WINDOW SETCOLORS Memo_Win FROM Colors PROMPT " Press F2 when finished." ECHO NORMAL WAIT FIELD UNTIL "F2" DO_IT! else MESSAGE "No memo field is available in this context." endif ENDPROC WRITELIB Off_Lib Display_Memo PROC Main_Table_Menu() SHOWPULLDOWN "Modify" : "Toggle between edit and main mode" : "Modify" SUBMENU "Edit Mode - F9" : "Allow data to be edited, deleted, etc." : "Edit\Mode", "Main Mode - F2" : "Discontinue editing" : "Main\Mode" ENDSUBMENU, "Ask" : "Select data to report on" : "Ask", "Close" : "Return to main menu when finished" : "" SUBMENU "No " : "Continue working with this table" : "Close\No", "Yes - F8" : "Return to main menu" : "Close\Yes" ENDSUBMENU ENDMENU if ISEMPTY(TABLE()) then Main_Table_Edit() else if (SYSMODE() = "Main") then MENUDISABLE "Main\Mode" else MENUDISABLE "Edit\Mode" MENUDISABLE "Ask" endif endif ENDPROC WRITELIB Off_Lib Main_Table_Menu PROC Main_Table_View(Tbl, R, C) ; place table on workspace in form view ECHO OFF VIEW Tbl WINDOW MOVE GETWINDOW() TO -100, -100 Main_Table_Menu() PICKFORM "1" WINDOW HANDLE CURRENT TO Form_Win DYNARRAY Win_Atts[] Win_Atts["ORIGINROW"] = R Win_Atts["ORIGINCOL"] = C Win_Atts["CANMOVE"] = False Win_Atts["CANRESIZE"] = False Win_Atts["CANCLOSE"] = False WINDOW SETATTRIBUTES Form_Win FROM Win_Atts ENDPROC WRITELIB Off_lib Main_Table_View PROC View_Answer_Table(Tbl, R, C) WINDOW MOVE GETWINDOW() TO -100, -100 PICKFORM "1" WINDOW HANDLE CURRENT TO Form_Win DYNARRAY Win_Atts[] Win_Atts["TITLE"] = "RECORDS MATCHING SELECTION CRITERIA" Win_Atts["ORIGINROW"] = R Win_Atts["ORIGINCOL"] = C Win_Atts["CANMOVE"] = False Win_Atts["CANRESIZE"] = False Win_Atts["CANCLOSE"] = False WINDOW SETATTRIBUTES Form_Win FROM Win_Atts ENDPROC WRITELIB Off_Lib View_Answer_Table PROC Answer_Table_Wait_Proc(TriggerType, EventInfo, CycleNumber) PRIVATE Key_Code, Menu_Pick if (TriggerType = "ARRIVEFIELD") then PROMPT Fld_Prompt[FIELD()] RETURN 1 endif if (EventInfo["TYPE"] = "KEY") then ; check for hot keys Key_Code = EventInfo["KEYCODE"] SWITCH ; F9 - COEDIT CASE (Key_Code = -67) : RETURN Edit_Mode() ; F2 - DO_IT! CASE (Key_Code = -60) : if ISEMPTY(Subset_Table) then RETURN Clear_Table() else RETURN Main_Mode() endif ; F8 - CLEAR CASE (Key_Code = -66) : RETURN Clear_Table() ; DELETE CASE (Key_Code = -83) : if (SYSMODE() = "CoEdit") then RETURN Display_Delete_Box() else RETURN 1 endif ; Alt-M - Memo CASE (Key_Code = -50) : Display_Memo(Subset_Table) EXECPROC Answer_Menu RETURN 1 ; Alt-B - Summarize Account Balances CASE (Key_Code = -48) : Summarize_Accounts(Subset_Table, IMAGENO()) EXECPROC Answer_Menu RETURN 1 CASE (Key_Code = 43) : RETURN Change_Date(43) CASE (Key_Code = 45) : RETURN Change_Date(45) OTHERWISE : SOUND 400 100 RETURN 1 ENDSWITCH endif; if key was pressed if (EventInfo["MESSAGE"] = "MENUSELECT") then ; now menu selections Menu_Pick = EventInfo["MENUTAG"] SWITCH CASE (Menu_Pick = "Edit\Mode") : RETURN Edit_Mode() CASE (Menu_Pick = "Main\Mode") : if ISEMPTY(Subset_Table) then RETURN Clear_Table() else RETURN Main_Mode() endif CASE (Menu_Pick = "Assemble") : if (SYSMODE() = "CoEdit") then MESSAGE("You must exit edit mode.") else Select_Forms() endif RETURN 1 CASE (Menu_Pick = "Return\Yes") : RETURN Clear_Table() CASE (Menu_Pick = "Return\No") : RETURN 1 OTHERWISE : SOUND 400 100 RETURN 1 ENDSWITCH endif SOUND 400 100 RETURN 1 ENDPROC WRITELIB Off_Lib Answer_Table_Wait_Proc RELEASE PROCS ALL PLAY "Setup" PLAY "Rolodex" PLAY "Filcabnt" PLAY "Ledger" PLAY "Utility" PLAY "Pension" PLAY "Qdro" PLAY "Form_Mgr" ; do not PLAY procedures that are no longer used ;PLAY "Calendar" ;PLAY "Timecard" ;PLAY "Trust" MESSAGE "All procedures successfully written to office library." SLEEP 2000 MESSAGE ""