open-insight/LSL2/STPROC/RECIPE_COMM.txt
Infineon\StieberD 7762b129af pre cutover push
2024-09-04 20:33:41 -07:00

167 lines
4.2 KiB
Plaintext

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<i>
if Values<i> <> OrigValues<i> 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<i>
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' )<J> ) ;* 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<pdisplay$> = PopupDisplay
OverRide<ptitle$> = '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