Здравствуйте, у меня несколько вопросов. Есть ли возможность уменьшить ширину горизонтального бенда в FastReport? И почему данные в DetailData печатаются по два экземпляра каждый?( Уже не знаю что делать..
Нравится
По первому вопросу нашел решение в SubReport. Там создаю МастерДата и ДеталДата, но все равно в DetailData выводятся по две одинаковых записи..
Попробуйте профайлером посмотреть запрос и выполнить его в Query Analyzer. Скорее всего, дело в присоединённой таблице или таблицах. Запись основной таблицы связана с двумя записями другой таблицы, поэтому в итоговом запросе мы тоже получим две записи. Те колонки, которые попадают в отчёт, содержат одинаковые значения, но есть и такие, значения которых не совпадают.
Попробуйте в запросе установить свойство DISTINCT. Если не поможет, тогда нужно определить колонку, значения которой не совпадают, и удалить её, если она не нужна в отчёте.
Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.
Спасибо, было так, теперь у меня другая проблема.. как связать две таблицы в запросе. Это реально сделать с помощью Expression, который в GroupHeader?
Николай, уточните, пожалуйста, что имеется в виду под связкой таблиц? Таблицы в запросе связываются через JOIN, для этого одна из таблиц должна содержать колонку, которая служит внешним ключом для второй (например, ContactID для связки с tbl_Contact). Или Вы имеете в виду другое?
Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.
Да, связь такая, но в отчете из подчиненной таблицы выводятся все поля. Для вывода использую SupReport, а уже в нем лежат два бенда: GroupHeader и MasterData... Группировка по наименованию. Пробовал с MasterData + DetailData, все равно не хочет..
Вы используете один и тот же датасет в MasterData и DetailData? В таком случае лучше использовать два датасета. Для того, чтобы связать один датасет с другим, необходимо несколько условий: в родительском датасете должно быть поле, по которому осуществляется связь, а в дочернем запросе - включенный фильтр сравнения по этому полю и параметр, с которым сравнивается значение поля. Название фильтра и параметра должно совпадать с названием поля в родительском датасете. После этого в отчёте необходимо заполнить свойство MasterDataset дочернего датасета, выбрав родительский датасет. Посмотрите, как это реализовано в базовых отчётах, которые используют несколько датасетов.
В случае GroupHeader и MasterData, если Вы не добавили GroupFooter, попробуйте добавить. Должно работать.
Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.
Олег, спасибо за помощь, буду пробовать!)