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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.03.2012, 11:52   #1  
NickMDAX is offline
NickMDAX
Участник
 
16 / 11 (1) +
Регистрация: 12.09.2011
Адрес: Moscow
? объединение ячеек при формировании Excel
Добрый день всем!Помогите новичку.
При формировании отчета в Excel (использую ExcelTextBuffer) делаю в шапке объединение ячеек :
X++:
while (seded.moveNext())
    {
        cellsConDed = seded.current();
        for (i =1; i <= conlen(cellsConDed); i++)
        {
            document.getComExcelDocument().mergeRange(conpeek(cellsConDed,i),1);
        }
        cellsConDed = connull();
    }
В результате документ формируется, но перед созданием выдает предупреждение при объединении каждой ячейки.
Подскажите как отключить это сообщение или игнорировать его????
Заранее спасибо !!
Миниатюры
Нажмите на изображение для увеличения
Название: ExcelInfo.jpg
Просмотров: 395
Размер:	29.3 Кб
ID:	7605  
Старый 01.03.2012, 12:08   #2  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от NickMDAX Посмотреть сообщение
Добрый день всем!Помогите новичку.
При формировании отчета в Excel (использую ExcelTextBuffer) делаю в шапке объединение ячеек :
X++:
while (seded.moveNext())
    {
        cellsConDed = seded.current();
        for (i =1; i <= conlen(cellsConDed); i++)
        {
            document.getComExcelDocument().mergeRange(conpeek(cellsConDed,i),1);
        }
        cellsConDed = connull();
    }
В результате документ формируется, но перед созданием выдает предупреждение при объединении каждой ячейки.
Подскажите как отключить это сообщение или игнорировать его????
Заранее спасибо !!
скорее всего в тех ячейках, которые вы выделяете, содержаться данные (т.е. например, надо объединить ячейку 1 и 2, но так как у вас есть данные и в ячейке 1 и в ячейке 2, то соответственно Excel Вас предупреждает).
Соответственно проверьте правильность определения объединения ячеек.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 01.03.2012, 13:32   #3  
NickMDAX is offline
NickMDAX
Участник
 
16 / 11 (1) +
Регистрация: 12.09.2011
Адрес: Moscow
Цитата:
Сообщение от lev Посмотреть сообщение
скорее всего в тех ячейках, которые вы выделяете, содержаться данные (т.е. например, надо объединить ячейку 1 и 2, но так как у вас есть данные и в ячейке 1 и в ячейке 2, то соответственно Excel Вас предупреждает).
Соответственно проверьте правильность определения объединения ячеек.
Да именно так, в ячейках находятся названия колонок, которые в свою очередь добавляются динамически,копированием шаблонной колонки, в зависимости от количества элементов в мапе:
X++:
 while(meAdd.moveNext())
{         
       document.getComExcelDocument().insertColumn(9 + meAdd.currentValue() - 2);
       //далее вносим значение        
}
я так понимаю метод insertColumn копирует и данные, а чтобы не появлялось предупреждение , новые колонки должны быть пустыми.....никак не могу разобраться, не подскажете как это сделать?
Старый 01.03.2012, 13:37   #4  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от NickMDAX Посмотреть сообщение
Да именно так, в ячейках находятся названия колонок, которые в свою очередь добавляются динамически,копированием шаблонной колонки, в зависимости от количества элементов в мапе:
X++:
 while(meAdd.moveNext())
{         
       document.getComExcelDocument().insertColumn(9 + meAdd.currentValue() - 2);
       //далее вносим значение        
}
я так понимаю метод insertColumn копирует и данные, а чтобы не появлялось предупреждение , новые колонки должны быть пустыми.....никак не могу разобраться, не подскажете как это сделать?
первое что пришло в голову. в начале создацте колонки, объедените их, а потом уже пропишите в них текст
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
За это сообщение автора поблагодарили: NickMDAX (1).
Старый 01.03.2012, 13:50   #5  
NickMDAX is offline
NickMDAX
Участник
 
16 / 11 (1) +
Регистрация: 12.09.2011
Адрес: Moscow
Цитата:
Сообщение от lev Посмотреть сообщение
первое что пришло в голову. в начале создацте колонки, объедените их, а потом уже пропишите в них текст
Да действительно помогло!премного благодарен!!
Старый 01.03.2012, 13:58   #6  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от NickMDAX Посмотреть сообщение
Да действительно помогло!премного благодарен!!
Кстати, а вас жизнь заставила формировать вид документа в Excel на лету из кода?
почему не используете шаблоны *.xlt?
тогда можно было бы не тратить время в отчете на программирование "морды" документа.
программирование вида документа так же увеличивает время вывода отчета (в зависимости от отчета время может увеличиваться как незначительно, так и очень сильно).
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
За это сообщение автора поблагодарили: gl00mie (2).
Старый 01.03.2012, 14:53   #7  
NickMDAX is offline
NickMDAX
Участник
 
