Lookuptan açtığımız herhangi bir browserdaki grid'ten  çoklu satırı elle seçip kod yardımı ile başka bir gride aktarım yapabiliriz.

Örnek olarak aşağıdaki adımları inceleyiniz.

 1 -  Çağırılacak olan Browser'ın  eventHandler  sınıfı IDataGridSelectionKeyListener  interface eklenir.

onInitilaze metodu örnekteki gibi gerçeklenir.

onInitialize
public void onInitialize(JLbsXUIControlEvent event)
{
	JLbsQuerySelectionGridgrid = event.getContainer().getComponentByTag(100);
	grid.setDataGridSelectionListener(this);
}


2 - Browser'ın  OnGridSetLookUp event'ına metod tanımı örnekteki gibi yapılır.

  • Çoklu satır seçimi yapıldığında seçilen satırlar multiselectionList parametresine atanır.

Not: Eventhandler sınıfımıza interface olarak IDataGridSelectionKeyListener eklemiştik.

Bu nedenle getKeyAssociatedData metodunuda örnekteki gibi değiştirmemiz gerekecektir.

public void onGridSetLookupData(JLbsXUIDataGridEvent event)
{
	JLbsQuerySelectionGrid grid = (JLbsQuerySelectionGrid) event.getContainer().getComponentByTag(100);
	JLbsXUILookupInfo lookupInfo =(JLbsXUILookupInfo) event.getLookupData();
	lookupInfo.getParameters().put("MultiSelectionList", grid.getMultiSelectionList());
}
public Object getKeyAssociatedData(Object key, Object obj)
{
	return obj;
}


3 - LookUp işlemini ile oluşturulan grid’in onInvoke tanımlarına kendi metodumuzu ekleyelim.


4 - Metodun birinci kısmı;

  • seçim yapılacak browserdan seçili alanlar gride alınır.

    JLbsXUILookupInfo info = new JLbsXUILookupInfo();
    boolean ok = m_Container.openChild("Forms/CBFStudent.lfrm", info, true, JLbsXUITypes.XUIMODE_DBSELECT);
    if ((!ok) || (info.getResult() <= 0))
    	return;
    MultiSelectionList list = (MultiSelectionList) info.getParameter("MultiSelectionList");
    usersGrid = (com.lbs.grids.JLbsObjectListGrid) m_Container.getComponentByTag(2000015); 
    

5 - Metodun ikinci kısmı;

  • Datalar form üzerindeki gride atama işlemi gerçekleştirir.
for (int i = 0; i <list.size(); i++) {
	QueryObjectIdentifier qId =(QueryObjectIdentifier) list.get(i);
	QueryBusinessObject qbo =(QueryBusinessObject) qId.getAssociatedData();
	CustomBusinessObject gridLineObject  = ProjectUtil.createNewCBO("CBOCourseLine");
	CustomBusinessObject studentlink  = ProjectUtil.createNewCBO("StudentLink");
	ProjectUtil.setMemberValueUn(gridLineObject, "StudentLink",studentlink);
	ProjectUtil.setMemberValueUn(gridLineObject,"StudentLink.Name", QueryUtil.getStringProp(qbo, "NAME"));
	ProjectUtil.setMemberValueUn(gridLineObject,"StudentLink.SurName",QueryUtil.getStringProp(qbo,"SURNAME"));
	ProjectUtil.setMemberValueUn(gridLineObject,"StudentLink.Gender", QueryUtil.getIntProp(qbo, "GENDER"));
	ProjectUtil.setMemberValueUn(gridLineObject, "Price", 123);
	usersGrid.getObjects().set(usersGrid.getObjects().size()-1, gridLineObject);
	addNewUserLine();
}
Aktarım Kodu (Tamamı)
public void onClickSelectSubscriber(ILbsXUIPane container, Object data, IClientContextcontext) {
	JLbsXUILookupInfo info = new JLbsXUILookupInfo();
	boolean ok = m_Container.openChild("Forms/CBFStudent.lfrm",info, true, JLbsXUITypes.XUIMODE_DBSELECT);
	if ((!ok) || (info.getResult() <= 0))
    	return;
	MultiSelectionList list =(MultiSelectionList) info.getParameter("MultiSelectionList");
	usersGrid = ((com.lbs.grids.JLbsObjectListGrid) m_Container.getComponentByTag(2000015));  
	for (int i = 0; i <list.size(); i++) {
		QueryObjectIdentifier qId =(QueryObjectIdentifier) list.get(i);
	QueryBusinessObject qbo =(QueryBusinessObject) qId.getAssociatedData();
 	CustomBusinessObject gridLineObject  = ProjectUtil.createNewCBO("CBOCourseLine");
	CustomBusinessObject studentlink  = ProjectUtil.createNewCBO("StudentLink");
	ProjectUtil.setMemberValueUn(gridLineObject,"StudentLink",studentlink);
	ProjectUtil.setMemberValueUn(gridLineObject,"StudentLink.Name", QueryUtil.getStringProp(qbo, "NAME"));
	ProjectUtil.setMemberValueUn(gridLineObject,"StudentLink.SurName", QueryUtil.getStringProp(qbo, "SURNAME"));
	ProjectUtil.setMemberValueUn(gridLineObject, "StudentLink.Gender", QueryUtil.getIntProp(qbo, "GENDER"));
	ProjectUtil.setMemberValueUn(gridLineObject, "Price", 123);
	usersGrid.getObjects().set(usersGrid.getObjects().size()-1,gridLineObject);
	addNewUserLine();
	}
}


6 -   Gride ilk kayıt ekleme işlemi sonrası yeni bir satır daha eklemek için bu metodu kullanılması gerekmektedir.

private void addNewUserLine() {
	CustomBusinessObject user = ProjectUtil.createNewCBO("CBOCourseLine");
	CustomBusinessObjects users = (CustomBusinessObjects)ProjectUtil.getMemberValue(cbo, "LineLink");
	users.add(user);
}




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