Hi,
I'm trying to do following:
I have a semi-colon .csv file e.g:
InvoiceNumber;InvoiceDate;CustomerNumber;CustomerName;
1;12/12/07;1245;"Customer1";
2;12/12/07;1458;"Customer2";
Like you see, the column-labels are also in the flat file.
Now I want to create a dynamic temp-table with the column-labels as fields (so row 1 should create the temp-table fields) and the rest has to be filled into the dynamic temp-table.
Once this temp-table is filled I must be able to display all records and put them into a DB Table.
I've got already following code, but it isn't doing anything:
DEF VAR ttTable AS HANDLE NO-UNDO.
DEF VAR bttTable AS HANDLE NO-UNDO.
DEF VAR qttTable AS HANDLE NO-UNDO.
DEF VAR iCounter AS INT NO-UNDO INIT 0.
DEF VAR i AS INT NO-UNDO.
DEF VAR cTextLine AS CHAR NO-UNDO.
INPUT FROM VALUE(cInputFile).
REPEAT:
/* If row = 0 then create dynamic temp-table and fields */
IF iCounter = 0 THEN
DO:
IMPORT DELIMITER ";" cTextLine.
CREATE TEMP-TABLE ttTable.
DO i = 1 TO NUM-ENTRIES(cTextLine):
ttTable:ADD-NEW-FIELD(TRIM(LC(cTextLine)), "char").
END.
END.
/* If row > 0 then fill up dynamic temp-table */
ELSE
DO:
IMPORT DELIMITER ";" cTextLine.
bttTable = ttTableEFAULT-BUFFER-HANDLE.
bttTable:BUFFER-CREATE.
DO i = 1 TO NUM-ENTRIES(cTextLine):
bttTable:BUFFER-FIELD(i):BUFFER-VALUE = cTextLine.
END.
END.
iCounter = iCounter + 1.
END.
INPUT CLOSE.
/* Here I want to display the temp-table */
qttTable:SET-BUFFERS(bttTable).
qttTable:QUERY-PREPARE("for each bttTable").
qttTable:QUERY-OPEN().
REPEAT:
IF qttTable:QUERY-OFF-END THEN LEAVE.
DO i = 1 TO bttTable:NUM-FIELDS:
DISPLAY bttTable:BUFFER-FIELD(i).
END.
END.
Please help!!?
Thanks in advance.
I'm trying to do following:
I have a semi-colon .csv file e.g:
InvoiceNumber;InvoiceDate;CustomerNumber;CustomerName;
1;12/12/07;1245;"Customer1";
2;12/12/07;1458;"Customer2";
Like you see, the column-labels are also in the flat file.
Now I want to create a dynamic temp-table with the column-labels as fields (so row 1 should create the temp-table fields) and the rest has to be filled into the dynamic temp-table.
Once this temp-table is filled I must be able to display all records and put them into a DB Table.
I've got already following code, but it isn't doing anything:
DEF VAR ttTable AS HANDLE NO-UNDO.
DEF VAR bttTable AS HANDLE NO-UNDO.
DEF VAR qttTable AS HANDLE NO-UNDO.
DEF VAR iCounter AS INT NO-UNDO INIT 0.
DEF VAR i AS INT NO-UNDO.
DEF VAR cTextLine AS CHAR NO-UNDO.
INPUT FROM VALUE(cInputFile).
REPEAT:
/* If row = 0 then create dynamic temp-table and fields */
IF iCounter = 0 THEN
DO:
IMPORT DELIMITER ";" cTextLine.
CREATE TEMP-TABLE ttTable.
DO i = 1 TO NUM-ENTRIES(cTextLine):
ttTable:ADD-NEW-FIELD(TRIM(LC(cTextLine)), "char").
END.
END.
/* If row > 0 then fill up dynamic temp-table */
ELSE
DO:
IMPORT DELIMITER ";" cTextLine.
bttTable = ttTableEFAULT-BUFFER-HANDLE.
bttTable:BUFFER-CREATE.
DO i = 1 TO NUM-ENTRIES(cTextLine):
bttTable:BUFFER-FIELD(i):BUFFER-VALUE = cTextLine.
END.
END.
iCounter = iCounter + 1.
END.
INPUT CLOSE.
/* Here I want to display the temp-table */
qttTable:SET-BUFFERS(bttTable).
qttTable:QUERY-PREPARE("for each bttTable").
qttTable:QUERY-OPEN().
REPEAT:
IF qttTable:QUERY-OFF-END THEN LEAVE.
DO i = 1 TO bttTable:NUM-FIELDS:
DISPLAY bttTable:BUFFER-FIELD(i).
END.
END.
Please help!!?
Thanks in advance.