Sevgili Arkadaşlar,
aşağıdaki kodla;
procedure TForm1.dxButton8Click(Sender: TObject);
var
v,sayfa:variant;
i,d:integer;
r:variant;
begin
v:=createoleobject('excel.application');
v.workbooks.add;
sayfa:=v.workbooks[1].worksheets[1];
r:=v.activeworkbook.worksheets[1].cells[1];
i:=0;
d:=0;
while Not DBISAMTable1.eof do
begin
i:=i+1;
d:=d+1;
r.cells[1+d,i]:=DBISAMTable1.FieldByName('sicil').AsString;
r.cells[1+d,i+1]:=DBISAMTable1.FieldByName('memur soyadi').AsString;
r.cells[1+d,i+2]:=DBISAMTable1.FieldByName('gorevi').AsString;
DBISAMTable1.Next;
i:=0;
end;
v.visible:=true;//Exceli acip verileri
end;
bu kodlarla sicil,memur soyadi ve gorevi kayıtlarını sorunsuz olarak excel'e gönderiyorum ancak aynı şahısa ait birden fazla kayıt varsa bunlarıda excele yazıyor yani aynı isimden ve sicilden 20 kayıt varsa 20 sini de alt alta yazıyor, sizden ricam bunları eleyip her kişiden ne kadar kayıt olursa olsun bir satıra sadece bir isim yazsın...
500 ali memur
750 hasan hizmetli
815 ayşe memur
(hepsinden 10-15 kayıt var ancak 1 er isim gözükmesini istiyorum)
şeklinde yazması..bilmem anlatabildimmi? bunun bir yolu yöntemi varmı veya daha değişik kolay bir şekilde nasıl halledebilirim, değerli arkadaşlarımın ve uzman hocalarımın yardımına ihtiyacım var. (grid olarakda RXDBgrid kullanıyorum). Herkezin Kurban Bayramını Kutlar saygılar sunarım....
excel'e gönderiyorum ancak!!!
Tablonun tamanını degil de bir Query calistirip bunun sonucunu Excel'e atma isi yaparsaniz kolayca hollolur. Calistirmaniz gereken Query'nin SQL'i de kabaca su sekilde olmali..
Kod: Tümünü seç
Select SICIL, MEMUR_SOYADI, GOREVI, Count(*) as ADET
from TABLO
group by SICIL, MEMUR_SOYADI, GOREVI
Ad ve Soyad'a if ile koşul koy döngü arasına Aynı kayıt varsa o kayıtı atlasın.
Kolay Gelsin...
Kolay Gelsin...
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Merhaba;
platipinna Özel Mesajında
Her neyse sorunuza gelelim.
Kodlama Bu şekilde olması lazım kontrol etmedim ama mantık bu.
Kolay Gelsin...
platipinna Özel Mesajında
Öncelikle şunu belirtmek istiyorum Arkadaşlar Delphi ile konuları lütfen özel mesaj çekmeyiniz. Bu konu için forum kurallarına uymanızı rica ediyorum. 1 kişinin okuyup cevap yazması ile 850 kişinin okuyup cevap yazması çok farklı.
sayın hocam çok özür diliyorum, dediğiniz şekilde yaptım ama galiba beceremedim. mümkünse benim gönderdiğim koda göre if then koşuluna göre düzenleyim bana göndermeniz mümkünmü? yardımınız için şimdiden çok teşekkür ederim..
Her neyse sorunuza gelelim.
Kod: Tümünü seç
procedure TForm1.dxButton8Click(Sender: TObject);
var
v,sayfa:variant;
i,d:integer;
r:variant;
Str:String;
begin
v:=createoleobject('excel.application');
v.workbooks.add;
sayfa:=v.workbooks[1].worksheets[1];
r:=v.activeworkbook.worksheets[1].cells[1];
i:=0;
d:=0;
Str:='';
while Not DBISAMTable1.eof do
begin
i:=i+1;
d:=d+1;
if Str <> DBISAMTable1.FieldByName('sicil').AsString Then
Begin
Str := DBISAMTable1.FieldByName('sicil').AsString;
r.cells[1+d,i]:=DBISAMTable1.FieldByName('sicil').AsString;
r.cells[1+d,i+1]:=DBISAMTable1.FieldByName('memur soyadi').AsString;
r.cells[1+d,i+2]:=DBISAMTable1.FieldByName('gorevi').AsString;
DBISAMTable1.Next;
i:=0;
End
Else
DBISAMTable1.Next;
end;
v.visible:=true;//Exceli acip verileri
end;
Kolay Gelsin...
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Merhaba,
arkadaş isyan etmiş ancak bu konuda haksız olduğunu sebepleriyle kendisine de yazdım. Burda da sebeplerini size de izah etmenin uygun olacağı kanaatine vardım.
1. Forum Kurallarını lütfen okuyun. Bunlar sadece şunu yapacaksın, bunu yapacaksın şeklinde kural manzumesi değil. 5 sene boyunca oluşan bir rehber. Bunu okumadım, bilmiyordum bahanesini de kabul etmiyorum. Bir 5 dakikanızı ayırıp okuyun.
2. Arkadaşın sorusundan tam 13 dk. sonra Fahrettin abi mesaj yazmış, hemen 2 dk. sonra Hüseyin hocam mesaj yazmış. Bu kadar kısa sürede cevap verilmiş. Arkadaş derdini foruma yazsa, yine eminim ki kısa sürede ayrıntılı cevap gelecek ve de gelmiş bile.
Özel mesajla ilgili hassasiyetimizin sebebini birçok defa izah ettim. Bir daha anlatmaya gerek duymuyorum.
3. Daha önce çok daha toleranslı davranırken, sertleşmemin bir nedeni de kuralların çok sayıda kişi tarafından ihlal edilmesi. Kusura bakmayın arkadaşlar ama biz size yardımcı olmak için saatlerimizi harcarken, siz de bir seferliğine 5 dakikanızı ayırın. Mesaj yazarken iki dakikanızı ayırıp, biraz özen gösterin.
İnanın şirketteki bilgisayarın B'sini yeni öğrenen insanlar bile artık hatayı not etmeden bizi aramıyorlar. Biraz daha dikkat!
İyi günler.
arkadaş isyan etmiş ancak bu konuda haksız olduğunu sebepleriyle kendisine de yazdım. Burda da sebeplerini size de izah etmenin uygun olacağı kanaatine vardım.
1. Forum Kurallarını lütfen okuyun. Bunlar sadece şunu yapacaksın, bunu yapacaksın şeklinde kural manzumesi değil. 5 sene boyunca oluşan bir rehber. Bunu okumadım, bilmiyordum bahanesini de kabul etmiyorum. Bir 5 dakikanızı ayırıp okuyun.
2. Arkadaşın sorusundan tam 13 dk. sonra Fahrettin abi mesaj yazmış, hemen 2 dk. sonra Hüseyin hocam mesaj yazmış. Bu kadar kısa sürede cevap verilmiş. Arkadaş derdini foruma yazsa, yine eminim ki kısa sürede ayrıntılı cevap gelecek ve de gelmiş bile.
Özel mesajla ilgili hassasiyetimizin sebebini birçok defa izah ettim. Bir daha anlatmaya gerek duymuyorum.
3. Daha önce çok daha toleranslı davranırken, sertleşmemin bir nedeni de kuralların çok sayıda kişi tarafından ihlal edilmesi. Kusura bakmayın arkadaşlar ama biz size yardımcı olmak için saatlerimizi harcarken, siz de bir seferliğine 5 dakikanızı ayırın. Mesaj yazarken iki dakikanızı ayırıp, biraz özen gösterin.
İnanın şirketteki bilgisayarın B'sini yeni öğrenen insanlar bile artık hatayı not etmeden bizi aramıyorlar. Biraz daha dikkat!
İyi günler.
Selam.
- Özel mesaj konusunda aynı fikirleri paylaştığımı bildiriyor, @husonet'in verdiği örnekte bir detay eklemek istiyorum.
- DBISAMTable1'inizin sıralama kriteri sicil'e göre olmalı. Eğer bu alan dışında bir sıralama (isim, soyad vs.) sözkonusu olursa yazılan procedure doğru çalışmama ihtimali doğacaktır.
- Diğer yandan @fahrettin'in söylediklerini deneyin derim. Bu sayede sonuçlarınızı çabucak elde edersiniz.
- Özel mesaj konusunda aynı fikirleri paylaştığımı bildiriyor, @husonet'in verdiği örnekte bir detay eklemek istiyorum.
- DBISAMTable1'inizin sıralama kriteri sicil'e göre olmalı. Eğer bu alan dışında bir sıralama (isim, soyad vs.) sözkonusu olursa yazılan procedure doğru çalışmama ihtimali doğacaktır.

- Diğer yandan @fahrettin'in söylediklerini deneyin derim. Bu sayede sonuçlarınızı çabucak elde edersiniz.