コード例 #1
0
        public void AddObjDefChannel(int ID)
        {
            /* 1. пробегаем по листу с текущими каналами и составляем новый лист с objparamid
             * 2. параллельно составляем строку с айдишниками и делаем ОР
             * 3. делаем запрос со всеми айдишниками и вываливаем в таблицу
             * 4. пробегаем по таблице и при совпадении айдишника КОТОРЫЙ ТОЖЕ В НЕЙ ЕСТЬ записываем данные в дефлист
             * 5. получили дефлист с теми же индексами, что и лист текущих каналов
             *
             * */

            /* foreach (SQL_TeconObjectChannel sql in SQL_Channels)
             * {
             *   if (sql.LoadID == ID)
             *   {
             *       var objChnl = new TeconObjectChannel()
             *       {
             *           S0 = sql.S0,
             *           S100 = sql.S100,
             *           M = sql.M,
             *           PLC_VARNAME = sql.PLC_VARNAME,
             *           ED_IZM = sql.ED_IZM,
             *           ARH_APP = sql.ARH_APP,
             *           DISC = sql.DISC,
             *           KA = sql.KA,
             *           KB = sql.KB,
             *           ID = sql.ID,  //OBJPARAMID
             *           ChannelName = sql.ChannelName,
             *       };
             *       TeconObjectChannels.Add(objChnl);
             *   }
             * }*/


            //  MessageBox.Show(TeconObjectChannels.Count.ToString());
            //  MessageBox.Show(SQL_DefChannels.Count.ToString());

            foreach (TeconObjectChannel toc in TeconObjectChannels)
            {
                foreach (SQL_TeconObjectChannel sql in SQL_DefChannels)
                {
                    var objChnl1 = new TeconObjectChannel();
                    // MessageBox.Show("sql.LoadID: "+sql.LoadID.ToString() + " == ID: " + ID.ToString());
                    //  MessageBox.Show("toc.ID: " + toc.ID.ToString() + " == sql.ID: " + sql.ID);
                    if ((sql.LoadID == ID) && (toc.ID == sql.ID))
                    {
                        if ((Convert.ToInt16(sql.ARH_APP) >= 1) && (Convert.ToInt16(sql.ARH_APP) <= 6))
                        {
                            objChnl1.ARH_APP = "0";
                        }
                        else
                        {
                            objChnl1.ARH_APP = "-1";
                        }

                        objChnl1.DISC = sql.DISC;


                        objChnl1.S0          = "0";
                        objChnl1.S100        = "100";
                        objChnl1.M           = "1";
                        objChnl1.PLC_VARNAME = "";
                        objChnl1.ED_IZM      = "";
                        objChnl1.KA          = "1";
                        objChnl1.KB          = "0";
                        objChnl1.ChannelName = toc.ChannelName;

                        TeconObjectDefChannels.Add(objChnl1);
                        break;
                    }
                }
            }

            /*        string SQL_ArhApp = "select OBJTYPEPARAM.isev, OBJTYPEPARAM.name from objtypeparam where objtypeparam.pid = (select cards.objtypeid from cards where cards.id = " + ID + ")";
             *      connect.ConnectToBase(SQL_ArhApp);
             *      TmpDG = connect.dt1; // вторая часть таблицы |isev|.name|*/

            //имея список каналов объекта (верхних), на его основе просто создадим другой список

            /*         foreach (TeconObjectChannel toc in TeconObjectChannels)
             *       {
             *           var objChnl1 = new TeconObjectChannel();
             *
             *           for (int i = 0; i < dtDef.Rows.Count; i++)
             *           {
             *               if (toc.ID == dtDef.Rows[i][2].ToString())
             *               {
             *                   if ((Convert.ToInt16(dtDef.Rows[i][1].ToString()) >= 1) && (Convert.ToInt16(dtDef.Rows[i][1].ToString()) <= 6))
             *                   {
             *                       objChnl1.ARH_APP = "0";
             *                   }
             *                   else
             *                   {
             *                       objChnl1.ARH_APP = "-1";
             *                   }
             *
             *                   objChnl1.DISC = dtDef.Rows[i][0].ToString();
             *
             *                   break;
             *               }
             *           }
             *
             *           objChnl1.S0 = "0";
             *           objChnl1.S100 = "100";
             *           objChnl1.M = "1";
             *           objChnl1.PLC_VARNAME = "";
             *           objChnl1.ED_IZM = "";
             *           objChnl1.KA = "1";
             *           objChnl1.KB = "0";
             *           objChnl1.ChannelName = toc.ChannelName;
             *
             *           TeconObjectDefChannels.Add(objChnl1);*/



            /*  foreach (TeconObjectChannel toc in TeconObjectChannels)
             * {
             *    var objChnl1 = new TeconObjectChannel();
             *
             *    for (int i = 0; i < TmpDG.Rows.Count; i++)
             *    {
             *        if (toc.ChannelName == TmpDG.Rows[i][1].ToString())
             *        {
             *            if ((Convert.ToInt16(TmpDG.Rows[i][0].ToString()) >= 1) && (Convert.ToInt16(TmpDG.Rows[i][0].ToString()) <= 6))
             *            {
             *                objChnl1.ARH_APP = "0";
             *            }
             *            else
             *            {
             *                objChnl1.ARH_APP = "-1";
             *            }
             *            break;
             *        }
             *    }
             *      string newName = toc.ChannelName;
             *    if (newName.Substring(0, 1) == ".")
             *    {
             *        newName = toc.ChannelName.Remove(0, 1);
             *    }
             *
             *    for (int i = 0; i < dtDef.Rows.Count; i++)
             *    {
             *        if (newName == dtDef.Rows[i][1].ToString())
             *        {
             *            objChnl1.DISC = dtDef.Rows[i][0].ToString();
             *            break;
             *        }
             *    }
             *
             *    objChnl1.S0 = "0";
             *    objChnl1.S100 = "100";
             *    objChnl1.M = "1";
             *    objChnl1.PLC_VARNAME = "";
             *    objChnl1.ED_IZM = "";
             *    objChnl1.KA = "1";
             *    objChnl1.KB = "0";
             *    objChnl1.ChannelName = toc.ChannelName;
             *
             *    TeconObjectDefChannels.Add(objChnl1);
             * }*/
        }
