1141 lines
		
	
	
		
			41 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			1141 lines
		
	
	
		
			41 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| Function NDW_Audit_Trail_Events(CtrlEntId, Event, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)
 | |
| 
 | |
| ////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| ////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| //																								
 | |
| // This program is proprietary and is not to be used by or disclosed to others, nor is it to	
 | |
| // be copied without written permission from SRP Computer Solutions, Inc.						
 | |
| //																								
 | |
| // Name       : NDW_Audit_Trail_Events															
 | |
| //																								
 | |
| // Description: This function acts as a commuter module for all events related to this window.	
 | |
| //																								
 | |
| // Notes:		Commuter Modules are automatically called from the Promoted_Events function		
 | |
| //				which is called by the application-specific promoted event handler. This makes	
 | |
| //				it possible to add QuickEvents that need to execute Basic+ logic without having	
 | |
| //				use the Form Designer to make the association, although this is limited to the	
 | |
| //				events which are currently promoted.											
 | |
| //																								
 | |
| //				If the form needs to call the commuter module directly then the QuickEvent		
 | |
| //				parameters should be formatted like this:										
 | |
| //																								
 | |
| //					'@SELF','@EVENT',['@PARAM1','@PARAMx']										
 | |
| //																								
 | |
| // Parameters:																					
 | |
| //	CtrlEntId	 [in] -- The fully qualified name of the control calling the promoted event		
 | |
| //	Event		 [in] -- The event being executed. See the Notes section regarding "PRE" events	
 | |
| //	Param1-15	 [in] -- Additional event parameter holders										
 | |
| //	EventFlow	[out] -- Set to 1 or 0 so the calling event knows whether or not to				
 | |
| //						 chain forward. See comments in EVENT_SETUP insert						
 | |
| //																								
 | |
| // History (Date, Initials, Notes)																
 | |
| //   07/23/98  dmb   Original programmer														
 | |
| //   11/17/05  dmb   Use LoadTextW method instead of LoadText for UTF8 compatibility			
 | |
| //	 03/30/06  axf   Replaced application.dll to application.img added logic to accommodate		
 | |
| //					 that change																
 | |
| //																								
 | |
| ////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| ////////////////////////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| $insert APP_INSERTS
 | |
| $insert EVENT_SETUP
 | |
| $insert MSG_EQUATES
 | |
| 
 | |
| Equ WM_USER$ To 1024
 | |
| Equ WM_SETREADONLY$ To WM_USER$ + 31
 | |
| 
 | |
| Equ DLL$ to Drive():"\application.img#"		; // Application.Png is locate at the root of OI
 | |
| 
 | |
| AuditManagerTable = "APP_INFO"
 | |
| 
 | |
| Declare Subroutine Msg, Send_Event, V119, SRP_Set_Prop_Array, Utility, SRP_Show_Window, Start_Window, Send_Message, Get_SysInfo, Set_Property
 | |
| Declare Function GetPointer, GetSystemInfo, Str_Unicode, Get_Property, Start_MDIChild, Start_Window, Popup
 | |
| 
 | |
| Begin Case
 | |
| 	Case Control EQ Window
 | |
| 		// This event is window specific.
 | |
| 		
 | |
| 		Begin Case
 | |
| 			Case Event EQ "CREATE"				; GoSub CREATE
 | |
| 			Case Event EQ "CLEAR"				; GoSub CLEAR
 | |
| 		End Case
 | |
| 
 | |
| 	Case Control EQ "COB_TABLE"
 | |
| 	
 | |
| 		Begin Case
 | |
| 			Case Event EQ "GOTFOCUS"			; GoSub GOTFOCUS.COB_TABLE
 | |
| 			Case Event EQ "CHANGED"				; GoSub CHANGED.COB_TABLE
 | |
| 			Case Event EQ "LOSTFOCUS"			; GoSub LOSTFOCUS.COB_TABLE
 | |
| 			Case Event EQ "CHANGED"				; GoSub CHANGED.COB_TABLE
 | |
| 		End Case
 | |
| 
 | |
| 	Case Control EQ "EDL_ID"
 | |
| 	
 | |
| 		Begin Case
 | |
| 			Case Event EQ "GOTFOCUS"			; GoSub GOTFOCUS.EDL_ID
 | |
| 			Case Event EQ "OPTIONS"				; GoSub OPTIONS.EDL_ID
 | |
| 			Case Event EQ "LOSTFOCUS"			; GoSub LOSTFOCUS.EDL_ID
 | |
| 		End Case
 | |
| 
 | |
| 	Case Control EQ "EDT_AUDIT_INFO"
 | |
| 	
 | |
| 		Begin Case
 | |
| 			Case Event EQ "OnHeaderClick"		; GoSub OnHeaderClick.EDT_AUDIT_INFO
 | |
| 			Case Event EQ "OnClick"				; GoSub OnClick.EDT_AUDIT_INFO			
 | |
| 			Case Event EQ "PosChanged"			; GoSub PosChanged.EDT_AUDIT_INFO
 | |
| 			Case Event EQ "BeforeDeleteRecords"	; GoSub BeforeDeleteRecords.EDT_AUDIT_INFO
 | |
| 			Case Event EQ "BeforeInsertRecords"	; GoSub BeforeInsertRecords.EDT_AUDIT_INFO
 | |
| 		End Case
 | |
| 
 | |
| 	Case Control EQ "OLE_SUBCLASS"
 | |
| 
 | |
| 		Begin Case
 | |
| 			Case Event EQ "OnOptionClick"		; GoSub OnOptionClick.OLE_SUBCLASS
 | |
| 		End Case
 | |
| 
 | |
| 	Case EventType EQ "CLICK"
 | |
| 		
 | |
| 		Begin Case
 | |
| 		    Case Control EQ "PUB_ALL_IDS"       ; GoSub PUB_ALL_IDS_CLICK
 | |
| 			Case Control EQ "PUB_RESTORE"		; GoSub PUB_RESTORE_CLICK
 | |
| 			Case Control EQ "PUB_VIEW"			; GoSub PUB_VIEW_CLICK
 | |
| 		End Case
 | |
| 
 | |
| End Case
 | |
| 
 | |
| If Assigned(EventFlow) else EventFlow = EVENT_CONTINUE$
 | |
| 
 | |
| Return EventFlow
 | |
| 
 | |
| CREATE:
 | |
| 	*-------------------------------------------------------------------------------------------------------------------
 | |
| 	* 1. Generates Outline using the SRP.Tab.1 and Contructs the OLE Edit Table
 | |
| 	* 2. Sorts the Available Tables
 | |
| 	*-------------------------------------------------------------------------------------------------------------------
 | |
| 
 | |
| 	Color = "3D Face L=90"
 | |
| 	PropArray     = @Window:".OLE_TAB"
 | |
| 	PropArray<-1> = "OLE.TabCount"		:@VM: 0
 | |
| 	PropArray<-1> = "OLE.Height"		:@VM: "-43"
 | |
| 	PropArray<-1> = "OLE.AllowXPTheme"	:@VM: Yes$
 | |
| 	SRP_Set_Prop_Array(PropArray)
 | |
| 
 | |
| 	PropArray     = @Window:".EDT_AUDIT_INFO"
 | |
| 	PropArray<-1> = "OLE.WorkspaceBkColor"			:@VM: "Window"
 | |
| 	PropArray<-1> = "OLE.BorderType"				:@VM: "XP"
 | |
| 	PropArray<-1> = "OLE.Dimension<1>"				:@VM: 8						;* number of columns
 | |
| 	PropArray<-1> = "OLE.Dimension<2>"				:@VM: 15					;* number of rows
 | |
| 	PropArray<-1> = "OLE.HeaderColumn[1]<1>"		:@VM: 20
 | |
| 	PropArray<-1> = "OLE.HeaderColumn[1]<2>"		:@VM: 1						;* Visable (Column Numbers?)
 | |
| 	PropArray<-1> = "OLE.AutoNumbers<1,1>"			:@VM: "I"
 | |
| 	PropArray<-1> = "OLE.AutoNumbers<1,2>"			:@VM: 1
 | |
| 	PropArray<-1> = "OLE.TitleList<1,1>"			:@VM: "Date"				;* Date Column 1
 | |
| 	PropArray<-1> = "OLE.TitleList<1,2>"			:@VM: "Time"				;* Time Column 2
 | |
