Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Delphi |
![]() ![]() |
cptngrb Member Откуда: Сообщений: 663 |
В отчете несколько колонок с датами формата dd.mm.yyyy hh:nn:ss. В самом отчете выставил DisplayFormat = dd.mm.yyyy hh:nn:ss. Для экспорта использую компонент frxXLSXExport1. После экспорта становлюсь на ячейку уже в MS Excel 2013, а она у меня формата "Общий", а должна быть "Все форматы" (ДД.ММ.ГГГГ чч:мм:сс). Причем, если я изменю содержание ячейки (добавлю пробел и удалю пробел), то MS Excel преобразует в нужный формат. Значит содержимое не кривое. Что я не учел? |
16 фев 21, 16:53 [22281721] Ответить | Цитировать Сообщить модератору |
Кроик Семён Member Откуда: СПб --> Dortmund Сообщений: 6694 |
одно не вытекает из другого. Просто Excel при редактировании сам уже подумал и переделал. Сообщение было отредактировано: 16 фев 21, 16:53 |
||||
16 фев 21, 17:00 [22281727] Ответить | Цитировать Сообщить модератору |
cptngrb Member Откуда: Сообщений: 663 |
Кроик Семён, а как fastreport сказать, чтобы он за Excel подумал? |
16 фев 21, 17:04 [22281729] Ответить | Цитировать Сообщить модератору |
Кроик Семён Member Откуда: СПб --> Dortmund Сообщений: 6694 |
не могу посмотреть, но я бы начал с изучения класса ТfrxXLSXExport, если у вас есть исходники. Возможно, у него есть свойство типа DateTimeFormat или что-нибудь подобное |
16 фев 21, 17:09 [22281734] Ответить | Цитировать Сообщить модератору |
cptngrb Member Откуда: Сообщений: 663 |
есть у него функция, которая возвращает строку function FormatData(const Value: Variant; AFormat: TfrxFormat = nil): WideString; ///... fkDateTime: Result := FormatDateTime(AFormat.FormatStr, Value); //..... но она отвечает только за отображение |
16 фев 21, 17:13 [22281738] Ответить | Цитировать Сообщить модератору |
_Den_Z_ Member Откуда: Сообщений: 115 |
cptngrb, С форматированием на самом деле не всегда все просто, в результирующий отчет чаще всего попадает строка. Т.к. поле может содержать несколько выражений вида [Date1] to [Date2]. Которое уже не отформатируешь по формату. Для одиночных выражений можно добавить, в biff8 они обрабатываются. Добавил задачу в трекер, думаю в ближайших сборках добавим. |
16 фев 21, 17:14 [22281740] Ответить | Цитировать Сообщить модератору |
Кроик Семён Member Откуда: СПб --> Dortmund Сообщений: 6694 |
cptngrb, если хотите, вот вым обходной манёвр 1) SQL датасета пусть возвращает не DateTime - поле, а STRING сразу отформатированный как нужно. В Oracle, например, это функция to_char 2) Соответственно, в FastReport'e выводиться уже будет сразу правильно и никакой DisplayFormat не нужен 3) А вот как Excel воспримет экспортированные "в-строки-записанные-даты" - это только опытным путём, поймёт ли он, что это дата/время, или так и останется с мнением, что это строка. Но в любом случае, отображение будет как вы и хотели |
16 фев 21, 17:42 [22281769] Ответить | Цитировать Сообщить модератору |
cptngrb Member Откуда: Сообщений: 663 |
отображается правильно, а вот сортировка-фильтрация в самом Excel нет, так как не понятно Excel что лежит в ячейке. |
16 фев 21, 17:50 [22281778] Ответить | Цитировать Сообщить модератору |
Кроик Семён Member Откуда: СПб --> Dortmund Сообщений: 6694 |
cptngrb, хотелки хотелки, теперь вот ещё и сортировку подавай ... Вполне может оказаться (но это не обязательно), что имеет место технологический тупик ... Kстати, если это своей кривостью не переходит черту допустимой кривизны, то форматируйте строку как YYYY-MM-DD hh:mi:ss. Сортировка в Excel'e тогда будет работать и правильно. А про простую фильтрацию по годам / месяцам можно будет забыть |
16 фев 21, 18:09 [22281799] Ответить | Цитировать Сообщить модератору |
cptngrb Member Откуда: Сообщений: 663 |
пользователям нужно чтобы как родной был. эх, придется ручками экспортировать, а так хотелось программировать мышкой... |
16 фев 21, 18:48 [22281833] Ответить | Цитировать Сообщить модератору |
Кроик Семён Member Откуда: СПб --> Dortmund Сообщений: 6694 |
cptngrb, вы можете экспортировать привязанный к MasterBand датасет. Но не из FastReport'a, а отдельно. Вот, ознакомьтесь с топиком: Процедура ExportDatasetToExcel на базе XLSReadWrite (обертка) Сообщение было отредактировано: 16 фев 21, 19:21 |
16 фев 21, 19:23 [22281860] Ответить | Цитировать Сообщить модератору |
cptngrb Member Откуда: Сообщений: 663 |
Кроик Семён, я использую этот компонент в других проектах, но требования заказчика - никаких новых компонент |
17 фев 21, 11:10 [22282089] Ответить | Цитировать Сообщить модератору |
Кроик Семён Member Откуда: СПб --> Dortmund Сообщений: 6694 |
cptngrb, может это из-за цены? Если так, попробуйте уломать хотя бы на SMExport suite (Full suite with sources: 50,- EUR) Хотя есть и более интересный способ: - смотрим на начинку ТfrxXLSXExport - там, наверняка, под капотом найдется целый набор функций / или даже юнитов для экспорта в Excel - находим для себя полезные функции для экспорта Worksheet'ов / строк / ячеек и т.д. - и строим на этой базе свой собственный экспортер в *.xlsx я бы и сам посмотрел, но у меня старая версия FR, там ещё не было экспорта в *.xlsx Сообщение было отредактировано: 17 фев 21, 11:40 |
17 фев 21, 11:43 [22282122] Ответить | Цитировать Сообщить модератору |
Кроик Семён Member Откуда: СПб --> Dortmund Сообщений: 6694 |
P.S. ну то есть, возможно, существует файл "frxExportXLSX.pas" и в нём класс "TfrxExcelXLSX" или как-нибудь похоже |
17 фев 21, 15:48 [22282343] Ответить | Цитировать Сообщить модератору |
cptngrb Member Откуда: Сообщений: 663 |
Кроик Семён, спасибо. Пока ручками справляюсь. |
17 фев 21, 18:32 [22282414] Ответить | Цитировать Сообщить модератору |
cptngrb Member Откуда: Сообщений: 663 |
Осталось научиться красоту наводить (цвета, шрифты) и вообще шик будет |
17 фев 21, 18:33 [22282415] Ответить | Цитировать Сообщить модератору |
Все форумы / Delphi | ![]() |