Этот пример является устаревшим, посмотрите множество других обновлённых примеров в данной категории. This example shows how to print Data Grid from code. Data Grid is the data that is presented in the form of a table. In the Form1_Load() event create and fill a data collection:
private void Form1_Load(object sender, System.EventArgs e)
{
	DataTable table = new DataTable("Demo");
	
	table.Columns.Add();
	table.Columns.Add();
	
	DataRow row1 = table.NewRow();
	DataRow row2 = table.NewRow();
	DataRow row3 = table.NewRow();
	
	row1.ItemArray = new string[2]{"1", "One"};
	row2.ItemArray = new string[2]{"2", "Two"};
	row3.ItemArray = new string[2]{"3", "Three"};
	
	table.Rows.Add(row1);
	table.Rows.Add(row2);
	table.Rows.Add(row3);
	dataView1.Table = table;
}

Let's look at the PrintDataGrid() method in more detail in parts. First, create a new report and data source in the dictionary:
private void PrintDataGrid(DataGrid sender)
{
	DataView dataView = (DataView)sender.DataSource;
	StiReport report = new StiReport();
	report.ScriptLanguage = StiReportLanguageType.CSharp;
	
	// Add data to datastore
	report.RegData("view", dataView);
	
	// Fill dictionary
	report.Dictionary.Synchronize();

...

Next, add a Data Band and Header Band to the report:
...

	StiPage page = report.Pages.Items[0];
	
	// Create HeaderBand
	StiHeaderBand headerBand = new StiHeaderBand();
	headerBand.Height = 0.5f;
	headerBand.Name = "HeaderBand";
	page.Components.Add(headerBand);
	
	// Create DataBand
	StiDataBand dataBand = new StiDataBand();
	dataBand.DataSourceName = "view" + dataView.Table.TableName;
	dataBand.Height = 0.5f;
	dataBand.Name = "DataBand";
	page.Components.Add(dataBand);

...

Next, place Text Boxes with reference to data source fields on Data Band, and Text Boxes with titles of data on Header Band:
...

	// Create texts
	Double pos = 0;
	Double columnWidth = StiAlignValue.AlignToMinGrid(page.Width / dataView.Table.Columns.Count, 0.1, true);
	int nameIndex = 1;
	foreach (DataColumn column in dataView.Table.Columns)
	{
		// Create text on header
		StiText headerText = new StiText(new RectangleD(pos, 0, columnWidth, 0.5f));
		headerText.Text.Value = column.Caption;
		headerText.HorAlignment = StiTextHorAlignment.Center;
		headerText.Name = "HeaderText" + nameIndex.ToString();
		headerText.Brush = new StiSolidBrush(Color.LightGreen);
		headerText.Border.Side = StiBorderSides.All;
		headerBand.Components.Add(headerText);
		
		// Create text on Data Band
		StiText dataText = new StiText(new RectangleD(pos, 0, columnWidth, 0.5f));
		dataText.Text.Value = "{view" + dataView.Table.TableName + "." +
			Stimulsoft.Report.CodeDom.StiCodeDomSerializator.ReplaceSymbols(column.ColumnName) + "}";
		dataText.Name = "DataText" + nameIndex.ToString();
		dataText.Border.Side = StiBorderSides.All;
		
		// Add highlight
		StiCondition condition = new StiCondition();
		condition.BackColor = Color.CornflowerBlue;
		condition.TextColor = Color.Black;
		condition.Expression = "(Line & 1) == 1";
		condition.Item = StiFilterItem.Expression;
		dataText.Conditions.Add(condition);
		
		dataBand.Components.Add(dataText);
		
		pos += columnWidth;
		
		nameIndex ++;
	}

...

Then, add a Footer Band with Text Box to the report for show a Total value:
...

	// Create FooterBand
	StiFooterBand footerBand = new StiFooterBand();
	footerBand.Height = 0.5f;
	footerBand.Name = "FooterBand";
	page.Components.Add(footerBand);
	
	// Create text on footer
	StiText footerText = new StiText(new RectangleD(0, 0, page.Width, 0.5f));
	footerText.Text.Value = "Count - {Count()}";
	footerText.HorAlignment = StiTextHorAlignment.Right;
	footerText.Name = "FooterText";
	footerText.Brush = new StiSolidBrush(Color.LightGreen);
	footerBand.Components.Add(footerText);

...

In the end, render the report and show it in the viewer:
...

	// Render without progress bar
	report.Render(false);
	report.Show();
}

Используя этот сайт, вы соглашаетесь на использование файлов Cookie для аналитики и персонализированного контента. Файлы Cookie хранят полезную информацию на вашем компьютере, чтобы помочь нам повысить эффективность и удобство использования. Для получения дополнительной информации, пожалуйста, прочтите Конфиденциальность и Использование Cookie.