| 	PropArray<-1> = "OLE.TitleList<1,3>"			:@VM: "User Name"			;* User Column 3
 | |
| 	PropArray<-1> = "OLE.TitleList<1,4>"			:@VM: "Station"				;* Station Id Column 4
 | |
| 	PropArray<-1> = "OLE.TitleList<1,5>"			:@VM: "MAC Address"			;* Mac Address
 | |
| 	PropArray<-1> = "OLE.TitleList<1,6>"			:@VM: "Program Name"
 | |
| 	PropArray<-1> = "OLE.TitleList<1,7>"			:@VM: "Marker"
 | |
| 	PropArray<-1> = "OLE.TitleList<1,8>"			:@VM: "Activity"			;* Activity Type
 | |
|  	PropArray<-1> = "OLE.CellProtection[1; All]"	:@VM: "Selectable"	
 | |
|  	PropArray<-1> = "OLE.CellProtection[2; All]"	:@VM: "Full"			
 | |
|  	PropArray<-1> = "OLE.CellProtection[3; All]"	:@VM: "Full"
 | |
|  	PropArray<-1> = "OLE.CellProtection[4; All]"	:@VM: "Full"
 | |
|  	PropArray<-1> = "OLE.CellProtection[5; All]"	:@VM: "Full"
 | |
|  	PropArray<-1> = "OLE.CellProtection[6; All]"	:@VM: "Full"
 | |
|  	PropArray<-1> = "OLE.CellProtection[7; All]"	:@VM: "Full"
 | |
|  	PropArray<-1> = "OLE.CellProtection[8; All]"	:@VM: "Full"
 | |
| 	PropArray<-1> = "OLE.QuickTabOut"				:@VM: 1					
 | |
| 	PropArray<-1> = "OLE.DataColumn[1]<1>"			:@VM: 70
 | |
| 	PropArray<-1> = "OLE.DataColumn[1]<2>"			:@VM: 1					
 | |
| 	PropArray<-1> = "OLE.DataColumn[1]<3>"   		:@VM: 1
 | |
| 	PropArray<-1> = "OLE.DataColumn[2]<1>"			:@VM: 70
 | |
| 	PropArray<-1> = "OLE.DataColumn[2]<2>"			:@VM: 1					 
 | |
| 	PropArray<-1> = "OLE.DataColumn[2]<3>"   		:@VM: 1
 | |
| 	PropArray<-1> = "OLE.DataColumn[3]<1>"			:@VM: 105
 | |
| 	PropArray<-1> = "OLE.DataColumn[3]<2>"			:@VM: 1					 
 | |
| 	PropArray<-1> = "OLE.DataColumn[3]<3>"	 		:@VM: 1
 | |
| 	PropArray<-1> = "OLE.DataColumn[4]<1>"			:@VM: 105
 | |
| 	PropArray<-1> = "OLE.DataColumn[4]<2>"			:@VM: 1					 
 | |
| 	PropArray<-1> = "OLE.DataColumn[4]<3>"		  	:@VM: 1
 | |
| 	PropArray<-1> = "OLE.DataColumn[4]<4>"			:@VM: 1
 | |
| 	PropArray<-1> = "OLE.DataColumn[5]<1>"			:@VM: 110
 | |
| 	PropArray<-1> = "OLE.DataColumn[5]<2>"			:@VM: 0					 
 | |
| 	PropArray<-1> = "OLE.DataColumn[5]<3>"   		:@VM: 1
 | |
| 	PropArray<-1> = "OLE.DataColumn[6]<1>"			:@VM: 150
 | |
| 	PropArray<-1> = "OLE.DataColumn[6]<2>"			:@VM: 0					 
 | |
| 	PropArray<-1> = "OLE.DataColumn[6]<3>"   		:@VM: 1
 | |
| 	PropArray<-1> = "OLE.DataColumn[7]<1>"			:@VM: 80
 | |
| 	PropArray<-1> = "OLE.DataColumn[7]<2>"			:@VM: 0
 | |
| 	PropArray<-1> = "OLE.DataColumn[7]<3>"			:@VM: 1
 | |
| 	PropArray<-1> = "OLE.DataColumn[8]<1>"			:@VM: 55
 | |
| 	PropArray<-1> = "OLE.DataColumn[8]<2>"			:@VM: 1
 | |
| 	PropArray<-1> = "OLE.DataColumn[8]<3>"			:@VM: 1
 | |
| 	PropArray<-1> = "OLE.DataColumn[8]<4>"			:@VM: 1
 | |
| 	PropArray<-1> = "OLE.MinCellSize"				:@VM: 16
 | |
| 	SRP_Set_Prop_Array(PropArray)
 | |
| 
 | |
| 	cWin$ = Window
 | |
| 	Gosub ResetTabOrder
 | |
| 	
 | |
| 	Qualifier    = ""
 | |
| 	Qualifier<1> = Yes$
 | |
| 	Qualifier<4> = Yes$
 | |
| 	
 | |
| 	Send_Message(@Window:".EDT_AUDIT_INFO", "QUALIFY_EVENT", "ALL_OLES", Qualifier)
 | |
| 	Send_Message(@Window:".OLE_SUBCLASS", "QUALIFY_EVENT", "ALL_OLES", Qualifier)
 | |
| 	
 | |
| 	Handle = Get_Property(@Window:".EDL_ID", "HANDLE")
 | |
| 	Set_Property(@Window:".OLE_SUBCLASS", "OLE.CurrentWindow", @Window)
 | |
| 	Send_Message(@Window:".OLE_SUBCLASS", "OLE.Subclass", Handle, @Window:".EDL_ID")
 | |
| * 	Set_Property(@Window:".OLE_SUBCLASS", "OLE.OptionButton[EDL_ID]", Yes$)
 | |
| 	
 | |
| 	Gosub Get_AuditM_Settings
 | |
| 	
 | |
| 	Set_Property(@Window:".PUB_RESTORE", "ENABLED", No$)
 | |
| 	
 | |
| 	Parent = Get_Property(@Window, "PARENT")
 | |
| 
 | |
| 	SRP_Show_Window(@Window, "", "L", "T", Yes$, "", No$, No$)
 | |
| 	
 | |
| 	Size = Get_Property(@Window, "SIZE")
 | |
| 	Set_Property(@Window:".EDL_SIZE", "INVALUE", Size)
 | |
| 	
 | |
| return
 | |
| 
 | |
| GOTFOCUS.COB_TABLE:
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	* Activates the Option Button
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	GoSub Check_For_Options_Event
 | |
| 	
 | |
| return
 | |
| 
 | |
| 
 | |
| CHANGED.COB_TABLE:
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	* Clears info in .EDL_ID field
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	Ctrls = @Window:".EDL_ID":@RM:@Window:".EDT_AUDIT_INFO"
 | |
| 	Props = "DEFPROP":@RM:"OLE.Array"
 | |
| 	Vals  = "":@RM:""
 | |
| 	Set_Property(Ctrls, Props, Vals)
 | |
| 	
 | |
| 	Ctrls = @Window:".COB_TABLE":@RM:@Window:".EDT_SETTINGS"
 | |
| 	Props = "INVALUE":@RM:"ARRAY"
 | |
| 	rv = Get_Property(Ctrls, Props)
 | |
| 	Table   = Field(rv, @RM, 1, 1)
 | |
| 	Tracker = Field(rv, @RM, 2, 1)  
 | |
| 	Locate Table in Tracker<1> Using @VM Setting Pos Then
 | |
| 		PropArray = @Window:".EDT_AUDIT_INFO"
 | |
| 		If Tracker<6,Pos> = Yes$ Then	
 | |
| 			Size = Get_Property(@Window:".EDL_SIZE", "INVALUE")
 | |
| 			Size<3> = Size<3> + 180
 | |
| 			PropArray<-1> = "OLE.DataColumn[1]<1>"			:@VM: 70
 | |
| 			PropArray<-1> = "OLE.DataColumn[2]<1>"			:@VM: 70
 | |
| 			PropArray<-1> = "OLE.DataColumn[3]<1>"			:@VM: 105
 | |
| 			PropArray<-1> = "OLE.DataColumn[4]<1>"			:@VM: 105
 | |
| 			PropArray<-1> = "OLE.DataColumn[4]<4>"			:@VM: 0
 | |
| 			PropArray<-1> = "OLE.DataColumn[6]<1>"			:@VM: 150
 | |
