03.03.2005, 09:57 | #1 |
Участник
|
Как выделить все записи в гриде скопировать и отправить в Excel???
Как выделить все записи в гриде скопировать и отправить в Excel???
Помогите пожалуйста |
|
03.03.2005, 10:07 | #2 |
Administrator
|
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 |
Участник
|
Нет ничего проще.
В гриде щелкаем на квадратную пимпочку в левом верхнем углу или нажимаем Ctrl+A. Жмем кнопку "Копировать" в Toolbare (или Ctrl+C). Переходим ... нет не в Excel - рано еще ... в какой-нибудь редактор типа Far и вставляем это все туда. Копируем оттуда и переходим теперь уже в Excel и вставляем туда - и будет Вам счастье! |
|
03.03.2005, 10:32 | #4 |
Участник
|
А программно нельзя это сделать?
|
|
03.03.2005, 10:46 | #5 |
Участник
|
Цитата:
Жмем кнопку "Копировать" в Toolbare (или Ctrl+C). Переходим ... нет не в Excel - рано еще ... в какой-нибудь редактор типа Far и вставляем это все туда. Копируем оттуда и переходим теперь уже в Excel и вставляем туда - и будет Вам счастье!
|
|
03.03.2005, 10:52 | #6 |
Участник
|
А программно!!!!!?????
Нажали кнопочку на форме в коде выделить все записи в гриде так же программно открыть Excel и вставить скопированные записи туда..... Показать Excel.... |
|
03.03.2005, 11:31 | #7 |
Участник
|
Но вообще с копированием в Excel через буфер обмена есть нюанс - иногда некоторые записи не копируются.
|
|
03.03.2005, 11:39 | #8 |
Модератор
|
Программно - распечатали в ртф и вот вам счастье
Hezl! Да, там траблы связанны с тем, что данные кэшируются, и грид выводит/копирует только "подкачанные" данные. обычно - не более сотни записей. поэтому этим способом пользоваться нельзя. Кстати, а как Вы это представляете: программно? Grid2Excel??? Чудес нет. Есть программинг. С Уважением, Георгий. |
|
03.03.2005, 11:45 | #9 |
Участник
|
Я предполагал что grid связан и источником данных.... так вот при попытке выгрузки программно из этого источника с наложеным фильтром на grid почемуто выводятся все записи... т.е. не учитывается фильтр
как тут быть? |
|
03.03.2005, 11:50 | #10 |
Модератор
|
Фильтр лежит в имя_источника_данных_ds.query();
Делаешь queryRun = new QueryRun(..._ds.query()); и while(qr.next()) { выгружаешь. } С Уважением, Георгий. |
|
03.03.2005, 11:56 | #11 |
Участник
|
оооо огромное спасибо
|
|
03.03.2005, 12:16 | #12 |
NavAx
|
Еще точнее - текущий фильтр лежит в ..._ds.QueryRun().Query()
|
|
05.09.2005, 12:38 | #13 |
Участник
|
2 velk:
Удалось таки сделать выгрузку из грида в Excel ? Если да, не расскажешь каким образом ? |
|
05.09.2005, 15:08 | #14 |
Участник
|
Заметьте, что выделяя все записи в гриде, вы выделяете "все" подгруженные в него записи. Т.е., если записей вагон, то они прекрасно обрежутся на половине строк - нормальное явление.
Чтоб этого не было, промотайте список до конца (ориентир сузившийся скрол бар). Вот тогда вставятся все записи. Кстати, фильтр для копирования там работает корректно, если наложен на неподчененный датасорс |
|
05.09.2005, 15:13 | #15 |
Участник
|
Сделал уже:
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 |
Участник
|
Ну George Nordic и raz предлагали посылать новый запрос на основе существеющего, так что не будет накладных расходов, связанных с перерисовкой контролов.
Да и скорость работы при обращении к каждой отдельной ячейке Excel'a будет невелика |
|
05.09.2005, 15:29 | #17 |
Administrator
|
Цитата:
Изначально опубликовано BOAL
Заметьте, что выделяя все записи в гриде, вы выделяете "все" подгруженные в него записи. Т.е., если записей вагон, то они прекрасно обрежутся на половине строк - нормальное явление. Чтоб этого не было, промотайте список до конца (ориентир сузившийся скрол бар). Вот тогда вставятся все записи. 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 |
Участник
|
Цитата:
Изначально опубликовано AndyD
Ну George Nordic и raz предлагали посылать новый запрос на основе существеющего, так что не будет накладных расходов, связанных с перерисовкой контролов. Да и скорость работы при обращении к каждой отдельной ячейке Excel'a будет невелика |
|
05.09.2005, 15:47 | #19 |
Участник
|
Вызвать эти методы и получить значения.
|
|
13.10.2005, 13:11 | #20 |
Участник
|
Цитата:
Изначально опубликовано Bega
Сделал уже: ... frmDataSource.first(); row = 2; while (frmDataSource.next()) { .... } |
|