Esempio n. 1
0
        /// <summary>
        /// xml "<vendor><ccuscode1>1</ccuscode1><cVenCode2>2</cVenCode2></vendor>\r\n"
        /// 1并到2
        /// </summary>
        /// <param name="doc"></param>
        /// <returns></returns>
        public object LinkMerge(IXMLDOMDocument2 doc)
        {
            l.Remove(l.First(e => e.UfColumnName.Equals(ufPriKey)));
            l.Add(new BaseMode(ufPriKey, GetNodeValue(doc, "/customer/ccuscode1"), "/customer/ccuscode1", "CustomerCode", GetNodeValue(doc, "/customer/ccuscode1"), null, null));

            return(base.Delete());
        }
Esempio n. 2
0
        public BarCodeMain(ref ADODB.Connection conn, IXMLDOMDocument2 doc, string ufConnStr)
            : base(conn, ufConnStr)
        {
            oracleTableName = "tblerpmcard";
            oraclePriKey    = "mcard";
            ufTableName     = "HY_BarCodeMain";
            ufPriKey        = "BarCode";

            SetData(doc);
        }
Esempio n. 3
0
        /// <summary>
        /// xml "<vendor><ccuscode1>1</ccuscode1><cVenCode2>2</cVenCode2></vendor>\r\n"
        /// 1并到2
        /// </summary>
        /// <param name="doc"></param>
        /// <returns></returns>
        public object LinkMerge(IXMLDOMDocument2 doc)
        {
            l.Remove(l.First(e => e.UfColumnName.Equals(ufPriKey)));
            l.Add(new BaseMode(ufPriKey, GetNodeValue(doc, "/customer/ccuscode1"), "/customer/ccuscode1", "CustomerCode", GetNodeValue(doc, "/customer/ccuscode1"), null, null));

            l.Add(new BaseMode(null, null, null, "EDITPROP", "D", null, null));
            l.Add(new BaseMode(null, null, null, "FINISHFLAG", "0", null, null));
            l.Add(new BaseMode(null, null, null, "dModifyDate", System.DateTime.Now.ToString(), null, null));

            return(base.Delete());
        }
Esempio n. 4
0
 /// <summary>
 /// 获取dom结点值
 /// </summary>
 /// <param name="xml"></param>
 /// <param name="nodeName">/inventory/cinvcode</param>
 /// <returns></returns>
 protected string GetNodeValue(IXMLDOMDocument2 doc, string nodeName)
 {
     try
     {
         return(doc.selectSingleNode(nodeName).text);
     }
     catch
     {
         return("");
     }
 }
Esempio n. 5
0
 public GroupVouch(ref ADODB.Connection conn, IXMLDOMDocument2 doc, IXMLDOMDocument2 docbody, string ufConnStr, string _opertype)
     : base(conn, ufConnStr)
 {
     oracleTableName   = "MES_CQ_GroupVouch";                                                                           //目标表名
     oraclePriKey      = "ccode";                                                                                       //目标表逻辑主键
     fieldcmpTablename = "MES_CQ_GroupVouch";
     ufTableName       = "GroupVouch";                                                                                  // "SaleOrderQ";       //来源表名
     ufPriKey          = "ccode";                                                                                       //来源表主键
     this._ccode       = ((IXMLDOMElement)doc.selectSingleNode("/xml/rs:data/z:row")).getAttribute("ccode").ToString(); //GetNodeValue(doc, "/GroupVouch/ccode");
     this.opertype     = _opertype;
 }
Esempio n. 6
0
        public Inventory(ref ADODB.Connection conn, IXMLDOMDocument2 doc, string ufConnStr, string _opertype)
            : base(conn, ufConnStr)
        {
            oracleTableName   = "MES_CQ_Inventory"; //目标表名
            oraclePriKey      = "cInvCode";         //目标表主键
            fieldcmpTablename = "MES_CQ_Inventory";
            ufTableName       = "Inventory";        //来源表名
            ufPriKey          = "cInvCode";         //来源表主键
            this.opertype     = _opertype;

            SetData(doc);
        }
Esempio n. 7
0
        public ComputationUnit(ref ADODB.Connection conn, IXMLDOMDocument2 doc, string ufConnStr, string _opertype)
            : base(conn, ufConnStr)
        {
            oracleTableName   = "MES_ComputationUnit"; //目标表名
            oraclePriKey      = "cComunitCode";        //目标表主键
            fieldcmpTablename = "ComputationUnit";
            ufTableName       = "ComputationUnit";     //来源表名
            ufPriKey          = "cComunitCode";        //来源表主键
            this.opertype     = _opertype;

            SetData(doc);
        }
Esempio n. 8
0
        public Person(ref ADODB.Connection conn, IXMLDOMDocument2 doc, string ufConnStr, string _opertype)
            : base(conn, ufConnStr)
        {
            oracleTableName   = "MES_Person";   //目标表名
            oraclePriKey      = "cPsn_Num";     //目标表主键
            fieldcmpTablename = "hr_hi_person";
            ufTableName       = "hr_hi_person"; //来源表名
            ufPriKey          = "cPsn_Num";     //来源表主键
            this.opertype     = _opertype;      //业务操作类型

            SetData(doc);
        }
