199 lines
3.8 KiB
Plaintext
199 lines
3.8 KiB
Plaintext
COMPILE FUNCTION obj_Popup(Method,Parms)
|
|
/*
|
|
Methods for the Popup table
|
|
|
|
06/12/2004 JCH - Initial Coding
|
|
|
|
Properties:
|
|
|
|
Methods:
|
|
|
|
CodeDesc(PopupID,Code) ;* Returns column 2 data for code in column 1
|
|
|
|
*/
|
|
|
|
|
|
DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables
|
|
DECLARE SUBROUTINE Set_Status, Msg, obj_Tables
|
|
|
|
$INSERT MSG_EQUATES
|
|
$INSERT POPUP_EQUATES
|
|
|
|
ErrTitle = 'Error in Stored Procedure "obj_Popup"'
|
|
ErrorMsg = ''
|
|
|
|
IF NOT(ASSIGNED(Method)) THEN ErrorMsg = 'Unassigned parameter "Method" passed to subroutine'
|
|
IF NOT(ASSIGNED(Parms)) THEN Parms = ''
|
|
|
|
IF ErrorMsg NE '' THEN
|
|
Set_Status(-1,ErrTitle:@SVM:ErrorMsg)
|
|
RETURN ''
|
|
END
|
|
|
|
Result = ''
|
|
|
|
BEGIN CASE
|
|
CASE Method = 'CodeDesc' ; GOSUB CodeDesc
|
|
CASE Method = 'DescCode' ; GOSUB DescCode
|
|
CASE Method = 'CodePosition' ; GOSUB CodePosition ;* Pass in code(s), returns line position(s) as stored in the Popup
|
|
CASE Method = 'AllCodes' ; GOSUB AllCodes
|
|
CASE 1
|
|
|
|
END CASE
|
|
|
|
IF ErrorMsg NE '' THEN
|
|
Set_Status(-1,ErrTitle:@SVM:ErrorMsg)
|
|
RETURN ''
|
|
END
|
|
|
|
RETURN Result
|
|
|
|
|
|
* * * * * * *
|
|
CodeDesc:
|
|
* * * * * * *
|
|
|
|
PopupID = Parms[1,@RM]
|
|
Col1Code = Parms[COL2()+1,@RM]
|
|
ColNo = Parms[COL2()+1,@RM]
|
|
|
|
IF PopupID = '' THEN RETURN
|
|
IF Col1Code = '' THEN RETURN
|
|
IF ColNo = '' THEN ColNo = 2
|
|
|
|
IF NOT(INDEX(PopupID,'*',1)) THEN
|
|
PopupID = @APPID<1>:'**':PopupID
|
|
END
|
|
|
|
PopupLiteral = XLATE('SYSREPOSPOPUPS',PopupID,PDISPLAY$,'X')
|
|
|
|
CONVERT @VM:@SVM TO @FM:@VM IN PopupLiteral
|
|
|
|
LiteralCnt = COUNT(PopupLiteral,@FM) + (PopupLiteral NE '')
|
|
|
|
CodeCnt = COUNT(Col1Code,@VM) + (Col1Code NE '')
|
|
|
|
FOR I = 1 TO CodeCnt
|
|
Code = Col1Code<1,I>
|
|
FOR J = 1 TO LiteralCnt
|
|
LiteralCode = PopupLiteral<J,1>
|
|
UNTIL LiteralCode = Code
|
|
NEXT J
|
|
Result<1,I> = PopupLiteral<J,ColNo>
|
|
NEXT Cnt
|
|
|
|
RETURN
|
|
|
|
|
|
* * * * * * *
|
|
DescCode:
|
|
* * * * * * *
|
|
|
|
/*
|
|
Pass in Description and associated code is returned.
|
|
|
|
Assumes Code is in column 1 and Desc is in column2
|
|
|
|
Desc Column can be overriden by passing a number in the options ColNo parameter
|
|
|
|
*/
|
|
|
|
PopupID = Parms[1,@RM]
|
|
DescsIn = Parms[COL2()+1,@RM]
|
|
ColNo = Parms[COL2()+1,@RM]
|
|
|
|
IF PopupID = '' THEN RETURN
|
|
IF DescsIn = '' THEN RETURN
|
|
IF ColNo = '' THEN ColNo = 2
|
|
|
|
IF NOT(INDEX(PopupID,'*',1)) THEN
|
|
PopupID = @APPID<1>:'**':PopupID
|
|
END
|
|
|
|
PopupLiteral = XLATE('SYSREPOSPOPUPS',PopupID,PDISPLAY$,'X')
|
|
|
|
CONVERT @VM:@SVM TO @FM:@VM IN PopupLiteral
|
|
|
|
LiteralCnt = COUNT(PopupLiteral,@FM) + (PopupLiteral NE '')
|
|
|
|
diCnt = COUNT(DescsIn,@VM) + (DescsIn NE '')
|
|
|
|
FOR I = 1 TO diCnt
|
|
DescIn = DescsIn<1,I>
|
|
FOR J = 1 TO LiteralCnt
|
|
LiteralDesc = PopupLiteral<J,ColNo>
|
|
UNTIL LiteralDesc = DescIn
|
|
NEXT J
|
|
Result<1,I> = PopupLiteral<J,1>
|
|
NEXT Cnt
|
|
|
|
RETURN
|
|
|
|
|
|
|
|
* * * * * * *
|
|
CodePosition:
|
|
* * * * * * *
|
|
|
|
PopupID = Parms[1,@RM]
|
|
Col1Code = Parms[COL2()+1,@RM]
|
|
|
|
IF PopupID = '' THEN RETURN
|
|
IF Col1Code = '' THEN RETURN
|
|
|
|
IF NOT(INDEX(PopupID,'*',1)) THEN
|
|
PopupID = @APPID<1>:'**':PopupID
|
|
END
|
|
|
|
PopupLiteral = XLATE('SYSREPOSPOPUPS',PopupID,PDISPLAY$,'X')
|
|
|
|
CONVERT @VM:@SVM TO @FM:@VM IN PopupLiteral
|
|
|
|
LiteralCnt = COUNT(PopupLiteral,@FM) + (PopupLiteral NE '')
|
|
|
|
CodeCnt = COUNT(Col1Code,@VM) + (Col1Code NE '')
|
|
|
|
FOR I = 1 TO CodeCnt
|
|
Code = Col1Code<1,I>
|
|
FOR J = 1 TO LiteralCnt
|
|
LiteralCode = PopupLiteral<J,1>
|
|
UNTIL LiteralCode = Code
|
|
NEXT J
|
|
Result<1,I> = J
|
|
NEXT Cnt
|
|
|
|
RETURN
|
|
|
|
|
|
|
|
* * * * * * *
|
|
AllCodes:
|
|
* * * * * * *
|
|
|
|
PopupID = Parms[1,@RM]
|
|
ColNo = Parms[COL2()+1,@RM]
|
|
|
|
IF PopupID = '' THEN RETURN
|
|
IF ColNo = '' THEN ColNo = 1
|
|
|
|
IF NOT(INDEX(PopupID,'*',1)) THEN
|
|
PopupID = @APPID<1>:'**':PopupID
|
|
END
|
|
|
|
PopupLiteral = XLATE('SYSREPOSPOPUPS',PopupID,PDISPLAY$,'X')
|
|
|
|
CONVERT @VM:@SVM TO @FM:@VM IN PopupLiteral
|
|
|
|
LiteralCnt = COUNT(PopupLiteral,@FM) + (PopupLiteral NE '')
|
|
|
|
FOR I = 1 TO LiteralCnt
|
|
Result<1,I> = PopupLiteral<I,1>
|
|
NEXT I
|
|
|
|
RETURN
|
|
|
|
|
|
|
|
|
|
|