##### Omnis 4GL Source Code, Copyright © 2002 IDAutomation.com, Inc. All rights reserved ##### ##### Method 'Code128c' ##### No. Parameter Type Subtype Init.Val/Calc 1 pvInNumber Number 0 dp No. Local Variable Type Subtype Init.Val/Calc 1 lvC128startVal Short integer (0 to 255) 105 2 lvC128stop Short integer (0 to 255) 206 3 lvCheckChar Character 10000000 4 lvCheckSum Long integer 5 lvInString Character 256 6 lvOutString Character 100 7 lvPairNo Short integer (0 to 255) 8 lvPairVal Short integer (0 to 255) 9 lvPosn Short integer (0 to 255) No. Method text 1 Calculate lvInString as pvInNumber 2 If not(isnumber(lvInString)) 3 OK message Code128c Translation (Sound bell) {Input parameter ([pvInNumber]) is not a number.} 4 Quit method '' 5 End If 6 If mod(len(lvInString),2)=1 7 Calculate lvInString as con('0',lvInString) 8 End If 9 10 Calculate lvCheckSum as lvC128startVal 11 Calculate lvPairNo as 0 12 13 For lvPosn from 1 to len(pvInNumber) step 2 14 Calculate lvPairNo as lvPairNo+1 15 Calculate lvPairVal as eval(mid(lvInString,lvPosn,2)) 16 Calculate lvCheckSum as lvCheckSum+(lvPairNo*lvPairVal) 17 If lvPairVal>0&lvPairVal<95 18 Calculate lvOutString as con(lvOutString,chr(lvPairVal+32)) 19 Else If lvPairVal>=95 20 Calculate lvOutString as con(lvOutString,chr(lvPairVal+100)) 21 Else If lvPairVal=0 22 Calculate lvOutString as con(lvOutString,chr(194)) 23 End If 24 End For 25 26 Calculate lvCheckSum as mod(lvCheckSum,103) 27 If lvCheckSum>0&lvCheckSum<95 28 Calculate lvCheckChar as chr(lvCheckSum+32) 29 Else If lvCheckSum>=95 30 Calculate lvCheckChar as chr(lvCheckSum+100) 31 Else If lvCheckSum=0 32 Calculate lvCheckChar as chr(194) 33 End If 34 35 Calculate lvOutString as con(chr(lvC128startVal+100),lvOutString,lvCheckChar,chr(lvC128stop)) 36 Quit method lvOutString