16 / 11 (1) +
Регистрация: 12.09.2011
Адрес: Moscow
Цитата:
Сообщение от lev Посмотреть сообщение
Кстати, а вас жизнь заставила формировать вид документа в Excel на лету из кода?
почему не используете шаблоны *.xlt?
тогда можно было бы не тратить время в отчете на программирование "морды" документа.
программирование вида документа так же увеличивает время вывода отчета (в зависимости от отчета время может увеличиваться как незначительно, так и очень сильно).
жизнь и не такое заставитвидимо я еще плохо выражаю свои мысли!
Отчет формирует различные начисления на сотрудников и я использую шаблон *.xlt , просто одна колонка в шаблоне (назовем ее "Виды начислений") формируется динамически, в зависимости от того, кому какие начисления положены,так как видов очень много! И в случае с большим количеством начислений шапка прямо "рябила" в глаза....вот и понадобилось объединение ячеек!еще раз спасибо!

И кстати не подскажете, если я хочу вывести итог по странице это можно сделать стандартным способом,уже реализованным или придется кодить самому???

Последний раз редактировалось NickMDAX; 01.03.2012 в 15:13.
Старый 01.03.2012, 15:12   #8  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от NickMDAX Посмотреть сообщение
жизнь и не такое заставитвидимо я еще плохо выражаю свои мысли!
Отчет формирует различные начисления на сотрудников и я использую шаблон *.xlt , просто одна колонка в шаблоне (назовем ее "Виды начислений") формируется динамически, в зависимости от того, кому какие начисления положены,так как видов очень много! И в случае с большим количеством начислений шапка прямо "рябила" в глаза....вот и понадобилось объединение ячеек!еще раз спасибо!
понятно на здоровье
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 02.03.2012, 06:56   #9  
kaw is offline
kaw
Участник
 
122 / 35 (2) +++
Регистрация: 23.03.2004
Адрес: Новосибирск
Цитата:
Сообщение от NickMDAX Посмотреть сообщение
И кстати не подскажете, если я хочу вывести итог по странице это можно сделать стандартным способом,уже реализованным или придется кодить самому?
Что подразумевается под стандартными способами :
класс ExcelTextBuffer или Вы хотите вставить в ячейку Excel формулу SUM

cчитаете итог при выводе строк:
myReport.doOutputLine()
{ ...
AmountTotal = AmountTotal + AmountLine;
}
и после цикла по строчкам выводите итоги myReport.doOutputTotal()
Старый 02.03.2012, 08:58   #10  
NickMDAX is offline
NickMDAX
Участник
 
16 / 11 (1) +
Регистрация: 12.09.2011
Адрес: Moscow
Цитата:
Сообщение от kaw Посмотреть сообщение
Что подразумевается под стандартными способами :
класс ExcelTextBuffer или Вы хотите вставить в ячейку Excel формулу SUM
как подсчитать итог я разобрался, вопрос остается в том как определить последнюю линию на странице, после которой выводить Итог или же как самому сделать разрыв страницы!Пытался использовать excel.insertPageBreak(), но как то не разобрался с параметрами для передачи.Я так понимаю нужно передать в метод bookmark ячейки, с которой начнется вывод на следующей странице, но мне выдает ошибку...
X++:
void calcLines()
{
    excel = document.getComExcelDocument();

    if(number == 46)
    {
        this.pageResult();
        excel.insertPageBreak("R45C1");
    } 
}
Старый 02.03.2012, 09:47   #11  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Не ячейки а строки. Вот пример из метода run класса SalesBookAnalyticJournal_RU:
X++:
excel.insertPageBreak(strfmt('%1:%1', noOfVPageBreaks), 1);
Старый 05.03.2012, 08:09   #12  
NickMDAX is offline
NickMDAX
Участник
 
16 / 11 (1) +
Регистрация: 12.09.2011
Адрес: Moscow
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Не ячейки а строки. Вот пример из метода run класса SalesBookAnalyticJournal_RU:
X++:
excel.insertPageBreak(strfmt('%1:%1', noOfVPageBreaks), 1);
Обошелся
X++:
 excel.insertPageBreakBeforeRow(j + i);
в моем случае оказалось удобнее...но все равно спасибо!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Высота ячеек Excel eva DAX: Программирование 8 20.03.2012 22:42
Падение DAX при формировании отчета в Excel Storaenso DAX: Прочие вопросы 16 06.07.2011 15:57
Excel диапазон ячеек andrewK DAX: Программирование 9 03.05.2010 20:37
Передать данные с сервера на клиент при формировании Excel отчета Eldar9x DAX: Программирование 10 21.10.2008 15:39

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

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

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