1- در برنامه خود، یک کلاس با چهار پراپرتی(به ازای هر سلول یک پراپرتی) ایجاد می کنیم.(میتوان از دیتاتیبل هم استفاده کرد) نام این کلاس را ClsReportModel می گذاریم. (نوع پراپرتی ها باید متناسب با نوع داده های درون دیتابیس باشد)
مثال: فرض بر این گذاشته شده که داده ها از نوع رشته هستند:
public class ClsReportModel
{
string _row1Column1;
string _row1Column2;
string _row2Column1;
string _row2Column2;public string Row1Column1
{
get { retu _row1Column1; }
set { _row1Column1 = value; }
}
public string Row1Column2
{
get { retu _row1Column2; }
set { _row1Column2 = value; }
}
public string Row2Column1
{
get { retu _row2Column1; }
set { _row2Column1 = value; }
}
public string Row2Column2
{
get { retu _row2Column2; }
set { _row2Column2 = value; }
}
}
2- در گزارش، یک Dictionary از نوع BusinessObject اضافه می کنیم.
AddDictionary.pngنام این دیتاسورس را MyBusinessObject می گذاریم. به تعداد پراپرتی های کلاس باید Column ایجاد کنیم. (بعدا کاری خواهیم کرد که Columnهای این دیتاسورس به صورت سلول به نمایش درآید) نام ستونها همنام پراپرتی های کلاس ClsReportModel (یا همنام ستونهای دیتاتیبل) باید باشد. در انتها Ok می کنیم.
CreateBusinessObject.PNG3- در گزارش، از قسمت ابزارها از دسته Bands ، ابزار Data را به گزارش اضافه می کنیم. (اگر پنجره Data Setup باز شد، بدون تغییر می بندیم)
AddDataTool.pngاز پنجره Properties نام(Name) این ابزار را MyDataBand میگذاریم. از بخش Data خاصیت Business Object را هم برابر MyBusinessObject قرار می دهیم. از بخش Columns هم میتوان تعداد ستونهایی را مشخص کرد که حالت چند ستونی به MyDataBand میدهد، در اینصورت جداول در یک سطر تکرار می شوند. (نتیجه در انتهای پست مشخص است که گزارش چند ستونی شده است)
ConfigDataBandTool.png4- در گزارش، از قسمت ابزارها از دسته Bands ، ابزار Table را به گزارش اضافه می کنیم.
AddTableTool.pngجدول را با موس به درون ابزار MyDataBand انتقال می دهیم. (جدول زیرمجموعه MyDataBand باید قرار بگیرد)
نام این جدول را MyTable قرار می دهیم. از پنجره Properties تغییرات ذیل را بر روی جدول MyTable اعمال می کنیم:
- از بخش Data خاصیت Master Component جدول را روی ابزار MyDataBand قرار می دهیم.
- از بخش Table ، تعداد سطر و ستون ( Row, Column ) جدول را برابر 2 قرار داده و تیک Dockable Table را بردارید.
- حالا عرض جدول را با استفاده از موس متناسب با نیاز تنظیم کنید.
ConfigTableTool.pngحال باید هر سلول از جدول را انتخاب کرده و تنظیمات لازم را انجام دهیم.
- سلول را با استفاده از پنجره Properties انتخاب مکنیم
SelectCell.pngمثلا برای سلول ردیف اول و ستون اول(Table1_Cell1) به صورت ذیل عمل میکنیم:
- خاصیت Side را فقط بر روی راست و پایین قرار می دهیم (با این کار خط های درون باقی مانده و حاشیه دور جدول از بین می رود)
- خاصیت Text را باید به پراپرتی مناسب Bind کنیم. برای این کار دکمه جلوی خاصیت text را فشرده و از پنجره باز شده از Data Column ستون(پراپرتی) مناسب این سلول را انتخاب می کنیم.
ConfigCells.pngBindCellTextToDataSourceColumn.png
گزارش را در محل مناسب ذخیره می کنیم.
5- در برنامه، باید مجموعه ای از اشیاء ایجاد شده از کلاس ClsReportModel را به عنوان سورس و از طریق متد RegBusinessObject به دیکشنری MyBusinessObject ارسال کنیم و سپس گزارش را نمایش دهیم. داده ها میتوانند از دیتابیس و یا هر منبع دیگری آماده شوند. در این صورت به ازای هر رکورد یک شئ از کلاس MyBusinessObject باید ایجاد کرده و به لیست اضافه کنیم.
در کد مثال زیر چهار نمونه ایجاد شده و برای هر کدام یک پراپرتی متفاوت را مقداردهی کرده ایم
List<ClsReportModel> reportModels = new List<ClsReportModel>();
ClsReportModel m1 = new ClsReportModel() { Row1Column1 = "a"};
ClsReportModel m2 = new ClsReportModel() { Row1Column2 = "b" };
ClsReportModel m3 = new ClsReportModel() { Row2Column1 = "c" };
ClsReportModel m4 = new ClsReportModel() { Row2Column2 = "d" };
reportModels.Add(m1);
reportModels.Add(m2);
reportModels.Add(m3);
reportModels.Add(m4);StiReport report = new StiReport();
report.Load(Application.StartupPath + "/report.mrt");
report.RegBusinessObject("MyBusinessObject" , reportModels);
report.Show();
گزارش به صورت زیر در خواهد آمد:
Result.png
برچسب:
نویسنده: محمد رضا جوادیان
تاريخ: جمعه
4 تير
1395 ساعت: 1:17