TRxDBGridExportSpreadSheet - доработки

Модераторы: alexs, Модераторы

Ответить
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

TRxDBGridExportSpreadSheet - доработки

Сообщение alexs »

В ревизии 4589 добавлена возможность экспорта итоговых значений по сумме/минимуму или максимуму в виде форму.
Т.е. в электронной таблице в соответствующих ячейках будет подставлена вместо значения формула SUM() MIN() MAX()
Для примера смотреть

Код: Выделить всё

Demos/RxDBGrid_ExportSpreadsheet/
naum_off
незнакомец
Сообщения: 6
Зарегистрирован: 25.08.2016 12:31:45

Сообщение naum_off »

Почему ширина столбцов рассчитывается таким образом?
Может лучше так?

Код: Выделить всё

procedure TRxDBGridExportSpreadSheet.DoExportColWidth;
var
  //FW:integer;
  C:TRxColumn;
  i: Integer;
begin
  //FW:=FRxDBGrid.Canvas.TextWidth('W');
  FCurCol:=0;
  for i:=0 to FRxDBGrid.Columns.Count - 1 do
  begin
    C:=FRxDBGrid.Columns[i] as TRxColumn;
    if C.Visible then
    begin
      //FWorksheet.WriteColWidth(FCurCol, Max(C.Width div FW, 20));
       FWorksheet.WriteColWidth(FCurCol, C.Width, suPoints);
      inc(FCurCol);
    end;
  end;
end;
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Надо посмотреть.
Когда писал экспортер - такого метода вроде ещё не было.

Добавлено спустя 19 минут 33 секунды:
Спасибо. Готово.
rellai2
постоялец
Сообщения: 135
Зарегистрирован: 18.09.2008 11:37:45

Сообщение rellai2 »

Можно ли сделать чтобы была возможость выгружать только выделенные ячейки?
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Наверное - да

Добавлено спустя 1 час 16 минут 13 секунд:
done in revision 5359
rellai2
постоялец
Сообщения: 135
Зарегистрирован: 18.09.2008 11:37:45

Сообщение rellai2 »

Спасибо! то что надо!!!
Zhanat
новенький
Сообщения: 21
Зарегистрирован: 06.09.2013 08:46:40

Сообщение Zhanat »

Как его установить? при компиляций пакета rxdbgrid_export_spreadsheet.lpk выдает ошибку.Изображение
Аватара пользователя
Little_Roo
энтузиаст
Сообщения: 639
Зарегистрирован: 27.02.2009 18:56:36
Откуда: Санкт-Петербург

Сообщение Little_Roo »

А сам пакет SpreadSheet установлен?
Zhanat
новенький
Сообщения: 21
Зарегистрирован: 06.09.2013 08:46:40

Сообщение Zhanat »

FPSPReadSheet? установлен
Аватара пользователя
Little_Roo
энтузиаст
Сообщения: 639
Зарегистрирован: 27.02.2009 18:56:36
Откуда: Санкт-Петербург

Сообщение Little_Roo »

Либо несходимость версий RX и FPCSpreadSheet, либо и лазаря транкового ставить. :shock:
В моей конфигурациии -
rx svn 5370, spreadsheet svn 5370, Lazarus 1.7 r53387 FPC 3.1.1 i386-win32-win32/win64
все компилится без нареканий
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Little_Roo писал(а):лазаря транкового

!!!
Naumoff
новенький
Сообщения: 11
Зарегистрирован: 13.08.2016 18:32:20

Сообщение Naumoff »

В RxDBGridExportSpreadSheet_ParamsUnit вот такая ересь обнаружилась)

Код: Выделить всё

FileNameEdit1.Filter := 'All files (*.*)|*.*|LibreOffice/OpenOffice (*.ods)|*.ods|Excell 97-2003|*.xls|Excell 2007-2013|*.xlxs';

Расширение файлов для 2007-2013 - xlsx
Excel пишется с одной l.

Добавлено спустя 6 минут 10 секунд:
Zhanat
У тебя старая версия FPCSpreadSheet. Бери отсюда https://svn.code.sf.net/p/lazarus-ccr/svn/components/fpspreadsheet. Транковый лазарь не нужен, на 1.6.0 все работает.
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Naumoff
Ну мне простительно. Я этот эксель живьём видел лет 10 назад. :-)
Тут винду включаю раз в год. А ты про таких неведомых зверюшек :-) :-)

А вообще - спасибо. Исправлено в 5381.
rellai2
постоялец
Сообщения: 135
Зарегистрирован: 18.09.2008 11:37:45

Сообщение rellai2 »

А что может делать с гридомTRxDBGridExportSpreadSheet когда к нему подключаем грид...
потому что у меня задача прерывания запроса и вылезла ошибка
вариант один
Запускаю запрос связанный с гридом, прерываю - все ок.
вариант два
запускаю запрос связанный с гридом, выполняю, делаю экспорт в excel
RxDBGridExportSpreadSheet.RxDBGrid := RxDBGrid;
RxDBGridExportSpreadSheet.FileName := s;
RxDBGridExportSpreadSheet.Execute;
RxDBGridExportSpreadSheet.RxDBGrid := nil;

и после запуска запроса и сброса его в гриде данные больше не отображаются, если запрос выполнить и дождаться результата. хотя сам скрол бегает по комбобоксу

да если запрос в дизайнере у RxDBGridExportSpreadSheet указать изначально грид то поведение после прерывания (без экспортирования в эксель) точно такое же.... Такая же проблема если у грида выставлено свойство doublebuffered.
Изображение
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Он для датасета даелает DisableControls
Можешь глянуть код в методе function TRxDBGridExportSpreadSheet.DoExecTools: boolean;
Но там вроде всё обёрнуто в try - finally.
Ответить