Хочу создать отчет на основе таблицы tbl_OfferingPriceLog. Для этого создаю новый Запрос в Запросах, но при выборе главной таблицы в Запросах такой таблицы (tbl_OfferingPriceLog) нет.
Каким образом таблицы добавляются в Запросы. И можно ли туда добавить Представления?
Нравится
Alex, пользовательские запросы можно формировать по всем таблицам кроме системных: таблиц логирования (таблицы, которые заканчиваются на Log), таблиц прав доступа (таблицы, которые заканчиваются на Right), таблиц поиска дублей (таблицы, которые заканчиваются на FD).
Ограничение включается через применение фильтра в функции wnd_SelectReportTableOnPrepare сервиса wnd_SelectReportTableScript.
А именно, таким образом:
EnableDatasetFilters(dlData.Dataset, true, 'NotRightsTableEx', 'NotLogTableEx', 'ServiceTypeCode');
Пользовательские запросы можно строить по представлениям (если создан сервис таблицы с названием, соответствующим названию представления).
Подскажите, как правильно и в какой последовательности создать сервис таблицы на основе представления, чтобы потом создать Запрос для Отчета.
Я делал так:
1. В БД на основании таблицы tbl_OfferingPriceLog создал представление view_OfferingPriceL.
2. В TSAdmin создаю новый сервис Table. Сохраняю его с именем view_OfferingPriceL (как Вы и говорили, названия должны быть одинаковыми), но сохранять не дает - "Объект с таким именем уже существует".
(Нужно ли ещё для такого Отчета создавать ds и sq?)
Update: Прикрепил пример Отчета, который хочу создать. Возможно есть другие пути создания такого типа Отчетов или может есть шаблоны таких Отчетов?
Alex, Вы все делаете правильно, только когда нажимаете "Сохранить" на предложение системы "обновить структуру таблицы в базе данных" нужно ответить "Нет".
Сервисы ds и sq можно не создавать.
Шаблона приложенного Вами отчета, к сожалению, нет. Реализовать отчет Вы можете как через пользовательский отчет MS Excel, так и через отчет формата FastReport.
Наталия, создал запрос, создал на основе него свой первый отчет (Excel), все работает.
Единственное не могу добиться в запросе, чтобы данные выстраивались по схеме мастер-детэил.
Т.е. сверху ID Продукта, внизу все его изменения. У меня сейчас получилось вверху все ID (все записи), внизу изменение одной (выбранной) записи.
Возможно ли это сделать средствами конфигуратора запросов? Или как-то по другому?
(Представление стандартное:
SELECT ... FROM dbo.tbl_OfferingPriceLog AS tbl_OfferingPriceLog LEFT OUTER JOIN dbo.tbl_Contact AS CreatedBy ON CreatedBy.ID = tbl_OfferingPriceLog.CreatedByID ORDER BY tbl_OfferingPriceLog.CreatedOn DESC
)
Чтобы данные выстраивались по схеме мастер-детэил достаточно добавить подчиненную деталь по отношению к главной (скриншот прилагаю).
После просмотра вебинара сделал Запрос для Отчета немного по другому:
Master - Таблица tbl_Offering, Detail - таблица вTS на основе представления view_OfferingPriceL.
В MSAdmin в Таблице view_OfferingPriceL создаю связь: Первичный ключ tbl_Offering.ID, вторичный ключ view_OfferingPriceL.OfferingID (связь продукта с изменением). Т.е. выбирая продукт, мы должны получить его изменения.
Иду в Запросы, выбираю главную таблицу tbl_Offering, поле Название.
Добавляю вторую деталь и разворачиваю "Обратные связи", чтобы там найти view_OfferingPriceL и добавить оттуда поля в Деталь2. Но в "Обратные связи" view_OfferingPriceL нету.
Как эту таблицу туда добавить? // И правильный ли у меня алгоритм для этого Отчета?
Alex, выполнила те же действия - таблица в обратных связях появилась.
Вы перезапускали приложение после внесения изменений?
"Alex GF" написал:Наталия, а у Вас tbl_OfferingPriceLog - это представление в базе?
Нет, таблица.
Завтра проверю с представлением и напишу.
Alex, представления не будут попадать в обратные связи, так как список объектов для обратных связей формируется из БД (а не по внешним связям сервисов).
Если требуется использовать именно представления для формирования отчетов master - detail, нужно будет создать отчет формата FastReport.