pro_imaj Posted December 14, 2015 Posted December 14, 2015 Merhaba; UniDBGrid'de kullanıcının kolonlar sekmesinden hangi alanların dbgrid'de görünmesini istediğini seçtirdikten sonra, kullanıcı her ekranı açtığında kullanıcının seçtiği alanlar ve boyutlarıyla dbgridin gelmesini sağlamak istiyorum bunu nasıl sağlayabilirim. Teşekkürler. İyi çalışmalar. Quote
bugra Posted December 17, 2015 Posted December 17, 2015 Merhabalar; Yapmak istediğinizi database'de Alanadi, Boyutu ve kullanıcı bilgilerini saklayan bir tablo oluşturarak halledebilirsiniz. Projenize bir adet LoginForm ekleyin, bu formda bir kereliğine kullanıcı gösterilmesini istediği alanları ve boyutlarını seçsin. Seçili alanları database'e kaydedin. MainModule'de OnBeforeLogin eventi içinde database'inizi kontrol edin. Eğer kullanıcının alanları varsa Handle parametresini true yapın. DbGrid'in olduğu formun OnCreate eventine de şu kodu ekleyin for I :=0 to 'KullanıcınınDBTablosundakiAlansayısı'-1 do begin UniDBGrid1.Columns.add; UniDBGrid1.Columns[I].FieldName := 'DBTablosundaTutulanalan'; UniDBGrid1.Columns[I].Alignment := taRightJustify; UniDBGrid1.Columns[I].Width := 'AlanınBoyutu'; UniDBGrid1.Columns[I].Title.Caption := 'DBTablosundaTutulanalan'; UniDBGrid1.Columns[I].Title.Alignment := taRightJustify; end; Quote
pro_imaj Posted December 17, 2015 Author Posted December 17, 2015 Merhabalar; Yapmak istediğinizi database'de Alanadi, Boyutu ve kullanıcı bilgilerini saklayan bir tablo oluşturarak halledebilirsiniz. Projenize bir adet LoginForm ekleyin, bu formda bir kereliğine kullanıcı gösterilmesini istediği alanları ve boyutlarını seçsin. Seçili alanları database'e kaydedin. MainModule'de OnBeforeLogin eventi içinde database'inizi kontrol edin. Eğer kullanıcının alanları varsa Handle parametresini true yapın. DbGrid'in olduğu formun OnCreate eventine de şu kodu ekleyin for I :=0 to 'KullanıcınınDBTablosundakiAlansayısı'-1 do begin UniDBGrid1.Columns.add; UniDBGrid1.Columns[I].FieldName := 'DBTablosundaTutulanalan'; UniDBGrid1.Columns[I].Alignment := taRightJustify; UniDBGrid1.Columns[I].Width := 'AlanınBoyutu'; UniDBGrid1.Columns[I].Title.Caption := 'DBTablosundaTutulanalan'; UniDBGrid1.Columns[I].Title.Alignment := taRightJustify; end; Merhaba Cevap için teşekkür ederim. Tek anlamadığım nokta; "bu formda bir kereliğine kullanıcı gösterilmesini istediği alanları ve boyutlarını seçsin." Bunu nasıl seçtireceğiz? Quote
bugra Posted December 18, 2015 Posted December 18, 2015 Diyelim ki tablonuzda alan1, alan2, alan3 adında 3 alan var. Login forma her alan için bir adet UniCheckBox ve alanın size'ı için bir adet UniNumberEdit ekleyebilirsiniz. Kullanıcı gösterilmesini istediği alanları ve boyutları bu sayede seçtikten sonra bir UniButton'a tıklayarak seçili alanları tutan tabloya kaydedeceksiniz. Tablonuzdaki alanlar TabloId, AlanAdi, AlanBoyutu, KullaniciId gibi olabilir. MainModulundeki OnBeforeLogin eventinde bu tabloda Kullanıcının alan adı kaydetip kaydetmediğini kontrol edecek. Eğer kayıtlıysa event'teki Handled parametresi True olacak. Bu parametrenin true olması durumunda sayfa her yenilendiğinde LoginForm es geçilecektir. Bu sayede kullanıcı her seferinde gösterilecek alanı seçmek zorunda kalmaz. Tabi burada kullanıcının bir şekilde sisteme kayıtlı olması lazım. Eğer kullanıcıyı kaydetmek istemiyorsanız gösterilecek alanadları ve boyutları Cookie olarak da tutabilirsiniz. Ancak bu durumda kullanıcı farklı her browserda yeniden alanadi ve boyutu seçmek zorunda kalacağından pek efektif bir yöntem olmayacaktır. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.