[csharp] /// <summary>
/// سفارشی Export & Email ایجاد منـوهای
/// </summary>
private void BuildExportMenu()
{
StiServiceContainer exportServices = StiExportService.GetExportServices();
if (exportServices.Count > 0)
{
object[] array = exportServices.ToArray();
Array.Sort(array, StiExportPositionComparer.Comparer);
var hashtable = new System.Collections.Hashtable();
var stiStringCollection = new
Stimulsoft.Controls.StiStringCollection();
foreach (StiExportService service in array)
{
if (hashtable[service.GroupCategory] == null)
{
hashtable.Add(service.GroupCategory,
service.GroupCategory);
stiStringCollection.Add(service.GroupCategory);
}
}
BarSubItem mnu_Save, mnu2_Save, mnu1_Email, mnu2_Email;
int num, imgKeyIndex = -1;
//var font = new Font("B Nazanin", 11f, FontStyle.Bold);
var font = new Font("Tahoma", 10f, FontStyle.Regular);
// (Section 1)
foreach (string mnuName in stiStringCollection)
{
if (mnuName.Equals("Image") || mnuName.Equals("Data"))
continue;
num = 0;
foreach (StiExportService service2 in array.OfType<StiExportService>().Where(service2 => mnuName ==
service2.GroupCategory && service2.GroupCategory != "Image" &&
service2.GroupCategory != "Meta" && service2.GroupCategory !=
"Data"))
{
imgKeyIndex++;
if (mnuName == service2.GroupCategory)
{
// obtain’s main menu item icon & adding to my
imagelist
imgSaveExportMenus.Images.Add(imgKeyIndex.ToString(CultureInfo.Invar
iantCulture) + "_img", StiServiceBitmapAttribute.GetImage(service2.GetType()));
var item5 = new BarButtonItem(this.barManager2, service2.ExportNameInMenu)
{
Name = service2.ExportNameInMenu,
ImageIndex = imgSaveExportMenus.Images.IndexOfKey(imgKeyIndex.ToString(
CultureInfo.InvariantCulture) + "_img"),
Tag = service2
};
// instance object for email menu
var item5_1 = new BarButtonItem(this.barManager2, service2.ExportNameInMenu)
{
Name = service2.ExportNameInMenu,
ImageIndex = imgSaveExportMenus.Images.IndexOfKey(imgKeyIndex.ToString(
CultureInfo.InvariantCulture) + "_img"),Tag = service2
};
// Set Properties for Display
item5.ItemAppearance.Normal.Font_Parmida =
item5_1.ItemAppearance.Normal.Font_Parmida = font;
item5.ItemAppearance.Normal.ParmidaFontIsUsing =
item5_1.ItemAppearance.Normal.ParmidaFontIsUsing = true;
item5.ItemAppearance.Normal.Options.UseFont =
item5_1.ItemAppearance.Normal.Options.UseFont = true;
// Adding to Menu and assign if needs group
if (num == 0)
{
bar_Save.ItemLinks.Add(item5).BeginGroup =
true;
bar_Email.ItemLinks.Add(item5_1).BeginGroup
= true;
}
else
{
bar_Save.ItemLinks.Add(item5);
bar_Email.ItemLinks.Add(item5_1);
}
// delegate for click event’s
item5.ItemClick += this.miSaveReport;
item5_1.ItemClick += this.miSaveReport;
}
num++;
}
}
// (Section 2)
// adding two submenu item for Data & Image Manu Exports
mnu_Save = new BarSubItem
{
// Obtain caption menu of localize ==> (xml.file)
// Caption = StiLocalization.Get("PropertyMain", "Data")
// Assign Other Custom Caption By Developer
Caption = @"انتقال به سایر منابع داده ای",
Glyph = new Bitmap(Properties.Resources.ExportToData)
};
mnu1_Email = new BarSubItem
{
// Obtain caption menu of localize ==> (xml.file)
// Caption = StiLocalization.Get("PropertyMain", "Data")
// Assign Other Custom Caption By Developer
Caption = @"انتقال به سایر منابع داده ای",
Glyph = new Bitmap(Properties.Resources.ExportToData)
};
mnu2_Save = new BarSubItem
{
// Obtain caption menu of localize ==> (xml.file)
// Caption = StiLocalization.Get("PropertyMain", "Data")
// Assign Other Custom Caption By Developer
Caption = @"انتقال به فرمت های مختلف تصویری",
Glyph = new Bitmap(Properties.Resources.ExportToImage)
};
mnu2_Email = new BarSubItem
{
// Obtain caption menu of localize ==> (xml.file)
// Caption = StiLocalization.Get("PropertyMain", "Data")
// Assign Other Custom Caption By Developer
Caption = @"انتقال به فرمت های مختلف تصویری",
Glyph = new Bitmap(Properties.Resources.ExportToImage)
};
//Set Properties For This Items
mnu_Save.ItemAppearance.Normal.Font_Parmida =
mnu2_Save.ItemAppearance.Normal.Font_Parmida =
mnu1_Email.ItemAppearance.Normal.Font_Parmida =
nu2_Email.ItemAppearance.Normal.Font_Parmida = font;
mnu_Save.ItemAppearance.Normal.ParmidaFontIsUsing =
mnu2_Save.ItemAppearance.Normal.ParmidaFontIsUsing =
mnu1_Email.ItemAppearance.Normal.ParmidaFontIsUsing =
mnu2_Email.ItemAppearance.Normal.ParmidaFontIsUsing = true;
mnu_Save.ItemAppearance.Normal.Options.UseFont =
mnu2_Save.ItemAppearance.Normal.Options.UseFont =
mnu1_Email.ItemAppearance.Normal.Options.UseFont =
mnu2_Email.ItemAppearance.Normal.Options.UseFont = true;
// Add To Menu & Draw Group’s
bar_Save.ItemLinks.Add(mnu_Save).BeginGroup = true;
bar_Email.ItemLinks.Add(mnu1_Email).BeginGroup = true;
bar_Save.ItemLinks.Add(mnu2_Save).BeginGroup = true;
bar_Email.ItemLinks.Add(mnu2_Email).BeginGroup = true;
// (Section 3)
// search & adding submenu items format of image and data
menu exports
imgKeyIndex = 50;
num = 0;
foreach (string str in stiStringCollection)
{
foreach (StiExportService service2 in
array.OfType<StiExportService>().Where(service2 => str ==
service2.GroupCategory && (service2.GroupCategory == "Image" ||
service2.GroupCategory == "Meta" || service2.GroupCategory ==
"Data")))
{
imgKeyIndex++;
if (service2.GroupCategory.Equals("Data"))
{
// obtain’s main submenu item icon & adding to
//my imagelist
imgSaveExportMenus.Images.Add(imgKeyIndex.ToString(
CultureInfo.InvariantCulture) + "_img",
StiServiceBitmapAttribute.GetImage(service2.GetType()));
var item6 = new BarButtonItem(barManager2,
service2.ExportNameInMenu)
{
Name = service2.ExportNameInMenu,
ImageIndex = imgSaveExportMenus.Images.IndexOfKey(imgKeyIndex.ToString(
CultureInfo.InvariantCulture) + "_img"),Tag = service2
};
//copy instance object for email menu
var item6_1 = new BarButtonItem(barManager2,
service2.ExportNameInMenu)
{
Name = service2.ExportNameInMenu,
ImageIndex = imgSaveExportMenus.Images.IndexOfKey(imgKeyIndex.ToString(
CultureInfo.InvariantCulture) + "_img"),
Tag = service2
};
// Set Properties
item6.ItemAppearance.Normal.Font_Parmida =
item6_1.ItemAppearance.Normal.Font_Parmida = font;
item6.ItemAppearance.Normal.ParmidaFontIsUsing =
item6_1.ItemAppearance.Normal.ParmidaFontIsUsing = true;
item6.ItemAppearance.Normal.Options.UseFont =
item6_1.ItemAppearance.Normal.Options.UseFont = true;
//Add & Delegate Event Click
mnu_Save.AddItem(item6);
item6.ItemClick += this.miSaveReport;
mnu1_Email.AddItem(item6_1);
item6_1.ItemClick += this.miEmailReport;
}
else if (service2.GroupCategory.Equals("Image"))
{
// obtain’s main submenu item icon & adding to my imagelist
imgSaveExportMenus.Images.Add(imgKeyIndex.ToString(
CultureInfo.InvariantCulture) + "_img",
StiServiceBitmapAttribute.GetImage(service2.GetType()));
var item6 = new BarButtonItem(barManager2,
service2.ExportNameInMenu)
{
Name = service2.ExportNameInMenu,
ImageIndex = imgSaveExportMenus.Images.IndexOfKey(imgKeyIndex.ToString(
CultureInfo.InvariantCulture) + "_img"),Tag = service2
};
//instance object for email menu
var item6_1 = new BarButtonItem(barManager2,
service2.ExportNameInMenu)
{
Name = service2.ExportNameInMenu,
ImageIndex = imgSaveExportMenus.Images.IndexOfKey(
imgKeyIndex.ToString(CultureInfo.InvariantCulture) + "_img"),
Tag = service2
};
// Set Properties
item6.ItemAppearance.Normal.Font_Parmida =
item6_1.ItemAppearance.Normal.Font_Parmida = font;
item6.ItemAppearance.Normal.ParmidaFontIsUsing =
item6_1.ItemAppearance.Normal.ParmidaFontIsUsing = true;
item6.ItemAppearance.Normal.Options.UseFont =
item6_1.ItemAppearance.Normal.Options.UseFont = true;
// add items
mnu2_Save.AddItem(item6);
mnu2_Email.AddItem(item6_1);
// delegate click events
item6.ItemClick += this.miSaveReport;
item6_1.ItemClick += this.miEmailReport;
}
else if (service2.GroupCategory.Equals("Meta"))
{
// obtain’s main submenu item icon & adding to
// my imagelist
imgSaveExportMenus.Images.Add(imgKeyIndex.ToString(
CultureInfo.InvariantCulture) + "_img",
StiServiceBitmapAttribute.GetImage(service2.GetType()));
var item6 = new BarButtonItem(barManager2,
service2.ExportNameInMenu)
{
Name = service2.ExportNameInMenu,
ImageIndex = imgSaveExportMenus.Images.IndexOfKey(imgKeyIndex.ToString(
CultureInfo.InvariantCulture) + "_img"),
Tag = service2
};
//copy instance object for email menu
var item6_1 = new BarButtonItem(barManager2,
service2.ExportNameInMenu)
{
Name = service2.ExportNameInMenu,
ImageIndex =
imgSaveExportMenus.Images.IndexOfKey(imgKeyIndex.ToString(
CultureInfo.InvariantCulture) + "_img"),Tag = service2
};
// Set Properties & Adding To Menu
item6.ItemAppearance.Normal.Font_Parmida =
item6_1.ItemAppearance.Normal.Font_Parmida = font;
item6.ItemAppearance.Normal.ParmidaFontIsUsing =
item6_1.ItemAppearance.Normal.ParmidaFontIsUsing = true;
item6.ItemAppearance.Normal.Options.UseFont =
item6_1.ItemAppearance.Normal.Options.UseFont = true;
// adding and if had needs drawing group
if (num == 0)
{
mnu2_Save.AddItem(item6).BeginGroup = true;
mnu2_Email.AddItem(item6_1).BeginGroup =
true;
}
else
{
mnu2_Save.AddItem(item6);
mnu2_Email.AddItem(item6_1);
}
// Delegate Event Click
item6.ItemClick += this.miSaveReport;
item6_1.ItemClick += this.miEmailReport;
num++;
}
}
}
// adding custom item to first of menu
var Save2hard = new BarButtonItem(barManager2,
"ذخیره گزارش در سایر مسیرها …");
imgKeyIndex++;
imgSaveExportMenus.Images.Add(imgKeyIndex.ToString(
CultureInfo.InvariantCulture) + "_img",
Properties.Resources.ExportRpt);
// assign custom icon for this item
Save2hard.ImageIndex = imgSaveExportMenus.Images.IndexOfKey(
imgKeyIndex.ToString(CultureInfo.InvariantCulture) + "_img");
this.bar_Save.ItemLinks.Insert(0, Save2hard).Item.Name =
"BtnServer1";
//instance object for email menu
var Save2hardMail = new BarButtonItem(barManager2,
"ذخیره گزارش در سایر مسیرها …");
Save2hardMail.ImageIndex =
imgSaveExportMenus.Images.IndexOfKey(
imgKeyIndex.ToString(CultureInfo.InvariantCulture) + "_img");
this.bar_Email.ItemLinks.Insert(0, Save2hardMail).Item.Name = "Save2hardMail";
// set properties
Save2hard.ItemAppearance.Normal.Font_Parmida =
Save2hardMail.ItemAppearance.Normal.Font_Parmida = font;
Save2hard.ItemAppearance.Normal.ParmidaFontIsUsing =
Save2hardMail.ItemAppearance.Normal.ParmidaFontIsUsing = true;
Save2hard.ItemAppearance.Normal.TextOptions.RightToLeft =
Save2hardMail.ItemAppearance.Normal.TextOptions.RightToLeft =
RightToLeft.Yes;
// delegate for click item
Save2hard.ItemClick += CustomSave;
Save2hardMail.ItemClick += CustomSave;
font.Dispose();
}
}
[/csharp]
|
6 دیدگاه
محمدرضا خاکپور
تیتر مطلب ایراد املایی داره، emial !!!!!!!!!!!!!
مسعود طاهری
سلام، اصلاح گردید.
ابراهیم رعیت
بسیار عالی.
مهندس اگه میشه در مورد لود یوزر کنترل در تب ها به صورت پویا در حالت اجرا برنامه یک مقاله بنویسید و چگونگی رفع مشکل کند لود شدن یوزر کنترل در تب که عموما یوزر کنترلی که بزرگ طراحی شده باشه به عنوان مثال یک درج خودرو با تمام امکانات با Devexpress طراحی شده باشه موقع لود سرعت خیلی کمی داره ولی اگه همونو با کنترل های VS بزنی سرعت بالایی داره میشه گفت اصلا سرعت کند نمیشه.
فرشید علی اکبری
سلام
مجتبی شهریور
سلام
مقاله شما بسیار عالی بود و عالی تر لینکی که در قسمت نظرات معرفی فرمودین دستتون درد نکنه
سیداسماعیل حسینی
سلام.
مقاله خوبی بود. ممنون..
یه سوال در مورد استیمول داشتم؛ البته شاید جاش اینجا نباشه ولی چون از هیچ جایی جوابم رو نگرفتم اینجا مطرحش می کنم.
من یه برنامه نوشتم که در قسمت گزارش گیری نیازه که کاربر هربار اون فیلدهایی که می خواد فقط در گزارش بیاد یعنی یه جورایی گزارش گیری پویا باشه. می خواستم ببینم چطور این کار رو میشه انجامش داد؟
فرشید علی اکبری
سلام