Merhaba,
Oldukça karışık bir formum var. Asıl bilgiler bir Dataset aracılığıyla geliyor ama, yeni bir kayıta başlandığında, bazı alanların değerlerini kullanıcının yaptığı seçimlere bağlı olarak başka tablolardan taşıyıp, üzerinde çalıştığım dataset e eklemem lazım.( o gün için geçerli olan bazı oranlar mesela)
Bu eklenecek alanların her biri için bir DBEdit kullanıyorum (başka yolu var mı yoksa ?) Şimdi bu 10 tane alanı mutlaka formun üstüne koymam mı lazım, Visible false yaptım, kullanıcı görmeyecek ama ben çalışırken de orda görmek istemiyorum,
Ne yapabilirim ?
Formda Görünmesi Gerekmeyen DBEditler
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Formda Görünmesi Gerekmeyen DBEditler
Sevgi, Saygı.....
hocam alanları arka planda kullanacaksanız dbedite yada baska bir gorsel bilesene ihtiyacınız yok...
mesela bir alana gore formun arka plan rengini degistirmek istiyorsunuz diyelim
ilgili datasource un OnDataChange olayına yazıverin kodunuzu olay tamam
eger bazı alan degerlerini kayıt sonrası kullanacaksanız beforepost olayına yazın gereken hesaplamaları...
yani alternatif yol cok
ayrıca yapmak istediginiz ne ona gore belki db server tarafında bile yapılabilir triggerlar vasıtası ile
kolay gelsin...
mesela bir alana gore formun arka plan rengini degistirmek istiyorsunuz diyelim
ilgili datasource un OnDataChange olayına yazıverin kodunuzu olay tamam
eger bazı alan degerlerini kayıt sonrası kullanacaksanız beforepost olayına yazın gereken hesaplamaları...
yani alternatif yol cok
ayrıca yapmak istediginiz ne ona gore belki db server tarafında bile yapılabilir triggerlar vasıtası ile
kolay gelsin...
ÜŞENME,ERTELEME,VAZGEÇME
Ayrıntı
Şimdi bu bir sipariş formu. Dataset in bir kayıtında 30 tane alan var.
Yeni bir kayıt girerken bunlardan 15 tanesini kullanıcı elle girecek, 10 tanesi ise kullanıcının girdiği değerlere bağlı olarak başka tablolardan okunup giriş işlemi onaylanırsa datasete kaydedilecek. (O bayi için geçerli bazı oranları bayiler tablosundan getirip sipariş kayıdına yazıyorum, çünkü oranlar zamanla değişebiliyor, o değişiklikler benim sipariş tablomu etkilememeli.)
1- Bu 10 alanı kullanıcı görmesin,(bunu visible ile hallettim) Mümkünse ben de görmeyeyim ekran çok karışık görünüyor, bunu yapamadım.
2- Bu da daha önemli bir soru : 5 alan var ki, bu alanların bilgisini görüntüliycem, kullanıcı isterse değiştirecek. Görüntüleme kısmı tamam, bilgiler geldi güzelce. Ama o alana tıklandığında değeri sıfırlanıyor, sanırım datasetteki bilgiyi alıp tekarr getiriyor. Bunu nasıl engellerim ?
(örnek : iskonto oranı , her bayi için BAYI tablosunda bir sabit iskonto oranı var, Proje ismi verirsek sabit yerine projedeki iskonto oranı kullanılacak, vazgeçersek tekrar bayi oranına dönecek, canımız isterse de yeni bir oran yazabilicez.)
Yeni bir kayıt girerken bunlardan 15 tanesini kullanıcı elle girecek, 10 tanesi ise kullanıcının girdiği değerlere bağlı olarak başka tablolardan okunup giriş işlemi onaylanırsa datasete kaydedilecek. (O bayi için geçerli bazı oranları bayiler tablosundan getirip sipariş kayıdına yazıyorum, çünkü oranlar zamanla değişebiliyor, o değişiklikler benim sipariş tablomu etkilememeli.)
1- Bu 10 alanı kullanıcı görmesin,(bunu visible ile hallettim) Mümkünse ben de görmeyeyim ekran çok karışık görünüyor, bunu yapamadım.
2- Bu da daha önemli bir soru : 5 alan var ki, bu alanların bilgisini görüntüliycem, kullanıcı isterse değiştirecek. Görüntüleme kısmı tamam, bilgiler geldi güzelce. Ama o alana tıklandığında değeri sıfırlanıyor, sanırım datasetteki bilgiyi alıp tekarr getiriyor. Bunu nasıl engellerim ?
(örnek : iskonto oranı , her bayi için BAYI tablosunda bir sabit iskonto oranı var, Proje ismi verirsek sabit yerine projedeki iskonto oranı kullanılacak, vazgeçersek tekrar bayi oranına dönecek, canımız isterse de yeni bir oran yazabilicez.)
Sevgi, Saygı.....
Datasource başka formda
Hocam, ondatachange eventini inceliyorum şu anda. Ancak, database, transaction, dataset, datasource vs vs tanımlarımın hepsi ayrı bir Data modul de yapılmış durumda. Siparişleri ise başka formda kaydediyorum.gkimirti yazdı:ilgili datasource un OnDataChange olayına yazıverin kodunuzu olay tamam eger bazı alan degerlerini kayıt sonrası kullanacaksanız beforepost olayına yazın gereken hesaplamaları...
yani alternatif yol cok ayrıca yapmak istediginiz ne ona gore belki db server tarafında bile yapılabilir triggerlar vasıtası ile
kolay gelsin...
Sevgi, Saygı.....
S.A.
1. soru için. Görmek istemdediğin dbeditleri seçip klavyeden delete tuşuna bas.
Bu dbeditlerin bağlı oldukları alanların değerlerini değiştirmek için şeklinde alanlara erişebilirsin.
Kaydet düğmesine tıkladığın zaman satırından önce şekllinde atama yaparak alanlara ulaşabilirsin.
2. soru için dbeditlerin text ini değiştirdiğin zaman veri tabanında bilgiler değişmez. onun yerine yukarda gösterdiğim şekilde atama yaparsan bu sorun hallolur. not: Eğer combobox tarzı birşey istiyorsan dblookupcomboboxu tavsiyeedeceğim.
Kolay Gelsin.
1. soru için. Görmek istemdediğin dbeditleri seçip klavyeden delete tuşuna bas.

Bu dbeditlerin bağlı oldukları alanların değerlerini değiştirmek için
Kod: Tümünü seç
tabloadialanadi.asstring(.asinteger...)
Kaydet düğmesine tıkladığın zaman
Kod: Tümünü seç
tabloadi.post
Kod: Tümünü seç
tabloadialanadi.asinteger:=bayitablosuoran.asinteger;
2. soru için dbeditlerin text ini değiştirdiğin zaman veri tabanında bilgiler değişmez. onun yerine yukarda gösterdiğim şekilde atama yaparsan bu sorun hallolur. not: Eğer combobox tarzı birşey istiyorsan dblookupcomboboxu tavsiyeedeceğim.
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