Пример #1
0
 // 把事项重新全部加入listview
 public void AddToListView(ListView list)
 {
     for (int i = 0; i < this.Count; i++)
     {
         OrderItem item = this[i];
         item.AddToListView(list);
     }
 }
Пример #2
0
        // parameters:
        //       changed_refids  累加修改过的 refid 对照表。 原来的 --> 新的
        /// <summary>
        /// 根据一个 XML 字符串内容,构建出集合内的若干事项
        /// </summary>
        /// <param name="nodeOrderCollection">XmlNode对象,本方法将使用其下属的 dprms:order 元素来构造事项</param>
        /// <param name="list">ListView 对象。构造好的事项会显示到其中</param>
        /// <param name="bRefreshRefID">构造事项的过程中,是否要刷新每个事项的 RefID 成员值</param>
        /// <param name="changed_refids">累加修改过的 refid 对照表。 原来的 --> 新的</param>
        /// <param name="strError">返回出错信息</param>
        /// <returns>-1: 出错。错误信息在 strError 中; 0: 成功</returns>
        public int ImportFromXml(XmlNode nodeOrderCollection,
                                 ListView list,
                                 bool bRefreshRefID,
                                 ref Hashtable changed_refids,
                                 out string strError)
        {
            strError = "";
            int nRet = 0;

            if (nodeOrderCollection == null)
            {
                return(0);
            }

            XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable());

            nsmgr.AddNamespace("dprms", DpNs.dprms);

            XmlNodeList nodes = nodeOrderCollection.SelectNodes("dprms:order", nsmgr);

            for (int i = 0; i < nodes.Count; i++)
            {
                XmlNode node = nodes[i];

                OrderItem order_item = new OrderItem();
                nRet = order_item.SetData("",
                                          node.OuterXml,
                                          null,
                                          out strError);
                if (nRet == -1)
                {
                    return(-1);
                }

                if (bRefreshRefID == true)
                {
                    string strOldRefID = order_item.RefID;
                    order_item.RefID = Guid.NewGuid().ToString();

                    changed_refids[strOldRefID] = order_item.RefID;
                }

                // TODO: distribute 里面的册参考 ID 需要替换

                this.Add(order_item);
                order_item.ItemDisplayState = ItemDisplayState.New;
                order_item.AddToListView(list);

                order_item.Changed = true;
            }

            return(0);
        }
Пример #3
0
        // parameters:
        //       changed_refids  累加修改过的 refid 对照表。 原来的 --> 新的
        /// <summary>
        /// 根据一个 XML 字符串内容,构建出集合内的若干事项
        /// </summary>
        /// <param name="nodeOrderCollection">XmlNode对象,本方法将使用其下属的 dprms:order 元素来构造事项</param>
        /// <param name="list">ListView 对象。构造好的事项会显示到其中</param>
        /// <param name="bRefreshRefID">构造事项的过程中,是否要刷新每个事项的 RefID 成员值</param>
        /// <param name="changed_refids">累加修改过的 refid 对照表。 原来的 --> 新的</param>
        /// <param name="strError">返回出错信息</param>
        /// <returns>-1: 出错。错误信息在 strError 中; 0: 成功</returns>
        public int ImportFromXml(XmlNode nodeOrderCollection,
            ListView list,
            bool bRefreshRefID,
            ref Hashtable changed_refids,
            out string strError)
        {
            strError = "";
            int nRet = 0;

            if (nodeOrderCollection == null)
                return 0;

            XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable());
            nsmgr.AddNamespace("dprms", DpNs.dprms);

            XmlNodeList nodes = nodeOrderCollection.SelectNodes("dprms:order", nsmgr);
            for (int i = 0; i < nodes.Count; i++)
            {
                XmlNode node = nodes[i];

                OrderItem order_item = new OrderItem();
                nRet = order_item.SetData("",
                    node.OuterXml,
                    null,
                    out strError);
                if (nRet == -1)
                    return -1;

                if (bRefreshRefID == true)
                {
                    string strOldRefID = order_item.RefID;
                    order_item.RefID = Guid.NewGuid().ToString();

                    changed_refids[strOldRefID] = order_item.RefID;
                }

                this.Add(order_item);
                order_item.ItemDisplayState = ItemDisplayState.New;
                order_item.AddToListView(list);

                order_item.Changed = true;
            }

            return 0;
        }