'This is just an example program to show how to translate an EDI X12 130 Student Educational Record 'in VB6 with the Framework EDI component Option Explicit Private Sub Command1_Click() Dim oEdiDoc As Fredi.ediDocument Dim oSchema As Fredi.ediSchema Dim oSchemas As Fredi.ediSchemas Dim oSegment As Fredi.ediDataSegment Dim sSegmentID As String Dim sLoopSection As String Dim nArea As Integer Dim sN1LoopQlfr As String Dim sQlfr As String Dim sValue As String Dim sPath As String Dim nCourseCount As Integer Dim sSession As String sPath = App.Path & "\" 'CREATES EDIDOC OBJECT Set oEdiDoc = New Fredi.ediDocument 'THIS MAKES CERTAIN THAT FREDI ONLY USES THE SEF FILE PROVIDED, AND THAT IT DOES 'NOT USE ITS BUILT-IN STANDARD REFERENCE TABLE TO TRANSLATE THE EDI FILE. Set oSchemas = oEdiDoc.GetSchemas oSchemas.EnableStandardReference = False 'THIS OPTIONS STOPS FREDI FROM KEEPING ALL THE SEGMENTS IN MEMORY oEdiDoc.CursorType = Cursor_ForwardOnly 'LOADS THE SEF FILE Set oSchema = oEdiDoc.LoadSchema(sPath & "130_4010.SEF", 0) 'LOADS THE EDI FILE oEdiDoc.LoadEdi sPath & "130.x12" 'GETS THE FIRST DATA SEGMENT Set oSegment = oEdiDoc.FirstDataSegment 'LOOP THAT WILL TRAVERSE THRU EDI FILE FROM TOP TO BOTTOM Do While Not oSegment Is Nothing 'DATA SEGMENTS WILL BE IDENTIFIED BY THEIR ID, THE LOOP SECTION AND AREA '(OR TABLE) NUMBER THAT THEY ARE IN. sSegmentID = oSegment.ID sLoopSection = oSegment.LoopSection nArea = oSegment.Area If nArea = 0 Then If sLoopSection = "" Then If sSegmentID = "ISA" Then sValue = oSegment.DataElementValue(1) 'Authorization Information Qualifier sValue = oSegment.DataElementValue(2) 'Authorization Information sValue = oSegment.DataElementValue(3) 'Security Information Qualifier sValue = oSegment.DataElementValue(4) 'Security Information sValue = oSegment.DataElementValue(5) 'Interchange ID Qualifier sValue = oSegment.DataElementValue(6) 'Interchange Sender ID sValue = oSegment.DataElementValue(7) 'Interchange ID Qualifier sValue = oSegment.DataElementValue(8) 'Interchange Receiver ID sValue = oSegment.DataElementValue(9) 'Interchange Date sValue = oSegment.DataElementValue(10) 'Interchange Time sValue = oSegment.DataElementValue(11) 'Interchange Control Standards Identifier sValue = oSegment.DataElementValue(12) 'Interchange Control Version Number sValue = oSegment.DataElementValue(13) 'Interchange Control Number sValue = oSegment.DataElementValue(14) 'Acknowledgment Requested sValue = oSegment.DataElementValue(15) 'Usage Indicator sValue = oSegment.DataElementValue(16) 'Component Element Separator ElseIf sSegmentID = "GS" Then sValue = oSegment.DataElementValue(1) 'Functional Identifier Code sValue = oSegment.DataElementValue(2) 'Application Sender's Code sValue = oSegment.DataElementValue(3) 'Application Receiver's Code sValue = oSegment.DataElementValue(4) 'Date sValue = oSegment.DataElementValue(5) 'Time sValue = oSegment.DataElementValue(6) 'Group Control Number sValue = oSegment.DataElementValue(7) 'Responsible Agency Code sValue = oSegment.DataElementValue(8) 'Version / Release / Industry Identifier Code End If 'sSegmentID End If 'sLoopSection ElseIf nArea = 1 Then If sLoopSection = "" Then If sSegmentID = "ST" Then sValue = oSegment.DataElementValue(1) 'Transaction Set Identifier Code sValue = oSegment.DataElementValue(2) 'Transaction Set Control Number nCourseCount = -1 ElseIf sSegmentID = "BGN" Then sValue = oSegment.DataElementValue(1) 'Transaction Set Purpose Code sValue = oSegment.DataElementValue(2) 'Reference Identification sValue = oSegment.DataElementValue(3) 'Date sValue = oSegment.DataElementValue(4) 'Time sValue = oSegment.DataElementValue(5) 'Time Code ElseIf sSegmentID = "ERP" Then sValue = oSegment.DataElementValue(1) 'Transaction Type Code sValue = oSegment.DataElementValue(2) 'Status Reason Code ElseIf sSegmentID = "REF" Then sValue = oSegment.DataElementValue(1) 'Reference Identification Qualifier sValue = oSegment.DataElementValue(2) 'Reference Identification ElseIf sSegmentID = "DMG" Then sValue = oSegment.DataElementValue(1) 'Date Time Period Format Qualifier sValue = oSegment.DataElementValue(2) 'Date Time Period sValue = oSegment.DataElementValue(3) 'Gender Code sValue = oSegment.DataElementValue(4) 'Marital Status Code sValue = oSegment.DataElementValue(5) 'Race or Ethnicity Code sValue = oSegment.DataElementValue(6) 'Citizenship Status Code ElseIf sSegmentID = "PCL" Then sValue = oSegment.DataElementValue(1) 'Identification Code Qualifier sValue = oSegment.DataElementValue(2) 'Identification Code sValue = oSegment.DataElementValue(3) 'Date Time Period Format Qualifier sValue = oSegment.DataElementValue(4) 'Date Time Period sValue = oSegment.DataElementValue(5) 'Academic Degree Code sValue = oSegment.DataElementValue(6) 'Date Time Period sValue = oSegment.DataElementValue(7) 'Description End If 'Segment ID ElseIf sLoopSection = "N1" Then If sSegmentID = "N1" Then sN1LoopQlfr = oSegment.DataElementValue(1) End If If sN1LoopQlfr = "AS" Then 'Post Secondary Education Sender If sSegmentID = "N1" Then txtPostSecondaryEducationSender.Text = oSegment.DataElementValue(2) 'Name txtUniversityCode.Text = oSegment.DataElementValue(4) 'Identification Code ElseIf sSegmentID = "N3" Then txtEducationSenderAddress.Text = oSegment.DataElementValue(1) 'Address Information ElseIf sSegmentID = "N4" Then txtEducationSenderCity.Text = oSegment.DataElementValue(1) 'City Name txtEducationSenderState.Text = oSegment.DataElementValue(2) 'State or Province Code txtEducationSenderZip.Text = oSegment.DataElementValue(3) 'Postal Code End If 'Segment ID ElseIf sN1LoopQlfr = "AT" Then 'Post Secondary Education Receiver If sSegmentID = "N1" Then sValue = oSegment.DataElementValue(2) 'Name sValue = oSegment.DataElementValue(4) 'Identification Code ElseIf sSegmentID = "N3" Then sValue = oSegment.DataElementValue(1) 'Address Information ElseIf sSegmentID = "N4" Then sValue = oSegment.DataElementValue(1) 'City Name sValue = oSegment.DataElementValue(2) 'State or Province Code sValue = oSegment.DataElementValue(3) 'Postal Code End If 'Segment ID End If 'sN1LoopQlfr ElseIf sLoopSection = "IN1" Then If sSegmentID = "IN1" Then sValue = oSegment.DataElementValue(1) 'Entity Type Qualifier sValue = oSegment.DataElementValue(2) 'Name Type Code sValue = oSegment.DataElementValue(3) 'Entity Identifier Code sValue = oSegment.DataElementValue(4) 'Reference Identification Qualifier sValue = oSegment.DataElementValue(5) 'Reference Identification sValue = oSegment.DataElementValue(6) 'Individual Relationship Code sValue = oSegment.DataElementValue(7) 'Level of Individual, Test, or Course Code ElseIf sSegmentID = "IN2" Then sQlfr = oSegment.DataElementValue(1) If sQlfr = "05" Then txtIndividualLastname.Text = oSegment.DataElementValue(2) 'Name ElseIf sQlfr = "02" Then txtIndividualFirstname.Text = oSegment.DataElementValue(2) 'Name ElseIf sQlfr = "15" Then txtIndividualMaidenname.Text = oSegment.DataElementValue(2) 'Name End If End If 'Segment ID ElseIf sLoopSection = "SST" Then If sSegmentID = "SST" Then sValue = oSegment.DataElementValue(1) 'Status Reason Code ElseIf sSegmentID = "N1" Then sQlfr = oSegment.DataElementValue(1) 'Entity Identifier Code If sQlfr = "HS" Then txtHighSchool.Text = oSegment.DataElementValue(2) 'Name txtHighScoolCode.Text = oSegment.DataElementValue(4) 'Identification Code End If End If 'Segment ID ElseIf sLoopSection = "TST" Then If sSegmentID = "TST" Then sValue = oSegment.DataElementValue(1) 'Educational Test or Requirement Code sValue = oSegment.DataElementValue(2) 'Name sValue = oSegment.DataElementValue(3) 'Date Time Period Format Qualifier sValue = oSegment.DataElementValue(4) 'Date Time Period sValue = oSegment.DataElementValue(5) 'Reference Identification sValue = oSegment.DataElementValue(6) 'Reference Identification sValue = oSegment.DataElementValue(7) 'Level of Individual, Test, or Course Code sValue = oSegment.DataElementValue(8) 'Level of Individual, Test, or Course Code sValue = oSegment.DataElementValue(9) 'Date Time Period sValue = oSegment.DataElementValue(10) 'Test Norm Type Code sValue = oSegment.DataElementValue(11) 'Test Norming Period Code sValue = oSegment.DataElementValue(12) 'Language Code sValue = oSegment.DataElementValue(13) 'Date Time Period sValue = oSegment.DataElementValue(14) 'Yes/No Condition or Response Code sValue = oSegment.DataElementValue(15) 'Yes/No Condition or Response Code End If 'sSegmentID End If 'sLoopSection ElseIf nArea = 2 Then If sLoopSection = "LX" Then If sSegmentID = "LX" Then sValue = oSegment.DataElementValue(1) 'Assigned Number ElseIf sSegmentID = "HS" Then sValue = oSegment.DataElementValue(1) 'Health Screening Type Code sValue = oSegment.DataElementValue(2) 'Date Time Period Format Qualifier sValue = oSegment.DataElementValue(3) 'Date Time Period sValue = oSegment.DataElementValue(4) 'Status Reason Code ElseIf sSegmentID = "IMM" Then sValue = oSegment.DataElementValue(1) 'Immunization Type Code sValue = oSegment.DataElementValue(2) 'Date Time Period Format Qualifier sValue = oSegment.DataElementValue(3) 'Date Time Period sValue = oSegment.DataElementValue(4) 'Immunization Status Code sValue = oSegment.DataElementValue(5) 'Report Type Code End If 'Segment ID ElseIf sLoopSection = "LX;HC" Then If sSegmentID = "HC" Then sValue = oSegment.DataElementValue(1) 'Disease Condition Type Code sValue = oSegment.DataElementValue(2) 'Medical Treatment Type Code sValue = oSegment.DataElementValue(3) 'Date Time Period Format Qualifier sValue = oSegment.DataElementValue(4) 'Date Time Period sValue = oSegment.DataElementValue(5) 'Yes/No Condition or Response Code ElseIf sSegmentID = "N1" Then sValue = oSegment.DataElementValue(1) 'Entity Identifier Code sValue = oSegment.DataElementValue(2) 'Name sValue = oSegment.DataElementValue(3) 'Identification Code Qualifier sValue = oSegment.DataElementValue(4) 'Identification Code sValue = oSegment.DataElementValue(5) 'Entity Relationship Code sValue = oSegment.DataElementValue(6) 'Entity Identifier Code ElseIf sSegmentID = "N2" Then sValue = oSegment.DataElementValue(1) 'Name sValue = oSegment.DataElementValue(2) 'Name ElseIf sSegmentID = "PER" Then sValue = oSegment.DataElementValue(1) 'Contact Function Code sValue = oSegment.DataElementValue(2) 'Name sValue = oSegment.DataElementValue(3) 'Communication Number Qualifier sValue = oSegment.DataElementValue(4) 'Communication Number sValue = oSegment.DataElementValue(5) 'Communication Number Qualifier sValue = oSegment.DataElementValue(6) 'Communication Number sValue = oSegment.DataElementValue(7) 'Communication Number Qualifier sValue = oSegment.DataElementValue(8) 'Communication Number sValue = oSegment.DataElementValue(9) 'Contact Inquiry Reference ElseIf sSegmentID = "N3" Then sValue = oSegment.DataElementValue(1) 'Address Information sValue = oSegment.DataElementValue(2) 'Address Information ElseIf sSegmentID = "N4" Then sValue = oSegment.DataElementValue(1) 'City Name sValue = oSegment.DataElementValue(2) 'State or Province Code sValue = oSegment.DataElementValue(3) 'Postal Code sValue = oSegment.DataElementValue(4) 'Country Code sValue = oSegment.DataElementValue(5) 'Location Qualifier sValue = oSegment.DataElementValue(6) 'Location Identifier End If 'Segment ID ElseIf sLoopSection = "LX;SES" Then If sSegmentID = "SES" Then sValue = oSegment.DataElementValue(1) 'Date Time Period sValue = oSegment.DataElementValue(2) 'Count sValue = oSegment.DataElementValue(3) 'Date Time Period sValue = oSegment.DataElementValue(4) 'Session Code sSession = oSegment.DataElementValue(5) 'Name sValue = oSegment.DataElementValue(6) 'Date Time Period Format Qualifier sValue = oSegment.DataElementValue(7) 'Date Time Period sValue = oSegment.DataElementValue(8) 'Date Time Period Format Qualifier sValue = oSegment.DataElementValue(9) 'Date Time Period sValue = oSegment.DataElementValue(10) 'Level of Individual, Test, or Course Code sValue = oSegment.DataElementValue(11) 'Identification Code Qualifier sValue = oSegment.DataElementValue(12) 'Identification Code sValue = oSegment.DataElementValue(13) 'Name sValue = oSegment.DataElementValue(14) 'Status Reason Code ElseIf sSegmentID = "SSE" Then sValue = oSegment.DataElementValue(1) 'Date ElseIf sSegmentID = "NTE" Then sValue = oSegment.DataElementValue(1) 'Note Reference Code sValue = oSegment.DataElementValue(2) 'Description ElseIf sSegmentID = "N1" Then sValue = oSegment.DataElementValue(1) 'Entity Identifier Code sValue = oSegment.DataElementValue(2) 'Name sValue = oSegment.DataElementValue(3) 'Identification Code Qualifier sValue = oSegment.DataElementValue(4) 'Identification Code ElseIf sSegmentID = "N3" Then sValue = oSegment.DataElementValue(1) 'Address Information ElseIf sSegmentID = "N4" Then sValue = oSegment.DataElementValue(1) 'City Name sValue = oSegment.DataElementValue(2) 'State or Province Code sValue = oSegment.DataElementValue(3) 'Postal Code End If 'Segment ID ElseIf sLoopSection = "LX;SES;SUM" Then If sSegmentID = "SUM" Then sValue = oSegment.DataElementValue(1) 'Academic Credit Type Code sValue = oSegment.DataElementValue(2) 'Academic Grade or Course Level Code sValue = oSegment.DataElementValue(3) 'Yes/No Condition or Response Code sValue = oSegment.DataElementValue(4) 'Quantity sValue = oSegment.DataElementValue(5) 'Quantity sValue = oSegment.DataElementValue(6) 'Quantity sValue = oSegment.DataElementValue(7) 'Range Minimum sValue = oSegment.DataElementValue(8) 'Range Maximum sValue = oSegment.DataElementValue(9) 'Academic Grade Point Average sValue = oSegment.DataElementValue(10) 'Yes/No Condition or Response Code sValue = oSegment.DataElementValue(11) 'Class Rank sValue = oSegment.DataElementValue(12) 'Quantity End If 'Segment ID ElseIf sLoopSection = "LX;SES;CRS" Then If sSegmentID = "CRS" Then nCourseCount = nCourseCount + 1 ' sValue = oSegment.DataElementValue(1) 'Basis for Academic Credit Code ' sValue = oSegment.DataElementValue(2) 'Academic Credit Type Code ' sValue = oSegment.DataElementValue(3) 'Quantity ' sValue = oSegment.DataElementValue(4) 'Quantity ' sValue = oSegment.DataElementValue(5) 'Academic Grade Qualifier ' sValue = oSegment.DataElementValue(6) 'Academic Grade ' sValue = oSegment.DataElementValue(7) 'Yes/No Condition or Response Code ' sValue = oSegment.DataElementValue(8) 'Academic Grade or Course Level Code ' sValue = oSegment.DataElementValue(9) 'Course Repeat or No Count Indicator Code ' sValue = oSegment.DataElementValue(10) 'Identification Code Qualifier ' sValue = oSegment.DataElementValue(11) 'Identification Code ' sValue = oSegment.DataElementValue(12) 'Quantity ' sValue = oSegment.DataElementValue(13) 'Level of Individual, Test, or Course Code ' sValue = oSegment.DataElementValue(14) 'Name txtCourse(nCourseCount).Text = oSegment.DataElementValue(15) 'Reference Identification ' sValue = oSegment.DataElementValue(16) 'Name ElseIf sSegmentID = "NTE" Then 'sValue = oSegment.DataElementValue(1) 'Note Reference Code sValue = oSegment.DataElementValue(2) 'Description If Left(sValue, 5) = "INSTR" Then txtSessionName(nCourseCount) = sSession txtInstructor(nCourseCount) = sValue End If End If 'Segment ID ElseIf sLoopSection = "LX;SES;CRS;MKS" Then If sSegmentID = "MKS" Then sValue = oSegment.DataElementValue(1) 'Mark Code Type sValue = oSegment.DataElementValue(2) 'Academic Grade Qualifier sValue = oSegment.DataElementValue(3) 'Academic Grade End If 'Segment ID ElseIf sLoopSection = "LX;SES;DEG" Then If sSegmentID = "DEG" Then sValue = oSegment.DataElementValue(1) 'Academic Degree Code sValue = oSegment.DataElementValue(2) 'Date Time Period Format Qualifier sValue = oSegment.DataElementValue(3) 'Date Time Period sValue = oSegment.DataElementValue(4) 'Description ElseIf sSegmentID = "FOS" Then sValue = oSegment.DataElementValue(1) 'Academic Field of Study Level or Type Code sValue = oSegment.DataElementValue(2) 'Identification Code Qualifier sValue = oSegment.DataElementValue(3) 'Identification Code sValue = oSegment.DataElementValue(4) 'Description ElseIf sSegmentID = "NTE" Then sValue = oSegment.DataElementValue(1) 'Note Reference Code sValue = oSegment.DataElementValue(2) 'Description End If 'sSegmentID End If 'sLoopSection End If 'nArea 'GETS THE NEXT DATA SEGMENT Set oSegment = oSegment.Next Loop 'DESTROY OBJECTS Set oEdiDoc = Nothing Set oSchema = Nothing Set oSchemas = Nothing Set oSegment = Nothing MsgBox "Done" End Sub