07.10.2008, 11:04 | #1 |
Участник
|
Всем привет.
Возникла необходимость выгружать отчеты в Word. можно конечно через объекты word-аб создовать док и т.п. . такое описывать в каждом отчете. Но это не очень удобно. Решил попробывать, выгружать в xml, и написать один раз функцию, которая это XML файл парсить и создавать файл Но встал уже на первом этапе - выгрузке в xml. если вызывать метод saveasXMl таким образом: Report.SAVEASXML(Number, FileName [,SystemPrinter] [, Rec]) ругаеться да неверные даты (очевидно даты, которые указываються на форме запросов) Если в каждом отчете делать функцию инициализацуии таких переменных, а потом у конкретного отчета ее вызывать то нельзя будет этому отчету передать запись, по котрой делаем отчет идиальмым, как мне кажеться вариантом, была бы конструкция currreport.saveasXML но и она не работает, выдает две ошибки, первая, отчет уже создан используйте CLEAR(отчет) вторая repot () не существует. Может кто уже работал с экспортом в XML, подскажите плиз. В интее почти ничего нет |
|
07.10.2008, 11:41 | #2 |
MCTS
|
1.
Какое-то время назад я написал целый трактат о передаче параметров в отчет http://apanko.ru/showthread.php?t=3497 Если в нем заменить все вызовы RUN и RUNMODAL на SAVAASXML, то это будет то, что Вам нужно. 2. XML генерируемый данной функцией довольно специфичный: Код: <?xml version='1.0' encoding='windows-1251'?> <Report xmlns="urn:www.navision.com:Report"> <Title>SXML</Title> <HTMLHead> <![CDATA[ <HTML> <HEAD> <TITLE>SXML</TITLE> </HEAD> <BODY BGCOLOR=ffffff> ]]></HTMLHead> <Page PageNo="1"> <![CDATA[ <TABLE WIDTH="100%" BORDER=0 CELLSPACING=0 CELLPADDING=0> <TR><TD> <TABLE WIDTH="100%" BORDER=0 CELLPADDING=0> <TR> <TD WIDTH="41%" VAlign=Middle><FONT SIZE=1 FACE="Helvetica">Товар</FONT></TD> <TD WIDTH="42%"></TD> <TD WIDTH="17%" Align=Right VAlign=Middle><FONT SIZE=1 FACE="Helvetica">7. Октябрь 2008</FONT></TD> </TR> </TABLE> <TABLE WIDTH="100%" BORDER=0 CELLPADDING=0> <TR> <TD WIDTH="41%" VAlign=Middle><FONT SIZE=1 FACE="Helvetica">CRONUS Россия ЗАО</FONT></TD> <TD WIDTH="52%"></TD> <TD WIDTH="5%" VAlign=Middle><FONT SIZE=1 FACE="Helvetica">Страница</FONT></TD> <TD WIDTH="2%" Align=Right VAlign=Middle><FONT SIZE=1 FACE="Helvetica">1</FONT></TD> </TR> </TABLE> |
|
07.10.2008, 11:48 | #3 |
Участник
|
Ооо, спасибо, то что нужно
Буду пробывать, хотя уже вижу, что границы у всех таблиц толщины 0 (( Кто знает, может придумаю что )) |
|
07.10.2008, 12:41 | #4 |
Участник
|
хмм, не получаеться, выдает ошибку: "Отчет уже был запущен. Используйте функцию CLAR(ОТЧЕТ)"
а вот так вызываю: CurrForm.SETSELECTIONFILTER(sh); myreport.setdate; myreport.SETTABLEVIEW(sh); myreport.SAVEASXML('c:\132.xml'); Кт что сможет подсказать? |
|
07.10.2008, 13:15 | #5 |
MCTS
|
Раз хочет, так напишите:
Clear(myreport); Видимо myreport - глобальная переменная. Завели бы ее как локальную в соответствующем триггер, очищать при каждом нажатии на кнопку не надо было бы. |
|
07.10.2008, 13:29 | #6 |
Участник
|
))
С различными экспериментами, оставил еще и в теле отчета вызов метода saveasxml. буду думать, как это xml в word канверртнуть можно ))) |
|
07.10.2008, 16:03 | #7 |
Участник
|
а зачем вам в ворд конвертить? если у вас открывается документ браузером то и откройте его, затем выберите файл - Править в майкрософт ворд (если этой опции нету то её надо настроить в настройках браузера) - самый незатратный способ.
|
|