combobox itemindex atama

Diğer veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
akuyumcu63
Üye
Mesajlar: 386
Kayıt: 02 Tem 2007 09:43

combobox itemindex atama

Mesaj gönderen akuyumcu63 »

değerli arkadaşlar;

QryAylar.Close;
QryAylar.SQL.Text := 'select aciklama,vadesi from carihrkt where (extract(month from vadesi) = 10)';
QryAylar.Open;

yukarıdaki kod mevcut haliyle çalışıyor ancak ben 10 değerini combobox'ın itemindexi ile program içinde değiştirmek istiyorum.
combobox1.itemindex numarasının atanmasını sağlayabilirmiyim aşağıdaki gibi, inşallah anlatabildim.

QryAylar.Close;
QryAylar.SQL.Text := 'select aciklama,vadesi from carihrkt where (extract(month from vadesi) = combobox1.itemindex)';
QryAylar.Open;

kolay gelsin,
İsteyen, yapabildiğinden daha fazlasını yapar.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: combobox itemindex atama

Mesaj gönderen aslangeri »

s.a.
öncelikle kodlarınızı code tagı kullanarak yazarsanız daha okunaklı olur.
cevap olarak da evet yapabilirsiniz. itemindex integer tipinde olduğu için inttostr ile string e dönüştürmeniz lazım.

Kod: Tümünü seç

 sql:='select a,b,c,d from xxx where abc='+inttostr(combo.itemindex);
gibi bişey olur.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
akuyumcu63
Üye
Mesajlar: 386
Kayıt: 02 Tem 2007 09:43

Re: combobox itemindex atama

Mesaj gönderen akuyumcu63 »

yapmaya çalıştığım işin ne olduğunu önce anlatayım. benim bir çek tablom var. bütün çeklerimi dbgridde listeliyorum. bir adet combobox ekledim. combobox in items ine EYLÜL, EKİM, KASIM diye aylarını ekledim.

combobox ın onchange ine aşagıdaki kodu yazarak listeden ayları seçtikçe seçilen aya ait çekleri listeletmek istiyorum. ilk yazdığım mesajda, 10 değeri yerine itemindexin sayısal değerini atamak istiyorum. combobox tan seçilen items in index numarasına göre 10 değerinin değişmesini istiyorum. aşağıdaki koddu verdiğiniz bilgilere göre değiştirmeye çalıştım ama yapamadım. bilgilerinizi tekrar rica edebilirmiyim.

query1.Close;
query1.SQL.Text := 'select aciklama,vadesi from tablo1 where extract(month from vadesi) ='+inttostr(cxcombobox1.itemindex);
query1.Open;
İsteyen, yapabildiğinden daha fazlasını yapar.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: combobox itemindex atama

Mesaj gönderen aslangeri »

s.a.
yapamadım derken kodlar hata mı verdi yoksa istediğiniz sonuç mu dönmedi.
Ben istediğiniz sonuç dönmediği şeklinde yorumluyorum ve aşağıdaki cevap ona göre verilmiştir.

O zaman direk itemindex kullanmak yerine itemindex +9 demeniz gerekiyor.
EYLÜL=9.ay=itemindex(sıfır oluyor)+9
EKİM=10.ay=itemindex(1 oluyor)+9
KASIM=11.ay=itemindex(2 oluyor)+9
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
akuyumcu63
Üye
Mesajlar: 386
Kayıt: 02 Tem 2007 09:43

Re: combobox itemindex atama

Mesaj gönderen akuyumcu63 »

öncelikle cevap yazmada geciktiğim için özür dilerim. kod hata verdi calışmadı. ama uzun yoldan da olsa sorunu hallettim.

şu şekilde hallettim. 12 adet query kullandım (her taraf Query ile doldu :D ) her birinin itemsine aşağıdaki kodların bir tanesini ekledim.

select aciklama,vadesi from tablo1 where extract(month from vadesi) =1 (ocak ayının querisine)
select aciklama,vadesi from tablo1 where extract(month from vadesi) =2 (şubat ayının querisine)
select aciklama,vadesi from tablo1 where extract(month from vadesi) =3 (mart ayının querisine)
select aciklama,vadesi from tablo1 where extract(month from vadesi) =4 ....

daha sonra combobox ın onchange ine aşağıdaki koddan, her itemindex için ayrı ayrı kullandım.

CxGrid1DBTableView1.DataController.DataSource :=Datasourceocak;
QryOcak.Close;
QryOcak.Open;

comboboxın items ine de bütün ayları ekledim. programı çalıştırınca combobox tan hangi ayı seçiyorsam o ayın çek listesi gelmekte.
biraz uzun oldu ama ne yapalım. :(

iyi çalışmalar;
İsteyen, yapabildiğinden daha fazlasını yapar.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: combobox itemindex atama

Mesaj gönderen aslangeri »

s.a.
arkadaşım eğer combobox a bütün ayları dolduracaksan direk combobox un itemindexini kullansana.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
akuyumcu63
Üye
Mesajlar: 386
Kayıt: 02 Tem 2007 09:43

Re: combobox itemindex atama

Mesaj gönderen akuyumcu63 »

s.a.

sql:='select a,b,c,d from xxx where abc='+inttostr(combo.itemindex);

yazmış olduğunuz yukarıdaki kod sistemini kullanmıştım kod hata vermişti. şu şekilde kullanmıştım,

query1.SQL.Text := 'select aciklama,vadesi from tablo1 where extract(month from vadesi) ='+inttostr(cxcombobox1.itemindex);

ama bir sonuç alamayınca her ay için ayrı query kullanmak zorunda kaydım. combobox ın itemindex ini nasıl atayabilirim.

kolay gelisin,
İsteyen, yapabildiğinden daha fazlasını yapar.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: combobox itemindex atama

Mesaj gönderen aslangeri »

s.a.
öncelikle "hata verdi" ifadesinin bir anlamı yok. çünkü bir çok sebebten dolayı hata verebilir. Hata mesajını söylerseniz ona göre yardım etmemiz daha kolay olur.

Kod: Tümünü seç

select aciklama,vadesi from tablo1 where extract(month from vadesi) =1
satırını

Kod: Tümünü seç

q.sql.clear;
q.sql.add('select aciklama,vadesi from tablo1 where extract(month from vadesi) ='+inttostr(combo.itemindex));
şeklinde yaparsan tek satırda problemi halletmiş olursun.
bunun yerine parametre kullanarak da yapabilirsin.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
akuyumcu63
Üye
Mesajlar: 386
Kayıt: 02 Tem 2007 09:43

Re: combobox itemindex atama

Mesaj gönderen akuyumcu63 »

sayenizde sonunda güzel oldu.

:bravo: :bravo: :bravo: :bravo: :bravo: :bravo: sabırla beni dinleyip sorularıma cevap verdiğiniz için :bravo: :bravo: :bravo: :bravo: :bravo: :bravo:
İsteyen, yapabildiğinden daha fazlasını yapar.
Cevapla