AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Функционал
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.03.2008, 10:23   #1  
Бриллиантик is offline
Бриллиантик
Участник
 
15 / 10 (1) +
Регистрация: 31.01.2008
Проблемы с выгрузкой отчета их HTML в Excel. Ax3.0
Всем привет. Прошу прощения, если сделала что- то не так, я здесь новичок. У меня такая проблема: выгружаю оборотку (около 3000-4000 строк) в формате HTML, потом пытаюсь открыть его в Екселе (Офис 2003), а он пишет каракули, когда страниц отчета или строк меньше- без проблем, а если много (и то не всегда, бывает открывается нормально, через раз). Ексел нужен, чтобы бухи исправляли какие то цифры. Если из формата ASCII в EXCEL- выгружается ноомально, но бухам не нравится. В общем у меня такой вопрос- эта проблема в Аксапте или в Екселе и что можно сделать? Мне нужно срочно решить эту проблемы. Надеюсь на вашу помощь .
Старый 28.03.2008, 12:05   #2  
xenikk is offline
xenikk
Axapta Retail User
Аватар для xenikk
Axapta Retail User
 
30 / 10 (1) +
Регистрация: 20.06.2007
Адрес: Moscow
Стандартными способами отчеты в Excel поместить нельзя, нужно самим писать отчеты.
Существует несколько способов.
Например, сделайте поиск по форуму - ключевое слово - ComExcelDocument_RU
__________________
Романтик..
Старый 28.03.2008, 13:12   #3  
Бриллиантик is offline
Бриллиантик
Участник
 
15 / 10 (1) +
Регистрация: 31.01.2008
Цитата:
Стандартными способами отчеты в Excel поместить нельзя, нужно самим писать отчеты.
Проблема не в этом, я повторю- выгружаю отчет в HTML, из HTML открываю в Екселе отчет, если страниц/строк немного- то все в порядке, а если страниц много и строк больше 2000-3000- то получаются каракули. Вопрос- кто-нибудь сталкивался с такой проблемой и как решили? В чем загвоздка? Что не так? Кто сможет помочь мне в этом вопросе? Плиз, срочно...
ПыСы. Здесь на форуме вчера да и сегодня 4-5 раз пыталась найти похожую тему- по поиску, но не нашла, есть схожие- но у них проблема в другом.
Старый 28.03.2008, 13:20   #4  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
xenikk на верное имел ввиду что, люди редко пользуются выгрузкой отчёта в html. И ещё реже дальнейшей конвертацией в excel.
Если нужен какой то отчёт заказывают программерам.
Если просто данные копи-пастом в Excel через буфер.
Старый 28.03.2008, 13:44   #5  
vc is offline
vc
Участник
Самостоятельные клиенты AX
Axapta Retail User
 
89 / 23 (1) +++
Регистрация: 03.06.2005
У меня это было связано с тем, что в заголовке HTML документа ( в теге <HEAD>)
Аксапта не добавляет строку
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">

Попробуйте вставить ее вручную в проблемном документе. Может быть количество страниц и не причем.
Старый 28.03.2008, 13:49   #6  
Бриллиантик is offline
Бриллиантик
Участник
 
15 / 10 (1) +
Регистрация: 31.01.2008
Цитата:
xenikk на верное имел ввиду что, люди редко пользуются выгрузкой отчёта в html. И ещё реже дальнейшей конвертацией в excel.
Если нужен какой то отчёт заказывают программерам.
Почему редко пользуются? А чем тогда пользуются в альтернативе? Извините, я с Казахстана и у нас в городе всего две компании которые пользуются Аксаптой, поэтому спросить не у кого. Если выгружать в формат txt то потом в Екселе нужно развигать колонками, вобщем еще чуть подкорректировать. Неужели никто не сталкивался с такой проблемой? Я пробовала на разных машинах, и все хорошие- и память, и материнка, в общем проблема не в компе, а вот в чем?
VC
А что эта строка дает?
Старый 28.03.2008, 13:57   #7  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
Я делел так:
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, 14:05   #8  
Бриллиантик is offline
Бриллиантик
Участник
 
15 / 10 (1) +
Регистрация: 31.01.2008
Еще раз сорри. Я не особо разбираюсь именно в программировании. Вот метод 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   #9  
vc is offline
vc
Участник
Самостоятельные клиенты AX
Axapta Retail User
 
89 / 23 (1) +++
Регистрация: 03.06.2005
Цитата:
Сообщение от Бриллиантик Посмотреть сообщение
А что эта строка дает?
Дает знать Excel в какой кодировке сохранен документ.
Еще можно в Excel задать кодировку для html документов по умолчанию.

Сервис / Параметры / Общие / Параметры Web документа / Кодировка / Кириллица (Windows)
Старый 28.03.2008, 14:10   #10  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
Вставлять нужно в метод run самого отчета. Найти его можно так:
1. Найти этот отчет в меню (не в главном, а в пункте Menu AOT)
2. Посмотреть какой MenuItem этот пункт использует.
3. Скорее всего это и есть имя отчета, его поискать в Reports
4. Если такого нет, то найти такой MenuItem и посмотреть на какой отчет он ссылается.

Если метода run с не будет его нужно создать и вставить в него приведенный код.
Старый 28.03.2008, 14:35   #11  
Бриллиантик is offline
Бриллиантик
Участник
 
