Lookup

Herhangi bir formda ComboTextEdit butonuna tıklandığında, açılan browser ekranıdır.

Bu ekranda bellirli bir data listesi gösterilebilir. Bunun için query'de parametre tanımı yapmak gerekir.

Bunu bir örnek üzerinden inceleyelim. Örneğimizi kurs projesi üzerinden yapalım.

1 - İlk olarak parametre tanımı yapacağimiz browser'ın queryes klasörü altından tanımını seçiyoruz;

2 -

  • Parameters alanıda "Name" kısmına kendimiz bir parametre ismi belirleriz,
  •  Örnekte "P_Name" yazıyoruz
  •  "Column Alias" yerinede combobox'tan hangi alana parametre tanımlayacaksak o alanı seçiyoruz.

3 -

  • Restriction Terms ekranında girilen parametrenin table'ın hangi alnıyla term oluşturulacağını belirleriz.
  •  Insert yaptığımızda gelen Query term pupup ekranına tanımları gireriz. "Name" kendimizin belirlediği bir Term ismini gireriz.
  •  Enable alanı bu parametre işleminin her browser açıldığında çalışıp çalışmaması gerektiğini belirmek için kullanılır,  false olarak belirtiyoruz sadece lookup açılırken çalışmasını istiyoruz.
  • "Term Condititon" alanıda  parametreyle table içersinde ki alanı girip yukarıda tanımladığımız parametre alanıyla eşit olan class isimlerini getirmesini istiyoruz.

4 - Yukarda tanımlanan parametreleri lookup tanımları yaparken eklenir.

      Aşağıdaki gibi lookup action, tanımlama alanına geldikten sonra  "Query Terms" alanına tanımladığımız term alanını ekleriz next butonuna basıp diyer sayfaya geçeriz.

    


5 - Sonra ki sayfada bulunan Query Parameters tanımlama alanına Parametreler tanımını yaparız,

query ekranında tanımladığımız parametre ismini "Name" kısmına tanımladıktan sonra "Value" kısmına parametrenin alacağı değeri gireriz.

Class ismi için parametre tanımladığımız için value kısmına gireceğimiz isimin eşiti olan dataları listeliyecektir.


6 - Aynı şekilde parametre tanımlarını kod kısmında da yapabiliyoruz;

  Aşağıdaki metod  ComboTextEdit'in eventında çağırırız,


 Parametre işlemenin yapıldığı yerdir;

JLbsXUILookupInfo info = new JLbsXUILookupInfo(); 
info.setQueryParamValue("P_CLASSNAME", "MAT%"); info.setQueryTerms(new String[] {"T_CLASSNAME"});


info.setParamValue("P_Name","isimdeğişkeni") burada parametre alanına kendi belirttiğim isim değişkenini atıyoruz.   

info.setQueryTerms(new String[]{"T_NAME"}) 

burada da query içersinde tanımladığımız term'ü tanımlarız.

public void ClassonLookup(JLbsXUIControlEvent event) {
                              
CustomBusinessObject data = (CustomBusinessObject) event.getData();
JLbsXUIPane container = event.getContainer();
JLbsXUILookupInfo info = new JLbsXUILookupInfo();
info.setQueryParamValue("P_CLASSNAME", "MAT%");
info.setQueryTerms(new String[] {"T_CLASSNAME"});
                             
boolean ok =container.openChild("Forms/CFClassBrowser.lfrm", info,                                                              
true, JLbsXUITypes.XUIMODE_DBSELECT);
                              
if ((!ok) || (info.getResult() <= 0))
 return;

int classLRef = info.getIntegerData("LOGICALREF");     
int classCapacity =info.getIntegerData("CAPACITY");     
String className = info.getStringData("CLASSNAME");
                            
ProjectUtil.setMemberValue(data, "ClassReference", classLRef);
ProjectUtil.setMemberValue(data, "ClassLink.Capacity",classCapacity);
ProjectUtil.setMemberValue(data, "ClassLink.ClassName",className);
                                                     
container.resetValueByTag(2000006);                              
container.resetValueByTag(2000012);             
}




Telif HakkıKullanım KoşullarıGizlilik
Copyright © 2018 Logo Yazılım