1-) C# RMOS - tüm formları dolaşma ve bu formlardaki labellerin text lerini alma
using System;
using System.Data;
using System.Linq;
using System.Reflection;
using System.Windows.Forms;
namespace allForm
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public string GetThisNamespace()
{
return GetType().Namespace;
}
private Type[] GetTypesInNamespace(Assembly assembly, string nameSpace)
{
return
assembly.GetTypes()
.Where(t => String.Equals(t.Namespace, nameSpace, StringComparison.Ordinal))
.ToArray();
}
private void button1_Click(object sender, EventArgs e)
{
Type[] typelist = GetTypesInNamespace(Assembly.GetExecutingAssembly(), GetThisNamespace());
for (int i = 0; i < typelist.Length; i++)
{
try
{
var form = Activator.CreateInstance(Type.GetType(GetThisNamespace() + "." + typelist[i].Name)) as Form;
ClearLabel(form, form.Name);
}
catch (Exception ex) // form olmayınca yani class olunca catche düşer
{
//Console.WriteLine(ex.Message);
}
}
}
private IEnumerable<ToolStripMenuItem> GetItems(ToolStripMenuItem item)
{
foreach (ToolStripMenuItem dropDownItem in item.DropDownItems)
{
if (dropDownItem.HasDropDownItems)
{
foreach (ToolStripMenuItem subItem in GetItems(dropDownItem))
yield return subItem;
}
yield return dropDownItem;
}
}
public void ClearLabel(Control control, string formName)
{
if (control is Label)
{
Label lbl = (Label)control;
Console.WriteLine(formName + "-> " + lbl.Text);
}
if (control is TextEdit)
{
TextEdit lbl = (TextEdit)control;
Console.WriteLine(formName + "-> " + lbl.Text);
}
if (control is LabelControl)
{
LabelControl lbl = (LabelControl)control;
Console.WriteLine(formName + "-> " + lbl.Text);
}
if (control is GridControl)
{
GridControl lbl = (GridControl)control;
foreach (GridColumn item in (lbl.MainView as GridView).Columns)
{
Console.WriteLine(formName + "-> " + item.Caption + "-" + item.FieldName);
}
List<ToolStripMenuItem> allItems = new List<ToolStripMenuItem>();
foreach (ToolStripMenuItem toolItem in lbl.ContextMenuStrip.Items)
{
allItems.Add(toolItem);
//add sub items
allItems.AddRange(GetItems(toolItem));
}
foreach (var item in allItems)
{
listBox1.Items.Add(item.Text+"-"+item.Name);
}
}
if (control is NavBarControl)
{
NavBarControl lbl = (NavBarControl)control;
for (int i = 0; i < lbl.Items.Count; i++)
{
Console.WriteLine("navbar item-> " + lbl.Items[i].Caption);
}
for (int i = 0; i < lbl.Groups.Count; i++)
{
Console.WriteLine("navbar_groups -> " + lbl.Groups[i].Caption);
}
}
if (control is PivotGridControl)
{
PivotGridControl lbl = (PivotGridControl)control;
for (int i = 0; i < lbl.GetFieldList().Length; i++)
{
Console.WriteLine("pivot -> " + formName + "-> " + lbl.GetFieldList()[i]);
}
foreach (PivotGridField item in lbl.Fields)
{
Console.WriteLine("pivot -> " + formName + "-> " + item.Caption + "-" + item.FieldName);
}
}
if (control is RibbonControl)
{
for (int i = 0; i < companent.Pages.Count; i++)
{
Console.WriteLine(companent.Pages[i].Text.ToString());
foreach (RibbonPageGroup group in companent.Pages[i].Groups)// eğer görünüyorsa alt menülerini kontrol et
{
Console.WriteLine(group.Text);
foreach (BarButtonItemLink link in group.ItemLinks)
{
Console.WriteLine(link.Item.Name + "-" + link.Item.Tag);
if (link.Item.DropDownControl != null)
{
PopupMenu menu = (link.Item.DropDownControl as PopupMenu);
Console.WriteLine(link.Item.Name + "*" + link.Item.Tag);
for (int j = 0; j < menu.ItemLinks.Count; j++)
{
Console.WriteLine(menu.ItemLinks[j].Item.Name + "&" + menu.ItemLinks[j].Item.Tag);
}
}
}
}
}
}
if (control is XtraTabControl)
{
XtraTabControl lbl = (XtraTabControl)control;
foreach (XtraTabPage item in lbl.TabPages)
{
Console.WriteLine(formName + "-> " + item.Text);
}
}
if (control is BarDockControl)
{
BarDockControl lbl = (BarDockControl)control;
for (int i = 0; i < lbl.Manager.Items.Count; i++)
{
Console.WriteLine(lbl.Manager.Items[i].Caption);
}
}
if (control is GridLookUpEdit)
{
GridLookUpEdit lbl1 = (GridLookUpEdit)control;
foreach (GridColumn item in (lbl1.Properties.View).Columns)
{
Console.WriteLine(item.Caption);
}
if (control is LookUpEdit)
{
LookUpEdit lbl1 = (LookUpEdit)control;
lbl1.Properties.PopulateColumns();
foreach (LookUpColumnInfo item in lbl1.Properties.Columns)
{
item.Caption = Karsilikoku(item.Caption);
}
}
if (control is TreeList)
{
TreeList lbl = (TreeList)control;
foreach (TreeListColumn item in lbl.Columns)
{
Console.WriteLine(item.FieldName.ToString()+"-"+item.Caption.ToString());
}
}
foreach (Control child in control.Controls)
{
ClearLabel(child, formName);
}
}
}}
2-) Load da dil için karşılığını yazma tam kodu yazmadım düzeltirsin
açıklama: program açılınca tüm datayı çek. sürekli sql e gitmemek için sonra o datadan karşılığını bul yaz dil desteği için
private void Form1_Load(object sender, EventArgs e)
{
ClearLabel(this, "Form1");
}
if (control is Label)
{
Label lbl = (Label)control;
Console.WriteLine(formName + "-> " + lbl.Text);
// select *
if (lbl.Text.Equals("label12")) // label12 -> sql den gelicek
{
lbl.Text = "label12 ingilizce";
}
}
DataTable dt = new DataTable();
dt.Columns.Add("tr");
dt.Columns.Add("en");
dt.Columns.Add("de");
dt.Columns.Add("ru");
DataRow dr = dt.NewRow();
dr["tr"] = "okul-tr";
dr["en"] = "okul-en";
dr["de"] = "okul-de";
dr["ru"] = "okul-ru";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["tr"] = "okul-tr1";
dr["en"] = "okul-en1";
dr["de"] = "okul-de1";
dr["ru"] = "okul-ru1";
dt.Rows.Add(dr);
DataRow sonuc = dt.AsEnumerable().Where(myRow => myRow.Field<string>("tr") == "okul-tr").FirstOrDefault();
/* yukarıdaki kod açıklaması :
datatable içinde tr sütününda "okul-tr" var is o satırı getir demek.
birden fazla dönerse ilk satırı alır . eğer yoksa null döner
*/
if (sonuc != null)
{
Console.WriteLine(sonuc["tr"].ToString());
Console.WriteLine(sonuc["en"].ToString());
Console.WriteLine(sonuc["ru"].ToString());
Console.WriteLine(sonuc["de"].ToString());
}
3-) Report için
private void button1_Click(object sender, EventArgs e)
{
aa = 0;
Type[] typelist = GetTypesInNamespace(Assembly.GetExecutingAssembly(), GetThisNamespace());
for (int i = 0; i < typelist.Length; i++)
{
try
{
var form = Activator.CreateInstance(Type.GetType(GetThisNamespace() + "." + typelist[i].Name)) as Form;
ClearLabel(form, form.Name);
ClearLabel_grid(form, form.Name);
}
catch (Exception ex) // form olmayınca yani class olunca catche düşer
{
//Console.WriteLine(ex.Message);
}
}
typelist = GetTypesInNamespace(Assembly.GetExecutingAssembly(), GetThisNamespace() + ".Raporlar");
for (int i = 0; i < typelist.Length; i++)
{
try
{
XtraReport form1 = Activator.CreateInstance(Type.GetType(GetThisNamespace() + ".Raporlar." + typelist[i].Name)) as XtraReport;
clear_rapor(form1, typelist[i].Name);
}
catch (Exception ex) // form olmayınca yani class olunca catche düşer
{
//Console.WriteLine(ex.Message);
}
}
//resx.Close();
}
public void clear_rapor(XtraReport control, string formName)
{
foreach (var child in control.Bands)
{
Band band = (Band)child;
foreach (var item in band.Controls)
{
if (item is XRLabel)
{
XRLabel lbl = (XRLabel)item;
karsilikYaz(formName, lbl.Text, lbl.Name);
//Console.WriteLine(formName + "-> " + lbl.Text);
}
if (item is XRPanel)
{
XRPanel panel = (XRPanel)item;
foreach (var item2 in panel.Controls)
{
if (item2 is XRLabel)
{
XRLabel lbl = (XRLabel)item2;
karsilikYaz(formName, lbl.Text, lbl.Name);
//Console.WriteLine(formName + "-> " + lbl.Text);
}
}
}
} } }