DataTable

Обсуждение Stimulsoft Reports.NET
Ответить
s.melnik
Сообщения: 6
Зарегистрирован: 22 фев 2007, 11:11
Откуда: Ukraine

DataTable

Сообщение s.melnik »

Можно ли в редакторе отчётов в ручную перелить из поступающего в Report DataTable в созданный в ручную DataTAble, если да то где и как
Vital
Сообщения: 647
Зарегистрирован: 09 июн 2006, 12:23

DataTable

Сообщение Vital »

Вы можете обработать DataTable в событии BeginRenderEvent отчета. Достать DataTables и DataSets зарегестрированные через метод RegData можно через коллекцию this.Dictionary.DataStore. Полученный DataTable можно зарегестрировать при помощи метода RegData в отчете.

Спасибо.
s.melnik
Сообщения: 6
Зарегистрирован: 22 фев 2007, 11:11
Откуда: Ukraine

DataTable

Сообщение s.melnik »

Уменя есть DataTable в который занесены объёмы брака за месяц по дням но в самой DataTable есть только дни когда был брак а в отчёте надо вывести все дни месяца как это можно сделать.
Edward
Сообщения: 930
Зарегистрирован: 09 июн 2006, 12:23

DataTable

Сообщение Edward »

Воспользуйтесь, пожалуйста, кодом, аналогичным следующему примеру. Здесь производится регистрация в отчете DataSet, а потом вручную добавляется таблица MyTable аналогичная Categories из dataSet Demo. Подход в Вашем случае аналогичный.

Код: Выделить всё

StiReport report = new StiReport();
DataSet ds = new DataSet("Demo");
ds.ReadXmlSchema("Demo.xsd");
ds.ReadXml("Demo.xml");
report.RegData(ds);
DataTable myDataTable = new DataTable();
DataTable tableFromDataStore = (DataTable)report.Dictionary.DataStore["Demo.Categories"].Data;
DataColumn newDataColumn;
foreach (DataColumn dataColumn in tableFromDataStore.Columns)
{
    newDataColumn = new DataColumn();
    newDataColumn.ColumnName = dataColumn.ColumnName;
    newDataColumn.DataType = dataColumn.DataType;
    newDataColumn.Caption = dataColumn.Caption;
    newDataColumn.AllowDBNull = dataColumn.AllowDBNull;
    myDataTable.Columns.Add(newDataColumn);
}
DataRow newDataRow;
foreach (DataRow dataRow in tableFromDataStore.Rows)
{
    newDataRow = myDataTable.NewRow();
    foreach (DataColumn dataColumn in tableFromDataStore.Columns)
    {
        newDataRow[tableFromDataStore.Columns[dataColumn.ColumnName].ColumnName] = dataRow[tableFromDataStore.Columns[dataColumn.ColumnName].ColumnName];
    }
    myDataTable.Rows.Add(newDataRow);
}
myDataTable.TableName = "MyTable";
report.RegData(myDataTable);
report.Design();
Спасибо.
Ответить