Как экспортировать файл в формате XML? - PullRequest
0 голосов
/ 24 декабря 2018

есть одна таблица с именем gdmf_customer в базе данных прогресса. В этой таблице есть одно поле, называемое временем сдвига. На самом деле в нем 15 записей (06: 00,07: 00 и т. Д.). Я просто скопировал скопированный gdmf_customer в tt_data,В tt_data temp-таблица имеет поле с именем tt_shift (целые данные поступают из gdmf_customer после копирования в буфер). Теперь мой вопрос заключается в том, что мне нужно разделить смену часов и экспортировать их в формате XML. См. Мои коды ниже

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. Смотрите, как это

1 Ответ

0 голосов
/ 24 декабря 2018

Мне кажется, что у вас оператор 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": ... КОНЕЦ."блок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...