Esempio n. 9
0
        //protected string oracleTableName = "MES_Department";   //目标表名
        //protected string oraclePriKey = "cDepCode";      //目标表主键

        //protected string fieldcmpTablename = "Department";

        //protected string ufTableName = "Department";       //来源表名
        //protected string ufPriKey = "cDepCode";          //来源表主键

        public Sfc_workcenter(ref ADODB.Connection conn, IXMLDOMDocument2 doc, string ufConnStr, string _opertype)
            : base(conn, ufConnStr)
        {
            oracleTableName   = "MES_CQ_Workcenter"; //目标表名
            oraclePriKey      = "WcCode";            //目标表主键
            fieldcmpTablename = "MES_CQ_Workcenter";
            ufTableName       = "Sfc_workcenter";    //来源表名
            ufPriKey          = "WcCode";            //来源表主键
            this.opertype     = _opertype;

            SetData(doc);
        }
Esempio n. 10
0
        public Customer(ref ADODB.Connection conn, IXMLDOMDocument2 doc, string ufConnStr)
            : base(conn, ufConnStr)
        {
            oracleTableName = "TBLERPCustomer";
            oraclePriKey    = "CustomerCode";
            ufTableName     = "Customer";
            ufPriKey        = "ccuscode";

            l.Add(new BaseMode("ccuscode", GetNodeValue(doc, "/customer/ccuscode"), "/customer/ccuscode", "CustomerCode", GetNodeValue(doc, "/customer/ccuscode"), null, null));
            l.Add(new BaseMode("ccusname", GetNodeValue(doc, "/customer/ccusname"), "/customer/ccusname", "CustomerName", GetNodeValue(doc, "/customer/ccusname"), null, null));
            l.Add(new BaseMode(null, null, null, "Flag", "W", null, null));

            l.Add(new BaseMode(null, null, null, "FINISHFLAG", "0", null, null));
            l.Add(new BaseMode(null, null, null, "dModifyDate", System.DateTime.Now.ToString(), null, null));
        }
Esempio n. 11
0
File: Vendor.cs Progetto: sky-tc/U8
        public Vendor(ref ADODB.Connection conn, IXMLDOMDocument2 doc, string ufConnStr)
            : base(conn, ufConnStr)
        {
            oracleTableName = "MES_CQ_Vendor";
            oraclePriKey    = "cvencode";
            ufTableName     = "Vendor";
            ufPriKey        = "cvencode";

            l.Add(new BaseMode("id", null, null, "id", Guid.NewGuid().ToString(), null, null));
            l.Add(new BaseMode("cvencode", GetNodeValue(doc, "/vendor/cvencode"), "/vendor/cvencode", "cvencode", GetNodeValue(doc, "/vendor/cvencode"), null, null));
            l.Add(new BaseMode("cVenName", GetNodeValue(doc, "/vendor/cvenname"), "/vendor/cvenname", "cvenname", GetNodeValue(doc, "/vendor/cvenname"), null, null));
            l.Add(new BaseMode("cvccode", GetNodeValue(doc, "/vendor/cvccode"), "/vendor/cvccode", "cvccode", GetNodeValue(doc, "/vendor/cvccode"), null, null));
            l.Add(new BaseMode("cvenperson", GetNodeValue(doc, "/vendor/cvenperson"), "/vendor/cvenperson", "cVenContact", GetNodeValue(doc, "/vendor/cvenperson"), null, null));
            l.Add(new BaseMode("cvenhand", GetNodeValue(doc, "/vendor/cvenhand"), "/vendor/cvenhand", "cVenContactPhone", GetNodeValue(doc, "/vendor/cvenhand"), null, null));
        }
