calculated field
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 330
- Kayıt: 09 Mar 2004 11:18
- Konum: Konya
- İletişim:
calculated field
herkese kolay gelsin
öncelikle "mustafa hocam" vermiş olduğunuz linklerde calculated field alanını inceledim ve olayı çözdüm..(daha önce de birkaç kullanma girişimim olmuştu)
Şöyle bir sorunla karşılaştım...Query nesnesine ve program içine yazdığım kodlada tanımladığım calculated alanını kullanıyorum ama veri tabanında olmadığı için " ... alan bulunamadı "şeklinde bir hata mesajı veriyor...
veritabanın da alanı tanımladığımda zaten calculated field in bir anlamı kalmıyor...
bu hatayla karşılaşmamak için acaba ne önerirsiniz....
birde program içinde diğer formlarda da kullanabileceğim genel amaçlı kendi yazacağım procedureleri programın hangi alanında tanımlayabalirim...
HERKESE ÇOK TEŞEKKÜR EDERİM
öncelikle "mustafa hocam" vermiş olduğunuz linklerde calculated field alanını inceledim ve olayı çözdüm..(daha önce de birkaç kullanma girişimim olmuştu)
Şöyle bir sorunla karşılaştım...Query nesnesine ve program içine yazdığım kodlada tanımladığım calculated alanını kullanıyorum ama veri tabanında olmadığı için " ... alan bulunamadı "şeklinde bir hata mesajı veriyor...
veritabanın da alanı tanımladığımda zaten calculated field in bir anlamı kalmıyor...
bu hatayla karşılaşmamak için acaba ne önerirsiniz....
birde program içinde diğer formlarda da kullanabileceğim genel amaçlı kendi yazacağım procedureleri programın hangi alanında tanımlayabalirim...
HERKESE ÇOK TEŞEKKÜR EDERİM
Karşılaşılan hata hakkında bilgi detaysız Kodlarınızı adım adım çalıştırarak problemin hangi aşamada kaynaklandığını bulunuz.
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.
-
- Üye
- Mesajlar: 330
- Kayıt: 09 Mar 2004 11:18
- Konum: Konya
- İletişim:
hata şu: ben "toplam" adında bir calculated field oluşturuyorum...( bu arada veri tabanı paradox ) hesaplama yaptırdığımda " toplam alanı veritabanında bulunamadı" mesajını veriyor... yani veritabanında toplam diye bir alan arıyor...
veritabanına toplam diye bir alan oluşturursam sorunsuz çalışıyor...
... sadece proje içinde nereye yazacağım
teşekkürler
veritabanına toplam diye bir alan oluşturursam sorunsuz çalışıyor...
bir de bu konuda yardım istiyorumprogram içinde diğer formlarda da kullanabileceğim genel amaçlı kendi yazacağım procedureleri programın hangi alanında tanımlayabalirim...
... sadece proje içinde nereye yazacağım
teşekkürler
S.A.
Calculated alana değer aktardığın kodları gönderirsen daha fazla yardımcı olabilriz.Sanırım. Birde calculated alana tablonun OnCalcFields olayında değer atamalısın.
ikinci soruna gelince
yazdığın bir procedureyi kullandığın diğer ünit ve formlarda kullanmak istiyorsan procedure(yada function u) formun public alanınayazıp procedureyi tanımlamalısın. daha sonra Ctrl+Shift+Ctuşlarına basarak procedureni yazabilirsin. ancak procedure yi diğer form ve unitlerde kullanmadan önce formun adını referans göstermen gerek. şeklinde
kolay gelsin.
Calculated alana değer aktardığın kodları gönderirsen daha fazla yardımcı olabilriz.Sanırım. Birde calculated alana tablonun OnCalcFields olayında değer atamalısın.
ikinci soruna gelince
yazdığın bir procedureyi kullandığın diğer ünit ve formlarda kullanmak istiyorsan procedure(yada function u) formun public alanına
Kod: Tümünü seç
procedure benimprocedurem(parametreler);
Kod: Tümünü seç
form1.benimprocedurem(parametreler)
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
-
- Üye
- Mesajlar: 330
- Kayıt: 09 Mar 2004 11:18
- Konum: Konya
- İletişim:
öncelikle public hatırlatması için teşekkürler...
calculate field tanımlamasını query nesnesinin field editör alanında new field sekmesini kullanarak tanımladım...(urun_top)
toplama yapacağım alan (adet) integer tipte, urun_top alanının tipini de integer olarak tanımladım...
bu kodu kullandığımda
farklı yollar deniyorum ama hala olmadı....
vazgeçmeyeceğim bu işi mutlaka çözeceğim...
ama tabiki yardımlarınızı da bekliyorum...
şimdiden herkese tekrar teşekkür ederim....
calculate field tanımlamasını query nesnesinin field editör alanında new field sekmesini kullanarak tanımladım...(urun_top)
toplama yapacağım alan (adet) integer tipte, urun_top alanının tipini de integer olarak tanımladım...
bu kodu kullandığımda
invalid field name urun_top hatasını veriyor....dm.toplam.close;
dm.toplam.SQL.Clear;
dm.toplam.SQL.Add('SELECT URUN_NO, SUM( ADET ) urun_top');
dm.toplam.SQL.Add('FROM "s_hareket.DBF" S_hareket');
dm.toplam.SQL.Add('WHERE URUN_NO ='''+edit1.Text+'''');
dm.toplam.SQL.Add('GROUP BY URUN_NO, urun_top');
dm.toplam.Open;
edit7.Text:=inttostr(dm.toplamurun_top.Value);
satırında urun_top satırını yazmadığımda değeri göremiyorum... yani edit nesnesine 0 değerini dönderiyor....dm.toplam.SQL.Add('GROUP BY URUN_NO ');
farklı yollar deniyorum ama hala olmadı....
vazgeçmeyeceğim bu işi mutlaka çözeceğim...
ama tabiki yardımlarınızı da bekliyorum...
şimdiden herkese tekrar teşekkür ederim....
Kod: Tümünü seç
edit7.Text:=inttostr(dm.toplamurun_top.Value);
Kod: Tümünü seç
edit7.text:=dm.toplam.fieldbyname('urun_top').asstring;
olmazsa query nin üzerine iki kere tıkladığında açılan fields editöre sağ tıklayıp add allfields de.
bi de öyle dene
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
-
- Üye
- Mesajlar: 330
- Kayıt: 09 Mar 2004 11:18
- Konum: Konya
- İletişim:
@aslangeri denedim ama malesef olmadı...
ben kullandığım veri tabanından olduğunu düşünüyorum (çünki mustafa hocam kullanabiliyor) ama veri tabanıyla ne bağlantısı olduğunu çözemiyorum...
ver tabanında bir alan oluşturdum, çalışıyor ama alan sadece yer işgal ediyor...
bu calculated field olayı benim canımı sıkmaya başladı
ama beni altedemiyecek...sakin bir kafayla ALLAHIN İZNİYLE bu işi halledeceğim....
ben kullandığım veri tabanından olduğunu düşünüyorum (çünki mustafa hocam kullanabiliyor) ama veri tabanıyla ne bağlantısı olduğunu çözemiyorum...
ver tabanında bir alan oluşturdum, çalışıyor ama alan sadece yer işgal ediyor...
bu calculated field olayı benim canımı sıkmaya başladı
ama beni altedemiyecek...sakin bir kafayla ALLAHIN İZNİYLE bu işi halledeceğim....
-
- Üye
- Mesajlar: 330
- Kayıt: 09 Mar 2004 11:18
- Konum: Konya
- İletişim:
add all fields olayını yaptım...
orada sorun yok. urun_top alanını ve urun_no alanını görüyor...
ama edit nesnesine sonuç döndürmüyor..
bu kod satırıda aynı şekilde... bu da 0 değerini döndürüyor...
anladığım kadarıyla sorun değerin içine toplamı yazmıyor...
çünki sql query içinde yazdığım kod çalışıyor ve sonucu veriyor.
program içinde de sonuç olarak 0 dönderiyor...
(benim işime yaramıyor da sağolsun en azından boş çevirmiyor )
orada sorun yok. urun_top alanını ve urun_no alanını görüyor...
ama edit nesnesine sonuç döndürmüyor..
kodu bu şekilde çalışıyor ama edit'e 0 değerini yazıyor...dm.toplam.close;
dm.toplam.SQL.Clear;
dm.toplam.SQL.Add('SELECT URUN_NO, SUM( ADET ) urun_top');
dm.toplam.SQL.Add('FROM "s_hareket.DBF" S_hareket');
dm.toplam.SQL.Add('WHERE URUN_NO ='''+edit1.Text+'''');
dm.toplam.SQL.Add('GROUP BY URUN_NO');
dm.toplam.Open;
edit7.Text:=inttostr(dm.toplamurun_top.Value);
edit7.text:=inttostr(dm.toplam.fieldbyname('urun_top').asinteger);
bu kod satırıda aynı şekilde... bu da 0 değerini döndürüyor...
anladığım kadarıyla sorun değerin içine toplamı yazmıyor...
çünki sql query içinde yazdığım kod çalışıyor ve sonucu veriyor.
program içinde de sonuç olarak 0 dönderiyor...
(benim işime yaramıyor da sağolsun en azından boş çevirmiyor )
En son yusuf simsek tarafından 31 Tem 2004 06:02 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
-
- Üye
- Mesajlar: 330
- Kayıt: 09 Mar 2004 11:18
- Konum: Konya
- İletişim:
SELECT SUM( TOPLAM ) kasa, TUR, TARIH
FROM "s_hareket.DBF" S_hareket
WHERE (TUR = 'g') AND (TARIH = '07/31/2004')
GROUP BY TUR, TARIH
query nesnesinin sql builder alanına bu kodu hazırlattım ve kasa alanını ilave ettim...kodu denemek için çalıştırdığımda sonuç aldım... toplam değeri dönderdi...
dm.kasa.Close;
dm.kasa.SQL[2]:='WHERE (TUR = '''+'c'+''')AND (TARIH ='''+datetostr(date)+''')';
dm.kasa.Open;
edit1.Text:=floattostr(dm.kasakasa.Value);
query nesnesinde kasa adında calculate field alanı olşturdum...
bu kodu da program içerisinde buton click olayına yazdım ve çalıştırdım
ama gene 0 değerini dönderdi....
delphinin bana garezi var ama benim de vazgeçmeye yok...
-
- Üye
- Mesajlar: 330
- Kayıt: 09 Mar 2004 11:18
- Konum: Konya
- İletişim:
hatalar,hatalar...
hepsi üst üste binip sinir katsayısı artınca sorun çözülmüyor ve kafada saç kalmıyor.
ama en güzeli hatayı bulup çözmesi.Ondan sonra saçlar yeniden çıkıyor...
MUSTAFA HOCAMIN DEDİĞİ GİBİ MA
Sakin kafayla inceleyince ve ayrı bir çalışma alanında hataları önemsemeden deneyince oluyor...(esas çalışma alanında fazla risk alınamıyor)
Neyse geyik yeter.(sorunu çözünce seviçten oldu)
Hatam SUM fonksiyon sonucunu calculate alana aktarmakmış.Yani tabloda olmayan bir alana SUM fonksiyonunun sonucunu göndermeye çalışmak.
Diğer veri tabanları destekliyormu bilmiyorum ana DBASE ve PARADOX desteklemiyor.
Query nesnesinin olaylarında (alt sıralarında) bulunan ONCALCFIELD alanına gerekli kodu yazdıktan sonra bal gibi de oluyor.("vay yapamadım, oy anam olmadı " gibi bahaneler dinlemiyor)
hepsi üst üste binip sinir katsayısı artınca sorun çözülmüyor ve kafada saç kalmıyor.
ama en güzeli hatayı bulup çözmesi.Ondan sonra saçlar yeniden çıkıyor...
MUSTAFA HOCAMIN DEDİĞİ GİBİ MA
Sakin kafayla inceleyince ve ayrı bir çalışma alanında hataları önemsemeden deneyince oluyor...(esas çalışma alanında fazla risk alınamıyor)
Neyse geyik yeter.(sorunu çözünce seviçten oldu)
Hatam SUM fonksiyon sonucunu calculate alana aktarmakmış.Yani tabloda olmayan bir alana SUM fonksiyonunun sonucunu göndermeye çalışmak.
Diğer veri tabanları destekliyormu bilmiyorum ana DBASE ve PARADOX desteklemiyor.
Query nesnesinin olaylarında (alt sıralarında) bulunan ONCALCFIELD alanına gerekli kodu yazdıktan sonra bal gibi de oluyor.("vay yapamadım, oy anam olmadı " gibi bahaneler dinlemiyor)
procedure TForm1.Query1CalcFields(DataSet: TDataSet);
begin
query1CALCULATEALAN.value:=queryALAN1.value+queryALAN2.value;
end;
Ya ben sorunlarımı çözmeme rağmen benim saçlar geri çıkmıyor problem ne olabilir?hepsi üst üste binip sinir katsayısı artınca sorun çözülmüyor ve kafada saç kalmıyor.
ama en güzeli hatayı bulup çözmesi.Ondan sonra saçlar yeniden çıkıyor...
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
-
- Üye
- Mesajlar: 330
- Kayıt: 09 Mar 2004 11:18
- Konum: Konya
- İletişim:
ya hüseyin hocam senin sorun herhalde ırsi.Ama böyle daha yakışıklısın.
saçlı halini düşünemiyorum.
Yani öyle bir imajın varki!!! Fazla söze gerek yok.
Ben yolduklarımı atmıyorum.Onları biriktirip karşıma koyuyorum. Onlara bakarak kendimi cezalandırıyorum.
Cezam bittiğinde de tekrar yapıştırıyorum
Böylece kendimi ödüllendiriyorum.
saçlı halini düşünemiyorum.
Yani öyle bir imajın varki!!! Fazla söze gerek yok.
Ben yolduklarımı atmıyorum.Onları biriktirip karşıma koyuyorum. Onlara bakarak kendimi cezalandırıyorum.
Cezam bittiğinde de tekrar yapıştırıyorum
Böylece kendimi ödüllendiriyorum.
Merhaba ,
SQL sonucu aktarılan sanal alanların tipi daima "fkData" olmalıdır.
Örneğin, fkData olarak tanımlı toplam adında bir sanal olsun
"Select sum(toplancak) as toplam from tablom" gibi bir sorguda doğru sonuç dönecektir ama eğer fkCalculated tanımlı ise hata oluşacaktır.
New Field Penceresinde orta kısımda bulunan field type kısmından DATA yı seçerek bunu yapabilirsiniz.
Kolay gelsin.
SQL sonucu aktarılan sanal alanların tipi daima "fkData" olmalıdır.
Örneğin, fkData olarak tanımlı toplam adında bir sanal olsun
"Select sum(toplancak) as toplam from tablom" gibi bir sorguda doğru sonuç dönecektir ama eğer fkCalculated tanımlı ise hata oluşacaktır.
New Field Penceresinde orta kısımda bulunan field type kısmından DATA yı seçerek bunu yapabilirsiniz.
Kolay gelsin.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr