Хотел проверить, так мне даже не удалось создать такой View - MS SQL ругается при сохранении...
Надо сначала создать таблицу, потом View , а потом удалить поле через alter table ... drop column ...
Насчёт повторить на демке ситуацию з тем, что не держит датасорт для бенда Data - да на демке не получилось.
Но думаю проблема в том, что демка работает с объектами, а я добавляю MsSqlDataConnection из приложения в Dictionary (хотя думаю аналогично будет если его создать из дизайнера).
Тогда в дереве Data создается три уровня: 1 - connection, 2 - data source, и 3 - поля, а в демке только 2 уровня: 1 - data source, и 2 - поля.
Легко! Но... в рич, как правило, вставляется несколько переменных. В этом случае формат будет применен ко всем. Поэтому используйте форматирование на месте, как это делается в отчете Mail Merge в демке.
Здравствуйте. Усиленно тестирую демо фаст репортов для нашего предприятия и столкнулся с такой проблемой: в сводном отчете обязательно у поля должна быть выставлена сортировка, что довольно неудобно, если надо сделать уже устоявшиеся формы документов.
В демо при выводе месяцев сделано хитро когда передаются и сортируются их номера, а потом подставляются сами названия, но при динамическом наборе колонок не хотелось бы их набор забивать в массив скрипта, а получать непосредственно названия из базы и в уже нужном порядке. Можно ли такое реализовать?
Сортировка данных - обязательное требование, иначе при печати образуется большое количество одинаковых групп и итогов. Матричный отчет, по сути, представляет собой разновидность отчета с группами, где сортировка данных также необходима.
Насчет месяцев возможны два варианта:
- в матрицу передаем номер, в обработчике вместо номера подставляем название;
- в матрицу передаем название, но в этом случае будет работать сортировка именно по названию.
Хотел было отправить читать мануал, но обнаружил, что в мануале написано правильно, а в FR.Net ошибка. Надо делать так:
[TotalSum] + [TotalTax]
Исправления будут доступны в полночь.
Обнаружил еще, может это поправится в ночном билде, но на всякий случай.
Если "EvaluateCondition" для переменной "Итоги" = false на протяжении выполнения всего отчета, то эта переменная не инициализируется и равна null. В связи с этим в отчете происходят всякие нехорошести.
Можно она будет инициализироваться в 0 ?
Впрочем, добавить режим без сортировки - вообще не проблема.
Было бы хорошо. В делфи я видел работу кросс таба без сортировки. Работает этот режим просто замечательно.
Вот про месяцы я сказал, приведя в пример вашу демку, а, например, если работать с названиями предприятий, то тут возникают проблемы, особенно если появляются новые часто
Сортировка (точнее, несортировка уже добавлена, можете попробовать.
Насчет предприятий - а что мешает использовать relation между источником данных для матрицы и справочником предприятий? Некоторые отчеты в демке так и сделаны (напр., "Pictures Inside the Matrix").
Спасибо. Все теперь работает замечательно, вот только начальство уже внесло в смету ФР Студию, так что старания окончились ничем Буду перебираться в другую ветку форума.
Здравствуйте, вопрос вот какой: Можно ли организовать такую штуку
т.е. группировать данные по папкам. А то когда таблиц штук 5 и более навигация по имеющейся трех уровневой структуре (Источник данных/ таблицы/ поля) не очень удобен. Пользователей жалко. Элемент "папка" может быть чисто визуальным и никак не влиять на сами данные, но чтоб его можно было создавать и программным путем.
Можно конечно использовать бизнес-объекты, но преобразовывание DataSet`а в бизнес объекты (с сохранением связей между таблицами, чтоб еще FastReport их корректно обрабатывал...) вызывает у меня "легкий" ступор...
Такое сделать можно. Надо будет добавить режим отображения (подключения/каталоги) и св-во CatalogFolder в таблицу.
Только мне кажется, что окно "Данные" пользователя смущать не будет. В этом окне - только те данные, которые нужны в отчете, т.е. одна-две таблицы, ну и, может быть, еще справочники.
Одна-две таблицы у в моем случае вряд-ли получится. Данные очень специфичные.
Все связи между объектам (можо сказать таблицами БД) имеют тип "многие к многим" и реализованы промежуточными таблицами пересечения. В FastReport я передаю датасетом со связями... Вот пример: объект диаграммапоказывает другие типы объектов (процессы, технологии и тд.), показывает - существует связь "диаграммы - показывает - все объекты". Выбиря объект диаграммы, связь показывает и все объекты цели, получаю что-то вроде показанного на рисунке:
Группировка даст более удобоваримое, хотя и не идеальное представление:
А пока буду плясать с бубном в попытках еще как-нибудь упростить представление данных....
Комментарии
Надо сначала создать таблицу, потом View , а потом удалить поле через alter table ... drop column ...
Насчёт повторить на демке ситуацию з тем, что не держит датасорт для бенда Data - да на демке не получилось.
Но думаю проблема в том, что демка работает с объектами, а я добавляю MsSqlDataConnection из приложения в Dictionary (хотя думаю аналогично будет если его создать из дизайнера).
Тогда в дереве Data создается три уровня: 1 - connection, 2 - data source, и 3 - поля, а в демке только 2 уровня: 1 - data source, и 2 - поля.
В демо при выводе месяцев сделано хитро когда передаются и сортируются их номера, а потом подставляются сами названия, но при динамическом наборе колонок не хотелось бы их набор забивать в массив скрипта, а получать непосредственно названия из базы и в уже нужном порядке. Можно ли такое реализовать?
Сортировка данных - обязательное требование, иначе при печати образуется большое количество одинаковых групп и итогов. Матричный отчет, по сути, представляет собой разновидность отчета с группами, где сортировка данных также необходима.
Насчет месяцев возможны два варианта:
- в матрицу передаем номер, в обработчике вместо номера подставляем название;
- в матрицу передаем название, но в этом случае будет работать сортировка именно по названию.
Вот так: как то некрасиво.
Может сделать "Итоги" всегда типом Double? Даже несмотря на то, что Count всегда целое.
[TotalSum] + [TotalTax]
Исправления будут доступны в полночь.
Если "EvaluateCondition" для переменной "Итоги" = false на протяжении выполнения всего отчета, то эта переменная не инициализируется и равна null. В связи с этим в отчете происходят всякие нехорошести.
Можно она будет инициализироваться в 0 ?
Вот про месяцы я сказал, приведя в пример вашу демку, а, например, если работать с названиями предприятий, то тут возникают проблемы, особенно если появляются новые часто
Насчет предприятий - а что мешает использовать relation между источником данных для матрицы и справочником предприятий? Некоторые отчеты в демке так и сделаны (напр., "Pictures Inside the Matrix").
Сделал, причем разное форматирование для разных переменных.
Не могли бы Вы добавить регистрацию референсных сборок отчета у editor'а скрипта, Code Completion по ним не происходит (сборки из скрипта не видны).
Спасибо.
Постараюсь сделать сегодня.
Code Completion по референсным сборкам, имеющим расширение .exe, не происходит.
Хотелось бы видеть перечень изменений от версии к версии.
т.е. группировать данные по папкам. А то когда таблиц штук 5 и более навигация по имеющейся трех уровневой структуре (Источник данных/ таблицы/ поля) не очень удобен. Пользователей жалко. Элемент "папка" может быть чисто визуальным и никак не влиять на сами данные, но чтоб его можно было создавать и программным путем.
Можно конечно использовать бизнес-объекты, но преобразовывание DataSet`а в бизнес объекты (с сохранением связей между таблицами, чтоб еще FastReport их корректно обрабатывал...) вызывает у меня "легкий" ступор...
Такое сделать можно. Надо будет добавить режим отображения (подключения/каталоги) и св-во CatalogFolder в таблицу.
Только мне кажется, что окно "Данные" пользователя смущать не будет. В этом окне - только те данные, которые нужны в отчете, т.е. одна-две таблицы, ну и, может быть, еще справочники.
Все связи между объектам (можо сказать таблицами БД) имеют тип "многие к многим" и реализованы промежуточными таблицами пересечения. В FastReport я передаю датасетом со связями... Вот пример: объект диаграмма показывает другие типы объектов (процессы, технологии и тд.), показывает - существует связь "диаграммы - показывает - все объекты". Выбиря объект диаграммы, связь показывает и все объекты цели, получаю что-то вроде показанного на рисунке:
Группировка даст более удобоваримое, хотя и не идеальное представление:
А пока буду плясать с бубном в попытках еще как-нибудь упростить представление данных....