Esempio n. 12
0
        public Customer(ref ADODB.Connection conn, IXMLDOMDocument2 doc, string ufConnStr)
            : base(conn, ufConnStr)
        {
            oracleTableName = "MES_CQ_Customer";
            oraclePriKey    = "ccuscode";
            ufTableName     = "Customer";
            ufPriKey        = "ccuscode";


            l.Add(new BaseMode("id", null, null, "id", Guid.NewGuid().ToString(), null, null));

            l.Add(new BaseMode("ccuscode", GetNodeValue(doc, "/customer/ccuscode"), "/customer/ccuscode", "ccuscode", GetNodeValue(doc, "/customer/ccuscode"), null, null));
            l.Add(new BaseMode("ccusname", GetNodeValue(doc, "/customer/ccusname"), "/customer/ccusname", "ccusname", GetNodeValue(doc, "/customer/ccusname"), null, null));
            l.Add(new BaseMode("ccccode", GetNodeValue(doc, "/customer/ccccode"), "/customer/ccccode", "ccccode", GetNodeValue(doc, "/customer/ccccode"), null, null));
            l.Add(new BaseMode("ccusname", GetNodeValue(doc, "/customer/ccusaddress"), "/customer/ccusaddress", "ccusaddress", GetNodeValue(doc, "/customer/ccusaddress"), null, null));
            l.Add(new BaseMode("ccusotype", GetNodeValue(doc, "/customer/ccusotype"), "/customer/ccusotype", "ccusotype", GetNodeValue(doc, "/customer/ccusotype"), null, null));
            l.Add(new BaseMode("ccusdefine1", GetNodeValue(doc, "/customer/ccusdefine1"), "/customer/ccusdefine1", "ccusdefine1", GetNodeValue(doc, "/customer/ccusdefine1"), null, null));
        }
        public bool Save_before(ref IXMLDOMDocument2 domhead, ref IXMLDOMDocument2 dombody, ref string errMsg)
        {
            MomCallContext  currentMomCallContext = MomCallContextCache.Instance.CurrentMomCallContext;
            clsLogin        clsLogin = (clsLogin)currentMomCallContext.U8Login;
            IXMLDOMNodeList headval  = domhead.selectNodes("//rs:data/z:row");
            IXMLDOMNodeList bodyval  = dombody.selectNodes("//rs:data/z:row");

            string csocode = "", ddate = "", ccuscode = "", ccusname = "";
            string cinvcode = "", iquantity = "", iunitprice = "", cinvname = "";

            wl.WriteLogs("-------head start ------" + domhead.xml + "-----head end ------------");

            wl.WriteLogs("-------body start ------" + dombody.xml + "-----body end ------------");

            //销售订单头信息
            foreach (IXMLDOMElement item in headval)
            {
                csocode  = item.attributes.getNamedItem("csocode").nodeValue.ToString();
                ddate    = item.attributes.getNamedItem("ddate").nodeValue.ToString();
                ccuscode = item.attributes.getNamedItem("ccuscode").nodeValue.ToString();
                ccusname = item.attributes.getNamedItem("ccusname").nodeValue.ToString();
            }


            //销售订单行信息
            foreach (IXMLDOMElement item in bodyval)
            {
                cinvcode   = item.attributes.getNamedItem("cinvcode").nodeValue.ToString();
                iquantity  = item.attributes.getNamedItem("iquantity").nodeValue.ToString();
                iunitprice = item.attributes.getNamedItem("iunitprice").nodeValue.ToString();
                cinvname   = item.attributes.getNamedItem("cinvname").nodeValue.ToString();
            }

            MessageBox.Show("订单头信息:" + csocode + "-" + ddate + "-" + ccuscode + "-" + ccusname + "\r\n" + "订单行信息:行记录数为" + bodyval.length.ToString() + " ; " + cinvcode + "-" + iquantity + "-" + iunitprice + "-" + cinvname);

            return(true);
        }
Esempio n. 14
0
 private void SetData(IXMLDOMDocument2 doc)
 {
     foreach (IXMLDOMNode xmlNode in doc.selectNodes("//rs:data")[0].selectNodes("//z:row"))
     {
         //string oper = ((IXMLDOMElement)xmlNode).getAttribute("editprop").ToString().ToUpper();
         string oper = (xmlNode as IXMLDOMElement).getAttribute("editprop").ToString().ToUpper();
         if (oper.Equals("A"))
         {
             SetAddData(xmlNode as IXMLDOMElement);
         }
         else if (oper.Equals("D"))
         {
             SetDelData(xmlNode as IXMLDOMElement);
         }
         else if (oper.Equals("M"))
         {
             SetModData(xmlNode as IXMLDOMElement);
         }
         else
         {
             SetDelData(xmlNode as IXMLDOMElement);
         }
     }
 }