| 			PropArray<-1> = "OLE.DataColumn[6]<2>"			:@VM: 1
 | |
| 			PropArray<-1> = "OLE.DataColumn[6]<3>"			:@VM: 1
 | |
| 			PropArray<-1> = "OLE.DataColumn[6]<4>"			:@VM: 1
 | |
| 			PropArray<-1> = "OLE.DataColumn[7]<1>"			:@VM: 80
 | |
| 			PropArray<-1> = "OLE.DataColumn[7]<2>"			:@VM: 1
 | |
| 			PropArray<-1> = "OLE.DataColumn[7]<3>"			:@VM: 1
 | |
| 			PropArray<-1> = "OLE.DataColumn[8]<1>"			:@VM: 55
 | |
| 		End Else
 | |
| 			Size = Get_Property(@Window:".EDL_SIZE", "INVALUE")
 | |
| 			PropArray<-1> = "OLE.DataColumn[1]<1>"			:@VM: 70
 | |
| 			PropArray<-1> = "OLE.DataColumn[2]<1>"			:@VM: 70
 | |
| 			PropArray<-1> = "OLE.DataColumn[3]<1>"			:@VM: 105		
 | |
| 			PropArray<-1> = "OLE.DataColumn[4]<1>"			:@VM: 105
 | |
| 			PropArray<-1> = "OLE.DataColumn[4]<4>"			:@VM: 1	
 | |
| 			PropArray<-1> = "OLE.DataColumn[6]<2>"			:@VM: 0
 | |
| 			PropArray<-1> = "OLE.DataColumn[6]<4>"			:@VM: 0
 | |
| 			PropArray<-1> = "OLE.DataColumn[7]<2>"			:@VM: 0
 | |
| 			PropArray<-1> = "OLE.DataColumn[8]<1>"			:@VM: 55			
 | |
| 		End
 | |
| 		Set_Property(@Window, "SIZE", Size)
 | |
| 		SRP_Set_Prop_Array(PropArray)
 | |
| 	End
 | |
| 	
 | |
| 	// KRF - 11/26/14 - Populate IDs with quick-list if available
 | |
| 	Table = Get_Property(@Window:".COB_TABLE", "DEFPROP")
 | |
| 	RecentlyUpdatedList = Xlate("AUDIT_":Table, "%RECENTLY_UPDATED%", "", "X")
 | |
| 	If Len(RecentlyUpdatedList) then
 | |
| 	    Convert @FM to @TM in RecentlyUpdatedList
 | |
|         ComboDropDown       = 1 
 | |
|         ComboDropDown<2, 1> = "" 
 | |
| *        ComboDropDown<2, 2> = 
 | |
|         ComboDropDown<2, 3> = RecentlyUpdatedList
 | |
|         ComboDropDown<2, 4> = 2                         ;// column 2 contains the values we care about 
 | |
|         ComboDropDown<2, 5> = 1                         ;// auto fill on 
 | |
|         ComboDropDown<2, 6> = 0                         ;// case sensitive off 
 | |
|         ComboDropDown<2, 7> = 10                        ;// 10 visible rows max 
 | |
|         ComboDropDown<2, 8> = 0                         ;// Don't fire the OnOptionClick 
 | |
|         ComboDropDown<2, 9> = 1                         ;// Reduce the list to partial matches 
 | |
|         ComboDropDown<2, 10> = 0                        ;// Only show the drop down when the user types 
 | |
|         ComboDropDown<2, 11> = 1                        ;// Do not use LIST Format 
 | |
|         ComboDropDown<2, 12> = 1                        ;// Autofill on first names 
 | |
|         ComboDropDown<2, 13> = 1                        ;// Hide dropdown when user clears cell 
 | |
|         ComboDropDown<2, 14> = 0                        ;// Let navigation keys show the drop down 
 | |
|         ComboDropDown<2, 15> = 0                        ;// Show the drop down regardless of the contents 
 | |
|         ComboDropDown<2, 16> = 0                        ;// Show the drop down during autofill 
 | |
|         ComboDropDown<2, 17> = 1                        ;// Remove selection when user backspaces/deletes 
 | |
|         ComboDropDown<2, 18> = 0                        ;// Show Popup while in read only mode 
 | |
|         ComboDropDown<2, 19> = 1                        ;// Show Popup When Navigating 
 | |
|         ComboDropDown<2, 20> = 1                        ;// Always Tab Out on Enter 
 | |
|         ComboDropDown<2, 21> = -1                       ;// Always show the dropdown above when close to the screen bottom 
 | |
|         Set_Property(@Window:".OLE_SUBCLASS", "OLE.Combo[EDL_ID]", ComboDropDown)
 | |
| 	end else
 | |
| 	    Set_Property(@Window:".OLE_SUBCLASS", "OLE.Combo[EDL_ID]", No$)
 | |
| 	end
 | |
| 	
 | |
| return
 | |
| 
 | |
| 
 | |
| LOSTFOCUS.COB_TABLE:
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	* Disables Option Button
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	GoSub Check_For_Options_Event
 | |
| return
 | |
| 
 | |
| 
 | |
| GOTFOCUS.EDL_ID:
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	* Activates the Option Button
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	Set_Property(Get_Property(@Window, "MDIFRAME"):".PUB_TB_OPTIONS", "ENABLED", Yes$)
 | |
| return
 | |
| 
 | |
| 
 | |
| OPTIONS.EDL_ID:
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	* Activates the Option Button
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	rv = Get_Property(@Window:".COB_TABLE", "INVALUE")
 | |
| 	If rv NE "" Then
 | |
| 		GoSub Get_Table_Name
 | |
| 		Gosub Get_Record_Ids
 | |
| 		If Assigned(ID) Else ID = ""
 | |
| 		If ID then
 | |
| 			Locate ID In List Using @VM Setting Pos Then
 | |
| 				tEDL = Get_Property(@Window:".EDL_ID", "INVALUE")
 | |
| 				If ID NE tEDL Then
 | |
| 					Set_Property(@Window:".EDT_INFO_BAK", "ARRAY", "")				
 | |
| 					Gosub ReInitialize
 | |
| 				End
 | |
| 				OrigId = OrigList<Pos>
 | |
| 				Set_Property(@Window:".EDL_ID", "DEFPROP", ID)
 | |
| 			End
 | |
| 			Send_Event(@Window:".EDL_ID", "LOSTFOCUS")
 | |
| 		End
 | |
| 	End Else
 | |
| 		ErrorMsg = "NOTABLE"
 | |
| 		Gosub MsgAlert
 | |
| 		Set_Property("SYSTEM", "FOCUS", @Window:".COB_TABLE")
 | |
| 	End
 | |
| return
 | |
| 
 | |
| CHANGED.EDL_ID:
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	* Clears OLE Table if the EDL ID field Being is blank
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 
 | |
| 	rv = Get_Property(@Window:".EDT_AUDIT_INFO", "OLE.Array")
 | |
| 	If rv<1,1> NE "" And Trim(Param1) EQ "" Then
 | |
| 		Set_Property(@Window:".EDT_AUDIT_INFO", "OLE.Array", "")
 | |
| 		Set_Property(@Window:".EDT_INFO_BAK", "ARRAY", "")
 | |
| 		Gosub Reinitialize
 | |
| 	End
 | |
| 	
 | |
| return
 | |
| 
 | |
| 
 | |
| LOSTFOCUS.EDL_ID:
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	* 
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 
 | |
| 	ByPassFlag = No$
 | |
| 	tVal = Get_Property(@Window:".COB_TABLE", "INVALUE")	
 | |
| 	eVal = Get_Property(@Window:".EDL_ID", "INVALUE")
 | |
| 	Begin Case
 | |
| 		Case Assigned(ErrorMsg)
 | |
| 			ByPassFlag = Yes$
 | |
| 		Case tVal = ""
 | |
| 			ByPassFlag = Yes$
 | |
| 		Case eVal = ""
 | |
| 			ByPassFlag = Yes$			
 | |
| 	End Case
 | |
| 	
 | |
| 	If ByPassFlag EQ No$ Then
 | |
| 		Parent = Get_Property(@Window, "PARENT")
 | |
| 		Parent = Field(Parent, ".", 1, 1)
 | |
| 		CurControl = Get_Property(Parent, "FOCUS")
 | |
