Отчет из двух таблиц

отредактировано 01:11 Раздел: FastReport .NET
В базе есть две таблицы (таблица 1, таблица 2):

В отчете нужно вывести данные из таблицы 1 и связанные по ID данные из таблицы 2.

добавил источник данных. создал связь между таблицами. при открытии отчета из приложения передаю ID первой таблицы

Не могли бы Вы посмотреть файл отчета поправить и указать что именно не так было сделано?

Не могу понять что делаю не так. Вы дает ошибки разные (одна из них):



Адресат вызова создал исключение.
Inner exception:
Ссылка на объект не указывает на экземпляр объекта.
в FastReport.Data.TableDataSource.GetValue(Column column)
в FastReport.Data.DataSourceBase.FindParentRow(Relation relation)
в FastReport.Data.DataHelper.GetColumn(Dictionary dictionary, DataSourceBase data, String[] names, Boolean initRelation)
в FastReport.Report.GetColumnValue(String complexName, Boolean convertNull)
в FastReport.ReportScript.CalcExpression(String expression, Variant Value)
в System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner)
в System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
в System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
в FastReport.Code.ExpressionDescriptor.Invoke(Object[] parameters)
в FastReport.Code.AssemblyDescriptor.CalcExpression(String expr, Variant value)
в FastReport.Report.CalcExpression(String expression, Variant value)
в FastReport.Report.Calc(String expression, Variant value)
в FastReport.Report.Calc(String expression)
в FastReport.TextObjectBase.CalcAndFormatExpression(String expression, Int32 expressionIndex)
в FastReport.TextObject.GetData()
в FastReport.BandBase.GetData()
в FastReport.Engine.ReportEngine.ShowBandToPreparedPages(BandBase band, Boolean getData)
в FastReport.Engine.ReportEngine.ShowBand(BandBase band, Boolean getData)
в FastReport.Engine.ReportEngine.RunDataBand(DataBand dataBand, Int32 rowCount, Boolean keepFirstRow, Boolean keepLastRow)
в FastReport.Engine.ReportEngine.RunDataBand(DataBand dataBand)
в FastReport.Engine.ReportEngine.RunBands(BandCollection bands)
в FastReport.Engine.ReportEngine.RunReportPage(ReportPage page)
в FastReport.Engine.ReportEngine.RunReportPages()
в FastReport.Engine.ReportEngine.RunReportPages(ReportPage page)
в FastReport.Engine.ReportEngine.Run(Boolean runDialogs, Boolean append, ReportPage page)
в FastReport.Report.Prepare(Boolean append)
в FastReport.Design.ReportTab.Preview()

Комментарии

  • отредактировано 01:11
    Неужели никто не выводил в отчете данные связанных таблиц???
    Никто не может подсказать как это делается?

    Нужно вывести все данные из таблицы 1 и некоторые данные из таблицы 2
    Я сделал следующее:
    1. Добавил в отчет таблицы: таблица_1 и таблица_2
    появилась структура в данных:
    таблица2
    таблица1

    2. создал связь между ними. главную таблицу выбрал таблица 2 и связал их по полю ID

    появилась следующее в данных:

    Таблица2
    таблица1
    и в таблице 1 связь



    в самом отчете вывожу связанные данные из раздела связь.
    и из приложения загружаю отчет и передаю ID таблицы 1
    TableDataSource table = report.GetDataSource("таблица_1") as TableDataSource;
    
    table.SelectCommand = String.Format("SELECT * FROM  [таблица_1] WHERE ([ID] = {0})", idText.Text);
    


    но отчет не загружается а выдает ошибку. Подскажите в чем проблема? Может кто поделится отчетом где выводятся данные из связанных таблиц
  • отредактировано 01:11
    Здравствуйте,

    2) надо наоборот, главная таблица - таблица1. Про связи можно почитать здесь:
    http://www.fast-report.com/documentation/U...u/relations.htm
    Здесь - про параметры запроса
    http://www.fast-report.com/documentation/U...yparameters.htm
    и про передачу в них значений из программы:
    http://www.fast-report.com/documentation/U...passvalueto.htm

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

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