Esempio n. 15
0
        /// <summary>
        /// 单据事件调插件方法
        /// </summary>
        /// <param name="domhead" datetype="MSXML2.IXMLDocument2" out="1">单据表头 DOM 对象实例</param>
        /// <param name="dombody" datetype="MSXML2.IXMLDocument2" out="1">单据表体 DOM 对象实例</param>
        /// <param name="message" datatype="string" out="1">错误信息。用于插件方法返回单据的错误信息</param>
        /// <returns datatype="bool" comment="返回值决定原档案业务流程是否会继续">
        ///   <return value="True">操作成功</return>
        ///   <return value="False">操作失败</return>
        /// </returns>
        public bool InvokeVoucherEvent(ref IXMLDOMDocument2 domhead, ref IXMLDOMDocument2 dombody, ref string message)
        {
            try
            {
                /********** 获取插件上下文信息:登录对象、连接、事件ID ***************/

                //获取插件上下文
                MomCallContext context = MomCallContextCache.Instance.CurrentMomCallContext;

                //从上下文获取U8Login对象
                U8Login.clsLogin login = context.U8Login as U8Login.clsLogin;

                //从上下文获取帐套库连接对象
                ADODB.Connection conn = context.BizDbConnection as ADODB.Connection;

                //从上下文获取事件ID
                string eventId = context.EventIdentity;

                Output.mWriteLog(eventId, domhead, dombody, conn, login);


                Biz.BizBase oper;
                switch (eventId.ToLower())
                {
                //条码管理
                case "u8api/genbarcode/delete_before":
                case "u8api/genbarcode/delete_after":
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." + "BarCodeMain", true, System.Reflection.BindingFlags.CreateInstance, null, new object[] { conn, dombody, login.UFDataConnstringForNet.ToString() }, null, null);
                    oper.Delete();
                    break;

                case "u8api/genbarcode/save_before":
                case "u8api/genbarcode/save_after":
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." + "BarCodeMain", true, System.Reflection.BindingFlags.CreateInstance, null, new object[] { conn, dombody, login.UFDataConnstringForNet.ToString() }, null, null);
                    oper.Save();
                    break;

                //销售订单
                case "u8api/saleorder/audit_after":
                case "u8api/saleorder/audit_before":
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." + "SO_SOMain", true, System.Reflection.BindingFlags.CreateInstance, null, new object[] { conn, domhead, dombody, login.UFDataConnstringForNet.ToString(), "a" }, null, null);
                    oper.Insert();
                    break;

                case "u8api/saleorder/cancelaudit_after":
                case "u8api/saleorder/cancelaudit_before":
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." + "SO_SOMain", true, System.Reflection.BindingFlags.CreateInstance, null, new object[] { conn, domhead, dombody, login.UFDataConnstringForNet.ToString(), "d" }, null, null);
                    oper.Delete();
                    break;

                //采购到货单
                case "u8api/arrivedgoods/audit_before":
                case "u8api/arrivedgoods/audit_after":
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." + "PU_ArrivalVouch", true, System.Reflection.BindingFlags.CreateInstance, null, new object[] { conn, domhead, dombody, login.UFDataConnstringForNet.ToString(), "a" }, null, null);
                    oper.Insert();
                    break;

                case "u8api/arrivedgoods/cancelaudit_before":
                case "u8api/arrivedgoods/cancelaudit_after":
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." + "PU_ArrivalVouch", true, System.Reflection.BindingFlags.CreateInstance, null, new object[] { conn, domhead, dombody, login.UFDataConnstringForNet.ToString(), "d" }, null, null);
                    oper.Delete();
                    break;

                //组装单
                case "u8api/groupvouch/audit_before":
                case "u8api/groupvouch/audit_after":
                    //oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." + "GroupVouch", true, System.Reflection.BindingFlags.CreateInstance, null, new object[] { conn, domhead, dombody, login.UFDataConnstringForNet.ToString(), "a" }, null, null);
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." + "AssemVouch", true, System.Reflection.BindingFlags.CreateInstance, null, new object[] { conn, domhead, dombody, login.UFDataConnstringForNet.ToString(), "a" }, null, null);
                    oper.Insert();
                    break;

                case "u8api/groupvouch/cancelaudit_before":
                case "u8api/groupvouch/cancelaudit_after":
                    //oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." + "GroupVouch", true, System.Reflection.BindingFlags.CreateInstance, null, new object[] { conn, domhead, dombody, login.UFDataConnstringForNet.ToString(), "d" }, null, null);
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." + "AssemVouch", true, System.Reflection.BindingFlags.CreateInstance, null, new object[] { conn, domhead, dombody, login.UFDataConnstringForNet.ToString(), "d" }, null, null);
                    oper.Delete();
                    break;


                //拆卸单
                case "u8api/sepvouch/audit_before":
                case "u8api/sepvouch/audit_after":
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." + "AssemVouchRet", true, System.Reflection.BindingFlags.CreateInstance, null, new object[] { conn, domhead, dombody, login.UFDataConnstringForNet.ToString(), "a" }, null, null);
                    oper.Insert();
                    break;

                case "u8api/sepvouch/cancelaudit_before":
                case "u8api/sepvouch/cancelaudit_after":
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." + "AssemVouchRet", true, System.Reflection.BindingFlags.CreateInstance, null, new object[] { conn, domhead, dombody, login.UFDataConnstringForNet.ToString(), "d" }, null, null);
                    oper.Delete();
                    break;

                //采购订单 保存
                case "u8api/purchaseorder/save_before":
                case "u8api/purchaseorder/save_after":
                    break;

                //采购到货单  保存
                case "u8api/arrivedgoods/save_before":
                case "u8api/arrivedgoods/save_after":
                    string te = U8.Interface.Bus.Config.ConfigUtility.EventBizDllName;
                    break;

                //采购入库单d
                case "u8api/pustorein/save_before":
                case "u8api/pustorein/save_after":
                    string te1 = U8.Interface.Bus.Config.ConfigUtility.EventBizDllName;
                    break;
                }

                return(true);
            }
            catch (Exception ex)
            {
                Output.mWriteLog(ex.Message);
                throw ex;
            }
        }
Esempio n. 16
0
 /// <summary>
 /// 并户
 /// </summary>
 /// <returns></returns>
 public virtual object LinkMerge(IXMLDOMDocument2 doc)
 {
     throw new NotImplementedException();
 }
Esempio n. 17
0
 /// <summary>
 /// 设置实体
 /// </summary>
 /// <param name="doc"></param>
 private void SetData(IXMLDOMDocument2 doc)
 {
     lst = MakeMultiLineData(doc, fieldcmpTablename, ufTableName, ufPriKey, GetNodeValue(doc, "/hr_hi_person/cpsn_num"));
 }
Esempio n. 18
0
 /// <summary>
 /// 设置实体
 /// </summary>
 /// <param name="doc"></param>
 private void SetData(IXMLDOMDocument2 doc)
 {
     lst = MakeMultiLineData(doc, fieldcmpTablename, ufTableName, ufPriKey, GetNodeValue(doc, "/inventory/cinvcode"));
 }