| 		If CurControl = Parent:".PUB_TB_OPTIONS" else
 | |
| 			GoSub Get_Table_Name
 | |
| 			* Test to see if client manually entered in an Id			
 | |
| 			ID = Get_Property(@Window:".EDL_ID", "INVALUE")
 | |
| 			v.IdOrig = ID
 | |
| 			v.IdVis = Get_Property(@Window:".EDL_ID", "INVALUE")
 | |
| 			If ID = "" Then Gosub Get_Record_Ids			
 | |
| 			Tracker = Get_Property(@Window:".EDT_SETTINGS", "ARRAY")
 | |
| 			Locate Table In Tracker<1> Using @VM Setting Pos Then				
 | |
| 				AuditTable = "AUDIT_":Table
 | |
| 				Open AuditTable to Handle then
 | |
| 					ReadO Record from Handle, ID then											
 | |
| 						Array = ""
 | |
| 						Begin Case
 | |
| 							Case Tracker<6,Pos> EQ Yes$
 | |
| 								For X = 1 to 8
 | |
| 									Begin Case							
 | |
| 										Case X = 1
 | |
| 											Array<1> = OConv(Record<1>, "D/4")
 | |
| 										Case X = 2
 | |
| 											Array<2> = OConv(Record<2>, "MTHS")														
 | |
| 										Case Otherwise$
 | |
| 											Array<-1> = Record<X>
 | |
| 									End Case
 | |
| 								Next X
 | |
| 							Case Record<10> EQ ""
 | |
| 								For X = 1 to 8
 | |
| 									Begin Case							
 | |
| 										Case X = 1
 | |
| 											Array<1> = OConv(Record<1>, "D/4")
 | |
| 										Case X = 2
 | |
| 											Array<2> = OConv(Record<2>, "MTHS")														
 | |
| 										Case Otherwise$
 | |
| 											Array<-1> = Record<X>
 | |
| 									End Case
 | |
| 								Next X					
 | |
| 							Case Otherwise$
 | |
| 								MaxRecs = Count(Record<1>, @VM) + (Record<1> NE "")
 | |
| 								For X = 1 to MaxRecs
 | |
| 									If Record<6,X> EQ "" Then
 | |
| 										For Y = 1 To 8
 | |
| 											Begin Case
 | |
| 													Case Y = 1
 | |
| 													Array<1,-1> = OConv(Record<1,X>, "D/4")
 | |
| 												Case Y = 2
 | |
| 													Array<2,-1> = OConv(Record<2,X>, "MTHS")														
 | |
| 												Case Otherwise$
 | |
| 													Array<Y,-1> = Record<Y,X>
 | |
| 											End Case
 | |
| 										Next Y
 | |
| 									End
 | |
| 								Next X
 | |
| 						End Case
 | |
| 						Set_Property(@Window:".EDT_AUDIT_INFO", "OLE.Array", Array)
 | |
| 						Set_Property(Get_Property(@Window, "MDIFRAME"):".PUB_TB_OPTIONS", "ENABLED", No$)
 | |
| 						testFocus = Get_Property(@Window, "FOCUS")
 | |
| 						If testFocus EQ @Window:".EDL_ID" Then Set_Property(@Window:".EDT_AUDIT_INFO", "FOCUS", Yes$)			
 | |
| 					End	Else
 | |
| 						Set_Property(@Window:".EDT_AUDIT_INFO", "OLE.Array", "")
 | |
| 						Set_Property(@Window:".EDT_INFO_BAK", "ARRAY", "")
 | |
| 						Gosub ReInitialize
 | |
| 					End
 | |
| 				End Else
 | |
| 					ErrorMsg = "OPEN"
 | |
| 					TableName = AuditTable
 | |
| 					Gosub MsgAlert
 | |
| 					Set_Property(@Window:".EDL_ID", "INVALUE", "")
 | |
| 					Set_Property(@Window:".EDT_AUDIT_INFO", "OLE.Array", "")
 | |
| 					Set_Property(@Window:".EDT_INFO_BAK", "ARRAY", "")
 | |
| 					Gosub ReInitialize
 | |
| 				End
 | |
| 			End
 | |
| 		End
 | |
| 		GoSub Check_For_Options_Event
 | |
| 	End Else
 | |
| 		Set_Property(@Window:".EDT_AUDIT_INFO", "OLE.Array", "")
 | |
| 		Set_Property(@Window:".EDT_INFO_BAK", "ARRAY", "")
 | |
| 		Gosub ReInitialize		
 | |
| 	End
 | |
| return
 | |
| 
 | |
| OnHeaderClick.EDT_AUDIT_INFO:
 | |
| 
 | |
| 	HeaderPos = Field(Param1, ";", 1) 
 | |
| 	RowPos = Field(Param1, ";", 2)
 | |
| 	ColPos = HeaderPos - 1
 | |
| 	
 | |
| 	Begin Case
 | |
| 		Case HeaderPos = 1
 | |
| 		Case Otherwise$				
 | |
| 			PropArray     = CtrlEntId
 | |
| 			Set_Property(PropArray, "OLE.ImageList", DLL$:"#EDT_HEADER.BMP":@FM:3)
 | |
| 			For Pass = 1 to 9
 | |
| 				Begin Case
 | |
| 					Case HeaderPos = Pass	
 | |
| 						PropArray<-1> = "OLE.HeaderImage[":Param1:"]"			:@VM: 2
 | |
| 						PropArray<-1> = "OLE.HeaderAlignment[":Param1:"]<3>"	:@VM: "R"					
 | |
| 					Case Otherwise$
 | |
| 						PropArray<-1> = "OLE.HeaderImage[":Pass:";":1:"]"		:@VM: 0
 | |
| 				End Case
 | |
| 			Next Pass
 | |
| 			SRP_Set_Prop_Array(PropArray)	
 | |
| 		
 | |
| 		Utility("CURSOR", "H")
 | |
| 		/* User clicked on the column label, so a sort will be performed on this column */
 | |
| 		Invalue = Get_Property(CtrlEntId, "OLE.Array")
 | |
| 		If Invalue<1,1> NE "" Then
 | |
| 			Numb_cols = Count(Invalue, @FM) + (Invalue NE "")
 | |
| 			Numb_rows = Count(Invalue<1>, @VM) + (Invalue<1> NE "")
 | |
| 			Dim ClickCols(Numb_cols)
 | |
| 			Work = ""
 | |
| 			Flag = ""
 | |
| 			Just = "L"
 | |
| 			ClickCols(1) = ColPos
 | |
| 			For Loop = 2 to Numb_cols
 | |
| 				ClickCols(Loop) = Loop
 | |
| 			Next Loop
 | |
| 			ClickCols(ColPos) = 1
 | |
| 			For Row = 1 to Numb_rows
 | |
| 				For Col = 1 to Numb_cols
 | |
| 					Work := Invalue<ClickCols(Col), Row>:@FM
 | |
| 				Next Col
 | |
| 				Work[-1, 1] = @RM
 | |
| 			Next Row
 | |
| 			V119("S", "", "A", Just, Work, Flag)
 | |
| 			Invalue = ""
 | |
| 			For Row = 1 to Numb_rows
 | |
| 				Line = Field(Work, @RM, Row, 1)
 | |
| 				For Col = 1 to Numb_cols
 | |
| 					Invalue<Col, Row> = Line<ClickCols(Col)>
 | |
| 				Next Col
 | |
| 			Next Row
 | |
| 			Set_Property(CtrlEntId, "OLE.Array", Invalue)
 | |
| 			Utility("CURSOR", "A")
 | |
| 		End
 | |
| 	End Case	
 | |
| 
 | |
| return
 | |
| 
 | |
| OnClick.EDT_AUDIT_INFO:
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	* 
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	RowPos = Field(Param1, ";", 2)
 | |
| 
 | |
| 	If RowPos EQ 0 Else
 | |
| 		Ctrls = @Window:".EDL_ID":@RM:CtrlEntId:@RM:CtrlEntId:@RM:CtrlEntId:@RM:CtrlEntId:@RM:CtrlEntId:@RM:@Window:".COB_TABLE":@RM:@Window:".EDT_SETTINGS"		
 | |
| 		Props = "INVALUE":@RM:"OLE.CellText[4;":RowPos:"]":@RM:"OLE.CellText[1;":RowPos:"]":@RM:"OLE.CellText[2;":RowPos:"]":@RM:"OLE.CellText[6;":RowPos:"]":@RM:"OLE.CellText[8;":RowPos:"]":@RM:"INVALUE":@RM:"ARRAY"
 | |
