dbgrid
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 101
- Kayıt: 13 Şub 2015 09:32
dbgrid
merhaba arkadaşlar
veritabanında yazdığımız başlıklarda türkçe karakter kullanılmıyor boşluk konulmuyor, veri tabanından dbgride aktardığımız zaman aynen veritabanındakini aktarıyor, ben bu veritabanındaki bilgileri dbgride aktardığım zaman boşluk da, türkçe karakterde, başlık kısmının rengini de değiştirmek istiyorum acaba bu mümkünmü.
not: veritabanına bilgi girişini programda elden yapıyoruz
cevaplarsanız sevinirim
veritabanında yazdığımız başlıklarda türkçe karakter kullanılmıyor boşluk konulmuyor, veri tabanından dbgride aktardığımız zaman aynen veritabanındakini aktarıyor, ben bu veritabanındaki bilgileri dbgride aktardığım zaman boşluk da, türkçe karakterde, başlık kısmının rengini de değiştirmek istiyorum acaba bu mümkünmü.
not: veritabanına bilgi girişini programda elden yapıyoruz
cevaplarsanız sevinirim
Re: dbgrid
SELECT satırında AS ile alias verebilirsiniz.
şeklinde başlıkları halledersin.
Bir diğer türlüsü ise yine klasik başlıkları alır, DBGrid üzerinde canvas işlemleri yaparak üstlerini yeniden boyarsın.
Aşağıdaki ekran kopyasının projesi kaynak kodları ve veritabanı ile birlikte forumda bu linke de inceleyebilirsin

Kod: Tümünü seç
Select ad as 'Adı', soyad as 'Soyadı', tarih as 'Doğum Tarihi' FROM PERSONEL
Bir diğer türlüsü ise yine klasik başlıkları alır, DBGrid üzerinde canvas işlemleri yaparak üstlerini yeniden boyarsın.
Aşağıdaki ekran kopyasının projesi kaynak kodları ve veritabanı ile birlikte forumda bu linke de inceleyebilirsin

-
- Üye
- Mesajlar: 101
- Kayıt: 13 Şub 2015 09:32
Re: dbgrid
mrmarman abi aşağıdaki kodları yazdığım zaman adoquery1: field 'A_BelgeAdi' not found diye hata alıyorum.
aynı zamanda dbgrid i kontrol edemiyorum. hani şu emek verdiğin yaptığın vardı ya
belgeleri veritabanına aktarma olan onda dbgridte seçim yaptığım zaman yukardaki hatayı alıyorum ve belge değişmiyor
aşağıdaki kodları yazmazsam öyle bir hata almıyorum
nedeni nedir abi sence
var
i:integer;
begin
with adoquery1 do
begin
sql.Clear;
sql.Add('select A_DosyaNo as [Dosya No], A_SicilNo as [Sicil No],') ;
sql.Add('A_AdiSoyadi as [Adı Soyadı], A_TcKimlik as [Tc Kimlik No], A_Telefon as [Telefon], ');
sql.Add('A_isyeriMevkii as [İşyeri Mevkii], A_isyeriNo as [İşyeri No], A_Metrekaresi as [Metrekaresi], ');
sql.Add('A_KiraBedeli as [Kira Bedeli], A_BaslaTar as [Başlangıç Tarihi], A_BitisTar as [Bitiş Tarihi]') ;
sql.Add('from ArsivTablo');
end;
AdoQuery1.Active := True;
for i := 0 to DBGrid1.Columns.Count - 1 do
if DBGrid1.Columns.Width > 200 then DBGrid1.Columns.Width := 200;
end;
aynı zamanda dbgrid i kontrol edemiyorum. hani şu emek verdiğin yaptığın vardı ya

