* This is the EMPSMain program code, but modified for simplified testing. CLOSE ALL CLEAR ALL CLEAR SET SAFETY OFF * SET STEP ON Convert_HL7_Billing_Data(FILETOSTR("c:\HL7_IN\HL7BB.tmp")) CANCEL ******************************************************************************* PROCEDURE Convert_HL7_Billing_Data ******************************************************************************* PARAMETERS tInput strProcessData = tInput FOR ix=1 TO ALINES(laLines,strProcessData) STEP 7 * One block of tables is 7 FOR jx = 0 TO 6 STORE LineToObject(laLines[m.ix+m.jx]) TO ('loObj'+LTRIM(STR(m.jx+1))) m.CursorFieldList = '' FOR iCount = 1 TO EVALUATE('loObj'+LTRIM(STR(m.jx+1))+".FieldCount") m.CursorFieldList = m.CursorFieldList + 'Field'+PADL(iCount,3,'0') + ' M, ' ENDFOR m.CursorFieldList = '(' + SUBSTR(m.CursorFieldList,1,LEN(m.CursorFieldList)-2) + ')' CREATE CURSOR ("Crs" + ALLTRIM(UPPER(EVALUATE('loObj'+LTRIM(STR(m.jx+1))+".TableName")))) &CursorFieldList INSERT INTO ("Crs" + ALLTRIM(UPPER(EVALUATE('loObj'+LTRIM(STR(m.jx+1))+".TableName")))) FROM NAME 'loObj'+LTRIM(STR(m.jx+1)) ENDFOR ENDFOR SET STEP ON ******************************************************************************* PROCEDURE LineToObject(tcLine) ******************************************************************************* LOCAL loRecord,ix loRecord = CREATEOBJECT('Empty') ADDPROPERTY(loRecord, 'TableName', GETWORDNUM( m.tcLine,1,'|')) FOR ix=1 TO OCCURS('|',m.tcLine) ADDPROPERTY(loRecord, ; 'Field'+PADL(m.ix,3,'0'), ; STREXTRACT(m.tcLine,'|','|',m.ix,2)) ENDFOR ADDPROPERTY(loRecord, 'FieldCount', ix-1) RETURN loRecord ENDPROC *******************************************************************************