| 		rv = Get_Property(Ctrls, Props)
 | |
| 		ID		 = Field(rv, @RM, 1, 1)
 | |
| 		Station  = Field(rv, @RM, 2, 1)
 | |
| 		DateIn   = Iconv(Field(rv, @RM, 3, 1), "D")
 | |
| 		TimeIn   = Iconv(Field(rv, @RM, 4, 1), "MTHS")
 | |
| 		pRec	 = Field(rv, @RM, 5, 1)
 | |
| 		vRec	 = Field(rv, @RM, 6, 1)
 | |
| 		TableId  = Field(rv, @RM, 7, 1)
 | |
| 		Settings = Field(rv, @RM, 8, 1)
 | |
| 		Convert @Lower_Case to @Upper_Case in TableId
 | |
| 		Locate TableId in Settings<1> Using @VM Setting iPos Then
 | |
| 			If pRec NE "" Then
 | |
| 				tRec = Settings<6,iPos>
 | |
| 			End Else
 | |
| 				tRec = 0
 | |
| 			End
 | |
| 			If tRec EQ "" Then tRec = 0
 | |
| 			If tRec EQ No$ And vRec EQ "Read" Else
 | |
| 				RecId = ID:"*":Station:"*":DateIn:"*":TimeIn				
 | |
| 				Open "AUDIT_":TableId to Handle Then
 | |
| 					ReadO StoredRec From Handle, RecId Then
 | |
| 						Pos = Field(Param1, ";", 2) 
 | |
| 						sVal = ""
 | |
| 						ColorInfo = "OLE.CellColors[":Param1:"]"
 | |
| 						rv = Get_Property(@Window:".EDT_AUDIT_INFO", ColorInfo)
 | |
| 			
 | |
| 						Color = "Select L=80"
 | |
| 						CHB_None  = "3D Face L=90"
 | |
| 						CHB_Color = "3D Face L=80"
 | |
| 	
 | |
| 						rVal = Get_Property(@Window:".EDT_INFO_BAK", "ARRAY")
 | |
| 				
 | |
| 						If rv<2> NE Color Then
 | |
| 							PropArray     = @Window:".EDT_AUDIT_INFO"
 | |
| 							PropArray<-1> = "OLE.CellColors[1;":Pos:"]<2>"		:@VM:Color
 | |
| 							PropArray<-1> = "OLE.CellColors[2;":Pos:"]<2>"		:@VM:Color
 | |
| 							PropArray<-1> = "OLE.CellColors[3;":Pos:"]<2>"		:@VM:Color
 | |
| 							PropArray<-1> = "OLE.CellColors[4;":Pos:"]<2>"		:@VM:Color
 | |
| 							PropArray<-1> = "OLE.CellColors[5;":Pos:"]<2>"		:@VM:Color
 | |
| 							PropArray<-1> = "OLE.CellColors[6;":Pos:"]<2>"		:@VM:Color
 | |
| 							PropArray<-1> = "OLE.CellColors[7;":Pos:"]<2>"		:@VM:Color
 | |
| 							PropArray<-1> = "OLE.CellColors[8;":Pos:"]<2>"		:@VM:Color
 | |
| 							SRP_Set_Prop_Array(PropArray)
 | |
| 	
 | |
| 							TestCol = rVal
 | |
| 							Convert @FM to "" In TestCol
 | |
| 							Convert @VM to "" In TestCol
 | |
| 							If Trim(TestCol) = "" Then rVal = ""
 | |
| 							MaxR = Count(rVal<1>, @VM) + (rVal NE "") + 1
 | |
| 							rVal = Insert(rVal, 1, -1, 0, RecId)
 | |
| 							Swap @VM:@VM With @VM in rVal
 | |
| 							If MaxR EQ 1 Then
 | |
| 								Set_Property(@Window:".PUB_RESTORE", "ENABLED", Yes$)
 | |
| 							End Else
 | |
| 								Set_Property(@Window:".PUB_RESTORE", "ENABLED", No$)
 | |
| 							End
 | |
| 							Set_Property(@Window:".PUB_VIEW", "ENABLED", Yes$)
 | |
| 						End Else
 | |
| 							PropArray     = @Window:".EDT_AUDIT_INFO"
 | |
| 							PropArray<-1> = "OLE.CellColors[1;":Pos:"]<2>"		:@VM:"None"
 | |
| 							PropArray<-1> = "OLE.CellColors[2;":Pos:"]<2>"		:@VM:"None"
 | |
| 							PropArray<-1> = "OLE.CellColors[3;":Pos:"]<2>"		:@VM:"None"
 | |
| 							PropArray<-1> = "OLE.CellColors[4;":Pos:"]<2>"		:@VM:"None"
 | |
| 							PropArray<-1> = "OLE.CellColors[5;":Pos:"]<2>"		:@VM:"None"
 | |
| 							PropArray<-1> = "OLE.CellColors[6;":Pos:"]<2>"		:@VM:"None"
 | |
| 							PropArray<-1> = "OLE.CellColors[7;":Pos:"]<2>"		:@VM:"None"
 | |
| 							PropArray<-1> = "OLE.CellColors[8;":Pos:"]<2>"		:@VM:"None"
 | |
| 							SRP_Set_Prop_Array(PropArray)
 | |
| 							Locate RecId in rVal<1> Using @VM Setting xPos Then
 | |
| 								rVal = Delete(rVal, 1, xPos, 0)
 | |
| 								Swap @VM:@VM With @VM in rVal
 | |
| 								Convert @VM to " " in rVal
 | |
| 								rVal = Trim(rVal)
 | |
| 								MaxR = Count(rVal, " ") + (rVal NE "")
 | |
| 								Begin Case
 | |
| 									Case MaxR EQ 0
 | |
| 										Set_Property(@Window:".PUB_RESTORE", "ENABLED", No$)
 | |
| 										Set_Property(@Window:".PUB_VIEW", "ENABLED", No$)
 | |
| 									Case MaxR EQ 1
 | |
| 										Set_Property(@Window:".PUB_RESTORE", "ENABLED", Yes$)
 | |
| 										Set_Property(@Window:".PUB_VIEW", "ENABLED", Yes$)
 | |
| 									Case Otherwise$
 | |
| 										Set_Property(@Window:".PUB_VIEW", "ENABLED", Yes$)
 | |
| 								End Case
 | |
| 								Convert " " to @VM in rVal							
 | |
| 							End										
 | |
| 						End
 | |
| 						Set_Property(@Window:".EDT_INFO_BAK", "ARRAY", rVal)
 | |
| 					End
 | |
| 				End
 | |
| 			End
 | |
| 		End
 | |
| 	End
 | |
| return
 | |
| 
 | |
| 
 | |
| PosChanged.EDT_AUDIT_INFO:
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	* 
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	Pos = Field(Param1, ";", 2)
 | |
| 	PropArray     = @Window:".EDT_AUDIT_INFO"
 | |
| 	rv = Get_Property(PropArray, "OLE.CellText[1;":Pos:"]")
 | |
| 	If rv EQ "" Then
 | |
| 		PropArray<-1> = "OLE.CellColors[1;":Pos:"]<2>"		:@VM:"None"
 | |
| 		PropArray<-1> = "OLE.CellColors[2;":Pos:"]<2>"		:@VM:"None"
 | |
| 		PropArray<-1> = "OLE.CellColors[3;":Pos:"]<2>"		:@VM:"None"
 | |
| 		PropArray<-1> = "OLE.CellColors[4;":Pos:"]<2>"		:@VM:"None"
 | |
| 		PropArray<-1> = "OLE.CellColors[5;":Pos:"]<2>"		:@VM:"None"
 | |
| 		PropArray<-1> = "OLE.CellColors[6;":Pos:"]<2>"		:@VM:"None"
 | |
| 		PropArray<-1> = "OLE.CellColors[7;":Pos:"]<2>"		:@VM:"None"
 | |
| 		PropArray<-1> = "OLE.CellColors[8;":Pos:"]<2>"		:@VM:"None"
 | |
| 		SRP_Set_Prop_Array(PropArray)
 | |
| 	End
 | |
| 	
 | |
| return
 | |
| 
 | |
