zoukankan      html  css  js  c++  java
  • XAF中如何制作弹出窗体选择数据到ListView列表

    1.问题:

             有多对对关系对象,想为从对象选择数据录入从别的相关对象。

    2.实现思路:

        A.弹出选择窗体,从中选出所需记录

           B.将A和B组合为从对象,保存

           C.修改主从对象列表为可编辑(在View 中 Item_Detail_ListView设置为可编辑)

    3.代码实现

       public partial class MP_Item_SelectOrderVC : ViewController
        {
            
    public MP_Item_SelectOrderVC()
            {
                InitializeComponent();
                RegisterActions(components);
            }

            
    protected override void OnActivated()
            {
                
    base.OnActivated();
                
    //按鈕在ViewId == "MP_Item_MP_ItemDetailCollection_ListView" 顯示
                pwsaSelectOrder.Active.SetItemValue("ViewId", View.Id == "MP_Item_MP_ItemDetails_ListView");// Application.FindListViewId(typeof(MP_ItemDetail)));

                
    //啟用Lookup查詢
                if (View.Id == Application.FindListViewId(typeof(MP_MRF)) && Frame.Template is ILookupPopupFrameTemplate)
                {
                    ((ILookupPopupFrameTemplate)Frame.Template).IsSearchEnabled 
    = true;
                    ListView listView 
    = ((ListView)View);
                    listView.CollectionSource.Criteria.Add(
    "EmptyCollectionCriteria", CollectionSource.EmptyCollectionCriteria);
                    listView.CollectionSource.Criteria.Changed 
    += delegate(object sender, EventArgs e)
                    {
                        
    //if (!ReferenceEquals(listView.CollectionSource.Criteria[FullTextSearchCriteriaBuilder.CriteriaName], null))
                        if (!ReferenceEquals(listView.CollectionSource.Criteria[FilterController.FullTextSearchCriteriaName], null))
                        {
                            listView.CollectionSource.Criteria.Remove(
    "EmptyCollectionCriteria");
                        }
                        
    else
                        {
                            
    if (!listView.CollectionSource.Criteria.ContainsKey("EmptyCollectionCriteria"))
                            {
                                listView.CollectionSource.Criteria.Add(
    "EmptyCollectionCriteria", CollectionSource.EmptyCollectionCriteria);
                            }
                        }
                    };
                }
            }

            
    private void pwsaSelectOrder_CustomizePopupWindowParams(object sender, CustomizePopupWindowParamsEventArgs e)
            {
                
    //創建彈出窗口視圖
                ObjectSpace objectSpace = Application.CreateObjectSpace();
                
    string applicationFindListViewId = Application.FindListViewId(typeof(MP_MRF));
                e.View 
    = Application.CreateListView(
                   applicationFindListViewId,
                   Application.CreateCollectionSource(objectSpace, 
    typeof(MP_MRF), applicationFindListViewId),
                   
    true
                );
            }

            
    private void pwsaSelectOrder_Execute(object sender, PopupWindowShowActionExecuteEventArgs e)
            {
                
    try
                {
                    
    //需要测试 
                    
    //2010-07-27
                    PropertyCollectionSource pcs = ((ListView)View).CollectionSource as PropertyCollectionSource;
                    MP_Item item 
    = pcs.MasterObject as MP_Item;//获取主对象实例
                    int i = 1;
                    
    if (item == nullreturn;
                    
    foreach (MP_MRF mrf in e.PopupWindow.View.SelectedObjects)
                    {
                        MP_ItemDetail detail 
    = null;//ObjectSpace.Session.FindObject<MP_ItemDetail>(new BinaryOperator("Material", "Sam"));
                        
    //if (detail == null)
                        
    //{
                            detail = new MP_ItemDetail(ObjectSpace.Session);
                            detail.Material 
    = mrf.COMPONENT;
                            detail.Material_Description 
    = mrf.COMPONENT_DESCRIPTION;
                            detail.Unit 
    = mrf.COMPONT_UNIT;
                            detail.Item_ID 
    = item ;
                            item.Note 
    = mrf.OrderNO;
                            
    //detail.Save();
                        
    //}
                        
    //給主對象賦值
                        if (i == 1//給主對象賦值,只賦值一次
                        {
                            item.OrderNO 
    = mrf.OrderNO;
                            item.PNO 
    = mrf.Material;
                            
    //item.PQty = mrf.Order_Qty;
                            item.PUnit = mrf.Unit;
                            item.Plnt 
    = mrf.Plnt;
                            
    //item.PDescription = mrf.Description;
                            i++;
                        }
                    }

                    
    View.ObjectSpace.CommitChanges();
                    
    View.ObjectSpace.Refresh();
                }
                
    catch (Exception ex)
                {
                      
    throw ex;
                }

            }

       
        }

    欢迎转载,转载请注明出处:http://www.cnblogs.com/Tonyyang/

  • 相关阅读:
    null in ABAP and nullpointer in Java
    SAP ABAP SM50事务码和Hybris Commerce的线程管理器
    Hybris service layer和SAP CRM WebClient UI架构的横向比较
    SAP ABAP和Linux系统里如何检查网络传输的数据量
    SAP CRM WebClient UI和Hybris的controller是如何被调用的
    SAP CRM和Cloud for Customer订单中的业务伙伴的自动决定机制
    SAP CRM WebClient UI和Hybris CommerceUI tag的渲染逻辑
    SAP BSP和JSP页面里UI元素的ID生成逻辑
    微信jsapi支付
    微信jsapi退款操作
  • 原文地址:https://www.cnblogs.com/Tonyyang/p/1619275.html
Copyright © 2011-2022 走看看