PDA

View Full Version : مشکل در نمایش فیلدها در Fast Report



ictboy
دوشنبه 17 اردیبهشت 1386, 08:19 صبح
با سلام خدمت دوستان گرامی .
من یه مشکل در Fast Report دارم نمی دونم چه عنوانی باید برای این تاپیک انتخاب می کردم. البته قبل درج جستجو کردم ولی فایده ای نداشت.مشکل من در مورد گزارش گیری با ابزار هایی مثل Fast Report و Rave وCrystal Report و ... که فایل گزارش دارند ، هست. من قبلا با Quick Report از جداولم گزارش می گرفتم . مشکل من این هست که نمی دونم چه طور می تونم به اجزای گزارشم که در فایل گزارش است دسترسی داشته باشم. اگه اجازه بدید یه مثال بزنم که قضیه مشخص بشه. فرض می کنیم یک سیستم پرسنلی داریم که در آن پست پرسنل در یک جدول مجزا به همرا ه یک کد ذخیره شده . برای بقیه قسمت ها مثل واحد سازمانی ، محل خدمت ، وضعیت ایثارگری و... هم به همین صورت در جداول مجزا به همراه کد خاصی ذخیره شده اند. بعد ما در جدول پرسنل به جای پست ، واحد ، محل خدمت و... کد مرتبط با آن را در جدول ذخیره می کنیم. حالا در موقع گزارش گیری من چه طور می تونم به جای کد ها فیلد عنوان آنها را قرار بدم . تو Quick Report برای این کار من در قسمت DataSet مربوط به Quick Report در رویداد OnAfterScroll ابتدا مقدار فیلد مورد نظر را از جدول خودش با یک Query پیدا می کردم بعد مقدار بدست آمده را به QRLable مورد نظرم انتساب می دادم و این کار برای تمامی رکوردها انجام می شد.
حالا نمی دونم تو Fast Report چه طوری می شه به عنصری که داخل یک فایل ذخیره شده دسترسی پیدا کرد.
اگر راه حلی دیگری مد نظر دوستان هست یا از اون استفاده می کنید یا نمونه برنامه که این مورد باشه ممنون می شم راهنماییم کنید. خلاصه این همه سیستم بانک اطلاعاتی تو بازار هست که اون ها هستم برای ثبت فکر کنم به همین صورت عمل میکنند یعنی مقادیر را به صورت دسته بندی در جداول مختلف ثبت می کنند و در جداول بزرگتر از آنها استفاده می کنند(نرمال سازی جداول). خوب اونها هم حتما یه جوری تو گزارش گیری این مشکل شون رو حل می کنند.

متشکرم.

vcldeveloper
سه شنبه 25 اردیبهشت 1386, 09:26 صبح
بعد ما در جدول پرسنل به جای پست ، واحد ، محل خدمت و... کد مرتبط با آن را در جدول ذخیره می کنیم. حالا در موقع گزارش گیری من چه طور می تونم به جای کد ها فیلد عنوان آنها را قرار بدم .
بهتره خودتون یک فیلد از نوع Look up ایجاد کنید تا بطور اتوماتیک عنوان های مربوطه را از جدول دوم بخواند و کدها را با عنوان های موجود در جدول دوم جایگزین کند. درباره فیلدهای Lookup قبلا بحث شده، می تونید جستجو کنید.

حالا نمی دونم تو Fast Report چه طوری می شه به عنصری که داخل یک فایل ذخیره شده دسترسی پیدا کرد.
برای دسترسی به عنصری در Fast Report می تونید از متد FindObject از شی frxReport استفاده کنید، البته برای اینکه بتونید از عنصر مورد نظر استفاده کنید، باید آن را از TfrxComponent به نوع مورد نظر خودتون type cast کنید. برای مثال:


var
frxMemo1 : TfrxMemoView;
begin
frxMemo1 := frxReport1.FindObject('frxMemo1') as TfrxMemoView;
frxMemo1.Text := 'This is a sample';
end;

اگر می خواید قبل از نمایش گزارش تغییری در محتوی اون بدید، می تونید از رویداد OnBeforePrint شی frxReport استفاده کنید که برای هر یک از عناصر موجود در گزارش قبل از چاپ، فراخوانی میشه.

ictboy
چهارشنبه 26 اردیبهشت 1386, 12:52 عصر
آقای کشاورز ممنون از جواب تون
تست می کنم
به مشکل خوردم مزاحمتون می شم