| ozcank | 02.05.2005 - 09:07:10 |
| Arkadaşlar;
Tarihi nasıl buldurup karşılaştırmam gerekiyor? a:= table1.locate('Ro5BakTar')=Tarih then tarihi bulursam eğer günün tarihi ile karşılaştıracam. SQL de nasıl yapabilirim bu işlemi her iki tarihi de kaydettiriyorum 6 ay sonra hesaplanan tarihi veya 1 yıl sonraki tarihi kaydettiriyorum sadece kayıtlı olan tarih ile o gune geldiği tarih eşit olacak. bu şekilde birşeyler yaptım ama; var BakTar:Boolean; begin Tarih:=Date() BakTar:= table1.locate('Ro5BakTar'); //bu satırda hata veriyor "Ro5BakTar" tarih değerinde loacte tarih değerini bulmuyor mu? if tarih=BaktTar then Begin if BakTar=true then begin ShowMessage('Bu ay bakım yapılması gereken müşteriler var!'); Form22.Show; end else if BakTar=false then begin Form22.Show; end; end; Lütfen arkadaşlar yardım edin !!!!! | |
| vedatkaba | 02.05.2005 - 09:33:55 |
if data.mcek.Locate('MCEKTARIH',datetostr(date),[]) then
begin showmessage('Bugün için Tahsil edilecek Çekler var'); orda hata vermsi normal locate nin genel kullanımı bu şekilde en azından benim bildiğim..bu kodda eğer bugünün tarihine ilişkin kayıt varsa direk mesaj veriyor zaten.. kolay gelsin... SQL lede yapmak mümkün. | |
| rsimsek | 02.05.2005 - 09:58:16 |
| @ozcank öncelikle kodları yazarken daha düzenli ve [ code ] [ /code ] tag ları içinde yazarsan okunaklı olur Arkadaşlar;
var BakTar:Boolean; begin Tarih:=Date() BakTar:= table1.locate('Ro5BakTar'); //bu satırda hata veriyor "Ro5BakTar" tarih değerinde loacte tarih değerini bulmuyor mu? if tarih=BaktTar then Begin if BakTar=true then begin ShowMessage('Bu ay bakım yapılması gereken müşteriler var!'); Form22.Show; end else if BakTar=false then begin Form22.Show; end; end; Locate komutu/procedure ü ile sadece tablodaki herhangi bir kayıta konumlanabilirsin Table1.FindKey([Key_Alani]); veya
Table1.Locate(Gerekli parametreler); kullanarak istediğin kayıta konumlanabilirsin. Sonunda kodun şu şekle gelir; (biraz da sadeleştirerek begin if not Table1.FindKey([Key_alani]) then begin ShowMessage('Kayıt bulunamadı!!'); exit; end; if Table1.FieldByName('Ro5BakTar').AsDateTime = Date() then ShowMessage('Bu ay bakım yapılması gereken müşteriler var!'); Form22.Show; end; | |
| coskun | 02.05.2005 - 09:58:38 |
| selamlar hocam bir de table bileşeninin findkey arama metodu ile dene belki de daha da iyi olur. bir de datetimepicker bilşeni kullanırsan tarih olaylarında daha da iyi olur düşüncesindeyim.
table1.findkey([datetimepicker1.date]); gibi. | |
| ozcank | 03.05.2005 - 08:31:20 |
| Bu şekilde yaptım ve düzgün çalışıyor tarihide karşılaştırıyor ama Locate veya FindKey ile bir türlü bulduramadım.Ve bu mesajı 1 kere verdirmek istiyorum her defasında form'a girerken mesaj veriyor.
Var Tarih:String; Begin Tarih:=DateToStr(Date); If Table1RO5BAKTAR.AsString=Tarih Then Begin ShowMessage('Bu Ay Bakım Var !!!'); Form22.Show; end Else Begin form22.Show; end; end; | |
| ozcank | 04.05.2005 - 09:04:45 |
| Arkadaşlar herşey tamam akşamda test ettim.Fakat tek sorunum bu mesajı 1 kere vermesi lütfen yardım edin.Nereye ne eklemem gerekiyor?
Var Tarih:String; Begin Tarih:=DateToStr(Date); If Table1RO5BAKTAR.AsString=Tarih Then Begin ShowMessage('Bu Ay Bakım Var !!!'); Form22.Show; end Else Begin form22.Show; end; end; | |
| vedatkaba | 04.05.2005 - 09:36:49 |
| birkere vermesinden kastın ne anlamadım..o tarihe ait bir tane kayıt varsa taibki bir kere verir.eğer birden fazla kayıt var sadece bir kayıt için mesaj veriyor diyorsan döngü açmamışsın..yanlışmı anlamışım. | |
| ozcank | 04.05.2005 - 18:31:27 |
| Button her bastığımda mesaj veriyor 1 kereden sonra tarih değişene kadar vermeyecek mesela yarın verecek ama o tarih ile 1 kere mesaj verecek birdaha vermeyecek. Bu şekilde. | |
| bobasturk | 04.05.2005 - 23:26:29 |
| merhabalar,
okurken aklıma bi şey geldi. bu işlerde acemiyim ama sen kontrol ettiğinde ve o tarihte bakım olduğunu bulduğunda ve sana o tarih için mesaj verdiğinde yanına çek attırsan. yani demek istediğim olayın yanında çek varsa ben bu uyarıyı vermişim zaten deyip geçecek çek yoksa bu yeni sorgu diyecek ve sorgulayıp mesajı verecek bi an aklıma geldi. acemice işte ağzı olan konuşuyor. kolay gelsin. | |
| ozcank | 05.05.2005 - 09:08:49 |
| çok doğru dedin olabilir ama bende acemiyim nasıl bir mesaj verdirmeliyim ki checkbox1 de içinde olsun mesaj penceresi ShowMessage ile geliyor bu mesaj penceresi içine nasıl yerleştirebilirim CheckBox1 ve nasıl sorgu yapabilirim veya başka yolu varmı? .Çok da sevinirim.
Fikrin için çok tşk. ederim. | |
| bobasturk | 05.05.2005 - 21:40:18 |
| Merhabalar,
Acemilikten sana verdiğim öneriyi düşünüyordum fakat tablona bide dbcheckbox la veri girilen alan falan eklemen gerektiğıini düşünüyorum. bide şu önerim olucak form22 sanırım senin bakım için bulunan listen ve ayrı ayrı tairhlerde. bu olayı datetimepicker ile iki ayrı button ile yapsan. butonun biri sql ile datetimepicker de bulunan günün tarihini sorgulasın ve sonucu sana ayrı bi formda versin sende bak kime bakım gerekli. bunu günde birkere yaparsın diğer button ise sorgu yapmadan form22 yi açar ve işlemini yaparsın. Dediğim gibi ustalara saygısızlık etmek istemem ama benimki bi öneri bide bu yönden incele istersen muhakkak daha kolay ve güzel yöntemleri vardır. delphi yi tutamazsın çözüm çok. kolay gelsin. | |
| ozcank | 07.05.2005 - 09:05:59 |
| Fatih bey ;
Var Tarih:String; Goster:Boolean; Begin Tarih:=DateToStr(Date); If (Table1RO5BAKTAR.AsString=Tarih) And (Goster<>True) Then Begin ShowMessage('Bu Ay Bakım Var !!!'); Goster:=True; Form22.Show; end; end; Burda ilk tarihe konumlanıyor ilk tarih bugünün tarihi ise mesaj veriyor benim kayıtlar arasında bugünün tarihini bulup karşılaştırmam gerekiyor Locate veya FindKey ile tarih nasıl buldurup karşılaştırabilirim? yardım ederseniz çok sevinirim. | |