| BeforeDeleteRecords.EDT_AUDIT_INFO:
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	* Process does not allow rows to be deleted
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	Set_Property(CtrlEntId, "OLE.Cancel", Yes$)
 | |
| 	
 | |
| return
 | |
| 
 | |
| 
 | |
| BeforeInsertRecords.EDT_AUDIT_INFO:
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	* Process does not allow rows to be inserted
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	Set_Property(CtrlEntId, "OLE.Cancel", Yes$)
 | |
| 	
 | |
| return
 | |
| 
 | |
| OnOptionClick.OLE_SUBCLASS:
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	* KRF - 11/26/14 - No longer needed because we switched from an option button to a regular button
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| * 	Gosub OPTIONS.EDL_ID
 | |
| 
 | |
| return
 | |
| 
 | |
| 
 | |
| PUB_ALL_IDS_CLICK:
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	* KEF - 11/26/14 - New button for the popup since the ID dropdown now only contains 500 most recent
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
|     GoSub OPTIONS.EDL_ID
 | |
| return
 | |
| 
 | |
| 
 | |
| PUB_RESTORE_CLICK:
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	* 
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 
 | |
| 	Begin Case
 | |
| 		Case Window = "NDW_AUDIT_TRAIL"
 | |
| 			Win$ = @Window
 | |
| 		Case Otherwise$
 | |
| 			Win$ = Get_Property(@Window:".EDL_WINDOW", "INVALUE")
 | |
| 	End Case
 | |
| 	TableName = Get_Property(Win$:".COB_TABLE", "INVALUE")
 | |
| 	Convert @Lower_Case to @Upper_Case in TableName
 | |
| 	rVal = Get_Property(Win$:".EDT_INFO_BAK", "ARRAY")
 | |
| 	Convert @VM to " " in rVal
 | |
| 	rVal = Trim(rVal)
 | |
| 	TestVal = Count(rVal, " ")
 | |
| 	If TestVal GT 0 Then
 | |
| 		ErrorMsg = "TOOMANY"
 | |
| 		Gosub MsgAlert
 | |
| 	End Else
 | |
| 		ErrorMsg = "RESTORE"
 | |
| 		Gosub MsgAlert
 | |
| 		If rv = Yes$ Then
 | |
| 			AuditId = rVal
 | |
| 			OrigId = Get_Property(Win$:".EDL_ID", "INVALUE")
 | |
| 			Begin Case
 | |
| 				Case AuditId = ""
 | |
| 					ErrorMsg = "ID"
 | |
| 					IdName = "Audit Primary Key"
 | |
| 					Gosub MsgAlert
 | |
| 				Case OrigId  = ""
 | |
| 					ErorMsg = "ID"
 | |
| 					IdName = "Primary Key"
 | |
| 					Gosub MsgAlert
 | |
| 				Case Otherwise$
 | |
| 					Open TableName To hORT Then
 | |
| 						Open "AUDIT_":TableName To hADT Then
 | |
| 							ReadO Record From hADT, AuditId Then
 | |
| 								Write Record To hORT, OrigId Then
 | |
| 									ErrorMsg = "RESTORED"
 | |
| 									Gosub MsgAlert
 | |
| 								End Else
 | |
| 									RecId = OrigId
 | |
| 									ErrorMsg = "WRITE"
 | |
| 									Gosub MsgAlert
 | |
| 								End
 | |
| 							End Else
 | |
| 								ErrorMsg = "READ"
 | |
| 								RecId = AuditId
 | |
| 								Gosub MsgAlert
 | |
| 							End
 | |
| 						End Else
 | |
| 							ErrorMsg = "OPEN"				
 | |
| 							Gosub MsgAlert
 | |
| 						End
 | |
| 					End Else
 | |
| 						ErrorMsg = "OPEN"
 | |
| 						Gosub MsgAlert
 | |
| 					End					
 | |
| 			End Case
 | |
| 		End
 | |
| 	End	
 | |
| 	
 | |
| return
 | |
| 
 | |
| 
 | |
| PUB_VIEW_CLICK:
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	* Generates the Audit Viewer Windows 
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	TableName = Get_Property(@Window:".COB_TABLE", "INVALUE")
 | |
| 	Convert @Lower_Case to @Upper_Case In TableName 
 | |
| 	RecId = Get_Property(@Window:".EDT_INFO_BAK", "ARRAY")
 | |
| 	Win$ = @Window	
 | |
| 	Open "AUDIT_":TableName to hAGT Then
 | |
| 		MaxRecs = Count(RecId, @VM) + (RecId NE "")
 | |
| 		For X = 1 to MaxRecs
 | |
| 			ReadO RecInfo From hAGT, RecId<1,X> Then
 | |
| 				Parent = @Window
 | |
| 				Frame = Get_Property(Parent, "MDIFRAME")
 | |
| 				If Len(Frame) Then Parent = Frame
 | |
| 				Begin Case
 | |
| 					Case Parent = "FRW_MAIN"						
 | |
| 						LStartPt = 20
 | |
| 						TStartPt = 10
 | |
| 						rv = Start_MDIChild("NDW_AUDIT_VIEWER", Parent)
 | |
| 					Case Otherwise$						
 | |
| 						LStartPt = 20
 | |
| 						TStartPt = 10
 | |
| 						rv = Start_Window("NDW_AUDIT_VIEWER", Parent)
 | |
| 				End Case			
 | |
| 
 | |
| 				Qualifier    = ""
 | |
| 				Qualifier<1> = Yes$
 | |
| 				Qualifier<4> = Yes$
 | |
| 				Send_Message(rv:".OLE_VIEWER", "QUALIFY_EVENT", "ALL_OLES", 1)
 | |
| 				Send_Message(rv:".OLE_ARCHIVE", "QUALIFY_EVENT", "ALL_OLES", 1)
 | |
| 				Send_Message(rv:".OLE_ORIGINAL", "QUALIFY_EVENT", "ALL_OLES", 1)
 | |
| 
 | |
| 				MxAs = Count(RecID<1,X>, "*") + (RecId<1,X> NE "")
 | |
| 				oId = MxAs - 3
 | |
| 				Date = Oconv(Field(RecId<1,X>, "*", MxAs - 1), "D/4")
 | |
| 				Time = Oconv(Field(RecId<1,X>, "*", MxAs), "MTHS")				
 | |
| 				RecTitle = "Table: ":TableName:" - ID: ":Field(RecId<1,X>, "*", 1, oId):" - ":Date:" - ":Time				
 | |
| 				Title = Get_Property(rv, "TEXT")				
 | |
| 				Title = Title:" - ":RecTitle
 | |
| 				ViewerCtrl = rv:".OLE_VIEWER"
 | |
| 				Ctrls = rv:".EDL_WINDOW":@RM:rv:".EDL_AREC_ID":@RM:rv
 | |
| 				Props = "INVALUE":@RM:"INVALUE":@RM:"TEXT"
 | |
| 				Vals  = Win$:@RM:RecId<1,X>:@RM:Title
 | |
| 				Set_Property(Ctrls, Props, Vals)
 | |
| 				
 | |
| 				* Send_Message(ViewerCtrl, "OLE.LoadText", GetPointer(RecInfo), Len(RecInfo), 1)
 | |
| 				LenData = Len(RecInfo)
 | |
| 				RecInfo = Str_Unicode(RecInfo)
 | |
| 				LockVariable RecInfo as Char
 | |
| 				Send_Message(ViewerCtrl, "OLE.LoadTextW", GetPointer(RecInfo), LenData, 1)
 | |
| 				Set_Property(ViewerCtrl, "OLE.ReadOnly", Yes$)
 | |
| 				
 | |
| 				ViewerCtrl = rv:".OLE_ARCHIVE"
 | |
| 				* Send_Message(ViewerCtrl, "OLE.LoadText", GetPointer(RecInfo), Len(RecInfo), 1)
 | |
| 				Send_Message(ViewerCtrl, "OLE.LoadTextW", GetPointer(RecInfo), LenData, 1)
 | |
| 				UnlockVariable Data
 | |
| 				
 | |
| 				Set_Property(ViewerCtrl, "OLE.ReadOnly", Yes$)
 | |
| 				Set_Property(rv:".PUB_RESTORE", "PAGELIST", -1)
 | |
| 				Set_Property(rv:".PUB_CANCEL",  "PAGELIST", -1)
 | |