aşağıdaki kodları yazmazsam öyle bir hata almıyorum
nedeni nedir abi sence
var
i:integer;
begin
with adoquery1 do
begin
sql.Clear;
sql.Add('select A_DosyaNo as [Dosya No], A_SicilNo as [Sicil No],') ;
sql.Add('A_AdiSoyadi as [Adı Soyadı], A_TcKimlik as [Tc Kimlik No], A_Telefon as [Telefon], ');
sql.Add('A_isyeriMevkii as [İşyeri Mevkii], A_isyeriNo as [İşyeri No], A_Metrekaresi as [Metrekaresi], ');
sql.Add('A_KiraBedeli as [Kira Bedeli], A_BaslaTar as [Başlangıç Tarihi], A_BitisTar as [Bitiş Tarihi]') ;
sql.Add('from ArsivTablo');
end;
AdoQuery1.Active := True;
for i := 0 to DBGrid1.Columns.Count - 1 do
if DBGrid1.Columns.Width > 200 then DBGrid1.Columns.Width := 200;
end;
Re: dbgrid
SELECT içerisinde A_BelgeAdi olmadığından DataSet'inde dolayısıyla DBGrid'inde de var olmadığından FIELD not found hatası alman doğal değil mi ? Soruyu yanlış mı anladım ?!
-
- Üye
- Mesajlar: 101
- Kayıt: 13 Şub 2015 09:32
Re: dbgrid
abi select in içersine A_BelgeAdi ister olsun ister olmasın aynı hatayı alıyorum
Re: dbgrid
Bu hata nerede ne yapınca veriyor ? AdoQuery1'i aktif edince mi ? Bir butona basınca mı ? Filtre için bir şeyler yazarken mi ?
AfterScroll olayında ise şöyle bir kontrol vardı onu kaldırdın mı ? Hani tabloda hiç kayıt yoksa bırakıp o procedure terk etsin diye...
Ayrıca aynı ADOQuery'i farklı amaçlar için kullanıyorsan bundan vazgeçmelisin. Aramak için farklı, ekranda göstermek için farklı ADOQuery'ler kullan. Belki de bir arama yaparken bu field olmadığından tetiklenen event bunu sana hata olarak geri döndürüyordur
AfterScroll olayında ise şöyle bir kontrol vardı onu kaldırdın mı ? Hani tabloda hiç kayıt yoksa bırakıp o procedure terk etsin diye...
Kod: Tümünü seç
if DataSet.RecordCount = 0 then
begin
Image1.Picture.Graphic := Nil;
Exit;
end;
-
- Üye
- Mesajlar: 101
- Kayıt: 13 Şub 2015 09:32
Re: dbgrid
abi yaptığım çalışmayı yükleyeyim sen bi bak istersen hataya
http://s4.dosya.tc/server3/xgfohu/program.rar.html
http://s4.dosya.tc/server3/xgfohu/program.rar.html
-
- Üye
- Mesajlar: 101
- Kayıt: 13 Şub 2015 09:32
Re: dbgrid
Form'un OnShow olay yöneticisinde ADOQuery1'in içinde yazdığınız sorgunuzda ilgili kolon bulunmuyor. ADOQuery'nizi açtığınızda otomatikman OnScroll'a dallanılacak dolayısı ile OnScroll içindeki kodunuzda hata ile karşılaşılacaktır. Ayrıca OnScroll olayını mümkün mertebe kullanmamanızı öneririm, beklediğinizden çok daha fazla sayıda çağrıldığını gözlemleyebilirsiniz. Hele hele DevExpress gibi firmaların gridlerini kullanıyorsanız. Gerçi kodunuzda eleştirilecek çok husus var ama neyse onlar da size kalmış.
Re: dbgrid
Koddaki sorun ALIAS olayında...
demişsin ya, A_BelgeAdi ve A_BelgeTip artık o aradığın isimdeki field olmaktan farklılaşmışlar ondan.. Ya bu yeni isimleriyle arayacaksın ya da....
Önerim şu olacak : Aynı field adından bir SELECT altında dilediğin kadar koyabilirsin, buna bir engel yok. Sen olmasını istediğin isimlerde aşağıdaki gibi yine düzenle ve son iki field olarak eklediğim orjinal isimleri de DBGrid'den column width değerlerini 1 falan yapıp gizle.
Buradaki örnekte aşağıdaki gibi yeniden boyutlandırdığında bu iki alan dikkate alınacak ancak DBGRID ekranda görünmeyecektir.
Kod: Tümünü seç
with adoquery1 do
begin
sql.Clear;
sql.Add('select A_DosyaNo as [Dosya No], A_SicilNo as [Sicil No],') ;
sql.Add('A_AdiSoyadi as [Adı Soyadı], A_TcKimlik as [Tc Kimlik No], A_Telefon as [Telefon], ');
sql.Add('A_isyeriMevkii as [İşyeri Mevkii], A_isyeriNo as [İşyeri No], A_Metrekaresi as [Metrekaresi], ');
sql.Add('A_KiraBedeli as [Kira Bedeli], A_BaslaTar as [Başlangıç Tarihi], A_BitisTar as [Bitiş Tarihi],') ;
sql.Add('A_BelgeAdi as [Belge Adı], A_BelgeTip as [Belge Tip]');
sql.Add('from ArsivTablo');
end;
Önerim şu olacak : Aynı field adından bir SELECT altında dilediğin kadar koyabilirsin, buna bir engel yok. Sen olmasını istediğin isimlerde aşağıdaki gibi yine düzenle ve son iki field olarak eklediğim orjinal isimleri de DBGrid'den column width değerlerini 1 falan yapıp gizle.
Kod: Tümünü seç
with adoquery1 do
begin
sql.Clear;
sql.Add('select A_DosyaNo as [Dosya No], A_SicilNo as [Sicil No],') ;
sql.Add('A_AdiSoyadi as [Adı Soyadı], A_TcKimlik as [Tc Kimlik No], A_Telefon as [Telefon], ');
sql.Add('A_isyeriMevkii as [İşyeri Mevkii], A_isyeriNo as [İşyeri No], A_Metrekaresi as [Metrekaresi], ');
sql.Add('A_KiraBedeli as [Kira Bedeli], A_BaslaTar as [Başlangıç Tarihi], A_BitisTar as [Bitiş Tarihi],') ;
sql.Add('A_BelgeAdi as [Belge Adı], A_BelgeTip as [Belge Tip], A_BelgeTip, A_BelgeAdi');
sql.Add('from ArsivTablo');
end;
Kod: Tümünü seç
DBgrid1.Columns[13].Width := 0;
DBgrid1.Columns[14].Width := 0;
-
- Üye
- Mesajlar: 101
- Kayıt: 13 Şub 2015 09:32
Re: dbgrid
sql.Add('A_BelgeAdi as [Belge Adı], A_BelgeTip as [Belge Tip], A_BelgeTip, A_BelgeAdi');
bu şekil yazdım bu kısmı hata sorun ortadan kalktı altınada
yazdığın
DBgrid1.Columns[13].Width := 0;
DBgrid1.Columns[14].Width := 0;
ekledim
list index out of bounds (13) şeklinde hata verdi
bu her neyse gerek yok bence yukardakini yazınca sorun kayboldu
bu şekil yazdım bu kısmı hata sorun ortadan kalktı altınada
yazdığın
DBgrid1.Columns[13].Width := 0;
DBgrid1.Columns[14].Width := 0;
ekledim
list index out of bounds (13) şeklinde hata verdi
bu her neyse gerek yok bence yukardakini yazınca sorun kayboldu

