Jump to content

muratboy31

Üye
  • Posts

    391
  • Joined

  • Last visited

Everything posted by muratboy31

  1. ilginçtir, false true ya dönmüyor ama, true değeri false yapınca çalışıyor !!! normalde ben create olayında hepsini false yapıp sonra yetkiye göre true yapıyordum ancak bu şekilde ştemler true olmuyordu ama hepsini create te true yapınce yetkilere göre false çalışıyor.
  2. hata vermedi ancak yine itemleri göstermiyor.
  3. bu hatayı verdi ; (bu arada itemlerde de Yetki var ayrı ayrı, yane sadece Grouplarda değil)
  4. bende buna benzer bi yapı kullandım ancak 0 - 1 değilde, eğer nesne adı var ise visible yapıyor. tek tek bütün nesnelere 0 - 1 girmek zor gibi geldi... benim anlamadığım Itemler hariç herşeyin visible olması... birtek Itemler sorun çıkarıyor !!! Sonuç: stored procedure : PROCEDURE [dbo].[sp_Auth](@username varchar(30)) AS BEGIN select * from dbo.[Auth] where UserName = @username END c#: public void Create_Navbar() { SqlConnection mycon = new SqlConnection(); SqlCommand mycommand = new SqlCommand(); SqlDataAdapter adp = new SqlDataAdapter(mycommand); DataTable Group = new DataTable(); DataTable Item = new DataTable(); try { mycon.ConnectionString = Connect; mycon.Open(); // grupları al mycommand.Connection = mycon; mycommand.CommandText = "sp_Navbar_Group_Creation"; mycommand.CommandType = CommandType.StoredProcedure; adp.Fill(Group); // itemleri al mycommand.Connection = mycon; mycommand.CommandText = "sp_Navbar_Item_Creation"; mycommand.CommandType = CommandType.StoredProcedure; adp.Fill(Item); } catch (Exception e) { MessageBox.Show(Convert.ToString(e)); } finally { mycon.Close(); } foreach (DataRow gRow in Group.Rows) { string ItemGrupID = gRow["GroupID"].ToString(); string ItemGrupName = gRow["GroupName"].ToString(); // grupları oluştur NavBarGroup NavGroup = new NavBarGroup(); NavGroup.Caption = ItemGrupName; NavGroup.Name = ItemGrupID; NavGroup.Expanded = true; NavGroup.Visible = false; navBarControl2.Groups.Add(NavGroup); // itemleri oluştur foreach (DataRow iRow in Item.Rows) { string ItemID = iRow["ItemID"].ToString(); string ItemName = iRow["ItemName"].ToString(); string ItemGroup = iRow["GroupID"].ToString(); string TypeID = iRow["TypeID"].ToString(); string ItemLink = iRow["ItemLink"].ToString(); if (ItemGrupID == ItemGroup) { NavBarItem navItem = new NavBarItem(); navItem.Name = ItemID; navItem.Caption = ItemName; navItem.Tag = ItemLink; navItem.LinkClicked += new NavBarLinkEventHandler(navBarItem_LinkClicked); navItem.Visible = false; NavGroup.ItemLinks.Add(navItem); } } } } public void Yetki(string user) { SqlConnection mycon = new SqlConnection(); SqlCommand mycommand = new SqlCommand(); SqlDataAdapter adp = new SqlDataAdapter(mycommand); try { mycon.ConnectionString = Connect; mycon.Open(); mycommand.Connection = mycon; mycommand.CommandText = "sp_Auth"; mycommand.CommandType = CommandType.StoredProcedure; mycommand.Parameters.Add("@username", SqlDbType.NVarChar, 30); mycommand.Parameters["@username"].Value = user; DataTable Auth = new DataTable(); adp.Fill(Auth); foreach (DataRow Row in Auth.Rows) { foreach (NavBarGroup NavGrup in navBarControl2.Groups) { if (NavGrup.Caption == Row["FormName"].ToString()) { NavGrup.Visible = true; NavGrup.Expanded = true; } } foreach (NavBarItem NavItem in navBarControl2.Items) { if (NavItem.Caption == Row["FormName"].ToString()) NavItem.Visible = true; } foreach (DevExpress.XtraTab.XtraTabPage Tab in xtraTabControl1.TabPages) { if (Tab.Text == Row["FormName"].ToString()) Tab.PageVisible = true; } } } catch (Exception e) { MessageBox.Show(Convert.ToString(e)); } finally { mycon.Close(); } } private void Form1_Load(object sender, EventArgs e) { Create_Navbar(); Yetki("Murat"); }
  5. örneği biraz daha açabilir misin lütfen pairs   ben caption ile yapıyorum nesne bilgilerini, tag a ID bilgilerini giriyorum...   anlam veremediğim, Gruplar visible oluyor ancak grupların içindeki Itemler visible olmuyor !!!
  6. PROCEDURE [dbo].[sp_Auth](@username varchar(30)) AS BEGIN select * from dbo.[Auth] where UserName = @username END Murat    Apple Murat    Isprots Mustafa    SapTec Mustafa    Kısayollar Mustafa    Araçlar Murat    Araçlar Murat    SapTec Murat    Ipros Murat    Vtekone Murat    Rehber Mustafa    Qdmss Murat    Klasörler Mustafa    Ekler
  7. evet create ettiğimde visible false ama sonra yetki varsa tekrar visible true yapıyorum.   hata vermiyor, sadece gruplar visible oluyor ancak itemler olmuyor...
  8. Teşekkürler Kintaro Gruplar ve itemler neden visible olmuyor acaba !   [spoiler] public void Create_Navbar() { SqlConnection mycon = new SqlConnection(); SqlCommand mycommand = new SqlCommand(); SqlDataAdapter adp = new SqlDataAdapter(mycommand); DataTable Group = new DataTable(); DataTable Item = new DataTable(); try { mycon.ConnectionString = Connect; mycon.Open(); // grupları al mycommand.Connection = mycon; mycommand.CommandText = "sp_Navbar_Group_Creation"; mycommand.CommandType = CommandType.StoredProcedure; adp.Fill(Group); // itemleri al mycommand.Connection = mycon; mycommand.CommandText = "sp_Navbar_Item_Creation"; mycommand.CommandType = CommandType.StoredProcedure; adp.Fill(Item); } catch (Exception e) { MessageBox.Show(Convert.ToString(e)); } finally { mycon.Close(); } foreach (DataRow gRow in Group.Rows) { string GrupID = gRow["GroupID"].ToString(); string GrupName = gRow["GroupName"].ToString(); // grupları oluştur NavBarGroup NavGroup = new NavBarGroup(); NavGroup.Caption = GrupName; NavGroup.Name = GrupID; NavGroup.Expanded = true; NavGroup.Visible = false; navBarControl2.Groups.Add(NavGroup); // itemleri oluştur foreach (DataRow iRow in Item.Rows) { string ItemID = iRow["ItemID"].ToString(); string ItemName = iRow["ItemName"].ToString(); string ItemGroup = iRow["GroupID"].ToString(); string TypeID = iRow["TypeID"].ToString(); if (GrupID == ItemGroup) { NavBarItem navItem = new NavBarItem(); navItem.Name = ItemID; navItem.Caption = ItemName; navItem.Tag = TypeID; navItem.LinkClicked += new NavBarLinkEventHandler(navBarItem_LinkClicked); navItem.Visible = false; NavGroup.ItemLinks.Add(navItem); } } } } public void Yetki(string user) { SqlConnection mycon = new SqlConnection(); SqlCommand mycommand = new SqlCommand(); SqlDataAdapter adp = new SqlDataAdapter(mycommand); try { mycon.ConnectionString = Connect; mycon.Open(); mycommand.Connection = mycon; mycommand.CommandText = "sp_Yetki_Listele"; mycommand.CommandType = CommandType.StoredProcedure; mycommand.Parameters.Add("@username", SqlDbType.NVarChar, 30); mycommand.Parameters["@username"].Value = user; DataTable Auth = new DataTable(); adp.Fill(Auth); foreach (DataRow Row in Auth.Rows) { foreach (NavBarGroup NavGrup in navBarControl2.Groups) { if (NavGrup.Caption == Row["FormName"].ToString()) NavGrup.Visible = true; } foreach (NavBarItem NavItem in navBarControl2.Items) { if (NavItem.Caption == Row["FormName"].ToString()) NavItem.Visible = true; } } } catch (Exception e) { MessageBox.Show(Convert.ToString(e)); } finally { mycon.Close(); } } private void Form1_Load(object sender, EventArgs e) { Create_Navbar(); Yetki("Murat"); } [/spoiler]
  9. Merhaba arkadaşlar, dinamik bir Navbar yapmak istiyorum, iki adet tablo oluşturdum, biri Navbar Grupları için diğeri Navbar Grup İtemleri için, yapmak istediğim; tablo dan grupları çekip navbar oluştursun ve sonrasında bu grupların içinde itemleri oluştursun, eşleşmeleri GroupID lerle yapacam. GroupID leri Tag larda tutabilirim gibi geliyor. Kodlama tarafında karmaşa içindeyim, yardımcı olabilecek arkadaş varsa çok sevinirm.
  10. ama stored procedure return sadece integer veri döndürür, select ile alman lazım tarihi. cmd.ExecuteNonQuery(); if (cmd.Parameters["@t"].Value == DBNull.Value) return (DateTime)cmd.Parameters["@t"].Value; else return DateTime.Now;
  11. hmm, evet olabilir dediğin gibi, aslında ben hardcode olarak bişey eklemek istemiyorum, başka bir formül bulmaya çalışırım... teşekkğrler kintaro
  12. Peki mesela formu kapatmadan başka bir kullanıcının yetkisi test ettiğimde nasıl yapacam, aktif nesneler halen visible kalacak !
  13. Kafayı yicem, ben çalıştıramadım bir türlü ;   stored procedure: ALTER PROCEDURE [dbo].[sp_Yetki_Listele](@username varchar(50)) AS BEGIN select * from dbo.[Yetki] where Kisi_Adi = @username END
  14. stored procedure kullanıyorum;   select * from dbo.[Yetki] where Kisi_Adi = @username   ancak diğer türlü çalışıyor, yane true ve false olarak, ben her item için false girmek istemediğim için bunu yapmak istiyorum.
  15. bu şekilde yaptım ama olmadı ! ; DataTable dtable = new DataTable();                 adp.Fill(dtable);                                 foreach (DataRow Satir in dtable.Rows)                 {                     foreach (DevExpress.XtraNavBar.NavBarGroup Grup in navBarControl1.Groups)                     {                         if (Grup.Caption == Satir["Form_Adi"].ToString())                             Grup.Visible = true;                         else                             Grup.Visible = false;                     }                     foreach (DevExpress.XtraNavBar.NavBarItem subitem in navBarControl1.Items)                     {                         if (subitem.Caption == Satir["Form_Adi"].ToString())                             subitem.Visible = true;                         else                             subitem.Visible = false;                     }                     foreach (DevExpress.XtraTab.XtraTabPage Tab in xtraTabControl1.TabPages)                     {                         if (Tab.Text == Satir["Form_Adi"].ToString())                             Tab.PageVisible = true;                         else                             Tab.PageVisible = false;                     }                    }     
  16. evet, form_adi olan sütun o nesneye yetkisi olduğunu gösteriyor, dediğin gibi eğer orada caption varsa visible olacak, yoksa olmayacak...   aşağıdaki gibi denedim ama olmadı ; DataTable dtable = new DataTable(); adp.Fill(dtable); foreach (DataRow Satir in dtable.Rows) { foreach (DevExpress.XtraNavBar.NavBarGroup Grup in navBarControl1.Groups) { if (Grup.Caption == Satir["Form_Adi"].ToString()) Grup.Visible = true; } foreach (DevExpress.XtraNavBar.NavBarItem subitem in navBarControl1.Items) { if (subitem.Caption == Satir["Form_Adi"].ToString()) subitem.Visible = true; } foreach (DevExpress.XtraTab.XtraTabPage Tab in xtraTabControl1.TabPages) { if (Tab.Text == Satir["Form_Adi"].ToString()) Tab.PageVisible = true; } }
  17. Döngüyü durdurmak istemiyorum ama, istediğim eğer true ise yetki olsun, yada true false değilde mesela kullanıcının karşısında hangi nesnelerin ismi varsa onlar aktif olsun... Daha kolay yada etkili bir örnek varsa o da olabilir ! mesela 1 veya 0 değilde, onun yerine sadece form adı olanlar aktif olsun, bunu nasıl yapabilirim ?
  18. Arkadaşlar merhaba,   kullandığım bir yetki tablosu var ve bu tabloda true false değerleri var, ancak ben false değerini kaldırıp sadece true varsa aktif olsun istiyorum, aşağıdaki kod true false olarak çalışıyor, bunu sadece true da çalışacak şekilde nasıl daha kısa yaparım ; DataTable dtable = new DataTable(); adp.Fill(dtable); foreach (DataRow Satir in dtable.Rows) { if (bool.Parse(Satir["Ac"].ToString()) == false) { foreach (DevExpress.XtraNavBar.NavBarGroup Grup in navBarControl1.Groups) { if (Grup.Caption == Satir["Form_Adi"].ToString()) Grup.Visible = false; } foreach (DevExpress.XtraNavBar.NavBarItem subitem in navBarControl1.Items) { if (subitem.Caption == Satir["Form_Adi"].ToString()) subitem.Visible = false; } foreach (DevExpress.XtraTab.XtraTabPage Tab in xtraTabControl1.TabPages) { if (Tab.Text == Satir["Form_Adi"].ToString()) Tab.PageVisible = false; } } if (bool.Parse(Satir["Ac"].ToString()) == true) { foreach (DevExpress.XtraNavBar.NavBarGroup Grup in navBarControl1.Groups) { if (Grup.Caption == Satir["Form_Adi"].ToString()) Grup.Visible = true; } foreach (DevExpress.XtraNavBar.NavBarItem subitem in navBarControl1.Items) { if (subitem.Caption == Satir["Form_Adi"].ToString()) subitem.Visible = true; } foreach (DevExpress.XtraTab.XtraTabPage Tab in xtraTabControl1.TabPages) { if (Tab.Text == Satir["Form_Adi"].ToString()) Tab.PageVisible = true; } } }
  19. resimleri daha önce farklı formatta alıyordum ama bmp yapınca convert etmek zorunda kalmadığı için arada dağlar fark etti ; ayrıca backgroundWorker kullanacaksanız, runtime oluşturduğunuz objeleri invoke etmeniz gerekiyor... aşağıda örneği var... private void GetImages() { string path = @"Images"; string[] filter = { ".bmp" }; DirectoryInfo directoryInfo = new DirectoryInfo(path); FileInfo[] fileInfo = directoryInfo.GetFiles(); ArrayList arrayList = new ArrayList(); foreach (FileInfo fi in fileInfo) foreach (string s in filter) if (s == fi.Extension) arrayList.Add(fi.FullName); for (int i = 0; i < arrayList.Count; i++) { Image img = Image.FromFile(arrayList[i].ToString()); photoList.Images.Add(Path.GetFileNameWithoutExtension(arrayList[i].ToString()), img); } } private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { Employees(); try { mycon.ConnectionString = Connect; mycon.Open(); mycommand.Connection = mycon; mycommand.CommandText = "sp_List_Offices"; mycommand.CommandType = CommandType.StoredProcedure; mycommand.ExecuteNonQuery(); using (SqlDataReader rdr = mycommand.ExecuteReader()) { while (rdr.Read()) { int L_OfficeID = rdr.GetInt32(0); string L_OfficeName = rdr.GetString(1); string L_OfficeCode = rdr.GetString(2); XtraTabPage tab = new XtraTabPage() { Text = L_OfficeName }; Invoke((MethodInvoker)delegate { xtraTabControl1.TabPages.Add(tab); }); ImageListBoxControl listBox = new ImageListBoxControl() { Name = "lb_Employee_" + Convert.ToString(L_OfficeID) }; listBox.Dock = DockStyle.Fill; listBox.ItemHeight = 40; listBox.ImageList = photoList; listBox.MouseClick += new MouseEventHandler(listBox_MouseClick); var result = L_Employee.Where(a => a.OfficeID == L_OfficeID); foreach (var r in result) { string nVal = r.Name + " " + r.Surname + "\r\n" + r.Title; Invoke((MethodInvoker)delegate { listBox.Items.Add(new ImageListBoxItem(nVal, "", photoList.Images.IndexOfKey(r.EmployeeID.ToString()), r.EmployeeID)); }); } Invoke((MethodInvoker)delegate { tab.Controls.Add(listBox); }); } rdr.Close(); } } catch (Exception a) { MessageBox.Show(Convert.ToString(a)); } finally { mycon.Close(); } }
  20. evet hız sorunu çözüldü gibi   imageları bmp olarak içeri alınca  10 saniyede açıldı...
  21. Background worker ile çalışıyor ama yinede uzun sürüyor yüklemesi, acaba itemleri tek tek nasıl eklerim, yane hepsinin eklenmesini beklemesin ekleneni göstersin listede...   760 item 5 daikada yüklendi :)
  22. bu şekilde çalışıyor ancak, çok yavaş... Task.Factory.StartNew(() => {listBox.Items.Add(new ImageListBoxItem(nVal, "", photoList.Images.IndexOfKey(r.EmployeeID.ToString()), r.EmployeeID)); }); sistemde 776 kayıt bulunuyor !
  23. Aşağıdaki hatayı verdi ;
×
×
  • Create New...