Отчет из двух таблиц
В базе есть две таблицы (таблица 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()
В отчете нужно вывести данные из таблицы 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()
Комментарии
Никто не может подсказать как это делается?
Нужно вывести все данные из таблицы 1 и некоторые данные из таблицы 2
Я сделал следующее:
1. Добавил в отчет таблицы: таблица_1 и таблица_2
появилась структура в данных:
таблица2
таблица1
2. создал связь между ними. главную таблицу выбрал таблица 2 и связал их по полю ID
появилась следующее в данных:
Таблица2
таблица1
и в таблице 1 связь
в самом отчете вывожу связанные данные из раздела связь.
и из приложения загружаю отчет и передаю ID таблицы 1
но отчет не загружается а выдает ошибку. Подскажите в чем проблема? Может кто поделится отчетом где выводятся данные из связанных таблиц
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