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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.03.2005, 09:57   #1  
velk is offline
velk
Участник
 
194 / 10 (1) +
Регистрация: 17.05.2004
? Как выделить все записи в гриде скопировать и отправить в Excel???
Как выделить все записи в гриде скопировать и отправить в Excel???
Помогите пожалуйста
Старый 03.03.2005, 10:07   #2  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Ctrl-A или на кнопочку в верхнем левом углу грида нажмите.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 03.03.2005, 10:15   #3  
Koriolis is offline
Koriolis
Участник
 
20 / 10 (1) +
Регистрация: 14.02.2005
Адрес: Москва
Нет ничего проще.
В гриде щелкаем на квадратную пимпочку в левом верхнем углу или нажимаем Ctrl+A.
Жмем кнопку "Копировать" в Toolbare (или Ctrl+C). Переходим ... нет не в Excel - рано еще ... в какой-нибудь редактор типа Far и вставляем это все туда. Копируем оттуда и переходим теперь уже в Excel и вставляем туда - и будет Вам счастье!
Старый 03.03.2005, 10:32   #4  
velk is offline
velk
Участник
 
194 / 10 (1) +
Регистрация: 17.05.2004
!
А программно нельзя это сделать?
Старый 03.03.2005, 10:46   #5  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
873 / 649 (23) +++++++
Регистрация: 14.10.2004
Цитата:
Жмем кнопку "Копировать" в Toolbare (или Ctrl+C). Переходим ... нет не в Excel - рано еще ... в какой-нибудь редактор типа Far и вставляем это все туда. Копируем оттуда и переходим теперь уже в Excel и вставляем туда - и будет Вам счастье!
Можно сразу скопировать из грида в Эксель. Для этого перед тем, как нажать Ctrl+C, нужно включить русскую раскладку.
Старый 03.03.2005, 10:52   #6  
velk is offline
velk
Участник
 
194 / 10 (1) +
Регистрация: 17.05.2004
!
А программно!!!!!?????
Нажали кнопочку на форме
в коде выделить все записи в гриде
так же программно открыть Excel и вставить скопированные записи туда..... Показать Excel....
Старый 03.03.2005, 11:31   #7  
Hezl is offline
Hezl
Участник
Аватар для Hezl
 
138 / 16 (1) ++
Регистрация: 21.04.2004
Адрес: Moscow, Russia
Но вообще с копированием в Excel через буфер обмена есть нюанс - иногда некоторые записи не копируются.
Старый 03.03.2005, 11:39   #8  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Программно - распечатали в ртф и вот вам счастье
Hezl! Да, там траблы связанны с тем, что данные кэшируются, и грид выводит/копирует только "подкачанные" данные. обычно - не более сотни записей. поэтому этим способом пользоваться нельзя.

Кстати, а как Вы это представляете: программно? Grid2Excel??? Чудес нет. Есть программинг.

С Уважением,
Георгий.
Старый 03.03.2005, 11:45   #9  
velk is offline
velk
Участник
 
194 / 10 (1) +
Регистрация: 17.05.2004
Я предполагал что grid связан и источником данных.... так вот при попытке выгрузки программно из этого источника с наложеным фильтром на grid почемуто выводятся все записи... т.е. не учитывается фильтр
как тут быть?
Старый 03.03.2005, 11:50   #10  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Фильтр лежит в имя_источника_данных_ds.query();

Делаешь queryRun = new QueryRun(..._ds.query());

и while(qr.next())
{
выгружаешь.
}

С Уважением,
Георгий.
Старый 03.03.2005, 11:56   #11  
velk is offline
velk
Участник
 
194 / 10 (1) +
Регистрация: 17.05.2004
оооо огромное спасибо
Старый 03.03.2005, 12:16   #12  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Еще точнее - текущий фильтр лежит в ..._ds.QueryRun().Query()
Старый 05.09.2005, 12:38   #13  
Bega is offline
Bega
Участник
Аватар для Bega
 
382 / 444 (15) +++++++
Регистрация: 18.08.2005
Адрес: Москва
2 velk:
Удалось таки сделать выгрузку из грида в Excel ? Если да, не расскажешь каким образом ?
Старый 05.09.2005, 15:08   #14  
BOAL is offline
BOAL
Участник
Аватар для BOAL
MCBMSS
Злыдни
1C
Лучший по профессии 2015
 