15 / 10 (1) +
Регистрация: 31.01.2008
Цитата:
Сервис / Параметры / Общие / Параметры Web документа / Кодировка / Кириллица (Windows)
Честно сказать? у меня такого нет! есть сервис, есть параметры, а общих уже нет да и прошлась по всем закладкам- нигде такого нет, может в другом месте?
Этот метод я нашла через "формы- название формы", там методы, среди них run- такой какой я выложила сюда, а если заходить в репорт- там есть методы но там нет метода run. Я че то ваще запуталась. Помогите мне, плиззз
Старый 28.03.2008, 14:50   #12  
vc is offline
vc
Участник
Самостоятельные клиенты AX
Axapta Retail User
 
89 / 23 (1) +++
Регистрация: 03.06.2005
Вы в Экселе ищете? Вроде должно быть
Старый 28.03.2008, 15:11   #13  
Бриллиантик is offline
Бриллиантик
Участник
 
15 / 10 (1) +
Регистрация: 31.01.2008
Сорри за тупизм, а где надо искать? я искала в Аксапте. А надо было в Екселе? поняна, я нашла в Екселе, там стоит кириллица виндоуз.
Так мне никто не поможет, да?

Последний раз редактировалось Бриллиантик; 28.03.2008 в 15:13.
Старый 28.03.2008, 15:38   #14  
vc is offline
vc
Участник
Самостоятельные клиенты AX
Axapta Retail User
 
89 / 23 (1) +++
Регистрация: 03.06.2005
Цитата:
Сообщение от 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.
А вообще, обидно, что кажется нельзя добавить эту строку при генерации HTML файлов из любого отчета.
Если бы класс ReportOutput не был системным, достаточно было бы добавить одну строку в его метод printHTML
Если бы метод printHTML не был объявлен как final, можно было бы обьявить его наследник, добавить код подобный вашему в его унаследованный метод printHTML и
вызывать конструктор этого класса-наследника вместо конструктора исходного ReportOutput в методе newReportOutput класса SysPrintOptions.
А так мне что то способа не видится
Старый 28.03.2008, 15:49   #15  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
Цитата:
Сообщение от vc Посмотреть сообщение
Тут наверное где то должны быть проверки, что отчет сохраняется в файл, и формат отчета HTML.
Да, они длжны быть и есть, просто я упростил код для наглядности.
Цитата:
Сообщение от vc Посмотреть сообщение
А вообще, обидно, что кажется нельзя добавить эту строку при генерации HTML файлов из любого отчета.
Если бы класс ReportOutput не был системным, достаточно было бы добавить одну строку в его метод printHTML
Если бы метод printHTML не был объявлен как final, можно было бы обьявить его наследник, добавить код подобный вашему в его унаследованный метод printHTML и
вызывать конструктор этого класса-наследника вместо конструктора исходного ReportOutput в методе newReportOutput класса SysPrintOptions.
А так мне что то способа не видится
А что если добавить этот код в метод SysReportRun.Run()? По-моему должно получиться, надо попробовать.
Старый 28.03.2008, 15:57   #16  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
Цитата:
Сообщение от Lucky13 Посмотреть сообщение
А что если добавить этот код в метод SysReportRun.Run()? По-моему должно получиться, надо попробовать.
Попробовал, работает однако
За это сообщение автора поблагодарили: vc (1).
Старый 28.03.2008, 16:00   #17  
Masel is offline
Masel
Участник
 
39 / 537 (18) +++++++
Регистрация: 19.09.2007
Цитата:
Сообщение от Lucky13 Посмотреть сообщение
По-моему должно получиться, надо попробовать.
Да должно получиться. Единственное, что при этом эффект будет только лишь на предпросмотре (т.е. когда в первый раз выбираем канал вывода). В случае если мы уже вывели отчет на экран и пытаемся сохранить в html, то эффекта не будет, там аксапта просто не вызывает этот метод. Причем во втором случае используются одни закрытые классы и никак не впихнуть свой код перед выводом файла.

2Бриллиантик, а вообще если вручную вставить строчку то у вас нормально выводится? Может вообще не в этом дело.
Старый 28.03.2008, 16:11   #18  
vc is offline
vc
Участник
Самостоятельные клиенты AX
Axapta Retail User
 
89 / 23 (1) +++
Регистрация: 03.06.2005
Цитата:
Сообщение от Lucky13 Посмотреть сообщение
Попробовал, работает однако
Спасибо, не туда копал, получается
Старый 28.03.2008, 16:38   #19  
vc is offline
vc
Участник
Самостоятельные клиенты AX
Axapta Retail User
 
89 / 23 (1) +++
Регистрация: 03.06.2005
Цитата:
Сообщение от Masel Посмотреть сообщение
В случае если мы уже вывели отчет на экран и пытаемся сохранить в html, то эффекта не будет, там аксапта просто не вызывает этот метод.
Блин, точно. У меня это самый частый сценарий использования. Сейчас вспомнил, что в свое время пытался найти какую то зацепку в SysReportRun при нем. И не нашел.
Старый 31.03.2008, 11:24   #20  
Бриллиантик is offline
Бриллиантик
Участник
 
15 / 10 (1) +
Регистрация: 31.01.2008
Masel, я просто не могу понять куда именно вставлять эту строку, я ее вставила, он говорит что какая то функция не обьявлена, а как ее обьявить- не знаю. В общем понять в чем проблема- не могу,уже несколько дней прошло, а решения я не вижу
Теги
ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Проблемы при экспорте в Excel ymv2000 DAX: Программирование 4 13.06.2007 06:51
Экспорт отчета в Excel Andronov DAX: Программирование 17 13.02.2006 16:13
проблемы с Excel Акавешка DAX: Программирование 6 27.10.2005 12:10
Печать отчета в Excel. Axapta 3.0 Fedr Kuzmich DAX: Функционал 2 19.05.2004 18:26

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 17:45.