COMPILE FUNCTION Recipe_Comm(Instruction,Parm1,Parm2) $INSERT RECIPE_EQUATES $INSERT RECIPE_LAYER_INFO_EQU $INSERT MSG_EQUATES $INSERT POPUP_EQUATES $INSERT LOGICAL $INSERT DICT_EQUATES EQU CRLF$ TO CHAR(13):CHAR(10) DECLARE FUNCTION memberof, scroll_enable, utility, popup DECLARE FUNCTION set_property, fieldcount, get_property, msg, editcell, send_event, dialog_box DECLARE SUBROUTINE create_note, ErrMsg, Set_Property ReturnVar = 0 BEGIN CASE CASE Instruction = 'GET_FIELDS_VALUES' ; GOSUB GET_FIELDS_VALUES CASE Instruction = 'VIEW_MOD_INFO' ; GOSUB VIEW_MOD_INFO CASE Instruction = 'WRITE_STAMP' ; GOSUB WRITE_STAMP CASE Instruction = 'READ_STORE' ; GOSUB READ_STORE CASE Instruction = 'TabClick' ; GOSUB TabClick CASE 1 ErrMsg('Unknown Instruction ':QUOTE(Instruction):' passed to Recipe_Comm') END CASE RETURN ReturnVar * * * * * * * TabClick: * * * * * * * IF Parm1 NE '' THEN Page = Parm1 END ELSE Page = Get_Property(@WINDOW:'.TABCONTROL_1','VALUE') END Set_Property(@WINDOW,'VPOSITION',Page) RETURN * * * * * * * WRITE_STAMP: * * * * * * * * GET ARRAY OF ALL UNIQUE FIELDS OrigFields = get_property( @window, '@Fields' ) OrigValues = get_property( @window, '@Values' ) FieldCToUse = 'RMOD_FIELD' IDCToUse = 'RMOD_ID' FieldsInControl = get_property( @window:'.':FieldCToUse, 'TEXT' ) IDSInControl = get_property( @window:'.':IDCToUse, 'TEXT' ) gosub get_fields_values Acnt = fieldcount( OrigFields, @fm ) for i = 1 to Acnt FieldToCheck = OrigFields if Values <> OrigValues then locate FieldToCheck in FieldsInControl by 'AL' using @vm setting CPos then IDSInControl<1,CPos> = @user4 end else FieldsInControl = insert( FieldsInControl, 1, CPos, 0, FieldToCheck ) IDSInControl = insert( IDSInControl, 1, CPos, 0, @user4 ) end end next i Void = set_property( @window:'.':FieldCToUse, 'TEXT', FieldsInControl ) Void = set_property( @window:'.':IDCToUse, 'TEXT', IDSInControl ) Void = set_property( @window, '@Fields', '' ) Void = set_property( @window, '@Values', '' ) RETURN * * * * * * * GET_FIELDS_VALUES: * * * * * * * * Called on read event of recipe Fields = '' Values = '' AllControls = Utility( 'OBJECTLIST', @window, '' ) Acnt = FIELDCOUNT( AllControls, @FM ) FOR I = 1 TO Acnt ThisControl = AllControls Type = get_property( ThisControl, 'TYPE' ) Column = get_property( ThisControl, 'COLUMN' ) IF Type = 'EDITTABLE' OR Type = 'EDITFIELD' OR Type = 'EDITBOX' OR Type = 'COMBOBOX' THEN CCnt = FIELDCOUNT( Column, @svm ) FOR J = 1 TO CCnt ThisColumn = Column<1,1,J> IF ThisColumn <> '' THEN LOCATE ThisColumn IN Fields BY 'AL' USING @FM SETTING Fpos ELSE Fields = INSERT( Fields, Fpos, 0, 0, ThisColumn ) IF Type = 'EDITTABLE' THEN Values = INSERT( Values, FPos, 0, 0, Get_Property( ThisControl, 'ARRAY' ) ) ;* We need to pull it off the array END ELSE Values = INSERT( Values, FPos, 0, 0, Get_Property( ThisControl, 'TEXT' ) ) ;* Use the text value END END END NEXT J END NEXT I RETURN * * * * * * * VIEW_MOD_INFO: * * * * * * * FieldCToUse = 'RMOD_FIELD' IDCToUse = 'RMOD_ID' PopupDisplay = '' FieldsInControl = get_property( @window:'.':FieldCToUse, 'TEXT' ) IDSInControl = get_property( @window:'.':IDCToUse, 'TEXT' ) Fcnt = fieldcount( FieldsInControl, @vm ) FOR I = 1 TO Fcnt TLabel = xlate( 'DICT.RECIPE', FieldsInControl<1,i>, DICT_DISPLAY$, 'X' ) convert @vm to ' ' in TLabel ;* DON'T WANT MULTI LINED HEADING PopupDisplay<1,-1> = TLabel:@tm:oconv( IDSInControl<1,i>, '[XLATE_CONV,LSL_USERS*FIRST_LAST]' ) NEXT I OverRide = '' OverRide = PopupDisplay OverRide = 'Recipe Modification History View' Void = popup( @window, OverRide, 'RDS_MOD_HIST_VIEW' ) RETURN * * * * * * * READ_STORE: * * * * * * * * GET ARRAY OF ALL UNIQUE FIELDS GOSUB get_fields_values Void = set_property( @window, '@Fields', Fields ) Void = set_property( @window, '@Values', Values ) RETURN