Esempio n. 19
0
 /// <summary>
 /// 设置实体
 /// </summary>
 /// <param name="doc"></param>
 private void SetData(IXMLDOMDocument2 doc)
 {
     lst = MakeMultiLineData(doc, fieldcmpTablename, ufTableName, ufPriKey, GetNodeValue(doc, "/computationunit/ccomunitcode"));
 }
Esempio n. 20
0
        /// <summary>
        /// Creates the new infopath and load form.
        /// </summary>
        /// <param name="FormUri">The form URI.</param>
        /// <param name="InfoPathLoginHandler">The info path login handler.</param>
        /// <param name="readOnly">if set to <c>true</c> [read only].</param>
        private void CreateNewInfopathAndLoadForm(string FormUri, LogonDialogHandler InfoPathLoginHandler, bool readOnly)
        {
            // Kill off any existing infopath processes
            foreach (Process proc in Process.GetProcessesByName("infopath"))
            {
                proc.Kill();
            }

            InitInfopathAndStartDialogWatcher(new Application());
            SecurityAlertHandler securityHandler = new SecurityAlertHandler();
            ReplaceFormAlertHandler replaceFormHandler = new ReplaceFormAlertHandler();
            DialogWatcher.Add(securityHandler);
            DialogWatcher.Add(replaceFormHandler);
            if (InfoPathLoginHandler != null)
            {
                // remove other logon dialog handlers since only one handler
                // can effectively handle the logon dialog.
                DialogWatcher.RemoveAll(new LogonDialogHandler("a", "b"));

                // Add the (new) logonHandler
                DialogWatcher.Add(InfoPathLoginHandler);
            }
            if (readOnly)
            {
                InternalInfopathXDocument = InfopathApplicationTester.XDocuments.Open(FormUri, (int)XdDocumentVersionMode.xdCanOpenInReadOnlyMode);
            }
            else
            {
                InternalInfopathXDocument = InfopathApplicationTester.XDocuments.Open(FormUri, (int)XdDocumentVersionMode.xdFailOnVersionOlder);
            }

            InternalInfopathXMLDOMDocument = InternalInfopathXDocument.DOM as IXMLDOMDocument2;
            InternalHTMLDOMDocument = IEDom.IEDOMFromhWnd(this.hWnd);
        }
Esempio n. 21
0
 /// <summary>
 /// 设置实体
 /// </summary>
 /// <param name="doc"></param>
 private void SetData(IXMLDOMDocument2 doc)
 {
     lst = MakeMultiLineData(doc, fieldcmpTablename, ufTableName, ufPriKey, GetNodeValue(doc, "/sfc_workcenter/wccode"));
 }
