Datatable Fr Net

отредактировано 09:01 Раздел: FastReport .NET
Добрый день. Есть необходимость использовать FR, но вызвать из приложения можно только COM обьект. В демо есть пример обертки для отчетника. Мне хотелось бы понять и реализовать наполнение источника DataTable для отчета динамически. Так как на моент построения отчета, не известно сколько будет столбцов в отчете. Для каждого метода в FR создает интерфейс вызова.

создание DataSet
void CreateDataTable(string tName)
public void CreateDataTable(string tName)
{
FDataSet = new DataSet();
FDataTable = new DataTable();
m_tName = tName;
FDataTable.TableName = tName;
FDataSet.Tables.Add(FDataTable);
FDataSet.Clear();
}

// Создание колонок
public void CreateColumns(int cId) // в методе указываем необходимое кол-во столбцов
{
for (Int32 i = 1; i <= cId; i++)
{
FDataTable.Columns.Add("col" + i, typeof(string));
}
columnCount = FDataTable.Columns.Count;
rowArray = new object[columnCount];
report.RegisterData(FDataSet);
report.GetDataSource(m_tName).Enabled = true;
}

// заполнение данными
public void AddRows(int RowId, string glValue)
{
try
{
rowArray[RowId] = glValue;
tempRow = FDataTable.NewRow();
tempRow.ItemArray = rowArray;

}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}

Ну и последний метод, который заполняет мой DataSET
// Вставка масива колонок в DataTable
public void ArrayRows()
{
try
{
FDataTable.Rows.Add(tempRow);
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}

И тут самое интересное, если заполняется где то пустым значением
Пример: 1..7 колонки
1 2 3 4 5 6 7
A B C D E
B C G T T U
V H T U

для второй и третьей строки продублируются записи со строки 1 в колоке 3. а дя 3-й строки значениями со второй строки в колонках 4 и 6
Может есть у кого то мысли по этому поводу.

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

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