Thanks that worked great with a few tweaks. Still learning progress, and completely overlooked a function... Thanks! Finished code below for any interested.
/* FUNCTION AREA FIRST BEFORE MAIN CODE */
/*CalPrice Function*/
FUNCTION calcPrice RETURNS DECIMAL (INPUT GroupCode AS CHAR, INPUT codePart AS CHAR, INPUT currPrice AS DECIMAL).
DEF VAR addPrice AS DECIMAL NO-UNDO.
Find First Udcodes where udcodes.company = "#####" and Udcodes.codetypeID = "0001" and Udcodes.shortchar01 = codePart no-lock no-error.
IF available Udcodes THEN DO:
CASE GroupCode:
WHEN "STAN" THEN
addPrice = UdCodes.Number01.
WHEN "OEM3" THEN
addPrice = UdCodes.Number02.
WHEN "OEM4" THEN
addPrice = UdCodes.Number03.
WHEN "OEM5" THEN
addPrice = UdCodes.Number04.
WHEN "OEM6" THEN
addPrice = UdCodes.Number05.
WHEN "OEM7" THEN
addPrice = UdCodes.Number06.
OTHERWISE
DO:
addPrice = 0.
END.
END CASE.
END.
RETURN (addPrice + currPrice).
END FUNCTION.
/* MAIN CODE BODY */
/* Inputs DEFINED */
DEF INPUT PARAM ChrGroupCode AS CHAR NO-UNDO.
DEF INPUT PARAM ChrSuffix AS CHAR NO-UNDO.
DEF INPUT PARAM ChrPart AS CHAR NO-UNDO.
/* outputs DEFINED */
DEF OUTPUT PARAM DecAccPrice AS DECIMAL NO-UNDO.
/* VARIABLES */
/* RUN PROGRAM BELOW */
IF ChrSuffix MATCHES "*A*" THEN DO:
DecAccPrice = calcPrice(ChrGroupCode, ChrPart + "-A", DecAccPrice).
END.
IF ChrSuffix MATCHES "*U*" THEN DO:
DecAccPrice = calcPrice(ChrGroupCode, ChrPart + "-U", DecAccPrice).
END.
IF ChrSuffix MATCHES "*EY*" THEN DO:
DecAccPrice = calcPrice(ChrGroupCode, ChrPart + "-EY", DecAccPrice).
END.
IF ChrSuffix MATCHES "*H*" THEN DO:
DecAccPrice = calcPrice(ChrGroupCode, ChrPart + "-H", DecAccPrice).
END.
/* END MAIN CODE BODY */
/* FUNCTION AREA FIRST BEFORE MAIN CODE */
/*CalPrice Function*/
FUNCTION calcPrice RETURNS DECIMAL (INPUT GroupCode AS CHAR, INPUT codePart AS CHAR, INPUT currPrice AS DECIMAL).
DEF VAR addPrice AS DECIMAL NO-UNDO.
Find First Udcodes where udcodes.company = "#####" and Udcodes.codetypeID = "0001" and Udcodes.shortchar01 = codePart no-lock no-error.
IF available Udcodes THEN DO:
CASE GroupCode:
WHEN "STAN" THEN
addPrice = UdCodes.Number01.
WHEN "OEM3" THEN
addPrice = UdCodes.Number02.
WHEN "OEM4" THEN
addPrice = UdCodes.Number03.
WHEN "OEM5" THEN
addPrice = UdCodes.Number04.
WHEN "OEM6" THEN
addPrice = UdCodes.Number05.
WHEN "OEM7" THEN
addPrice = UdCodes.Number06.
OTHERWISE
DO:
addPrice = 0.
END.
END CASE.
END.
RETURN (addPrice + currPrice).
END FUNCTION.
/* MAIN CODE BODY */
/* Inputs DEFINED */
DEF INPUT PARAM ChrGroupCode AS CHAR NO-UNDO.
DEF INPUT PARAM ChrSuffix AS CHAR NO-UNDO.
DEF INPUT PARAM ChrPart AS CHAR NO-UNDO.
/* outputs DEFINED */
DEF OUTPUT PARAM DecAccPrice AS DECIMAL NO-UNDO.
/* VARIABLES */
/* RUN PROGRAM BELOW */
IF ChrSuffix MATCHES "*A*" THEN DO:
DecAccPrice = calcPrice(ChrGroupCode, ChrPart + "-A", DecAccPrice).
END.
IF ChrSuffix MATCHES "*U*" THEN DO:
DecAccPrice = calcPrice(ChrGroupCode, ChrPart + "-U", DecAccPrice).
END.
IF ChrSuffix MATCHES "*EY*" THEN DO:
DecAccPrice = calcPrice(ChrGroupCode, ChrPart + "-EY", DecAccPrice).
END.
IF ChrSuffix MATCHES "*H*" THEN DO:
DecAccPrice = calcPrice(ChrGroupCode, ChrPart + "-H", DecAccPrice).
END.
/* END MAIN CODE BODY */
--- In vantage@yahoogroups.com, "Kirstin Brandt" <kirstin.brandt@...> wrote:
>
> Function?
>
> IF ChrSuffix MATCHES "*A*" THEN DO:
> DecAccPrice = calcPrice(ChrPart + "-A", DecAccPrice).
> END.
> /* etc. */
>
> FUNCTION calcPrice RETURNS DECIMAL (INPUT codePart AS CHAR, INPUT currPrice AS DECIMAL).