|  				oRecId = Get_Property(Win$:".EDL_ID", "INVALUE")
 | |
|  				Open TableName to hORT Then
 | |
|  					ReadO RecInfo From hORT, oRecId Then			
 | |
| 						ViewerCtrl = rv:".OLE_ORIGINAL"
 | |
| 						
 | |
| 						* Send_Message(ViewerCtrl, "OLE.LoadText", GetPointer(RecInfo), Len(RecInfo), 1)
 | |
| 						LenData = Len(RecInfo)
 | |
| 						RecInfo = Str_Unicode(RecInfo)
 | |
| 						LockVariable RecInfo as Char
 | |
| 						Send_Message(ViewerCtrl, "OLE.LoadTextW", GetPointer(RecInfo), LenData, 1)
 | |
| 						UnlockVariable Data						
 | |
| 
 | |
| 						Set_Property(ViewerCtrl, "OLE.ReadOnly", Yes$)
 | |
| 					End
 | |
| 					cWin$ = rv
 | |
| 					Page = 1
 | |
| 					Gosub ResetTabOrder
 | |
| 				End
 | |
| 				SRP_Show_Window(rv, "", "L":(LStartPt) + (X*10),"T":(TStartPt) + (X*20), Yes$)				
 | |
| 			End
 | |
| 		Next X
 | |
| 	End
 | |
| 	
 | |
| return
 | |
| 
 | |
| CLEAR:
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	* This Gosub clears the viewable Audit Trail Information
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	Ctrls = @Window:".EDT_AUDIT_INFO":@RM:@Window:".EDT_INFO_BAK":@RM:@Window:".COB_TABLE":@RM:@Window:".EDL_ID"
 | |
| 	Props = "OLE.Array":@RM:"ARRAY":@RM:"INVALUE":@RM:"INVALUE"
 | |
| 	Vals  = "":@RM:"":@RM:"":@RM:""
 | |
| 	Set_Property(Ctrls, Props, Vals)				
 | |
| 	Gosub ReInitialize
 | |
| 	
 | |
| return
 | |
| 
 | |
| 
 | |
| *------------------------
 | |
| * Internal Processes
 | |
| *------------------------
 | |
| 
 | |
| Check_For_Options_Event:
 | |
| 	Temp = Get_Property(@Window, "FOCUS")
 | |
| 	Events = Get_Property(Temp, "ORIG_STRUCT")<1, 21>
 | |
| 	If Index(Events, "OPTIONS*", 1) then
 | |
| 		Set_Property(Get_Property(@Window, "MDIFRAME"):".PUB_TB_OPTIONS", "ENABLED", Yes$)
 | |
| 	end else
 | |
| 		Set_Property(Get_Property(@Window, "MDIFRAME"):".PUB_TB_OPTIONS", "ENABLED", No$)
 | |
| 	end
 | |
| return
 | |
| 
 | |
| 
 | |
| First_Caps:
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	* 
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	FM_Count = Count(List, @FM) + (List NE "")
 | |
| 	For FM = 1 to FM_Count
 | |
| 		VM_Count = Count(List<FM>, @VM) + (List<FM> NE "")
 | |
| 		For VM = 1 to VM_Count
 | |
| 			Temp = List<FM, VM>
 | |
| 			Convert "_" to " " in Temp
 | |
| 			Convert @Upper_case to @Lower_case in Temp
 | |
| 			Len_temp = Len(Temp)
 | |
| 			For Pos = 1 to Len_temp
 | |
| 				Cur_char = Temp[Pos, 1]
 | |
| 				If (Pos EQ 1) OR (Temp[(Pos - 1), 1] EQ " ") then
 | |
| 					Convert @Lower_case to @Upper_case in Cur_char
 | |
| 				end
 | |
| 				Temp[Pos, 1] = Cur_char
 | |
| 			Next Pos
 | |
| 			List<FM, VM> = Temp
 | |
| 		Next VM
 | |
| 	Next FM
 | |
| return
 | |
| 
 | |
| 
 | |
| Get_Table_Name:
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	* 
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	Gosub Get_AuditM_Settings
 | |
| 	TableList = Get_Property(@Window, "@TABLE_LIST")
 | |
| 	SelectedRow = Get_Property(@Window:".COB_TABLE", "SELPOS")
 | |
| 	Table = TableList<SelectedRow>
 | |
| return
 | |
| 
 | |
| 
 | |
| Get_Record_Ids:
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	* 
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	Open "AUDIT_":Table to hADT Then
 | |
| 		List = ""
 | |
| 		cPos = 0
 | |
| 		Done = No$
 | |
| 		Select hADT
 | |
| 		Loop
 | |
| 			ReadNext aID Else Done = Yes$
 | |
| 		Until Done = Yes$
 | |
| 			ReadO TempRec From hADT, aID Then
 | |
| 				If TempRec<9> EQ "AUDIT TRACKING RECORD" Then
 | |
| 		 			List<-1> = aID
 | |
| 				End
 | |
| 			End Else
 | |
| 				ErrorMsg = "READ"
 | |
| 				RecId = aID
 | |
| 				Gosub MsgAlert
 | |
| 			End
 | |
| 		Repeat
 | |
| 		
 | |
| 		If List GT "" Then
 | |
| 			Flag = ""
 | |
| 			Swap @FM with @RM in List
 | |
| 			List := @RM
 | |
| 			V119("S", "", "A", "L", List, Flag)
 | |
| 			List[-1, 1] = "" 
 | |
| 			Swap @RM with @FM in List
 | |
| 			OrigList = List
 | |
| 			* GoSub First_Caps
 | |
| 			Convert @FM to @VM in List
 | |
| 			Begin Case
 | |
| 				Case Event = "OPTIONS.EDL_ID" or EventAction = "OnOptionClick.OLE_SUBCLASS"	or EventAction = "CLICK.PUB_ALL_IDS"
 | |
| 					PopupStats    = ""
 | |
| 					PopupStats<1> = -2
 | |
| 					PopupStats<2> = -2
 | |
| 					PopupStats<3> = -1
 | |
| 					PopupStats<4> = -1
 | |
| 					PopupStats<5> = 16777215
 | |
| 					PopupStats<6> = "MS Sans Serif":@SVM:-11:@SVM:400:@SVM:0:@SVM:0:@SVM:6:@SVM:0:@SVM:33:@SVM:0:@SVM:0:@SVM:0:@SVM:0:@SVM:11:@SVM:2:@SVM:0:@SVM:12
 | |
| 					PopupStats<8> = List
 | |
| 					PopupStats<9> = @SVM:30:@SVM:"L":@SVM:"L":@SVM:@SVM:"Record IDs"
 | |
| 					PopupStats<10> = "L"
 | |
| 					PopupStats<11> = 1
 | |
| 					PopupStats<12> = "Record IDs"
 | |
| 					PopupStats<13> = 1
 | |
| 					PopupStats<14> = "F"
 | |
| 					PopupStats<15> = 0
 | |
| 					PopupStats<16> = 0
 | |
| 					PopupStats<17> = 0
 | |
| 					PopupStats<18> = 1
 | |
| 					PopupStats<19> = 1
 | |
| 					PopupStats<20> = 1
 | |
| 					PopupStats<21> = 1
 | |
| 					PopupStats<22> = 1
 | |
| 					ID = PopUp(@Window, PopupStats)
 | |
| 				Case Otherwise$
 | |
| 					rv = Get_Property(@Window:".EDL_ID", "INVALUE")
 | |
| 			End Case
 | |
| 		End Else
 | |
| 			ErrorMsg = "NOIDS"
 | |
| 			TableName = Table
 | |
| 			Gosub MsgAlert
 | |
| 		End
 | |
| 	End Else
 | |
| 		ErrorMsg = "OPEN"
 | |
| 		TableName = "AUDIT_":Table
 | |
| 		Gosub MsgAlert
 | |
| 	End	
 | |
| return
 | |
| 
 | |
| 
 | |
| CompareValues:
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	* 
 | |
| 	*----------------------------------------------------------------------------------------------------
 | |
| 	dRow = ""
 | |
| 	MxORows = Count(RecInfo, @FM) + (RecInfo NE "")
 | |
| 	MxARows = Count(ARecINfo, @FM) + (ARecInfo NE "")
 | |
| 	
 | |
| 	If MxORows GE MxARows Then
 | |
| 		MxRows = MxORows
 | |
