# gett21groups4.awk #---------------------------------------------------------------------------- function sanetrim(s) { sub(/^[ \t]*/,"",s) sub(/[ \t]*$/,"",s) gsub(/\'/,"`",s) gsub(/\"/,"",s) return s } function trim(s) { sub(/^[ \t]*/,"",s) sub(/[ \t]*$/,"",s) return s } function clip(s) { sub(/[ \t]*$/,"",s) return s } #---------------------------------------------------------- function puthier(parent,child,type,level,name1,name2,name3) { if ( done_parent_child_arr[parent "|" child] == "1" ) return parentgrid = parent grid = child grtype = type grlevel = level grname1 = name1 grname2 = name2 grname3 = name3 result = parentgrid "|" grid "|" grtype "|" grlevel "|" grname1 "|" grname2 "|" grname3 "|" print result ++nrows done_parent_child_arr[parent "|" child] = "1" } #----------------------- BEGIN { nrows = 0 } { #1|666|1|3RD PARTY PASS THRU|1515|TELECOMMUNICATION SERVICES|499|VRT|VRT Victrack| #2|4500|2|BAYSIDE|2|NATIONAL EXPRESS|459|CME|CONNEX MELBOURNE PTY LTD| f = 0 CentreID = "CENTRE" sanetrim($++f) CentreDesc = sanetrim($++f) DeptID = "DEPT" sanetrim($++f) DeptDesc = sanetrim($++f) GrpID = "GRP" sanetrim($++f) GrpDesc = sanetrim($++f) CustID = "CUST" sanetrim($++f) ShipTo = sanetrim($++f) FullName = sanetrim($++f) CustDesc = FullName ShipToDesc = CustDesc " (" CustID ")" if ( CentreID == "" ) { print "blank CentreID" exit 1 } if ( DeptID == "" ) { print "blank DeptID" exit 1 } if ( GrpID == "" ) { print "blank GrpID" exit 1 } if ( CustID == "" ) { print "blank CustID" exit 1 } #CentreID_to_CentreDesc_arr[CentreID] = CentreDesc #DeptID_to_DeptDesc_arr[DeptID] = DeptDesc #GrpID_to_GrpDesc_arr[GrpID] = GrpDesc #CustID_to_Shipto_arr[CustID] = Shipto #CustID_to_CustDesc_arr[CustID] = CustDesc #ShipTo_to_ShipToDesc_arr[ShipTo] = ShipToDesc #print "CentreID_to_CentreDesc_arr[" CentreID "]=[" CentreID_to_CentreDesc_arr[CentreID] "]" # Hierarchy is Cust -> Grp -> Dept -> Centre #sethier(sqlid,parent,child,type,level,name1,name2,name3) puthier("","STATE","G","0","State","State","State") puthier("STATE",ShipTo,"G","1",ShipToDesc,ShipToDesc,ShipToDesc) puthier(ShipTo,GrpID,"G","2",GrpDesc,GrpDesc,GrpDesc) puthier(GrpID,DeptID,"G","3",DeptDesc,DeptDesc,DeptDesc) puthier(DeptID,CentreID,"E","4",CentreDesc,CentreDesc,CentreDesc) } END { }