istediğimiz kayıtları seçerek raporlama
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
istediğimiz kayıtları seçerek raporlama
arkadaşlar dbgridte listelediğim kayıtları raporlama alırken dbgritte sadece işaretlediğim kayıtları listelesin böyle bir seçenek koymak istiyorum. dbgrid satırlarına listeleme aldığımızda checkbox eklenebilirmi yada buna benzer bişey.. dbgrid`te listelemede mesala checkbox ını işaretlediğim kayıtlar raporlanacak. forumu taradım ama bunla ilgili tam kod örnek çözüm bulamadım yardımcı olursanız sevinirim.
tablona secili diye boolean bir alan ekle
tabloyu acarken bu alanı sıfırlarsın
sonra grid uzerinde cift clik yapınca aktif kaydı edit yapıp secili alanının tersini alırsın
rapor alırkende secili alana gore filtreleme yapabilirsin isini kolaylastırır
hatta gridin OnDrawColumn olayı ile secili alanının icerigine gore satırı renklendirirsin
checkbox kullanmana gerek yok bu sekilde
eger kullanmak istersen bir DbCheckBox ı for uzerine koy ve
Gridin OnDrawColumnCell olayını kullanarak grid uzeirne yapıstırabilirsin
tabloyu acarken bu alanı sıfırlarsın
sonra grid uzerinde cift clik yapınca aktif kaydı edit yapıp secili alanının tersini alırsın
Kod: Tümünü seç
tablo1.edit;
tablo1.FieldByName('secili').AsBoolean:=not tablo1.FieldByName('secili').AsBoolean;
tablo1.post;
hatta gridin OnDrawColumn olayı ile secili alanının icerigine gore satırı renklendirirsin
checkbox kullanmana gerek yok bu sekilde
eger kullanmak istersen bir DbCheckBox ı for uzerine koy ve
Gridin OnDrawColumnCell olayını kullanarak grid uzeirne yapıstırabilirsin
ÜŞENME,ERTELEME,VAZGEÇME
re
teşekkürler sağolun.
bu arada tabloya secili diye boolean bir alan nasıl eklenir.sql kullanıyoruz.. ¿
boolean nedemek olduğunu araştırdım : pascal'da 1 byte yer kaplayan degi$ken tipi.. sadece true veya false degerleri alabilirmiş.
biz bu terimlere yabancıyız daha çok örnek kodlarla bi işi öğrenmeye çalışıyoruz.birazda hazırcılık oluyor ..ama kodların ne olduğunu ezberleyerek ne işe yaradığını buluyoruz galiba öğrenicez bu işi
bu arada tabloya secili diye boolean bir alan nasıl eklenir.sql kullanıyoruz.. ¿
boolean nedemek olduğunu araştırdım : pascal'da 1 byte yer kaplayan degi$ken tipi.. sadece true veya false degerleri alabilirmiş.
biz bu terimlere yabancıyız daha çok örnek kodlarla bi işi öğrenmeye çalışıyoruz.birazda hazırcılık oluyor ..ama kodların ne olduğunu ezberleyerek ne işe yaradığını buluyoruz galiba öğrenicez bu işi

re
tablo1.edit;
tablo1.FieldByName('secili').AsBoolean:=not tablo1.FieldByName('secili').AsBoolean;
tablo1.post;
bu kod olmadı
tablo1 i nasıl edit etsin zaten sql kullanıyoruz bu kodu ozaman
dm.Query1.edit;
dm.Query1.FieldByName('secili').AsBoolean:=not dm.Query1.FieldByName('secili').AsBoolean;
dm.Query1.post;
şeklinde değiştirmem lazım buda hata veriyor.
en eyisi checkbox yöntemi ile ilgili kod bulmak yardımlarınız için çok teşekkürler..
tablo1.FieldByName('secili').AsBoolean:=not tablo1.FieldByName('secili').AsBoolean;
tablo1.post;
bu kod olmadı

tablo1 i nasıl edit etsin zaten sql kullanıyoruz bu kodu ozaman
dm.Query1.edit;
dm.Query1.FieldByName('secili').AsBoolean:=not dm.Query1.FieldByName('secili').AsBoolean;
dm.Query1.post;
şeklinde değiştirmem lazım buda hata veriyor.

en eyisi checkbox yöntemi ile ilgili kod bulmak yardımlarınız için çok teşekkürler..
eğer karışık bir sorgu / query kullanmıyorsan (order by vs yoksa) Query nin RequestLive özelliğini True yaparak yapabilirsin.
Ama bu sorunun tam cevabı ise bookmarklar kullanmaktır. Bunun için Query1.GetBookmark ın helpine bakman lazım.
Helpten yapıştırdığım aşağıdaki örnekte seçili olanları bir string te toplayıp listbox a ekliyor. sen de benzer bir şey yapacaksın.
Ama bu sorunun tam cevabı ise bookmarklar kullanmaktır. Bunun için Query1.GetBookmark ın helpine bakman lazım.
Helpten yapıştırdığım aşağıdaki örnekte seçili olanları bir string te toplayıp listbox a ekliyor. sen de benzer bir şey yapacaksın.
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var
i, j: Integer;
s: string;
begin
if DBGrid1.SelectedRows.Count>0 then
with DBGrid1.DataSource.DataSet do
for i:=0 to DBGrid1.SelectedRows.Count-1 do
begin
GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i]));
for j := 0 to FieldCount-1 do
begin
if (j>0) then s:=s+', ';
s:=s+Fields[j].AsString;
end;
Listbox1.Items.Add(s);
s:= '';
end;
end;
re
çok teşekkürler..ListBox ta toplayıp o şekilde yaptım.. Bu kod işimi gördü tekrar teşekkürler. 

Kod: Tümünü seç
procedure TFrmsecmen.BtnSbkEkleClick(Sender: TObject);
var
i, j: Integer;
s: string;
begin
if DBGrid14.SelectedRows.Count>0 then
with DBGrid14.DataSource.DataSet do
for i:=0 to DBGrid14.SelectedRows.Count-1 do
begin
GotoBookmark(pointer(DBGrid14.SelectedRows.Items[i]));
for j := 0 to FieldCount-1 do
begin
if (j>0) then s:=s+', ';
s:=s+Fields[j].AsString;
end;
Listbox1.Items.Add(s);
s:= '';
end;
end;
end.
Merhaba
S.A
Öncelikle Herkese Kolay Gelsin..
EdaNur Arkadasım Ben Bu İşlemi Şu Şekilde Yapıyorum;
Diyelim ki Adres Kayıtlarımız Var..Farklı Bir isimle aynı Tablodan bir tane daha olusturuyorum..DbGrid'de kayıtın ustune çift tıklamada veya herhangi bir klavye tusuna basarak yeni olusturdugum tabloya bu kayıtı atıyorum..Ve Yazdırma işlemlerini o tablo uzerinden yapıyorum..İşlemler bitince tabloda ki butun verileri siliyorum..
Umarım anlatabilmişimdir. Kolay Gelsin.
Öncelikle Herkese Kolay Gelsin..
EdaNur Arkadasım Ben Bu İşlemi Şu Şekilde Yapıyorum;
Diyelim ki Adres Kayıtlarımız Var..Farklı Bir isimle aynı Tablodan bir tane daha olusturuyorum..DbGrid'de kayıtın ustune çift tıklamada veya herhangi bir klavye tusuna basarak yeni olusturdugum tabloya bu kayıtı atıyorum..Ve Yazdırma işlemlerini o tablo uzerinden yapıyorum..İşlemler bitince tabloda ki butun verileri siliyorum..
Umarım anlatabilmişimdir. Kolay Gelsin.
re.
peki DbGrid'de kayıtın ustune çift tıklamada veya herhangi bir klavye tusuna basarak yeni olusturdugun tabloya bu kayıtı hangi kodla atıyor..
ben bu işin içinden çıkamadım birtürlü..herşey tamam burda takıldık...kafayı yemek üzereyim.
Sayın @rsimsek raporlama aracı olarak QR kullanıyorum
anlatımlarınız çok prof arkadaşlar biz zaten acemiyiz..
mesala örnek olarak şöyle olabilir..
///mesela kod şu
procedure TForm1.FormCreate(Sender: TObject);
begin
end;
end.
//sonraki işlem
DBgrid in DblClick ine bunu yazın
///sonraki işlem vs vs vs .. gibi olabilir ..
yardımlarınız için çok sağolun
ben bu işin içinden çıkamadım birtürlü..herşey tamam burda takıldık...kafayı yemek üzereyim.

Sayın @rsimsek raporlama aracı olarak QR kullanıyorum
anlatımlarınız çok prof arkadaşlar biz zaten acemiyiz..
mesala örnek olarak şöyle olabilir..
///mesela kod şu
procedure TForm1.FormCreate(Sender: TObject);
begin
end;
end.
//sonraki işlem
DBgrid in DblClick ine bunu yazın
///sonraki işlem vs vs vs .. gibi olabilir ..
yardımlarınız için çok sağolun