| 	End Else
 | |
| 		MxRows = MxARows
 | |
| 	End
 | |
| 	
 | |
| 	For X = 1 to MxRows
 | |
| 		If RecInfo<X> NE ARecInfo<X> Then
 | |
| 			dRow<-1> = X
 | |
| 		End
 | |
| 	Next X
 | |
| 	
 | |
| 	If dRow NE "" Then
 | |
| 		Ctrls = @Window:".OLE_ARCHIVE":@RM:@Window:".OLE_ORIGINAL":@RM:@Window:".OLE_VIEWER"
 | |
| 		Props = "OLE.ErrorLines":@RM:"OLE.ErrorLines":@RM:"OLE.ErrorLines"
 | |
| 		Vals  = dRow:@RM:dRow:@RM:dRow
 | |
| 		Set_Property(Ctrls, Props, Vals)
 | |
| 	End
 | |
| return
 | |
| 
 | |
| Get_AuditM_Settings:
 | |
| 
 | |
| 	Open AuditManagerTable to hAIT then
 | |
| 		AppID = "AUDIT_MANAGER_SETTINGS"
 | |
| 		ReadO AppRec from hAIT, AppID then
 | |
| 			tableVal = Get_Property(@Window:".COB_TABLE", "INVALUE")
 | |
| 			List = AppRec<1>
 | |
| 			Flag = ""
 | |
| 			Swap @VM with @RM in List
 | |
| 			List := @RM
 | |
| 			V119("S", "", "A", "L", List, Flag)
 | |
| 			List[-1, 1] = "" 
 | |
| 			Swap @RM with @FM in List
 | |
| 			Set_Property(@Window, "@TABLE_LIST", List)
 | |
| 			* GoSub First_Caps
 | |
| 			Ctrls = @Window:".COB_TABLE":@RM:@Window:".COB_TABLE":@RM:@Window:".EDT_SETTINGS"
 | |
| 			Props = "LIST":@RM:"INVALUE":@RM:"ARRAY"
 | |
| 			Vals  = List:@RM:tableVal:@RM:AppRec
 | |
| 			Set_Property(Ctrls, Props, Vals)
 | |
| 		end
 | |
| 	end
 | |
| 	
 | |
| return
 | |
| 	
 | |
| ReInitialize:
 | |
| 	*-------------------------------------------------------------------------------------------------------------------------------------
 | |
| 	* Disables the View and Restore Buttons and returns the Cell to our default color.
 | |
| 	*-------------------------------------------------------------------------------------------------------------------------------------
 | |
| 
 | |
|  	Ctrls = @Window:".PUB_VIEW":@RM:@Window:".PUB_RESTORE"
 | |
|  	Props = "ENABLED":@RM:"ENABLED"
 | |
|  	Vals  = 0:@RM:0
 | |
|  	Set_Property(Ctrls, Props, Vals)
 | |
| 	
 | |
| 	PropArray     = @Window:".EDT_AUDIT_INFO"
 | |
| 	PropArray<-1> = "OLE.CellColors[All;All]<2>"	:@VM:"None"
 | |
| 	SRP_Set_Prop_Array(PropArray)
 | |
| 
 | |
| return
 | |
| 	
 | |
| 	
 | |
| MsgAlert:
 | |
| 	*-------------------------------------------------------------------------------------------------------------------------------------
 | |
| 	*
 | |
| 	*-------------------------------------------------------------------------------------------------------------------------------------
 | |
| 
 | |
| 	Mess = ""
 | |
| 	Mess<MTYPE$>  = "BO"
 | |
| 	Mess<MICON$>  = "!"
 | |
| 	Mess<MCAPTION$> = "Audit Trail"
 | |
| 
 | |
| 	Error = "An undefined error has occurred with this process"
 | |
| 	Begin Case
 | |
| 		Case ErrorMsg = "OPEN"
 | |
| 			Error = "Unable to Open the ": TableName: " table."
 | |
| 
 | |
| 		Case ErrorMsg = "READ"
 | |
| 			Error = "Unable to Read ": RecId:" record."
 | |
| 			
 | |
| 		Case ErrorMsg = "WRITE"
 | |
| 			Error = "Unable to Write ": RecId:" record."
 | |
| 		
 | |
| 		Case ErrorMsg = "NOIDS"
 | |
| 			Error = "There are no audit records for the ":TableName:" table."
 | |
| 				
 | |
| 		Case ErrorMsg = "ID"
 | |
| 			Error = IdName: " is Null."
 | |
| 						
 | |
| 		Case ErrorMsg = "RESTORED"
 | |
| 			Error = "Record ":OrigId:" has been restored to the ":TableName:" table."
 | |
| 		
 | |
| 		Case ErrorMsg = "TOOMANY"
 | |
| 			Error = "You only restore one record at a time."
 | |
| 			
 | |
| 		Case ErrorMsg = "RESTORE"
 | |
| 			Mess<MICON$>  = "?"
 | |
| 			Mess<MTYPE$>  = "BNY"
 | |
| 			Error = "Would you like to restore this entry?"
 | |
| 			
 | |
| 		Case ErrorMsg = "NOTABLE"
 | |
| 			Error = "No Table Selected"		
 | |
| 	End Case
 | |
| 
 | |
| 	Mess<MTEXT$> = Error
 | |
| 	rv = Msg("",Mess)
 | |
| 
 | |
| return
 | |
| 
 | |
| ResetTabOrder:
 | |
| 	*-------------------------------------------------------------------------------------------------------------------------
 | |
| 	* Resets Tab Order
 | |
| 	*-------------------------------------------------------------------------------------------------------------------------
 | |
| 
 | |
| 	LastPageCtrl = ""
 | |
| 	LastCtrl = ""
 | |
| 	FirstCtrl = ""
 | |
| 	rVal = ""
 | |
| 	PCtrls = ""
 | |
| 	NCtrls = ""
 | |
| 	NProps = ""
 | |
| 
 | |
| 	Begin Case
 | |
| 		Case cWin$ EQ "NDW_AUDIT_TRAIL"
 | |
| 			rVal<1> = @Window:".COB_TABLE"
 | |
| 			rVal<2> = @Window:".EDL_ID"
 | |
| 			rVal<3> = @Window:".EDT_AUDIT_INFO"
 | |
| 			rVal<4> = @Window:".PUB_RESTORE"
 | |
| 			rVal<5> = @Window:".PUB_VIEW"
 | |
| 					
 | |
| 		Case Otherwise$
 | |
| 			Begin Case
 | |
| 				Case Page EQ 1
 | |
| 					Set_Property("SYSTEM", "FOCUS", cWin$:".OLE_VIEWER")			
 | |
| 					rVal<1> = cWin$:".OLE_VIEWER"
 | |
| 					rVal<2> = cWin$:".PUB_RESTORE"
 | |
| 					rVal<3> = cWin$:".PUB_COMPARE"					
 | |
| 					rVal<4> = cWin$:".PUB_CLOSE"
 | |
| 				Case Page EQ 2
 | |
| 					Set_Property("SYSTEM", "FOCUS", cWin$:".OLE_ARCHIVE")
 | |
| 					rVal<1> = cWin$:".OLE_ARCHIVE"
 | |
| 					rVal<2> = cWin$:".OLE_ORIGINAL"
 | |
| 					rVal<3> = cWin$:".PUB_RESTORE"					
 | |
| 					rVal<4> = cWin$:".PUB_RETURN"
 | |
| 					rVal<5> = cWin$:".PUB_CLOSE"
 | |
| 			End Case	
 | |
| 	End Case
 | |
| 	MxC = Count(rVal,@FM) + (rVal NE "")
 | |
| 
 | |
| 	For i = 1 to MxC
 | |
| 		If i = MxC Then
 | |
| 			nVal = 1
 | |
| 		End Else
 | |
| 			nVal = i + 1
 | |
| 		End
 | |
| 		PCtrls<-1> = rVal<i>		
 | |
| 		NCtrls<-1> = rVal<nVal>
 | |
| 		NProps<-1> = "NEXT"
 | |
| 	Next i
 | |
| 	
 | |
| 	Convert @FM to @RM in PCtrls
 | |
| 	Convert @FM to @RM in NCtrls
 | |
| 	Convert @FM to @RM in NProps
 | |
| 
 | |
| 	Set_Property(PCtrls, NProps, NCtrls)
 | |
| return
 |