|
28.03.2008, 10:23 | #1 |
Участник
|
Проблемы с выгрузкой отчета их HTML в Excel. Ax3.0
Всем привет. Прошу прощения, если сделала что- то не так, я здесь новичок. У меня такая проблема: выгружаю оборотку (около 3000-4000 строк) в формате HTML, потом пытаюсь открыть его в Екселе (Офис 2003), а он пишет каракули, когда страниц отчета или строк меньше- без проблем, а если много (и то не всегда, бывает открывается нормально, через раз). Ексел нужен, чтобы бухи исправляли какие то цифры. Если из формата ASCII в EXCEL- выгружается ноомально, но бухам не нравится. В общем у меня такой вопрос- эта проблема в Аксапте или в Екселе и что можно сделать? Мне нужно срочно решить эту проблемы. Надеюсь на вашу помощь .
|
|
28.03.2008, 12:05 | #2 |
Axapta Retail User
|
Стандартными способами отчеты в Excel поместить нельзя, нужно самим писать отчеты.
Существует несколько способов. Например, сделайте поиск по форуму - ключевое слово - ComExcelDocument_RU
__________________
Романтик.. |
|
28.03.2008, 13:12 | #3 |
Участник
|
Цитата:
Стандартными способами отчеты в Excel поместить нельзя, нужно самим писать отчеты.
ПыСы. Здесь на форуме вчера да и сегодня 4-5 раз пыталась найти похожую тему- по поиску, но не нашла, есть схожие- но у них проблема в другом. |
|
28.03.2008, 13:20 | #4 |
Участник
|
xenikk на верное имел ввиду что, люди редко пользуются выгрузкой отчёта в html. И ещё реже дальнейшей конвертацией в excel.
Если нужен какой то отчёт заказывают программерам. Если просто данные копи-пастом в Excel через буфер. |
|
28.03.2008, 13:44 | #5 |
Участник
|
У меня это было связано с тем, что в заголовке HTML документа ( в теге <HEAD>)
Аксапта не добавляет строку <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251"> Попробуйте вставить ее вручную в проблемном документе. Может быть количество страниц и не причем. |
|
28.03.2008, 13:49 | #6 |
Участник
|
Цитата:
xenikk на верное имел ввиду что, люди редко пользуются выгрузкой отчёта в html. И ещё реже дальнейшей конвертацией в excel.
Если нужен какой то отчёт заказывают программерам. VC А что эта строка дает? |
|
28.03.2008, 14:10 | #7 |
Участник
|
|
|
28.03.2008, 13:57 | #8 |
Участник
|
Я делел так:
X++: public void run() //метод run отчета { TextBuffer tb = new TextBuffer(); str path = element.printJobSettings().filename(); ; super(); tb.fromFile(path); tb.regularExpressions(false); tb.find('<head>'); tb.insert('\n<meta http-equiv=Content-Type content="text/html; charset=windows-1251">', tb.matchPos()+tb.matchLen()); tb.toFile(path); } Последний раз редактировалось Lucky13; 28.03.2008 в 13:59. |
|
28.03.2008, 15:38 | #9 |
Участник
|
Цитата:
Сообщение от Lucky13
Я делел так:
X++: public void run() //метод run отчета { TextBuffer tb = new TextBuffer(); str path = element.printJobSettings().filename(); ; super(); tb.fromFile(path); tb.regularExpressions(false); tb.find('<head>'); tb.insert('\n<meta http-equiv=Content-Type content="text/html; charset=windows-1251">', tb.matchPos()+tb.matchLen()); tb.toFile(path); } А вообще, обидно, что кажется нельзя добавить эту строку при генерации HTML файлов из любого отчета. Если бы класс ReportOutput не был системным, достаточно было бы добавить одну строку в его метод printHTML Если бы метод printHTML не был объявлен как final, можно было бы обьявить его наследник, добавить код подобный вашему в его унаследованный метод printHTML и вызывать конструктор этого класса-наследника вместо конструктора исходного ReportOutput в методе newReportOutput класса SysPrintOptions. А так мне что то способа не видится |
|
28.03.2008, 15:49 | #10 |
Участник
|
Цитата:
Цитата:
Сообщение от vc
А вообще, обидно, что кажется нельзя добавить эту строку при генерации HTML файлов из любого отчета.
Если бы класс ReportOutput не был системным, достаточно было бы добавить одну строку в его метод printHTML Если бы метод printHTML не был объявлен как final, можно было бы обьявить его наследник, добавить код подобный вашему в его унаследованный метод printHTML и вызывать конструктор этого класса-наследника вместо конструктора исходного ReportOutput в методе newReportOutput класса SysPrintOptions. А так мне что то способа не видится |
|
28.03.2008, 15:57 | #11 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: vc (1). |
28.03.2008, 16:11 | #12 |
Участник
|
|
|
28.03.2008, 16:00 | #13 |
Участник
|
Да должно получиться. Единственное, что при этом эффект будет только лишь на предпросмотре (т.е. когда в первый раз выбираем канал вывода). В случае если мы уже вывели отчет на экран и пытаемся сохранить в html, то эффекта не будет, там аксапта просто не вызывает этот метод. Причем во втором случае используются одни закрытые классы и никак не впихнуть свой код перед выводом файла.
2Бриллиантик, а вообще если вручную вставить строчку то у вас нормально выводится? Может вообще не в этом дело. |
|
28.03.2008, 16:38 | #14 |
Участник
|
Блин, точно. У меня это самый частый сценарий использования. Сейчас вспомнил, что в свое время пытался найти какую то зацепку в SysReportRun при нем. И не нашел.
|
|
28.03.2008, 14:05 | #15 |
Участник
|
Еще раз сорри. Я не особо разбираюсь именно в программировании. Вот метод run формы этого отчета:
void run() { element.buildFormInit(); if (!element.setSendToSelection(clientSysPrintOptions.parmTarget())) { if (!element.setSendToSelection(PrintMedium::Printer)) { element.setSendToSelection(PrintMedium::Screen); } } sendTo.setFocus(); element.lock(); super(); this.buildFormRun(); element.unLock(); if (BMMainControl::inAction()) element.closeOk(); } Мне надо вставлять сюда? Они чтото совсем не похожи |
|
28.03.2008, 14:10 | #16 |
Участник
|
Вставлять нужно в метод run самого отчета. Найти его можно так:
1. Найти этот отчет в меню (не в главном, а в пункте Menu AOT) 2. Посмотреть какой MenuItem этот пункт использует. 3. Скорее всего это и есть имя отчета, его поискать в Reports 4. Если такого нет, то найти такой MenuItem и посмотреть на какой отчет он ссылается. Если метода run с не будет его нужно создать и вставить в него приведенный код. |
|
28.03.2008, 14:35 | #17 |
Участник
|
Цитата:
Сервис / Параметры / Общие / Параметры Web документа / Кодировка / Кириллица (Windows)
Этот метод я нашла через "формы- название формы", там методы, среди них run- такой какой я выложила сюда, а если заходить в репорт- там есть методы но там нет метода run. Я че то ваще запуталась. Помогите мне, плиззз |
|
28.03.2008, 14:50 | #18 |
Участник
|
Вы в Экселе ищете? Вроде должно быть
|
|
28.03.2008, 15:11 | #19 |
Участник
|
Сорри за тупизм, а где надо искать? я искала в Аксапте. А надо было в Екселе? поняна, я нашла в Екселе, там стоит кириллица виндоуз.
Так мне никто не поможет, да? Последний раз редактировалось Бриллиантик; 28.03.2008 в 15:13. |
|
31.03.2008, 11:24 | #20 |
Участник
|
Masel, я просто не могу понять куда именно вставлять эту строку, я ее вставила, он говорит что какая то функция не обьявлена, а как ее обьявить- не знаю. В общем понять в чем проблема- не могу,уже несколько дней прошло, а решения я не вижу
|
|
Теги |
ax3.0 |
|
Похожие темы | ||||
Тема | Ответов | |||
Проблемы при экспорте в Excel | 4 | |||
Экспорт отчета в Excel | 17 | |||
проблемы с Excel | 6 | |||
Печать отчета в Excel. Axapta 3.0 | 2 |
|