How this code will work for temp table

Hi,

Can any one help me in correcting the following code, to work with the bracketed data . Now it is working for all the purchaseOrder records and its poline. (Entire records details getting loaded into the XML)
THis code will work with sports2000 DB.
What I need the output should only for tf-po.ponum = 8001.

TIA
Philip



DEFINE VAR hDataSet AS HANDLE.
DEFINE VARIABLE cTargetType AS CHARACTER NO-UNDO.
DEFINE VARIABLE cFile AS CHARACTER NO-UNDO.
DEFINE VARIABLE lFormatted AS LOGICAL NO-UNDO.
DEFINE VARIABLE cEncoding AS CHARACTER NO-UNDO.
DEFINE VARIABLE cSchemaLocation AS CHARACTER NO-UNDO.
DEFINE VARIABLE lWriteSchema AS LOGICAL NO-UNDO.
DEFINE VARIABLE lMinSchema AS LOGICAL NO-UNDO.
DEFINE VARIABLE retOK AS LOGICAL NO-UNDO.

ASSIGN
cTargetType = "file"
cFile = "c:\temp\dsetx.xml"
lFormatted = YES
cEncoding = ?
cSchemaLocation = ?
lWriteSchema = NO
lMinSchema = NO.


DEF TEMP-TABLE tf-po LIKE PurchaseOrder.
CREATE tf-po.
ASSIGN
tf-po.ponum = 8001.
/*
FOR EACH tf-po WHERE tf-po.ponum no-lock , Each PurchaseOrder WHERE
PurchaseOrder.ponum = tf-po.ponum, EACH
poline WHERE PurchaseOrder.ponum = poline.ponum:
DISP
PurchaseOrder.ponum.
END.
*/

RUN p_CreateDataset('PurchaseOrder,poline',
'PurchaseOrder.ponum,poline.ponum',
'ponum,ponum',
" FOR EACH tf-po WHERE tf-po.ponum no-lock , Each PurchaseOrder WHERE
PurchaseOrder.ponum = tf-po.ponum, EACH
poline WHERE PurchaseOrder.ponum = poline.ponum" ,
OUTPUT hDataset ).
hDataSet:WRITE-XML(cTargetType,
cFile,
lFormatted,
cEncoding,
cSchemaLocation,
lWriteSchema,
lMinSchema).
DELETE OBJECT hDataset.

PROCEDURE p_CreateDataset.
DEFINE INPUT PARAMETER pcSources AS CHARACTER NO-UNDO.
DEFINE INPUT PARAMETER pcKeys AS CHARACTER NO-UNDO.
DEFINE INPUT PARAMETER pcRelations AS CHARACTER NO-UNDO.
DEFINE INPUT PARAMETER pcQuery AS CHARACTER NO-UNDO.
DEFINE OUTPUT PARAMETER phDataSet AS HANDLE.
DEFINE VARIABLE iEntry AS INTEGER NO-UNDO.
DEFINE VARIABLE hDataSource AS HANDLE NO-UNDO.
DEFINE VARIABLE hBuffer AS HANDLE NO-UNDO.
DEFINE VARIABLE hBuffer1 AS HANDLE NO-UNDO.
DEFINE VARIABLE hQuery AS HANDLE NO-UNDO.
DEFINE VARIABLE hTable AS HANDLE NO-UNDO.

CREATE DATASET phDataSet.

tableLoop:
DO iEntry = 1 TO NUM-ENTRIES(pcSources):
CREATE TEMP-TABLE hTable.
hTable:CREATE-LIKE(ENTRY(iEntry, pcSources)).
hTable:TEMP-TABLE-PREPARE(ENTRY(iEntry, pcSources)).
phDataSet:ADD-BUFFER(hTable:DEFAULT-BUFFER-HANDLE).
CREATE DATA-SOURCE hDataSource.
CREATE BUFFER hBuffer FOR TABLE ENTRY(iEntry, pcSources).
hDataSource:ADD-SOURCE-BUFFER(hBuffer, ENTRY(iEntry,pcKeys)).
phDataSet:GET-BUFFER-HANDLE(iEntry):ATTACH-DATA-SOURCE(hDataSource).
END.
phDataSet:ADD-RELATION(phDataSet:GET-BUFFER-HANDLE(1),
phDataSet:GET-BUFFER-HANDLE(2),
pcRelations).
phDataSet:FILL().
RETURN.
END PROCEDURE.
 
Back
Top