Jump to content

UniDBGrid Seçili Olan Kolonlar Listesine Nasıl Ulaşırım.


pro_imaj

Recommended Posts

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.

Link to comment
Share on other sites

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;
Link to comment
Share on other sites

 

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?

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...