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); * }*/ }
/*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); * }*/ }