Esempio n. 22
0
        /// <summary>
        /// 组织字段
        /// </summary>
        /// <param name="doc">事件里传入的dom</param>
        /// <param name="ctable">字段配置里配置的表名</param>
        /// <param name="sourceTableName">来源表名</param>
        /// <param name="sourceKeyName">来源表主键名</param>
        /// <param name="keyValue"></param>
        /// <returns>多行list.basemode</returns>
        public List <List <BaseMode> > MakeMultiLineData(IXMLDOMDocument2 doc, string ctable, string sourceTableName, string sourceKeyName, string sourceKeyValue)
        {
            System.Diagnostics.Debug.WriteLine("MakeData begin at" + System.DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"));

            if (string.IsNullOrEmpty(sourceTableName))
            {
                throw new Exception("MakeData:来源表名为空!");
            }
            if (string.IsNullOrEmpty(sourceKeyName))
            {
                throw new Exception("MakeData:来源主键名为空!");
            }
            if (string.IsNullOrEmpty(sourceKeyValue))
            {
                throw new Exception("MakeData:来源主键值为空!");
            }

            string sql = " SELECT cfield,igetvaluetype,igetvalue,cfieldtype FROM [MES_FIELDCMP]  with(nolock)  WHERE ctable = '" + ctable + "'";

            dtField = new DataTable();
            dtField = UFSelect(sql);
            string colNames = "";    //来源表列名

            if (null != dtField && dtField.Rows.Count > 0)
            {
                for (int i = 0; i < dtField.Rows.Count; i++)
                {
                    //0 取自dom,1取自dataset,2固定值,3函数,4以列值为参数作为判断,5接口通用变量, 6目标表不存在的列,但是需要用它取来源
                    if (dtField.Rows[i]["igetvaluetype"] != null && (dtField.Rows[i]["igetvaluetype"].ToString().Equals("1") || dtField.Rows[i]["igetvaluetype"].ToString().Equals("6")))
                    {
                        string tmpColName = dtField.Rows[i]["igetvalue"].ToString();
                        if (colNames.IndexOf(tmpColName) > -1 && colNames.Substring(colNames.IndexOf(tmpColName) - 1, 1) == ",")
                        {
                            continue;
                        }
                        colNames += "," + dtField.Rows[i]["igetvalue"].ToString();
                        colNames.IndexOf(tmpColName);
                    }
                }
                colNames = colNames.Substring(1, colNames.Length - 1);
                DataTable dtValue = new DataTable();
                dtValue = GetSourceData(sourceTableName, sourceKeyName, sourceKeyValue, colNames);
                List <BaseMode>         tmpl   = new List <BaseMode>();
                List <List <BaseMode> > tmplst = new List <List <BaseMode> >();
                if (dtValue.Rows.Count == 0)
                {
                    System.Diagnostics.Debug.WriteLine("MakeData end at" + System.DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"));
                    return(null);
                }
                else if (dtValue.Rows.Count == 1)
                {
                    tmpl = new List <BaseMode>();
                    tmpl = MakeSingleLineData(doc, dtValue.Rows[0], dtField);
                    tmplst.Add(tmpl);
                }
                else
                {
                    for (int i = 0; i < dtValue.Rows.Count; i++)
                    {
                        tmpl = new List <BaseMode>();
                        tmpl = MakeSingleLineData(doc, dtValue.Rows[i], dtField);
                        tmplst.Add(tmpl);
                    }
                }

                System.Diagnostics.Debug.WriteLine("MakeData end at" + System.DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"));
                return(tmplst);
            }
            else
            {
                System.Diagnostics.Debug.WriteLine("MakeData end at" + System.DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"));
                throw new Exception("MakeData:没有字段对照信息!");
            }
        }
Esempio n. 23
0
        /// <summary>
        /// 组织单行basemode
        /// </summary>
        /// <param name="doc"></param>
        /// <param name="drValue">来源表行</param>
        /// <param name="dtfield">字段对照</param>
        /// <returns></returns>
        protected List <BaseMode> MakeSingleLineData(IXMLDOMDocument2 doc, DataRow drValue, DataTable _dtfield)
        {
            List <BaseMode> tmpl = new List <BaseMode>();

            for (int i = 0; i < _dtfield.Rows.Count; i++)
            {
                string sourceColName = dtField.Rows[i]["igetvalue"].ToString();
                string targetColName = dtField.Rows[i]["cfield"].ToString();
                string getvaluetype  = dtField.Rows[i]["igetvaluetype"].ToString();
                string getvalue      = dtField.Rows[i]["igetvalue"].ToString();
                string sourceColType = dtField.Rows[i]["cfieldtype"].ToString();
                string colValue;
                string tempOrValue = "";
                switch (getvaluetype)  //0 取自dom,1取自dataset,2固定值,3函数,4以列值为参数作为判断,5接口通用变量, 6目标表不存在的列,但是需要用它取来源
                {
                case "0":
                    colValue = drValue[getvalue].ToString();
                    tmpl.Add(new BaseMode(targetColName, colValue, getvalue, targetColName, GetNodeValue(doc, getvalue), sourceColType, sourceColType));
                    break;

                case "1":
                    colValue = drValue[getvalue].ToString();
                    tmpl.Add(new BaseMode(sourceColName, colValue, getvalue, targetColName, drValue[getvalue].ToString(), sourceColType, sourceColType));
                    break;

                case "2":
                    colValue = drValue[getvalue].ToString();
                    tmpl.Add(new BaseMode(targetColName, colValue, getvalue, targetColName, getvalue, sourceColType, sourceColType));
                    break;

                case "3":
                    colValue = "";
                    if (getvalue == "1")
                    {
                        tempOrValue = Function.Comm.GetFlagByOper(opertype);
                    }
                    else if (getvalue == "2")
                    {
                        tempOrValue = Function.Comm.GetUpDept(drValue["cDepCode"].ToString());
                    }
                    else if (getvalue == "3")
                    {
                        tempOrValue = Function.Comm.GetInventoryClass(drValue["cInvCCode"].ToString());
                    }
                    else if (getvalue == "4")
                    {
                        tempOrValue = Function.Comm.GetComputationUnit(drValue["cComUnitCode"].ToString());
                    }
                    else if (getvalue == "5")
                    {
                        tempOrValue = Function.Comm.GetInvPurType(drValue["bBomMain"].ToString(), drValue["bBomSub"].ToString(), drValue["bPurchase"].ToString(), drValue["bSelf"].ToString());
                    }
                    else if (getvalue == "6")
                    {
                        tempOrValue = Function.Comm.GetCQFlagByOper(opertype);
                    }
                    tmpl.Add(new BaseMode(targetColName, colValue, getvalue, targetColName, tempOrValue, sourceColType, sourceColType));
                    break;

                case "4":
                    colValue = drValue[getvalue].ToString();
                    if (getvalue == "1")     //根据自身值
                    {
                        tempOrValue = Function.Comm.GetFlagByOper(opertype);
                    }
                    tmpl.Add(new BaseMode(targetColName, colValue, getvalue, targetColName, tempOrValue, sourceColType, sourceColType));
                    break;

                case "5":
                    colValue = "";
                    if (getvalue == "main|@@identity")
                    {
                        tempOrValue = "@mainid";
                    }
                    else if (getvalue == "##newguid")
                    {
                        tempOrValue = Guid.NewGuid().ToString();
                    }
                    else if (getvalue == "main|##newguid")       //新生成的guid值
                    {
                        tempOrValue = "main|##newguid";
                    }
                    tmpl.Add(new BaseMode(targetColName, colValue, getvalue, targetColName, tempOrValue, sourceColType, sourceColType));
                    break;
                }
            }
            return(tmpl);
        }
Esempio n. 24
0
        /// <summary>
        /// 基础档案事件调插件方法
        /// </summary>
        /// <param name="document" datetype="MSXML2.IXMLDocument2" out="1">基础档案 DOM 对象实例</param>
        /// <param name="message" datatype="string" out="1">错误信息。用于插件方法返回档案的错误信息</param>
        /// <returns datatype="bool" comment="返回值决定原档案业务流程是否会继续">
        ///   <return value="True">操作成功</return>
        ///   <return value="False">操作失败</return>
        /// </returns>
        public bool InvokeArchiveEvent(ref IXMLDOMDocument2 document, ref string message)
        {
            try
            {
                Output.gDebugView("CSharp.SyncAdapter.Archive.Entering...");

                /********** 获取插件上下文信息:登录对象、连接、事件ID ***************/

                //获取插件上下文
                MomCallContext context = MomCallContextCache.Instance.CurrentMomCallContext;

                //从上下文获取U8Login对象
                U8Login.clsLogin login = context.U8Login as U8Login.clsLogin;

                //从上下文获取帐套库连接对象
                ADODB.Connection conn = context.BizDbConnection as ADODB.Connection;

                //从上下文获取事件ID
                string eventId = context.EventIdentity;

                Biz.BizBase oper;
                switch (eventId.ToLower())
                {
                //部门
                case "u8api/department/add_after":
                case "u8api/department/add_before":
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." +
                                                                                                                                              "Department", true, System.Reflection.BindingFlags.CreateInstance, null,
                                                                                                                                              new object[] { conn, document, login.UFDataConnstringForNet.ToString(), "a" }, null, null);
                    oper.Insert();
                    break;

                case "u8api/department/delete_after":
                case "u8api/department/delete_before":
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." +
                                                                                                                                              "Department", true, System.Reflection.BindingFlags.CreateInstance, null,
                                                                                                                                              new object[] { conn, document, login.UFDataConnstringForNet.ToString(), "d" }, null, null);
                    oper.Delete();
                    break;

                case "u8api/department/modify_after":
                case "u8api/department/modify_before":
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." +
                                                                                                                                              "Department", true, System.Reflection.BindingFlags.CreateInstance, null,
                                                                                                                                              new object[] { conn, document, login.UFDataConnstringForNet.ToString(), "m" }, null, null);
                    oper.Update();
                    break;

                //人员
                case "u8api/hr_hi_person/add_after":
                case "u8api/hr_hi_person/add_before":
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." +
                                                                                                                                              "Person", true, System.Reflection.BindingFlags.CreateInstance, null,
                                                                                                                                              new object[] { conn, document, login.UFDataConnstringForNet.ToString(), "a" }, null, null);
                    oper.Insert();
                    break;

                case "u8api/hr_hi_person/delete_after":
                case "u8api/hr_hi_person/delete_before":
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." +
                                                                                                                                              "Person", true, System.Reflection.BindingFlags.CreateInstance, null,
                                                                                                                                              new object[] { conn, document, login.UFDataConnstringForNet.ToString(), "d" }, null, null);
                    oper.Delete();
                    break;

                case "u8api/hr_hi_person/modify_after":
                case "u8api/hr_hi_person/modify_before":
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." +
                                                                                                                                              "Person", true, System.Reflection.BindingFlags.CreateInstance, null,
                                                                                                                                              new object[] { conn, document, login.UFDataConnstringForNet.ToString(), "m" }, null, null);
                    oper.Update();
                    break;

                //主计量单位
                case "u8api/computationunit/add_after":
                case "u8api/computationunit/add_before":
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." +
                                                                                                                                              "ComputationUnit", true, System.Reflection.BindingFlags.CreateInstance, null,
                                                                                                                                              new object[] { conn, document, login.UFDataConnstringForNet.ToString(), "a" }, null, null);
                    oper.Insert();
                    break;

                case "u8api/computationunit/delete_after":
                case "u8api/computationunit/delete_before":
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." +
                                                                                                                                              "ComputationUnit", true, System.Reflection.BindingFlags.CreateInstance, null,
                                                                                                                                              new object[] { conn, document, login.UFDataConnstringForNet.ToString(), "d" }, null, null);
                    oper.Delete();
                    break;

                case "u8api/computationunit/modify_after":
                case "u8api/computationunit/modify_before":
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." +
                                                                                                                                              "ComputationUnit", true, System.Reflection.BindingFlags.CreateInstance, null,
                                                                                                                                              new object[] { conn, document, login.UFDataConnstringForNet.ToString(), "m" }, null, null);
                    oper.Update();
                    break;

                //存货
                case "u8api/inventory/add_after":
                case "u8api/inventory/add_before":
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." +
                                                                                                                                              "Inventory", true, System.Reflection.BindingFlags.CreateInstance, null,
                                                                                                                                              new object[] { conn, document, login.UFDataConnstringForNet.ToString(), "a" }, null, null);
                    oper.Insert();
                    break;

                case "u8api/inventory/delete_after":
                case "u8api/inventory/delete_before":
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." +
                                                                                                                                              "Inventory", true, System.Reflection.BindingFlags.CreateInstance, null,
                                                                                                                                              new object[] { conn, document, login.UFDataConnstringForNet.ToString(), "d" }, null, null);
                    oper.Delete();
                    break;

                case "u8api/inventory/modify_after":
                case "u8api/inventory/modify_before":
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." +
                                                                                                                                              "Inventory", true, System.Reflection.BindingFlags.CreateInstance, null,
                                                                                                                                              new object[] { conn, document, login.UFDataConnstringForNet.ToString(), "m" }, null, null);
                    oper.Update();
                    break;

                //存货分类
                case "u8api/inventoryclass/add_before":
                case "u8api/inventoryclass/add_after":
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." + "InventoryClass", true, System.Reflection.BindingFlags.CreateInstance, null,
                                                                                                                                              new object[] { conn, document, login.UFDataConnstringForNet.ToString(), "a" }, null, null);
                    oper.Insert();
                    break;

                case "u8api/inventoryclass/delete_before":
                case "u8api/inventoryclass/delete_after":
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." + "InventoryClass", true, System.Reflection.BindingFlags.CreateInstance, null,
                                                                                                                                              new object[] { conn, document, login.UFDataConnstringForNet.ToString(), "d" }, null, null);
                    oper.Delete();
                    break;

                case "u8api/inventoryclass/modify_before":
                case "u8api/inventoryclass/modify_after":
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." + "InventoryClass", true, System.Reflection.BindingFlags.CreateInstance, null,
                                                                                                                                              new object[] { conn, document, login.UFDataConnstringForNet.ToString(), "m" }, null, null);
                    oper.Update();
                    break;

                //供应商
                case "u8api/vendor/add_after":
                case "u8api/vendor/add_before":
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." + "Vendor", true, System.Reflection.BindingFlags.CreateInstance, null, new object[] { conn, document, login.UFDataConnstringForNet.ToString() }, null, null);
                    oper.Insert();
                    break;

                case "u8api/vendor/delete_after":
                case "u8api/vendor/delete_before":
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." + "Vendor", true, System.Reflection.BindingFlags.CreateInstance, null, new object[] { conn, document, login.UFDataConnstringForNet.ToString() }, null, null);
                    oper.Delete();
                    break;

                case "u8api/vendor/modify_after":
                case "u8api/vendor/modify_before":
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." + "Vendor", true, System.Reflection.BindingFlags.CreateInstance, null, new object[] { conn, document, login.UFDataConnstringForNet.ToString() }, null, null);
                    oper.Update();
                    break;

                case "u8api/vendor/merge_before":
                case "u8api/vendor/merge_after":
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." + "Vendor", true, System.Reflection.BindingFlags.CreateInstance, null, new object[] { conn, document, login.UFDataConnstringForNet.ToString() }, null, null);
                    oper.LinkMerge(document);
                    break;

                //客户
                case "u8api/customer/add_after":
                case "u8api/customer/add_before":
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." + "Customer", true, System.Reflection.BindingFlags.CreateInstance, null, new object[] { conn, document, login.UFDataConnstringForNet.ToString() }, null, null);
                    oper.Insert();
                    break;

                case "u8api/customer/delete_after":
                case "u8api/customer/delete_before":
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." + "Customer", true, System.Reflection.BindingFlags.CreateInstance, null, new object[] { conn, document, login.UFDataConnstringForNet.ToString() }, null, null);
                    oper.Delete();
                    break;

                case "u8api/customer/modify_after":
                case "u8api/customer/modify_before":
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." + "Customer", true, System.Reflection.BindingFlags.CreateInstance, null, new object[] { conn, document, login.UFDataConnstringForNet.ToString() }, null, null);
                    oper.Update();
                    break;

                case "u8api/customer/merge_before":
                case "u8api/customer/merge_after":
                    oper = (Biz.BizBase)System.Reflection.Assembly.Load(U8.Interface.Bus.Config.ConfigUtility.EventBizDllName).CreateInstance(U8.Interface.Bus.Config.ConfigUtility.EventBizNamespace + "." + "Customer", true, System.Reflection.BindingFlags.CreateInstance, null, new object[] { conn, document, login.UFDataConnstringForNet.ToString() }, null, null);
                    oper.LinkMerge(document);
                    break;
                }


                Output.gDebugView("CSharp.SyncAdapter.Archive." + eventId + ".Writing log...");
                Output.mWriteLog(eventId, document, null, conn, login);
                Output.gDebugView("CSharp.SyncAdapter.Archive." + eventId + ".Creating BO Instance...");
                Output.gDebugView("CSharp.SyncAdapter.Archive." + eventId + ".Simulating Business Rule...");
                Output.gDebugView("CSharp.SyncAdapter.Archive." + eventId + ".ShowDialog...");

                bool result = true;


                Output.gDebugView("CSharp.SyncAdapter.Archive." + eventId + ".Complete");
                return(result);
            }
            catch (Exception ex)
            {
                Output.mWriteLog(ex.Message);
                throw ex;
            }
        }