استفاده از جداول پدر و فرزند در گزارش – 1

در این قسمت قصد دارم که نحوه ی نمایش داده های جداول مرتبط با هم را آموزش بدم . دو جدول با ساختار و داده های زیر را در نظر بگیرید :
parent-child-table-crystalreport(1)
parent-child-table-crystalreport(2)

همانطور که در شکل های بالا مشاهده می کنید ، در بانک اطلاعاتی دو جدول به نام های tablePersonels ( جدول پدر ) و tableCars ( جدول فرزند ) وجود دارد . برای آزمایش چندین سطر را به شکل زیر به هر 2 جدول اضافه می کنیم :
parent-child-table-crystalreport(3)
parent-child-table-crystalreport(4)

طراحی Dataset

بعد از طراحی بانک و قرار دادن داده ها در آن باید یک Dataset برای آن در برنامه ایجاد کنیم . در حالت کلی شما باید یک Dataset را طراحی کنید و بعد از پر کردن آن با داده های خود ، آن را به عنوان منبع داده به کریستال ریپورت معرفی کنید . ابتدا بر روی نام پروژه در Solution Explorer راست کلیک کرده و سپس از گزینه Add آیتم …New Item را انتخاب می کنیم :
parent-child-table-crystalreport(5)

سپس از سربرگ Data ، گزینه ی Dataset را انتخاب نمایید . پس از نامگذاری آن بر روی دکمه ی OK کلیک نمایید :
parent-child-table-crystalreport(6)

با انجام دادن مرحله بالا Dataset ای به نام CrystalReportDataset.xsd به Solution Explorer اضافه می شود ، بر روی آن دابل کلیک کرده تا پنجره ی طراحی آن نمایش داده شود . در شکل زیر محیط طراحی Dataset نمایش داده شده است . برای ایجاد یک datatable در dataset بر روی یک قسمت خالی کلیک راست کرده و به صورت زیر یک Datatable ایجاد می کنیم . هر dataset از چند datatable تشکیل می شود . نکته ی اساسی این است که باید دو جدول موجود در بانک را به یک Datatable تبدیل کنیم:
parent-child-table-crystalreport(7)

بر روی Datatable ایجاد شده راست کلیک کرده و نام آن را به MergePersonelsAndCars تغییر دهید :
parent-child-table-crystalreport(8)

برای اضافه کردن یک ستون به Datatable روی آن راست کلیک کرده و از Add گزینه ی Column را انتخاب کنید :
parent-child-table-crystalreport(9)

بعد از اضافه شدن ستون می توانید نام ، نوع و… را تغییر دهید :
parent-child-table-crystalreport(10)

سپس به روش مشابه ، ستون هایی که قصد دارید در گزارش نمایش داده شود را به آن اضافه کنید . به این خاطر که قصد داریم داده های دو جدول tablePersonels و tableCars را به صورت همزمان نمایش دهیم باید ستون های آن ها را به این Datatable اضافه کنیم . یعنی هر دو جدول را به یک Datatable تبدیل کنیم :
parent-child-table-crystalreport(11)
کار طراحی Dataset به اتمام رسید . به طور خلاصه این Dataset شامل یک Datatable به نام MergePersonelsAndCars می باشد که دارای ترکیب ستون های دو جدول tablePersonels و tableCars می باشد . در مرحله بعد باید ظاهر گزارش را بر اساس آن طراحی کنیم.