Vital писал(а):Пожалуйста пришлите пример бизнес объекта на email тех.поддержки.
Спасибо.
чтож... попробую подобрать пример попроще (вырезать объекты из проекта не так-то просто....)
А пока я малость порылся в поисках возможных причин и вот что хотел бы сказать:
A first chance exception of type 'System.ArgumentOutOfRangeException' occurred in mscorlib.dll
System.ArgumentOutOfRangeException: Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.
Имя параметра: index
в System.Collections.ArrayList.RemoveAt(Int32 index)
в Stimulsoft.Report.Dictionary.StiBusinessObjectToDataSet.ProcessItem(DataTable table, Object obj, Type typeOfData, DataRow row, String tableName, ArrayList tableList, ArrayList tableNames, String uniqueIndex, String columnName)
в Stimulsoft.Report.Dictionary.StiBusinessObjectToDataSet.FillDataTableFromType(DataTable table, String tableName, ArrayList tableList, ArrayList tableNames, String nameID, Object valueID)
в Stimulsoft.Report.Dictionary.StiBusinessObjectToDataSet.FillDataTable(DataTable table, String tableName, ArrayList tableList, ArrayList tableNames, Object obj, String nameID, Object valueID)
в Stimulsoft.Report.Dictionary.StiBusinessObjectToDataSet.ConvertBusinessObjectToDataTable(String tableName, ArrayList tableList, ArrayList tableNames, Object obj, Type typeOfData, String& nameID, Object valueID)
в Stimulsoft.Report.Dictionary.StiBusinessObjectToDataSet.ConvertBusinessObjectToDataSet(String name, Object obj)
в Stimulsoft.Report.Dictionary.StiDataCollection.RegData(String name, Object data)
в Stimulsoft.Report.StiReport.RegData(String name, Object data)
в BusinessLib.Reports.KeeperReport.PrepareData(Boolean forDesign) в \Reports\KeeperReport.cs:строка 68
исключение возникает в методе
Код: Выделить всё
private void ProcessItem(DataTable table, object obj, Type typeOfData, DataRow row, string tableName, ArrayList tableList, ArrayList tableNames, string uniqueIndex, string columnName)
этот метод вызывается из FillDataTableFromType следующим образом
Код: Выделить всё
this.ProcessItem(table, null, column.DataType, null, tableName, tableList, tableNames, uniqueIndex, column.ColumnName);
Код: Выделить всё
if (obj != null) <----- это условие будет ложно!!!
{
tableList.Add(obj);
}
tableNames.Add(columnName);
DataTable table2 = this.ConvertBusinessObjectToDataTable(baseName, tableList, tableNames, obj, typeOfData, ref nameID, table.Rows.Count);,
// и далее удаляем из пустого массива - исключение !
tableList.RemoveAt(tableList.Count - 1);
tableNames.RemoveAt(tableNames.Count - 1);