This example shows the possibility of using User Data in a report. For this purpose you can use the StiUserData class, which is registered as report data.

StiUserData is Stimulsoft data type that provides the ability to create a report, based on the untyped and not structured data. For example, services, business objects, etc. StiUserData can be used when working with large volumes of data. For example, using standard .NET methods, you could run out of memory. In this case, the solution would be to use custom data sources.

Register the necessary data in the report:
public Form1()
{
	//
	// Required for Windows Form Designer support
	//
	InitializeComponent();
	
	stiReport1.RegData("HatchStyleEnum", Enum.GetNames(typeof(HatchStyle)));
	
	Type type = typeof(Graphics);
	assemblys = type.GetMethods();
	stiUserData1.Count = assemblys.Length;
	stiReport1.RegData("UserData", stiUserData1);
}

The specified class has a GetData() event, which occurs when a report generator request a data. For example, the event returns information about the Graphics system assemblies:
private void stiUserData1_GetData(object sender, Stimulsoft.Report.Dictionary.StiUserGetDataEventArgs e)
{
	if (e.ColumnName == "Name") e.Data = assemblys[e.Position].Name;
	if (e.ColumnName == "ReturnType") e.Data = assemblys[e.Position].ReturnType.Name;
	if (e.ColumnName == "IsStatic") e.Data = assemblys[e.Position].IsStatic;
	if (e.ColumnName == "Parameters")
	{
		ParameterInfo[] pars = assemblys[e.Position].GetParameters();
		string s = string.Empty;
		foreach (ParameterInfo par in pars)
			s += par.ParameterType.Name + " " + par.Name + "\n";
		
		e.Data = s;
	}
}

На скриншоте ниже Вы можете увидеть результат выполнения данного кода:

Using User Data in Reports

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