Esempio n. 1
0
        private void RS232InputDataExecuteSp(string Input)
        {
            if (RS232SysAllData == null)
            {
                return;
            }

            RS232ModifySysDataTable("DATA", Input.Trim());
            DataTable dt = RS232dtSp;

            dt.DefaultView.Sort = "WORK_TYPE_INDEX";
            dt = dt.DefaultView.ToTable();

            foreach (DataRow dr in dt.Rows)
            {
                RS232GetStoredprocValues(dr[1].ToString()); //Storedproc

                string[] LsRES = Pubstr.SP_PublicStoredprocParam(dr[1].ToString(), DataTableToDictionaryString(SPvalues));
                foreach (string Sendmsg in LsRES)
                {
                    if (Sendmsg.Substring(1, 3) == "RES")
                    {
                        SpRes = Sendmsg.Substring(5, Sendmsg.Length - 5);
                    }
                    else
                    {
                        SendRS232 = Sendmsg.Substring(9, Sendmsg.Length - 9);
                    }
                }

                Msg = dr[11].ToString() + "   " + SpRes;

                if (SpRes == "OK")
                {
                    if (dr[8].ToString() == "1")  //最后一枪清除资料
                    {
                        ShowMessage(SpRes, RS232dtSp.Rows[0][11].ToString() + "?", SpRes);
                        if (!string.IsNullOrEmpty(SendRS232))
                        {
                            SendMsgToCom(SendRS232);
                        }


                        //for (int i = 0; i < SysAllData.Rows.Count; i++)
                        //{
                        //    if (SysAllData.Rows[i]["InRam"].ToString() != "1")
                        //    {
                        //        SysAllData.Rows[i]["data"] = "NA";
                        //    }
                        //}
                        //DataTable dtRam = getNewTable(dtSp, string.Format("InRam='{0}'", "1"));
                        //ExeSp = dtRam.Rows.Count;
                    }
                    //ModifySysDataTable(dr[11].ToString(), Input.Trim());//PARAM 更改值
                }
                else
                {
                    if (SpRes == null)
                    {
                        MessageBox.Show(" 执行存储过程 " + dr[1].ToString() + " 发生异常,请联系IT处理  \r\n ");
                        return;
                    }
                    ShowMessage(SpRes, RS232dtSp.Rows[0][11].ToString() + "?", SpRes);
                    if (!string.IsNullOrEmpty(SendRS232))
                    {
                        SendMsgToCom(SendRS232);
                    }

                    return;
                }
            }
        }
Esempio n. 2
0
        private void InputDataExecuteSp(string Input)
        {
            ModifySysDataTable("DATA", Input.Trim());
            DataTable dt = getNewTable(dtSp, string.Format("StoredprocIdx='{0}'", ExeSp));

            dt.DefaultView.Sort = "WORK_TYPE_INDEX";
            dt = dt.DefaultView.ToTable();

            foreach (DataRow dr in dt.Rows)
            {
                GetStoredprocValues(dr[1].ToString()); //Storedproc
                //  SpRes = Pubstr.SP_PublicStoredproc(dr[1].ToString(), SPvalues);
                string[] LsRES = Pubstr.SP_PublicStoredprocParam(dr[1].ToString(), DataTableToDictionaryString(SPvalues));
                // string[] LsRES = Pubstr.ExecuteProcedure(dr[1].ToString(), SPvalues);
                foreach (string Sendmsg in LsRES)
                {
                    if (Sendmsg.Substring(0, 3) == "RES")
                    {
                        SpRes = Sendmsg.Substring(4, Sendmsg.Length - 4);
                    }
                    else
                    {
                        SendRS232 = Sendmsg.Substring(8, Sendmsg.Length - 8);
                    }
                }

                //   SpRes = LsRES[0];

                Msg = dr[11].ToString() + "   " + SpRes;

                if (dr[8].ToString() == "1")  //最后一枪清除资料
                {
                    RS232SysAllData = SysAllData;
                }

                if (SpRes == "OK")
                {
                    if (dr[8].ToString() == "1")  //最后一枪清除资料
                    {
                        RS232SysAllData = SysAllData;
                        for (int i = 0; i < SysAllData.Rows.Count; i++)
                        {
                            if (SysAllData.Rows[i]["InRam"].ToString() != "1")
                            {
                                SysAllData.Rows[i]["data"] = "NA";
                            }
                        }
                        DataTable dtRam = getNewTable(dtSp, string.Format("InRam='{0}'", "1"));
                        ExeSp = dtRam.Rows.Count;
                    }
                    ModifySysDataTable(dr[11].ToString(), Input.Trim());//PARAM 更改值
                }
                else
                {
                    if (SpRes == null)
                    {
                        MessageBox.Show(" 执行存储过程 " + dr[1].ToString() + " 发生异常,请联系IT处理  \r\n ");
                        return;
                    }

                    if (dr[6].ToString() == "1")                     //Fork 不为必刷则再执行一次
                    {
                        ModifySysDataTable(dr[11].ToString(), "NA"); //PARAM
                        ExeSp = Convert.ToInt32(dr[4].ToString());   //SECOND 报错时回到第几枪
                        InputDataExecuteSp(InputData);
                        return;
                    }
                    ExeSp = Convert.ToInt32(dr[4].ToString()) - 1; //SECOND 报错时回到第几枪
                    return;
                }
            }
            //  ExeSp++;
        }