combo da seçilen ayları rakama dönüştürme?
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
combo da seçilen ayları rakama dönüştürme?
comboboxtan seçtiğim mesala şubat ayını yani comboboxta 'ŞUBAT' şeklinde sıralı
rakama çevirmek için bir yol biliyom ancak siz daha kısasını biliyosanız veya benim düşündüğüm yoldan yapılıyorsa söylerseniz sevinirim
örnek
ay:=combobox1.text;
if ay='ocak' then a:=1 else
if ay='şubat' then a:=2 else
.
.
şeklindemi olacak yoksa başka şekildemi
rakama çevirmek için bir yol biliyom ancak siz daha kısasını biliyosanız veya benim düşündüğüm yoldan yapılıyorsa söylerseniz sevinirim
örnek
ay:=combobox1.text;
if ay='ocak' then a:=1 else
if ay='şubat' then a:=2 else
.
.
şeklindemi olacak yoksa başka şekildemi
Re: combo da seçilen ayları rakama dönüştürme?
var
a:integer;
begin
a:=combobox1.itemindex+1; //0: ocak, 1: subat, ocak secilince 1 gelmesi icin +1.
end;
a:integer;
begin
a:=combobox1.itemindex+1; //0: ocak, 1: subat, ocak secilince 1 gelmesi icin +1.
end;
Re: combo da seçilen ayları rakama dönüştürme?
ok sağol bunları parça parça birleştirip tarih olarak kaydedebilirim demi
mesala combobox2 den yıl gelecek
yil:=combobox2.text
gun:=15
a:=combobox1.itemindex+1;
dedikten sonra
tarih:=gun'.'+a'.'+yil
şeklinde olmazmı
mesala combobox2 den yıl gelecek
yil:=combobox2.text
gun:=15
a:=combobox1.itemindex+1;
dedikten sonra
tarih:=gun'.'+a'.'+yil
şeklinde olmazmı
Re: combo da seçilen ayları rakama dönüştürme?
olmuyomuşpelitt yazdı:ok sağol bunları parça parça birleştirip tarih olarak kaydedebilirim demi
mesala combobox2 den yıl gelecek
yil:=combobox2.text
gun:=15
a:=combobox1.itemindex+1;
dedikten sonra
tarih:=gun'.'+a'.'+yil
şeklinde olmazmı
Re: combo da seçilen ayları rakama dönüştürme?
olmayan neresi bir hata vb mi alıyorsun?
UWESIS CORPORATION
Re: combo da seçilen ayları rakama dönüştürme?
eğer a veya aktaracağın bileşen string tipinden ise (öyle tahmin ediyorum) itemindex i string tipine dönüştürmelisin
Kod: Tümünü seç
var a,yil,gun:string;
begin
yil:=combobox2.text;
gun:=15;
a:=inttostr(combobox1.itemindex+1);
tarih:=gun'.'+a'.'+yil
UWESIS CORPORATION
Re: combo da seçilen ayları rakama dönüştürme?
gun:=15;
burada hata veriyor
elde ettiğim sonucu msql de date tipli alana kaydedeceğim
burada hata veriyor
elde ettiğim sonucu msql de date tipli alana kaydedeceğim
procedure TForm4.Button1Click(Sender: TObject);
var
xkim,xaidat,xyakit,ay,gun,ekle,idm,xay,xyil,xtarih:String;
s:Integer;
begin
if combobox1.Text='Ben Seçeyim' then
begin
idm:=edit3.text;
xaidat:=Edit1.Text;
xyakit:=Edit2.Text;
xay:=ComboBox3.Text;
xyil:=ComboBox2.Text;
ekle:='INSERT INTO hesap (kim,aidat,yakit,ay,yil) values'+'('+idm+','+QuotedStr(xaidat)+','+QuotedStr(xyakit)+','+QuotedStr(xay)+','+QuotedStr(xyil)+')';
ZQuery2.SQL.Text:=ekle; //Zquery1--->Zeos Bileşeni
ZQuery2.ExecSQL;
ZQuery1.Close;
ZQuery1.Open;
DBGrid2.Visible:=false;
dbgrid1.Visible:=true;
GridAyarla(DBGrid1);
DBGrid1.DataSource.DataSet.Fieldbyname('id').Visible:=false;
Edit3.Text:=DBGrid1.DataSource.DataSet.Fieldbyname('id').AsString
end
else
if combobox1.Text='Tüm Üyeler' then
for s:=1 to Form4.ZQuery2.RecordCount do
begin
xaidat:=Edit1.Text;
xyakit:=Edit2.Text;
xay:=ComboBox3.Text;
xyil:=ComboBox2.Text;
ay:=inttostr(combobox3.itemindex+1);
gun:=15;
xtarih:=gun'.'+a'.'+xyil;
ekle:='INSERT INTO hesap (kim,aidat,yakit,ay,yil,tarih) values'+'('+IntToStr(s)+','+QuotedStr(xaidat)+','+QuotedStr(xyakit)+','+QuotedStr(xay)+','+QuotedStr(xyil)+','+DateTimeToStr(xtarih)+')';
ZQuery2.SQL.Text:=ekle; //Zquery1--->Zeos Bileşeni
ZQuery2.ExecSQL;
ZQuery1.Close;
ZQuery1.Open;
DBGrid2.Visible:=false;
dbgrid1.Visible:=true;
GridAyarla(DBGrid1);
DBGrid1.DataSource.DataSet.Fieldbyname('id').Visible:=false;
Edit3.Text:=DBGrid1.DataSource.DataSet.Fieldbyname('id').AsString
end;
end;
Re: combo da seçilen ayları rakama dönüştürme?
gun değişkenin tipi string tanımlamışsın gun:=15 şeklinde girdiğinde integer girmeye çalışıyorsun bunu gun:='15' şeklinde veya başka bir integer değeri string tipinde girmeye çalışıyorsan gün:=inttostr(15) şeklinde girebilirsin yani rakam gireceğin zaman 'rakam' eklemelisin aksi halde integer olarak algılar, birde bu şekilde denermisin
UWESIS CORPORATION
Re: combo da seçilen ayları rakama dönüştürme?
özürdilerim ben dediğiniz yeri siz yazmadan halletmiştim biraz string filan okuyordum yinede sağolun ancak show mesage ile tarihi ekrana yazdırınca örnek:2592010 şeklinde oluyor kayıtta ilgili yere 00.00.0000 olarak yapılıyor koduma bakarmısınız nerede yanlış yaptım
yeni kod yanlız tarihte araya . yı kabul ettiremedim
yeni kod yanlız tarihte araya . yı kabul ettiremedim
Kod: Tümünü seç
procedure TForm4.Button1Click(Sender: TObject);
var
yenit:TDate ;
xkim,xaidat,xyakit,ay,gun,ekle,idm,xay,xyil,xtarih:String;
s:Integer;
begin
if combobox1.Text='Ben Seçeyim' then
begin
idm:=edit3.text;
xaidat:=Edit1.Text;
xyakit:=Edit2.Text;
xay:=ComboBox3.Text;
xyil:=ComboBox2.Text;
ekle:='INSERT INTO hesap (kim,aidat,yakit,ay,yil) values'+'('+idm+','+QuotedStr(xaidat)+','+QuotedStr(xyakit)+','+QuotedStr(xay)+','+QuotedStr(xyil)+')';
ZQuery2.SQL.Text:=ekle; //Zquery1--->Zeos Bileşeni
ZQuery2.ExecSQL;
ZQuery1.Close;
ZQuery1.Open;
DBGrid2.Visible:=false;
dbgrid1.Visible:=true;
GridAyarla(DBGrid1);
DBGrid1.DataSource.DataSet.Fieldbyname('id').Visible:=false;
Edit3.Text:=DBGrid1.DataSource.DataSet.Fieldbyname('id').AsString
end
else
if combobox1.Text='Tüm Üyeler' then
for s:=1 to Form4.ZQuery2.RecordCount do
begin
xaidat:=Edit1.Text;
xyakit:=Edit2.Text;
xay:=ComboBox3.Text;
xyil:=ComboBox2.Text;
ay:=inttostr(combobox3.itemindex);
gun:=IntToStr(15);
xtarih:=gun+ay+xyil;
yenit:=StrToDate(xtarih);
ShowMessage(DateToStr(yenit));
ekle:='INSERT INTO hesap (kim,aidat,yakit,ay,yil,tarih) values'+'('+IntToStr(s)+','+QuotedStr(xaidat)+','+QuotedStr(xyakit)+','+QuotedStr(xay)+','+QuotedStr(xyil)+','+QuotedStr(xtarih)+')';
Re: combo da seçilen ayları rakama dönüştürme?
birincisi combobox ı kontrol ederken if combobox.text='Ben Seçeyim' then demişsin burda istisna bir durum yoksa yani eğer illaki 'Ben Seçeyim' gibi bir metin olmak zorunda değil ve bu kod ile amaç combobox dan birşeyler seçildiğini kontrol etmek ise; if combobox.itemindex>=0 then kullanılabilir daha kararlı olur.
ikincisi ise
olursa düzelecektir.
Kolay Gelsin.
ikincisi ise
Kod: Tümünü seç
xtarih:=gun+'.'+ay+'.'+xyil
Kolay Gelsin.
UWESIS CORPORATION
Re: combo da seçilen ayları rakama dönüştürme?
ben bir adım öndeyim heralda dediğinizide ben çözdüm ancak
burada tarihi yani (yenit) yi DateToStr mi yapcam yoksa QuotedStr mi onu çözemedim değer 00.00.0000 olarak kaydediliyor
benseçeyim kısmı ise o seçilirse hangi isim seçilirse o borçlandırılıyo vs. başka bir olay sorun çıkarsa sorarım zaten sağolun
Kod: Tümünü seç
ekle:='INSERT INTO hesap (kim,aidat,yakit,ay,yil,tarih) values'+'('+IntToStr(s)+','+QuotedStr(xaidat)+','+QuotedStr(xyakit)+','+QuotedStr(xay)+','+QuotedStr(xyil)+','+DateToStr(yenit)+')';
benseçeyim kısmı ise o seçilirse hangi isim seçilirse o borçlandırılıyo vs. başka bir olay sorun çıkarsa sorarım zaten sağolun
Re: combo da seçilen ayları rakama dönüştürme?
pelitt yazdı:ben bir adım öndeyim heralda dediğinizide ben çözdüm ancakburada tarihi yani (yenit) yi DateToStr mi yapcam yoksa QuotedStr mi onu çözemedim değer 00.00.0000 olarak kaydediliyorKod: Tümünü seç
ekle:='INSERT INTO hesap (kim,aidat,yakit,ay,yil,tarih) values'+'('+IntToStr(s)+','+QuotedStr(xaidat)+','+QuotedStr(xyakit)+','+QuotedStr(xay)+','+QuotedStr(xyil)+','+DateToStr(yenit)+')';
benseçeyim kısmı ise o seçilirse hangi isim seçilirse o borçlandırılıyo vs. başka bir olay sorun çıkarsa sorarım zaten sağolun
QuotedStr hiç kullanmadım açıkcası onun hakkında yorum yapamıycam ancak şöyle söyleyim mantıken eğer işin içinde tarih varsa datetostr saat veya saat+tarih formtından bir zaman bildirisi varsa datetimetostr kullanılır.QuotedStr ile ne yapmaya çalıştığını da yazarsan yardımcı olabilirim diye düşünüyorum.(Tarih ve saat parçalama vs. gibi işlemler için mi kullanıyorsun)
UWESIS CORPORATION
Re: combo da seçilen ayları rakama dönüştürme?
hayır amacım
combobox1 den gelen yılı
combobox2 den gelen ayı
gun:=15 sıtandart değişmeyecek
hepsini bir tarih yapıp mysql kaydetmek hesap yaptırırken hani o tarihten öceki tarihlerin değerlerini hesaplama açısından işime yarayacak
combobox1 den gelen yılı
combobox2 den gelen ayı
gun:=15 sıtandart değişmeyecek
hepsini bir tarih yapıp mysql kaydetmek hesap yaptırırken hani o tarihten öceki tarihlerin değerlerini hesaplama açısından işime yarayacak
Re: combo da seçilen ayları rakama dönüştürme?
bunların hepsinin değeri yanlış hatırlamıyorsam string di bunları birleştiriyordunuz da xtarih değişkenindeydi yanlış hatırlamıyorsam bu değişken türüde string di yapman gereken tek şey kaydetmek bir değişime ihtiyaç varmış gibi gözükmüyor.Hiçbir değişime uğramadan (QuotedStr(xaidat) gibi )bu değerleri veritabanına direk girmeye çalış.
Kolay Gelsin
Kolay Gelsin
UWESIS CORPORATION
Re: combo da seçilen ayları rakama dönüştürme?
sorun şundan kaynaklanıyor msql de tarih aralarında 12-09-2005 oluyor biz . koduk ondan kaynaklanıyor aradaki . yı - yapınca delphi tam kayıt ederken hata verdi tarih tipli olan sutunun tipini varchar yapsam olmazmı