DBGridde Boş Kolonları kaldırsın

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ufb1453
Üye
Mesajlar: 52
Kayıt: 14 Oca 2014 09:41
İletişim:

DBGridde Boş Kolonları kaldırsın

Mesaj gönderen ufb1453 »

Merhaba,
Aşağıda belirtilen kodlarda checkbox1 ve checkbox2 ile yaptırılan kontrole göre dbgride adoqueryde belirtilen kayıt gelmekte her iki CBox işaretli olduğunda sorun yok ancak Cbox2 işaretli ise DBgridde Colon 1 i boş olarak gösteriyor, bu şekilde 10 tane Cbox var ve 10 adet gridde kolon var örneğin ben 1,2,5. cboxları işaretlediğimde 3 kolon görünsün ve 1, 3, 5 de belirtilen fieldler listelensin yardımcı olurmusunuz.
saygılarımla,

Kod: Tümünü seç

procedure TForm29.Button1Click(Sender: TObject);
begin
if CBSeriNo.Checked = True then
  begin
   DBGrid1.Columns[0].Title.caption :='Seri No' ;
   dbgrid1.Columns[0].FieldName:='SERI NO' ;
  end;
 if CBTip.Checked = True then
  begin
   DBGrid1.Columns[1].Title.caption :='Malzeme Tipi' ;
   dbgrid1.Columns[1].FieldName:='MALZEME TİPİ' ;
  end;

  end;
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: DBGridde Boş Kolonları kaldırsın

Mesaj gönderen ertank »

Merhaba,

Bütüm kullandığınız TDBGrid bileşenlerine dizayn zamanında kolon tanımlaması yapmışsınız anladığım kadarıyla.

Dizayn zamanında kolon tanımı yapmaz iseniz sadece TAdoQuery içindeki alanlar otomatik olarak gösterilecektir. Kolon başlıkları düzgün olmuyor diyor iseniz SQL içine kolon başlıklarında gözükmesini istediğiniz şekilde SELECT cümlesi yazmanız mümkün.
ufb1453
Üye
Mesajlar: 52
Kayıt: 14 Oca 2014 09:41
İletişim:

Re: DBGridde Boş Kolonları kaldırsın

Mesaj gönderen ufb1453 »

ben burada işi kullanıcıya bırakmak istiyorum kullanıcı sql tablosunda bulunan 10 kolondan hangisini görmek istiyorsa o alanlar listelensin, sql cümlemde 10 adet kolon mevcut;

Kod: Tümünü seç

SELECT malzemekimlereverildi.serino AS [SERI NO],Tip.Tipi AS [MALZEME TİPİ], Birim.BirimAdi AS [HANGİ BİRİME VERİLDİ]
 ,Kullanicilar.Kullanici_Adi AS [KULLANICI ADI],Marka.Marka AS MARKA
 ,Model.Model AS MODEL, İsletimSistemi.Sistem_Adi AS [İŞLETİM SİSTEMİ], MSOfis.MSOfis_Surum AS [OFİS SÜRÜMÜ]
 ,malzemekimlereverildi.islemtarihi AS [İŞLEM TARİHİ], malzemekimlereverildi.hostname AS [DEĞİŞİKLİĞİ GERÇEKLEŞTİREN]
 
  FROM	
				  dbo.Firma																						INNER JOIN
                  dbo.malzemekimlereverildi	ON	dbo.Firma.FirmaID = dbo.malzemekimlereverildi.Firma				LEFT JOIN
                  dbo.Fatura				ON	dbo.malzemekimlereverildi.Fatura = dbo.Fatura.FaturaID			LEFT JOIN
                  dbo.Model					ON	dbo.malzemekimlereverildi.Model = dbo.Model.ModelID				LEFT JOIN
                  dbo.Marka					ON	dbo.malzemekimlereverildi.Marka = dbo.Marka.MarkaID				LEFT JOIN
                  Dbo.Birim					ON	Birim.BirimID = malzemekimlereverildi.Birim						LEFT JOIN
				  DBO.Kullanicilar			ON	Kullanicilar.KullaniciID = malzemekimlereverildi.kullaniciID	LEFT JOIN
				  DBO.İsletimSistemi		ON	dbo.İsletimSistemi.sistemID = malzemekimlereverildi.Sistem		LEFT JOIN
				  DBO.MSOfis				ON	MSOfis.MSOfisID = malzemekimlereverildi.MSofis					LEFT JOIN
				  DBO.Tip					ON	Tip.TipID = malzemekimlereverildi.Tip							INNER JOIN
				  malzeme					ON	malzeme.Seri_No = malzemekimlereverildi.serino
			group by malzemekimlereverildi.serino  ,Tip.Tipi, Birim.BirimAdi , Kullanicilar.Kullanici_Adi ,Marka.Marka 
 ,Model.Model, İsletimSistemi.Sistem_Adi,MSOfis.MSOfis_Surum,malzemekimlereverildi.islemtarihi , malzemekimlereverildi.hostname
 

			UNION
	
 SELECT distinct m.Seri_No ,'',m.BirimID,k.Kullanici_Adi,'','','','',null,'şuanki kullanıcı' FROM  malzeme m	INNER JOIN malzemekimlereverildi mkv on
 mkv.serino=m.Seri_No left join kullanicilar k on
 m.kullaniciID=k.KullaniciID
     order by malzemekimlereverildi.serino desc 
grid de bu şekilde geliyor, tanımlamalar butona basıldığında aktif oluyor, ancak istediğim SQL de göründüğü gibi tüm sütunlar gelmesin,kullanıcılar Tcheckbox lar ile seçtiği kolonlar görünsün,
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: DBGridde Boş Kolonları kaldırsın

Mesaj gönderen ertank »

İlk cevabımda belirttiğim gibi TDBGrid içine tasarım zamanında kolon eklemedi iseniz, aşağıdaki şekilde istediğiniz alanın gözükmesini engelleyebilirsiniz. Bu kod tabi TAdoQuery açık iken çalıştırılmalı.

Kod: Tümünü seç

TAdoQuery.FieldByName('AlanAdi').Visible := False;
ufb1453
Üye
Mesajlar: 52
Kayıt: 14 Oca 2014 09:41
İletişim:

Re: DBGridde Boş Kolonları kaldırsın

Mesaj gönderen ufb1453 »

Allah razı olsun, verdiğin bilgi için sorunum çözüldü,
Cevapla