621 / 453 (17) +++++++
Регистрация: 28.04.2003
Адрес: Москва
Заметьте, что выделяя все записи в гриде, вы выделяете "все" подгруженные в него записи. Т.е., если записей вагон, то они прекрасно обрежутся на половине строк - нормальное явление.
Чтоб этого не было, промотайте список до конца (ориентир сузившийся скрол бар).
Вот тогда вставятся все записи.
Кстати, фильтр для копирования там работает корректно, если наложен на неподчененный датасорс
Старый 05.09.2005, 15:13   #15  
Bega is offline
Bega
Участник
Аватар для Bega
 
382 / 444 (15) +++++++
Регистрация: 18.08.2005
Адрес: Москва
Сделал уже:
FormControl formControl;
ComExcelDocument_RU excel;
str value;
int row;
str cellName;
int i;
boolean headerFilled = false;
;

excel = new ComExcelDocument_RU();
excel.newFile("", true, -1);

frmDataSource.first();
row = 2;
while (frmDataSource.next())
{
for(i= 1; i <= grid.controlCount(); i++)
{
formControl = grid.controlNum(i);
if (!headerFilled)
{
cellName = ComExcelDocument_RU::numToNameCell(i, 1);
excel.insertValue(cellName, formControl.labelText());
}
value = formControl.valueStr();
cellName = ComExcelDocument_RU::numToNameCell(i, row);
excel.insertValue(cellName, value);
}
row++;
headerFilled = true;
}
Старый 05.09.2005, 15:21   #16  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Ну George Nordic и raz предлагали посылать новый запрос на основе существеющего, так что не будет накладных расходов, связанных с перерисовкой контролов.
Да и скорость работы при обращении к каждой отдельной ячейке Excel'a будет невелика

Старый 05.09.2005, 15:29   #17  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Цитата:
Изначально опубликовано BOAL
Заметьте, что выделяя все записи в гриде, вы выделяете "все" подгруженные в него записи. Т.е., если записей вагон, то они прекрасно обрежутся на половине строк - нормальное явление.
Чтоб этого не было, промотайте список до конца (ориентир сузившийся скрол бар).
Вот тогда вставятся все записи.
Ctrl+Shift+End нажмите, и ответьте утвердительно на вопрос диалога.
Axapta 3.0
Точно работает в клиенте SP3 и SP4. На счет более ранних не знаю - надо проверять.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 05.09.2005, 15:36   #18  
Bega is offline
Bega
Участник
Аватар для Bega
 
382 / 444 (15) +++++++
Регистрация: 18.08.2005
Адрес: Москва
Цитата:
Изначально опубликовано AndyD
Ну George Nordic и raz предлагали посылать новый запрос на основе существеющего, так что не будет накладных расходов, связанных с перерисовкой контролов.
Да и скорость работы при обращении к каждой отдельной ячейке Excel'a будет невелика

А что делать с полями грида, которые связаны с display-методами ?
Старый 05.09.2005, 15:47   #19  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Вызвать эти методы и получить значения.
Старый 13.10.2005, 13:11   #20  
Yugene is offline
Yugene
Участник
 
46 / 11 (1) +
Регистрация: 02.12.2004
Адрес: Moscow
Цитата:
Изначально опубликовано Bega
Сделал уже:
...
frmDataSource.first();
row = 2;
while (frmDataSource.next())
{
....
}
Скажите, пожалуйста, а это правильная конструкция для прохода по всем записям? Первая запись не теряется? Ведь между first() и next() нет никакой обработки?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Исследование скорости экспорта данных из Axapta в Excel (коллективный эксперимент) Gustav DAX: База знаний и проекты 79 13.02.2014 13:18
Как программно выделить все строки Lucky13 DAX: Программирование 5 30.06.2006 10:36
Подвисает Excel 111andrei DAX: Программирование 25 30.01.2006 11:07
формат числа в Excel (+с условием) somebody DAX: Программирование 7 18.05.2004 11:33
Автоматическое увеличение значения поля при создании новой записи. sguryev DAX: Программирование 3 06.02.2003 14:00
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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