ورود

View Full Version : حرفه ای: سفارشی کردن قابلیت طراحی ریپورت توسط user end (فعال و غیرفعال کردن ابزار ها) - StimulSoft Report



popo69
سه شنبه 21 آبان 1392, 11:03 صبح
سلام خدمت اساتید و دوستان محترم

بنده در بخش سوالات Stimulsoft report خیلی جستجو کردم اما مطلبی در مورد اینکه چطور می شه قابلیت طراحی ریپورت و جابه جا کردن TEXT ها رو به کاربر داد تا خودش اینکارو انجام بده رو پیدا نکردم.

پروژه بنده به صورتی هست که قراره یک سری اطلاعات توسط DataTable به Report پاس داده شه و ریپورت هم Field ها رو که از قبل طراحی شده روی فرم داره و کاربر فقط بتونه مکان اون فیلد ها ( یعنی مختصات ) روی صفحه A4 رو جابه جا کنه...

اهداف :
1.غیر فعال کردن بعضی از امکانات صفحه Design
2.اعمال یکسری تنظیمات از طریق کدنویسی (Code Behind) بر روی ریپورت
مانند : اینکه ShowGrid فعال باشه یا نه -- یا Toolbox.visible=false باشه
3.فارسی سازی محیط طراحی برای کاربر
4.ذخیره و ...

کد ها : برای غیر فعال کردن ابزار های موجود در صفحه Design :

//عنوان ریپورت
StiOptions.Designer.DesignerTitle = title + " طراحی فرم ";
//غیرفعال شدن نمایش تب کدنویسی
StiOptions.Designer.CodeTabVisible = false;
StiOptions.Designer.UseRightToLeftGlobalizationEdi tor = true;
//غیرفعال شدن قابلیت تغییر نام ریپورت توسط کاربر
StiOptions.Designer.CanDesignerChangeReportFileNam e = false;

StiOptions.Designer.UseSimpleGlobalizationEditor = false;

//تنظیم تم ریپورت از حالت استاندارد به ریبون
StiOptions.Windows.GlobalGuiStyle = StiGlobalGuiStyle.Office2010Blue;
StiOptions.Designer.IsRibbonGuiEnabled = true;


//غیر فعال کردن سرویس های پنل
Stimulsoft.Report.Design.Panels.StiPropertiesPanel Service propPanel = Stimulsoft.Report.Design.Panels.StiPropertiesPanel Service.GetService();
propPanel.ServiceEnabled = false;

Stimulsoft.Report.Design.Panels.StiDictionaryPanel Service dictPanel = Stimulsoft.Report.Design.Panels.StiDictionaryPanel Service.GetService();
dictPanel.ServiceEnabled = false;

Stimulsoft.Report.Design.Panels.StiReportTreePanel Service treePanel = Stimulsoft.Report.Design.Panels.StiReportTreePanel Service.GetService();
treePanel.ServiceEnabled = false;

Stimulsoft.Report.Design.Toolbars.StiToolsToolbarS ervice cpanel = Stimulsoft.Report.Design.Toolbars.StiToolsToolbarS ervice.GetService();
cpanel.ServiceEnabled = false;


//فعال و غیر فعال کردن آیتم های موجود در نوار ابزار Ribbon
StiOptions.Designer.Ribbon.ShowLocalizationMenu = false;
StiOptions.Designer.Ribbon.ShowHelp = false;
StiOptions.Designer.Ribbon.ShowMainMenuCheckForIss ues = false;
StiOptions.Designer.Ribbon.ShowMainMenuClose = false;
StiOptions.Designer.Ribbon.ShowMainMenuDesigner = false;
StiOptions.Designer.Ribbon.ShowMainMenuExit = true;
StiOptions.Designer.Ribbon.ShowMainMenuFormNew = false;
StiOptions.Designer.Ribbon.ShowMainMenuNew = false;
StiOptions.Designer.Ribbon.ShowMainMenuOptions = false;
StiOptions.Designer.Ribbon.ShowMainMenuPage = false;
StiOptions.Designer.Ribbon.ShowMainMenuPageDelete = false;
StiOptions.Designer.Ribbon.ShowMainMenuPageNew = false;
StiOptions.Designer.Ribbon.ShowMainMenuPageOpen = false;
StiOptions.Designer.Ribbon.ShowMainMenuPageSaveAs = false;
StiOptions.Designer.Ribbon.ShowMainMenuRecentFiles = false;

//تنظیم زبان به فارسی
StiConfig.LoadLocalization("fa.xml");

این کد های میاد زمانی که شما :

report.Load("Reports/" + reportName + ".mrt");
report.Design();


ریپورت رو با سرویس Design باز می کنی یه سری تنظیمات سفارشی روی پنجره سفارش انجام میده
مثلا Dictionery و Tree panel رو از دید کاربر مخفی و سرویس های مربوط به اون رو غیر فعال می کنه..

حالا مشکلی که من دارم اینه که می خوام به تنظیمات Design دسترسی داشته باشم مثلا حالت GridShow رو فعال و غیر فعال کنم و یا وقتی یه Field از دیتا تیبل روی Report هست بجای نمایش :

112744

به این صورت نمایش :

112745

داده شود.

سعی کردم از انجمن خود Stimulsoft اطلاعات بدست بیارم ولی نتونستم - از PDF هاش هم استفاده کردم ولی نتونستم...
اگه کسی اطلاعاتی در این مورد داره در اختیار من قرار بده ممنون میشم...

در کل می خوام حالت نمایش رو با کدنویسی تنظیم کنم و هر ایتمی رو فعال و غیر فعال کنم....
3 تا پنل و قسمت های مختلف ریبون رو تونستم دسترسی پیدا کنم اما Toolbox سمت چپ رو نتونستم Hide کنم و همچنین showGrid و ایتم های بخش Quick info رو نتونستم تغییر بدم ( از طریق Runtime )

fakhravari
چهارشنبه 22 آبان 1392, 22:42 عصر
یه نمونه
برای مثال
StiText tx = (r.Pages[0].Components["Text1"] as StiText);
tx.Enabled = true;

در کل همه کنترل ها به این روش هستند.
فقط باید نام کنترل پیدا کنید.

amir3321
شنبه 25 آبان 1392, 10:38 صبح
راستش من هم در حالت runtime نتونستم یک دکمه مثلا به viewer اضافه کنم از خود فروم استیمول هم چند بار سوال کردم و توضیح دادم تا آخرش ادمین فروم یوزر من رو کلا حذف کرد . ولی من اومدم یک فرم دیگه گذاشتم و viewer رو روی اون گذاشتم و همه تغییراتی که می خواستم به اون اعمال کردم
خوشحال می شوم اگه کسی کاری در این مورد انجام داده یک راهنمایی هم برای ما اینجا قرار بدهد

Sal_64
شنبه 25 آبان 1392, 19:49 عصر
ارسال اشتباه ، جذف شود