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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.01.2006, 12:05   #1  
gnom29_imported is offline
gnom29_imported
Участник
 
1 / 10 (1) +
Регистрация: 10.01.2006
Спасибо.
Опробовал совет, но если я вставляю данные в объединенную ячейку, то она разбивается. Есть ли способ вставлять из буффера в объединенную ячейку?

Можно, конечно, вставлять данные в отдельный лист, а в документе поместить ссылку, но тогда при различных манипуляциях с документом возможны ошибки и смещения.
Старый 10.01.2006, 12:12   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Вопрос задан к этому совету в FAQ Как быстро вывести данные в Excel из кода X++
__________________
полезное на axForum, github, vk, coub.
Старый 13.01.2006, 19:22   #3  
Владимир Максимов_imported is offline
Владимир Максимов_imported
Участник
 
33 / 10 (1) +
Регистрация: 20.01.2004
Я не нашел как можно избавиться от такого эффекта, поэтому действую так, чтобы на момент вставки из буфера те ячейки в которые происходит такая вставка не были объединены.

-) Если это шапка таблицы, то можно саму шапку заполнять "стандартно" по одной ячейке за раз. Количество заполняемых ячеек в шапке обычно не велико и задержка будет незначительная.

-) Если речь идет об объединении небольшого количества ячеек (промежуточные итоги), то я сначала заполняю данные из буфера, и только потом выполняю программное объединение ячеек.

-) Если речь идет о некой унифицированной форме (недавно делал ТОРГ-28 и ТОРГ-29), то сделал так:

"Деталировка" - это просто столбцы без какого-либо объединения ячеек и вставка идет из буфера без проблем.
"Шапка" - это внедренный лист Excel

В результате такого деления можно подвинуть шапку как угодно относительно детальной части. Нет необходимости для "попадания" на нужные позиции объединять ячейки детальной части.
Старый 16.01.2006, 13:22   #4  
Ashir is offline
Ashir
Участник
 
45 / 22 (1) +++
Регистрация: 27.10.2005
2mazzy
В приведённом Вами примере всё понятно , но у меня сложилась ситуация, когда нужно осуществить вставку строки (типа "A1:B1" - 2 ячеек), как мне сформировать эту строку программно? как разделить значения 1 и 2?

Код:
...
text.setText( strfmt("%1;%2", value1, value2) );
...
это не катит
__________________
Самое полезное в жизни – это собственный опыт...
Старый 16.01.2006, 14:10   #5  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Разделяйте TAB'ом
<div class='XPPtop'>X++</div><div class='XPP'>
strfmt([color=:red]"%1\t%2"[/color], value1, value2);</div>
__________________
Axapta v.3.0 sp5 kr2
Старый 16.01.2006, 14:20   #6  
Ashir is offline
Ashir
Участник
 
45 / 22 (1) +++
Регистрация: 27.10.2005
thanks AndyD
__________________
Самое полезное в жизни – это собственный опыт...
Старый 16.01.2006, 14:34   #7  
Ashir is offline
Ashir
Участник
 
45 / 22 (1) +++
Регистрация: 27.10.2005
А не подскажители как можно вставить несколико строк ("A1:B2")? Чем их разделить?
Будет ли хорошим тоном вставлять в excel группы строк (~5), ну конечно чтобы текстовая переменная чрезмерно не выростала?
Будет ли такой алгоритм работать быстрее?
__________________
Самое полезное в жизни – это собственный опыт...
Старый 16.01.2006, 15:44   #8  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Строки разделяются ч/з Enter ("\n")

Всталять группой - гуд, это более правильный подход чем по одной ячейке.
__________________
Axapta v.3.0 sp5 kr2
Старый 16.01.2006, 15:52   #9  
Ashir is offline
Ashir
Участник
 
45 / 22 (1) +++
Регистрация: 27.10.2005
Спасибо
__________________
Самое полезное в жизни – это собственный опыт...
Старый 17.01.2006, 10:11   #10  
Ashir is offline
Ashir
Участник
 
45 / 22 (1) +++
Регистрация: 27.10.2005
А можно ли каким-либо образом обезопасить (заблокировать) буфер обмена системы от нежелетельного его изменения другими программами, в момент формирования отчёта? Если нет, то разве можно применять такой подход в практике (вообще) при формировании значительных по размеру отчётов (в частности), ведь гарантии безГлючности просто НЕТ!
__________________
Самое полезное в жизни – это собственный опыт...
Старый 17.01.2006, 10:41   #11  
Владимир Максимов_imported is offline
Владимир Максимов_imported
Участник
 
33 / 10 (1) +
Регистрация: 20.01.2004
Наверное, можно каким-то образом заблокировать системный буфер обмена, только особого смысла в этом нет.

Лист Excel имеет очень ограниченный размер (256 столбцов х 65536 строк). Т.е. объем информации прокачиваемый через буфер обмена относительно невелик.

Кроме того, логика работы с буфером предполагает очень кратковременное его использование. Т.е. в программе заранее готовиться информация, которая бует послана через буфер обмена. Затем эта информация скидывается в буфер и тут же из буфера в Excel. После чего, содержимое буфера уже никого не интересует.

Да, в принципе, пользователь может испортить буфер. Но это означает что в отчет вообще ничего не загрузиться или загрузится явный мусор. Т.е. будет явно видно, что произошел сбой. После парочки таких отчетов, пользователь сам быстро сообразит, чего не надо делать.

Если вместо нескольких часов (это не преувеличение, попробуй поячеечно заполнить хотя бы 65000 ячеек) отчет загружается за несколько секунд, то стоит пойти на такой риск. Тем более, вероятность порчи буфера пользователем достаточно низкая.
Старый 17.01.2006, 11:14   #12  
Ashir is offline
Ashir
Участник
 
45 / 22 (1) +++
Регистрация: 27.10.2005
Я и не сомневаюсь в том, что через буфер обмена отчёт выгружается в excel значительно быстрее, я вчера сам смог в этом убедится.
Да и испортить содержимое буфера, во время вывода в excel (который у меня теперь занимает 8 сек по сравнению с несколькими минутами), вруччную мне так и не удалось.

Так что всем страждущим высокой скорости выгрузки рекомендую: Буфер обмена это то, что нужно!
__________________
Самое полезное в жизни – это собственный опыт...
 


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

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

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