Не работает матрица

отредактировано 17:43 Раздел: FastReport .NET
1. Скачал новый FastReport.Net.Demo (1.2.26)
2. Установил поверх предидущего.
3. Перекомпилировал FastReport.MySQL
4. Добавил в плагины к FastReport.Net.Demo
5. На MySQL сервере создал view с именем rep1
(вывод трех столбцов из разных таблиц: FullName, Name, Index)
6. Поключился к серверу, выбрал rep1
(в бэнде данных все данные выводятся - всего 447 записей)
7. На страницу положил матрицу
8. В "новую строку" - FullName
в "новую колонку" - Name
в "новую ячейку" - Index Функция -> количество (т.е. число записей)
9. Предварительный просмотр - получение данных... - ошибка.
(если число записей небольшое - отчет строит и показывает)

FastReport.Net.Demo ошибка:

AppName: designer.exe AppVer: 1.2.26.0 AppStamp:4ac10a04
ModName: kernel32.dll ModVer: 5.1.2600.2180 ModStamp:41228ee4
fDebug: 0 Offset: 0001eb33

В архиве отчет и выгрузка данных в текстовом формате.

Комментарии

  • отредактировано 17:43
    Полагаю, ошибка возникает в тот момент, когда матрица перестает помещаться на странице? Матрицу нельзя размещать на бэнде - заголовке страницы. Разместите ее на заголовке отчета, например.
  • отредактировано 17:43
    AlexTZ написал: »
    Полагаю, ошибка возникает в тот момент, когда матрица перестает помещаться на странице? Матрицу нельзя размещать на бэнде - заголовке страницы. Разместите ее на заголовке отчета, например.

    Поместил матрицу на заголовке отчета, ориентация листа - ландшафт. Отчет построен. Ориентация - портрет - та же ошибка.

    Даже при ориентации листа "ландшафт" я не уверен, что готовая матрица уберется на лист. Существует ли возможность автоматически увеличивать ширину листа если данные не помещаются? Вопрос печати - это другое: можно и в эксель выкинуть потом данные (там есть опция разместить по ширине на одном листе).

    Второй вопрос:
    Отчет должен ограничить количество строк с данными на 1 листе 40 штуками. Следующие данные - на новом листе. Это как реализуется. Может где в примерах есть?
  • отредактировано 17:43
    Вот она, Ваша матрица. Просто перенес ее на ReportTitle.
  • отредактировано 17:43
    По второму вопросу: можно увеличить нижнее поле страницы (или размер бэнда "подвал страницы") так, чтобы уместить 40 строк. Иначе никак.
  • отредактировано 17:43
    AlexTZ написал: »
    По второму вопросу: можно увеличить нижнее поле страницы (или размер бэнда "подвал страницы") так, чтобы уместить 40 строк. Иначе никак.

    Смысл не в том, что бы уместилось 40 строк, а в том, чтобы на каждый лист выводило по 40 (к примеру) строк данных. Я могу, ведь, уменьшить шрифт и у меня 40 строк заведомо уместятся.
    Строки по порядку нумерую системным параметром Row# из FR.
  • отредактировано 17:43
    Речь идет о матрице, или о простом отчете с бэндами? Если последнее, то можно сделать с помощью скрипта.
            private void Data1_AfterPrint(object sender, EventArgs e)
            {
                if (((Int32)Report.GetVariableValue("Row#") % 40) == 0)
                    Engine.StartNewPage();
            }
    
  • отредактировано 17:43
    AlexTZ написал: »
    Речь идет о матрице, или о простом отчете с бэндами? Если последнее, то можно сделать с помощью скрипта.
            private void Data1_AfterPrint(object sender, EventArgs e)
            {
                if (((Int32)Report.GetVariableValue("Row#") % 40) == 0)
                    Engine.StartNewPage();
            }
    

    Спасибо! Это и нужно!!!

    По поводу матрицы: поместил в новое место - отображает!!!!!

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.