コード例 #2
0
        /*public void WriteInitValue(string SQL)
         * {
         *  //string SQL = "Select ISACARDS.MARKA, ISACARDS.INITIALVALUE from ISACARDS where ISACARDS.CARDSID = " + ID;
         *  ProgramConnect connect = new ProgramConnect();
         *  connect.ConnectToBase(SQL);
         * }*/



        public void AddObjChannel(int ID)
        {
            //часть, которая читает лст вместо sql запроса
            //для каждого параметра пробегаемся по списку и выделяем тот, где ID совпадает - записываем. Добавляем в лист. Далее как обычно.
            //создадим кучку локальных переменных, чтобы потом скопом их внести в лист

            /* string tmp_S0;
             * string tmp_S100;
             * string tmp_M;
             * string tmp_PLC_VARNAME;
             * string tmp_ED_IZM;
             * string tmp_ARH_APP;
             * string tmp_DISC;
             * string tmp_KA;
             * string tmp_KB;
             * string tmp_ID;
             * string tmp_ChannelName;*/

            //выбираем каждый объект листа, ID которого совпадает с искомым, и добавляем в наш новый лист.
            foreach (SQL_TeconObjectChannel sql in SQL_Channels)
            {
                if (sql.LoadID == ID)
                {
                    var objChnl = new TeconObjectChannel()
                    {
                        S0          = sql.S0,
                        S100        = sql.S100,
                        M           = sql.M,
                        PLC_VARNAME = sql.PLC_VARNAME,
                        ED_IZM      = sql.ED_IZM,
                        ARH_APP     = sql.ARH_APP,
                        DISC        = sql.DISC,
                        KA          = sql.KA,
                        KB          = sql.KB,
                        ID          = sql.ID, //OBJPARAMID
                        ChannelName = sql.ChannelName,
                    };
                    TeconObjectChannels.Add(objChnl);      // один лист на один объект. потом он очистится
                }
            }


            /* SQL_CARDPARAMS = "Select CARDPARAMS.S0, CARDPARAMS.S100, CARDPARAMS.M, CARDPARAMS.PLC_VARNAME, CARDPARAMS.ED_IZM, CARDPARAMS.ARH_APP, CARDPARAMS.DISC, CARDPARAMS.KA, CARDPARAMS.KB, CARDPARAMS.OBJTYPEPARAMID, OBJTYPEPARAM.NAME from CARDPARAMS, OBJTYPEPARAM where CARDPARAMS.CARDID = " + ID + " and OBJTYPEPARAM.ID = CARDPARAMS.OBJTYPEPARAMID";
             * ProgramConnect connect = new ProgramConnect();
             * connect.ConnectToBase(SQL_CARDPARAMS, BaseAddr);
             *
             * TmpDG = connect.dt1;
             *
             * for (int i = 0; i < TmpDG.Rows.Count; i++)
             * {
             *   var objChnl = new TeconObjectChannel()
             *   {
             *       S0 = TmpDG.Rows[i][0].ToString(),
             *       S100 = TmpDG.Rows[i][1].ToString(),
             *       M = TmpDG.Rows[i][2].ToString(),
             *       PLC_VARNAME = TmpDG.Rows[i][3].ToString(),
             *       ED_IZM = TmpDG.Rows[i][4].ToString(),
             *       ARH_APP = TmpDG.Rows[i][5].ToString(),
             *       DISC = TmpDG.Rows[i][6].ToString(),
             *       KA = TmpDG.Rows[i][7].ToString(),
             *       KB = TmpDG.Rows[i][8].ToString(),
             *       ID = TmpDG.Rows[i][9].ToString(),  //OBJPARAMID
             *       ChannelName = TmpDG.Rows[i][10].ToString(),
             *
             *
             *   };
             *
             *   //connect.ConnectToBase("Select OBJTYPEPARAM.NAME from OBJTYPEPARAM where OBJTYPEPARAM.ID = " + objChnl.ID, BaseAddr);
             *   //objChnl.ChannelName = connect.dt1.Rows[0][0].ToString();
             *   TeconObjectChannels.Add(objChnl);
             * }*/
        }