cxGrid - LookupComboBox

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

cxGrid - LookupComboBox

Mesaj gönderen naile »

İki tane queryim var. Biri ürünler tablosu için diğeri seri numaraları tablosu için. Ürünler tablosunu cxgridde gösteriyorum, cxgridde ürün tablosundaki seri numarası alanı için lookupComboBox kullandım. Bu lookupComboboxta seri numaraları tablosundaki seri numaraları listeleniyor.

Şimdi sorunuma gelince..

Seri numaraları girilirken barkod okuyucu kullanılıyor. ben eğer properties de isFixed List kullanırsam liste haricinde bir seri numarası elle giremiyorlar ama barkod okuyucu ile okuttuklarında o seri numarası listede yoksa ve okutulan seri numarasının baş kısmı listedekilerin baş kısmı ile aynıysa listeden herhangi birini atıyor.
Mesele seri numarası ABCD, listede bu seri numarası yok ama ABCDE var. ABCD yi okuttuklarında oraya ABCDE yi atıyor.

isEdit List i kullandığımda onAfterPost eventına şöyle bir kod yazdım:

Kod: Tümünü seç

 if not(AQrSrNo.Locate('CODE',AQrUrmLineSrNo.AsString,[])) then      
 begin
   if AQrUrmLineSrNo.AsString <> '' then
   begin
     ShowMessage(AQrUrmLineSrNo.AsString+' numarası geçerli bir seri numarası değil');
     AQrUrmLine.Edit;
     AQrUrmLineSLTRef.AsInteger := 0;
     AQrUrmLineSrNo.AsString := '';
     AQrUrmLine.post;
   end;
burda rastgele bir değer girip mouse ile farklı bir satıra geçersem kod düzgün çalışıyor, ama entera basılırsa listedeki herhangi bir seri numarasını atıyor yine kendisi ve tabi ozaman uyarı vermiyor :(

Uzun oldu biraz ama umarım anlatabilmişimdir ve çözümü bilen vardır :cry:
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

Bence yanlış Event Kullanmışsın. AfterPost Yani Post Olduktan sonra. Bence Validasyonda yapabilirsin. Zira değer Accept edilmiş oluyor. Yani cxLookup yakın benzerini bulup değer atamasını yapıyor. Sen daha değer ataması yapılırken araya girmelisin.

Kolay Gelisin.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Abi aslında benim bu yazdıklarımı fieldın onChange'inde ve cxgridden eklediğim kolonun OnChange ve onEditValueChange olaylarında da denemdim. Ama orda locate sırasında kullanmak için o sırada yazılan seri numarasını bulmam lazım. ORda AqrUrmLineSrNo.Asstring dedim, eğer bu eventlerın içinde yaparsam daha önceden kayıtlı olan değeri karşılaştırıyor. O anda yazdığım değeri nasıl alacağım onu bilemedim açıkcası :oops:
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

sürekli barkod okuyucu ile veriler aktarılıyorsa combo yerine normal bir edit kullansanız daha iyi olmaz mı?
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Hayır sürekli barkod kullanmıyorlar maalesef
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Sanırım comboboxı kaldırmak ii bir çare olabilir (napalım istedimizi yapamazsak başka çareler bulmak gerek :) )
cemarik
Üye
Mesajlar: 45
Kayıt: 30 Ağu 2003 11:05
Konum: İzmir

Mesaj gönderen cemarik »

mesela bende barkod ve urun tablosu var
1 ürünün 1 den fazla barkodu olabilir diye bunlar urun_id ler le FK bağlı
barkod tablosunda varsa o barkoddan ürünün adı, fiyatı vs bilgilerine ulaşıp reçetede işliyorum

iki tabloda bağlantılı ve ihtiyaç duyulan alanları ve yapın hakkında bilgi verirsen veya bana gönderirseniz size yardımcı olabilrim.
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

LookupCombobox'ı kaldırıp fieldın OnChange eventında kontrolü yapınca halloldu, ilgilenen herkese teşekkürler..
Cevapla