This example is outdated, you can check out the many other new examples in this category. 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();
}

By using this website, you agree to the use of cookies for analytics and personalized content. Cookies store useful information on your computer to help us improve efficiency and usability. For more information, please read the privacy policy and cookie policy.