Re: dbgrid
Hocam DBGrid'i açıp Column say. kaçıncı ise onun indexini koy gitsin. Örnek olsun diye verdim. Senin için eklediğim ikinci işlemde 13 ve 14 idi. sen kendine göre bir zahmet güncelleyiver.
-
- Üye
- Mesajlar: 101
- Kayıt: 13 Şub 2015 09:32
Re: dbgrid
abi saydım 12,13,14,15 bu dördünü
yazınca list intex out of bounds (12), (13),(14), (15)şeklinde hata almaktayım
yazınca list intex out of bounds (12), (13),(14), (15)şeklinde hata almaktayım
Re: dbgrid
Geç oldu kendin kontrol et nerede ne yaptığını ? Aşağıdakinden farklı ne var senin OnShow olayında ?
Kod: Tümünü seç
procedure TForm1.FormShow(Sender: TObject);
var
i:integer;
begin
with adoquery1 do
begin
sql.Clear;
sql.Add('select A_DosyaNo as [Dosya No], A_SicilNo as [Sicil No],') ;
sql.Add('A_AdiSoyadi as [Adı Soyadı], A_TcKimlik as [Tc Kimlik No], A_Telefon as [Telefon], ');
sql.Add('A_isyeriMevkii as [İşyeri Mevkii], A_isyeriNo as [İşyeri No], A_Metrekaresi as [Metrekaresi], ');
sql.Add('A_KiraBedeli as [Kira Bedeli], A_BaslaTar as [Başlangıç Tarihi], A_BitisTar as [Bitiş Tarihi],') ;
sql.Add('A_BelgeAdi as [Belge Adı], A_BelgeTip as [Belge Tip], A_BelgeTip, A_BelgeAdi');
sql.Add('from ArsivTablo');
end;
AdoQuery1.Active := True;
for i := 0 to DBGrid1.Columns.Count - 1 do
if DBGrid1.Columns[i].Width > 200 then DBGrid1.Columns[i].Width := 200;
DBgrid1.Columns[13].Width := 0;
DBgrid1.Columns[14].Width := 0;
image1.Visible:=false;
end;