Şarta göre dbgride bilgileri koyma ama durum biraz farklı
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Şarta göre dbgride bilgileri koyma ama durum biraz farklı
Şimdi Bir tane Master ona bağlı bir detail ve onada bağlı 3. detail tablom var...Mssql database...Şimdi Şöle verileri biraz açıklayım Ben mssql ye bir şey yazmayacağım sadece mssql de olan verileri master detail bağladım...Şöyleki master tablosu sipariş tablosu buna bağlı iş emri tablosu ve iş emri tablosunada bağlı üretim sonu kaydı tablosu var...Şimdi Sipariş tablosunda yani 1. tablodaki siparişlerden arama yaptığı zaman sipariş ve içindeki stok kodlarını dbgridin bir tanesine döküyor...Bu stoklara da açılmış olan tüm iş emirlerini 2. dbgride döküyor...3. ise bu iş emirlerine göre yapılan üretim sonu kaydı miktarlarını döküyor...İşte şöyle bir durum var kullanıcı bu üretim sonu kaydı miktarlarına göre sevkiyat yapacak ve benim firebird ile beraber yaptığım database kayıt yapacak ama her defasında bu üretim sonu kaydı miktarları hangi iş emirlerine göre açıldıysa hepsi listeye geliyor...Benim istediğim Şu...Yapamadım uğraşıyorum olmuyor beceremedim...Üretim sonu kaydı miktarı bilgilerinin her biri için bir tane üretson_no diye bir no var ben bunu firebird'de kayıt ediyorum...İstediğim firebirde kayıt edilmiş olan üretson_no larının bu 3. dbgrid olan üretim sonu kaydı miktarındaki dbgridde tekrar listelenmemesi...Yani kaydı girilen üretson_no ların dbgridde olmaması....Lütfen Yardım...Teşekkürler
kimse anlamadı yazdığımı herhalde
Sadece şunu söyleyim iki tane database var birisi mssql birisi firebird ben mssql den aldığım bilgileri firebirde düzenli ve farklı bir şekilde bilgilere dönüştürüp kaydedeceğim. Sorun şu....
Detail olarak listenen tabloya diğer master ve bir üzerindeki detail tablolarda işlem oldukça bu 3. dbgride düşüyor ve kullanıcı buradan veriyi seçerek işlemine devam ediyor ama kaydettiği verileri bu 3. gridde tekrar görüyor...Şöyle bir sorgulama olabilir mi...3 detail tablodaki farklı olan bir noyu ben firebirddeki ilgili yerede kaydediyorum...Firebirddeki ilgili yere yazılan no eğer firebirdde varsa demek ki o numara ile kaydedilmiş demesi ve dbgridde bu veriyi listelememesi....Teşekkürler şimdiden...
Detail olarak listenen tabloya diğer master ve bir üzerindeki detail tablolarda işlem oldukça bu 3. dbgride düşüyor ve kullanıcı buradan veriyi seçerek işlemine devam ediyor ama kaydettiği verileri bu 3. gridde tekrar görüyor...Şöyle bir sorgulama olabilir mi...3 detail tablodaki farklı olan bir noyu ben firebirddeki ilgili yerede kaydediyorum...Firebirddeki ilgili yere yazılan no eğer firebirdde varsa demek ki o numara ile kaydedilmiş demesi ve dbgridde bu veriyi listelememesi....Teşekkürler şimdiden...
sorumla ilgili cevap verecek arkadaş yok mu
Arkadaşlar gerçekten yapamadığım bir mevzu lüften yardımcı olurmusunuz.....Teşekkür ederim...
Anladığım kadarıyla cevap vermeye çalışacağım.
Anlamış olduğum şey 3 tabloda veri işleme yapıyorsunuz. Tablodan başka tabloya aktardığınız kayıtları DBGrid de görmek istemiyorsunuz. Yanlışım varsa düzeltin.
Bence bu işlemi en güzel şekilde Çöp Tablo kullanarak yapabilirsin bir tane çöp tablo oluştur ve işleme tabi tutacağın tablodaki bütün kayıtları çöp tabloyo aktar ardından çöp tabloyu işleme tabi tut aktardığın kayıtlarıda çöp tablodan sil böylece DBGrid'de bu olayı kasmanada gerek kalmaz.
Kolay Gelsin...
Anlamış olduğum şey 3 tabloda veri işleme yapıyorsunuz. Tablodan başka tabloya aktardığınız kayıtları DBGrid de görmek istemiyorsunuz. Yanlışım varsa düzeltin.
Bence bu işlemi en güzel şekilde Çöp Tablo kullanarak yapabilirsin bir tane çöp tablo oluştur ve işleme tabi tutacağın tablodaki bütün kayıtları çöp tabloyo aktar ardından çöp tabloyu işleme tabi tut aktardığın kayıtlarıda çöp tablodan sil böylece DBGrid'de bu olayı kasmanada gerek kalmaz.
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.
S.A.
tablonun filtered özelliğini true yapman lazım.
ama madem fb kullanıyorsun verileri direk tablodan çekmek yerine( öyle yaptığını varsayıyorum) yazdığın bir sp den çekersen dah kolay olur gibi. Uretson no girildiği zaman tabloyu refresh edersin işlem tamam olur.
Sonuç: iki yol var
1.tablonun onfilterrecord olayına yukardakine benzer r bir kod yazacaksın.
2.verileri direk tablodan değilde yazdığın bir sp den çağıracaksın. bu sp de where ifadesinin yanına ifadesini ekleyeceksin.
kolay gelsin.
Kod: Tümünü seç
procedure TDm1.TKurumTurleriFilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
accept:=dataset['uretson_no']=null;
end;
ama madem fb kullanıyorsun verileri direk tablodan çekmek yerine( öyle yaptığını varsayıyorum) yazdığın bir sp den çekersen dah kolay olur gibi. Uretson no girildiği zaman tabloyu refresh edersin işlem tamam olur.
Sonuç: iki yol var
1.tablonun onfilterrecord olayına yukardakine benzer r bir kod yazacaksın.
2.verileri direk tablodan değilde yazdığın bir sp den çağıracaksın. bu sp de where ifadesinin yanına
Kod: Tümünü seç
uretson_no is null
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
peki arkadaşlar
Bu olayı yaptığımız zaman filtered olayını firebirdde olan noyu 3 dbgridde göstermeyecek mi yani şimdi...Ne bilim tüm tabloyu kontrol etmesi felan gerekmiyor mu.....dbgriddeki nonun olup olmadığını anlaması için...Teşekkürler
selam
ben bu olay için onfilterreord yapamadım belkide hiç yapmadığımdandır zaten sp ile hiç şeyim olmadı bu ilk programımı bitirdikten sonra sp ye merak sarmayı düşünüyorum...Şöle bir durum var
Butonu basında kayıt yaptırıyorum ve fakat ilk nöce şu aşağıdaki koda bakmasıını daha sonnra onlara geçmesini istiyorum bunu nasıl halledicem..Fakat sorun bana göre şurdaki 10 tane comboboxın alttaki kodda kayıt olayı var yani konusu olan uretsonfisno hepsinde kayıt ediliyor. şimdi söyle söyleyim......
benim bu yaptığım olayın olacağını zannetmiyoum çünkü satır kaydı olarak belkide aynı uretsonfisno dan 10 tane kayıt atabilir diğer table çünkü o uretsonno ile kaydedilen ürünü kayıt yaparken 10 tane ürünü arafına 10 tane ürünü b rafına dediği zaman satır kaydı yapılacak ve uretsonfisno tekrar edilecek bu filterrecord olayını çözerseniz sevinirim....
fakat bu butonda kayıt edilmesi gereken yerler var ve bu uretsonno fisnonun kayıt muhabbeti aşağıda
ve böle if li 10 tane code yani 10 tane comboboxı seçilip seçilmediğini eğer seçildi ise satır satır kayıt ettirmek için yapmıştım....
Filterrecord yapamadım bilmiyorum beceremedim...Filterrecord yapabilseydim yapacağı eğer ikinci tabledaki field de kayıt varsa tableda filtrelemesi ve onun görünmemesi idi....
Yardımcı olursanız sevinirim...Teşekkürler
Butonu basında kayıt yaptırıyorum ve fakat ilk nöce şu aşağıdaki koda bakmasıını daha sonnra onlara geçmesini istiyorum bunu nasıl halledicem..Fakat sorun bana göre şurdaki 10 tane comboboxın alttaki kodda kayıt olayı var yani konusu olan uretsonfisno hepsinde kayıt ediliyor. şimdi söyle söyleyim......
benim bu yaptığım olayın olacağını zannetmiyoum çünkü satır kaydı olarak belkide aynı uretsonfisno dan 10 tane kayıt atabilir diğer table çünkü o uretsonno ile kaydedilen ürünü kayıt yaparken 10 tane ürünü arafına 10 tane ürünü b rafına dediği zaman satır kaydı yapılacak ve uretsonfisno tekrar edilecek bu filterrecord olayını çözerseniz sevinirim....
Kod: Tümünü seç
{
a:=0;
dm2.sevdetaildataset1.First;
while not dm2.sevdetaildataset1.Eof do
begin
if (dm.TBLSTOKURSURETSON_FISNO.AsString=dm2.sevdetaildataset1URET_SON_FIS_NO.AsString) then
begin
a:=1;
end;
dm2.sevdetaildataset1.Next;
end;
if (a=0) then //kayıt yok
begin
dm2.sevdetaildataset1URET_SON_FIS_NO.AsString;
end;
if (a=1) then //kayıt var
begin
ShowMessage(dm.TBLSTOKURSURETSON_FISNO.AsString+'Icin Kayıt Başarısısız')
end;
}
//-------------------------------
fakat bu butonda kayıt edilmesi gereken yerler var ve bu uretsonno fisnonun kayıt muhabbeti aşağıda
Kod: Tümünü seç
var
a,toplam,b:integer;
begin
b:=0;
toplam:=0;
if (Edit18.Text<>'') then toplam:=toplam+StrToInt(Edit18.Text);
if (Edit24.Text<>'') then toplam:=toplam+StrToInt(Edit24.Text);
if (Edit30.Text<>'') then toplam:=toplam+StrToInt(Edit30.Text);
if (Edit36.Text<>'') then toplam:=toplam+StrToInt(Edit36.Text);
if (Edit42.Text<>'') then toplam:=toplam+StrToInt(Edit42.Text);
if (Edit48.Text<>'') then toplam:=toplam+StrToInt(Edit48.Text);
if (Edit54.Text<>'') then toplam:=toplam+StrToInt(Edit54.Text);
if (Edit60.Text<>'') then toplam:=toplam+StrToInt(Edit60.Text);
if (Edit66.Text<>'') then toplam:=toplam+StrToInt(Edit66.Text);
if (Edit72.Text<>'') then toplam:=toplam+StrToInt(Edit72.Text);
if (toplam=StrToInt(Edit12.Text)) then
begin //kaydet
if (comboBox1.Text<>'') then // 1 ıcın
begin
dm2.sevdetaildataset1.Append;
dm2.sevdetaildataset1KAY_TAR.AsString:=DateToStr(Date);
dm2.sevdetaildataset1SEVKIYAT_NO.AsString:=DBEdit13.Text;
dm2.sevdetaildataset1AYD_SIPNO.AsString:=DBEdit1.Text;
dm2.sevdetaildataset1AYD_STOK_KODU.Text:=DBEdit2.Text;
dm2.sevdetaildataset1IS_EMR_TAR.Text:=DBEdit6.Text;
dm2.sevdetaildataset1MUS_CARI_KODU.Text:=DBEdit5.Text;
dm2.sevdetaildataset1MUS_STOK_KODU.Text:=DBEdit9.Text;
dm2.sevdetaildataset1AYD_SIP_MIK.AsString:=DBEdit7.Text;
dm2.sevdetaildataset1TES_TARIHI.AsString:=DBEdit3.Text;
dm2.sevdetaildataset1STOK_BIR_AGIR.AsString:=edit13.text;
dm2.sevdetaildataset1PALET_NO.AsString:=ComboBox1.Text;
dm2.sevdetaildataset1PALET_TIPI.AsString:=ComboBox21.Text;
dm2.sevdetaildataset1KOLI_TIPI.AsString:=ComboBox11.Text;
dm2.sevdetaildataset1KOLI_NO_BAS.AsString:=Edit14.Text;
dm2.sevdetaildataset1KOLI_NO_BIT.AsString:=Edit15.Text;
dm2.sevdetaildataset1KOLI_ADET.AsString:=Edit16.Text;
dm2.sevdetaildataset1TOPLAMI.AsString:=Edit18.Text;
dm2.sevdetaildataset1STOK_AGR_TOP.Text:=Edit19.Text;
dm2.sevdetaildataset1UR_SON_KAY_MIK.AsString:=Edit12.Text;
dm2.sevdetaildataset1URET_SON_FIS_NO.Text:=DBEdit14.Text;
dm2.sevdetaildataset1.Post;
end;
Filterrecord yapamadım bilmiyorum beceremedim...Filterrecord yapabilseydim yapacağı eğer ikinci tabledaki field de kayıt varsa tableda filtrelemesi ve onun görünmemesi idi....
Yardımcı olursanız sevinirim...Teşekkürler
selam
hocam tek database ile bu olayı yaptım ama 2 database de bu kurguyu ben kuramadım acemeliğimden...
2 Tane database var birisi mssql diğeri firebird ben mssql den filtrelediğim verileri firebirddeki diğer database atıyorum....
Yani şöyle bir şey olması gerekiyor mssql deki table filtreleyecek ama firebirddeki tabledaki kayıtların durumuna göre...Tam açıklayarak yazım...Yani ciddi söylüyorum sabahtan beri uğraşıyorum yapamadım...becereksizlik artık....
uretson_fisno diye dbgridde listelenen bir kayıt var...Ben bu kayıdı friberiddeki table atıyorum...Ama şu filtreyi kuramadım. Firebirddeki tüm kayıtları tara eğer yoksa filtreleme varsa filtrele ama mssqldeki tabloyu....
Veya şöyle bir şey de işimi görür onuda yapamadım yani firebirddeki tabloyu tara edit1 de aynısından kayıdı varsa mssql deki tabloyu filtrele ve o kıyıdı gösterme ki kullanıcı aynı kayıdı tekra ryapamasın ve orda görünmesin...Yardımcı olursanız çok sevinirim.....
2 Tane database var birisi mssql diğeri firebird ben mssql den filtrelediğim verileri firebirddeki diğer database atıyorum....
Yani şöyle bir şey olması gerekiyor mssql deki table filtreleyecek ama firebirddeki tabledaki kayıtların durumuna göre...Tam açıklayarak yazım...Yani ciddi söylüyorum sabahtan beri uğraşıyorum yapamadım...becereksizlik artık....
uretson_fisno diye dbgridde listelenen bir kayıt var...Ben bu kayıdı friberiddeki table atıyorum...Ama şu filtreyi kuramadım. Firebirddeki tüm kayıtları tara eğer yoksa filtreleme varsa filtrele ama mssqldeki tabloyu....
Veya şöyle bir şey de işimi görür onuda yapamadım yani firebirddeki tabloyu tara edit1 de aynısından kayıdı varsa mssql deki tabloyu filtrele ve o kıyıdı gösterme ki kullanıcı aynı kayıdı tekra ryapamasın ve orda görünmesin...Yardımcı olursanız çok sevinirim.....
- ayhanarican
- Üye
- Mesajlar: 37
- Kayıt: 03 Tem 2003 01:24
- Konum: İzmir
- İletişim:
S.A.
firebird deki tablonda uretson_fisno değeri varsa "False" yoksa "True" döndüren Boolean tipinde bir function yazabilirsin.
sonra filtrelemeyi, mssql deki tablo nun OnFilterRecord olayında
kolayca yapabilirsin.
iyi çalışmalar.
firebird deki tablonda uretson_fisno değeri varsa "False" yoksa "True" döndüren Boolean tipinde bir function yazabilirsin.
sonra filtrelemeyi, mssql deki tablo nun OnFilterRecord olayında
Kod: Tümünü seç
Accept:=dm2.bufisnoyokmu(uretson_fisno);
iyi çalışmalar.