DEFINE VARIABLE ctable AS CHARACTER NO-UNDO.
DEFINE VARIABLE hbuffer AS HANDLE NO-UNDO.
DEFINE VARIABLE hqueryindex AS HANDLE NO-UNDO.
DEFINE VARIABLE hbuffile AS HANDLE NO-UNDO.
DEFINE VARIABLE hbufindex AS HANDLE NO-UNDO.
DEFINE VARIABLE icount AS INTEGER NO-UNDO.
DEFINE VARIABLE cindex AS CHARACTER NO-UNDO.
DEFINE VARIABLE cprimary AS CHARACTER NO-UNDO.
DEFINE VARIABLE icount2 AS INTEGER NO-UNDO.
ctable = "<tablename>".
CREATE BUFFER hbuffer FOR TABLE ctable.
CREATE QUERY hqueryindex.
CREATE BUFFER hbuffile FOR TABLE "_file".
CREATE BUFFER hbufindex FOR TABLE "_index".
hqueryindex:SET-BUFFERS(hbuffile,hbufindex).
hqueryindex:QUERY-PREPARE(SUBSTITUTE("for each _file where _file-name = &1, each _index of _file",QUOTER(ctable))).
hqueryindex:QUERY-OPEN.
hqueryindex:GET-FIRST(NO-LOCK).
DO WHILE NOT hqueryindex:QUERY-OFF-END:
icount = icount + 1.
IF cindex = "" THEN cindex = hbuffer:INDEX-INFORMATION(icount).
ELSE cindex = cindex + "|" + hbuffer:INDEX-INFORMATION(icount).
hqueryindex:GET-NEXT(NO-LOCK).
END.
hqueryindex:QUERY-CLOSE.
DELETE OBJECT hqueryindex.
DO icount = 1 TO NUM-ENTRIES(cindex,"|"):
IF ENTRY(2,ENTRY(icount,cindex,"|")) = "1" AND ENTRY(3,ENTRY(icount,cindex,"|")) = "1" THEN
DO icount2 = 1 TO NUM-ENTRIES(ENTRY(icount,cindex,"|"),","):
IF icount2 > 4 AND LOOKUP(ENTRY(icount2,ENTRY(icount,cindex,"|"),","),"0,1") = 0 THEN
DO:
IF cprimary = "" THEN cprimary = ENTRY(icount2,ENTRY(icount,cindex,"|"),",").
ELSE cprimary = cprimary + "," + ENTRY(icount2,ENTRY(icount,cindex,"|"),",").
END.
END.
END.