FOR EACH gdmf_shift NO-LOCK:BUFFER-COPY gdmf_shift EXCEPT shift_obj TO tt_shift.END.
hOutSAXDocument:START-ELEMENT("Row").
hOutSAXDocument:INSERT-ATTRIBUTE("id","5").
hOutSAXDocument:START-ELEMENT("Column").
hOutSAXDocument:INSERT-ATTRIBUTE("id","C1").
hOutSAXDocument:WRITE-DATA-ELEMENT("Column",string(tt_orderinfo.shft_start_hour,"HH:MM")).
hOutSAXDocument:WRITE-DATA-ELEMENT("Column",string(tt_orderinfo.shft_stop_hour,"HH:MM")).
从上面的代码中看到,我得到了第一个开始和结束时间,并以XML格式导出,但是我需要的是每小时驻留在tt_data中。See Like this
在我看来,您的END语句在错误的位置。
FOR EACH gdmf_shift NO-LOCK:
BUFFER-COPY gdmf_shift EXCEPT shift_obj TO tt_shift. /* I don't see why you are doing this but maybe there is more code than is being shown */
hOutSAXDocument:START-ELEMENT("Row").
hOutSAXDocument:INSERT-ATTRIBUTE("id","5").
hOutSAXDocument:START-ELEMENT("Column").
hOutSAXDocument:INSERT-ATTRIBUTE("id","C1").
hOutSAXDocument:WRITE-DATA-ELEMENT("Column",string(tt_orderinfo.shft_start_hour,"HH:MM")).
hOutSAXDocument:WRITE-DATA-ELEMENT("Column",string(tt_orderinfo.shft_stop_hour,"HH:MM")).
/* you probably want to end the element here */
END.
似乎您可能认为Progress 4GL / ABL有点像SQL,其中返回了“结果集”并作为整体起作用。 4GL不是那样的。 FOR EACH是一个循环块-每行分别返回以供您执行。尽管从表面上看相似,但它与SQL SELECT不同。
您的原始代码仅作用于最后一行,因为它恰好位于“ FOR EACH x WHERE y:... END”末尾的“范围内”。阻止。