protected override void Form_Init() { ListViewItem li; DataRow[] row; //툴 이름 바인딩 T01~T25 for (int i = 0; i < vari.tool_max_lenth; i++) { li = new ListViewItem(); // li.SubItems.Add(string.Empty); li.SubItems.Add((i + 1).ToString()); row = vari.dt_tool_name.Select($"CODEVALUE = 'T{i+1:D2}'"); if (row.Length > 0) { li.SubItems.Add(Fnc.obj2String(row[0]["CODEVALUENAME"])); } else { li.SubItems.Add(string.Empty); } lstToolName.Items.Add(li); } lstToolName_SelectedIndexChanged(null, null); //툴 이름 바인딩 N01~N03 for (int i = 0; i < vari.rst_max_lenth; i++) { li = new ListViewItem(); //li.SubItems.Add(string.Empty); li.SubItems.Add((i + 1).ToString()); row = vari.dt_rst_name.Select($"CODEVALUE = 'N{i+1:D2}'"); if (row.Length > 0) { li.SubItems.Add(Fnc.obj2String(row[0]["CODEVALUENAME"])); } else { li.SubItems.Add(string.Empty); } lstRst.Items.Add(li); } lstRst_SelectedIndexChanged(null, null); }
/// <summary> /// 관리테이블을 실행 한다. /// </summary> /// <param name="mng"></param> void mng_Run(DataRow mng) { string log = "["; string a = Fnc.obj2String(mng["Address"]); fnc.stPLCAddress add = new fnc.stPLCAddress(a); int add_len = Fnc.obj2int(mng["Address_Length"]); DataRow[] d; string asc = string.Empty; bool isString = false; log += add.ToString(); if (Fnc.obj2String(mng["ValueType"]).Equals("String")) { //int x = char.ConvertToUtf32("A", 0); isString = true; asc = Fnc.obj2String(mng["Value"]); } for (int i = 0; i < add_len; i++) { d = _dtAdd.Select(string.Format("Address = '{0}'", add.ToString())); if (d.Length > 0) { if (isString) { //문자열을 주소에 넣어 준다. d[0]["Value"] = fnc.String2AddValue(asc, i * 2, char.ConvertFromUtf32(0).ToString()); } else { d[0]["Value"] = Fnc.obj2int(mng["Value"]); if (_dtAdd_Changing) { d[0]["HexValue"] = Fnc.obj2int(mng["Value"]).ToString("X4"); } } } add.Address++; } if (add_len > 1) { log += string.Format("~{0}", add.ToString()); } log += string.Format("]=>{0}", mng["Value"]); Log_Write(log, enCmdType.MNG, false); }
/// <summary> /// Verbose 모드에서 테그 수신 명령을 보낸다. /// </summary> /// <param name="shtPort">안테나 포트</param> private void InventoryRead(short shtPort) { Byte[] byteData; parser.readingPort = shtPort; byteData = (Byte[])parser.ReadInventory(); clsLog.WLog(string.Format("InventoryRead : {0}", Fnc.Bytes2String(byteData))); Send_Packet(byteData); }
/// <summary> /// 등록된 어드레스의 값을 int 형태로 가지고 온다. /// </summary> /// <param name="strAddress"></param> /// <returns></returns> public int GetValueInt(string strAddress) { try { int rtn = Fnc.obj2int(GetValue(strAddress, enPLCValueType.INT).Value); return(rtn); } catch (Exception ex) { throw ex; } }
/// <summary> /// 로우가 추가 됨 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void _dtAdd_TableNewRow(object sender, DataTableNewRowEventArgs e) { _dtAdd.AcceptChanges(); if (Fnc.isNumeric(Fnc.obj2String(e.Row["Priority"]))) { return; } var max = _dtAdd.AsEnumerable().Max(p => p["priority"]); e.Row["Priority"] = Fnc.obj2int(max) + 1; }
/// <summary> /// 설정 로우를확인 - 그룹이 없으면 넣어 준다. /// </summary> /// <param name="dr"></param> private bool row_chk(DataRow dr) { if (Fnc.obj2String(dr["GroupCode"]).Equals(string.Empty)) { DataRow r = dsSetting.Tables[fnc.GroupTable_Name].Rows[0]; dr["GroupCode"] = r["GroupCode"]; dr["GroupName"] = r["GroupName"]; return(true); } return(false); }
/// <summary> /// 조회 조건 초기화 /// </summary> private void Search_Conditon_Reset() { string date = DateTime.Now.ToString("yyyy-MM-dd"); dtFrom.Value = Fnc.String2Date(date + " 00:00:00", Fnc.enDateType.DateTime); dtTo.Value = Fnc.String2Date(date + " 23:59:59", Fnc.enDateType.DateTime); inpCartype.ComboBoxSelectIndex = 0; inpPono.Value = string.Empty; inpTrimin.Value = string.Empty; inpVin.Value = string.Empty; inpResult.ComboBoxSelectIndex = 0; }
/// <summary> /// Hex값을 Ascii 값 기준으로 문자열로 변경 하여 준다. /// </summary> /// <param name="hex"></param> /// <returns></returns> public static string HexToString(string hex) { string rtn = string.Empty; int val; while (!hex.Equals(string.Empty)) { val = HexToInt(Fnc.StringGet(ref hex, 2)); rtn += Convert.ToChar(val); } return(rtn); }
private void btnXlsLoad_Click(object sender, EventArgs e) { try { OpenFileDialog dial = new OpenFileDialog(); dial.Multiselect = false; dial.ShowDialog(); string strFileName = dial.FileName; dial.Dispose(); if (strFileName == string.Empty) { return; } strFileName = strFileName.Replace(@"\\", @"\"); //strFileName = @".\chasys.xls"; OleDB clsOle = new OleDB(OleDB.enProvider.Excel, strFileName, string.Empty, string.Empty, string.Empty); using (DataSet ds = clsOle.dsExcute_Query("select orderdate, partcode, target_cnt from [order$]")) { if (ds.Tables[0].Rows.Count < 1) { return; } lstPlan.Items.Clear(); ResetInput(); foreach (DataRow dr in ds.Tables[0].Rows) { lstPlan.Items.Add(new ListViewItem(new string[] { (lstPlan.Items.Count + 1).ToString(), Fnc.obj2String(dr["ORDERDATE"]), Fnc.obj2String(dr["PARTCODE"]), Fnc.obj2String(dr["TARGET_CNT"]) })); } } } catch (Exception ex) { clsLog.WLog_Exception("btnXlsLoad", ex); Fnc.ShowMsg(this, ex.Message, string.Empty, frmMessage.enMessageType.OK); } }
/// <summary> /// 컨트롤 크기 및 위치 정볼를 불러온다. /// </summary> /// <param name="setting_object"></param> /// <param name="propertyName"></param> public static void control_Size_Load(object setting_object, string propertyName, Form frm) { try { //폼내용은 '/*폼이름:컨트롤정보들...*/' 구성 string value = Fnc.obj2String(Function.DFnc.Property_Get_Value(setting_object, propertyName)); value = getSettingString(value, frm.Name); //컨트롤정보는 '컨트롤이름:top:left:너비:높이;' 로구분 string[] cInfo = value.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); string[] cValue; Control C; foreach (string info in cInfo) { cValue = info.Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries); if (cValue.Length < 5) { continue; } try { C = frm.Controls[cValue[0]]; if (C == null) { continue; } C.Top = Fnc.obj2int(cValue[1]); C.Left = Fnc.obj2int(cValue[2]); C.Width = Fnc.obj2int(cValue[3]); C.Height = Fnc.obj2int(cValue[4]); if (C.GetType().Equals(typeof(SplitContainer))) { ((SplitContainer)C).SplitterDistance = Fnc.obj2int(cValue[5]); } } catch { continue; } } } catch { } }
/// <summary> /// (펑션)기본(master) 파일 경로를 조회 한다. /// </summary> /// <param name="conn"></param> /// <returns></returns> public static string fnc_filepath_get(MsSQL.strConnect conn) { MsSQL sql = new MsSQL(conn); string qry = @"select filename from [master].[dbo].sysfiles where fileid = 1"; DataTable dt = sql.Excute_Query(qry, "").Tables[0]; string[] path = Function.system.clsFile.FileSplitPath_Name(Fnc.obj2String(dt.Rows[0]["filename"])); return(path[0]); }
public stColorCellInfo(Cell _cell, Color _changedCellColor) { cell = _cell; if (_cell == null) { value = null; } else { value = Fnc.obj2String(_cell.Value); } changedCellColor = _changedCellColor; }
/// <summary> /// 데이터셑에 데이터테이블을 추가한다. /// </summary> /// <param name="ds"></param> /// <param name="tableName"></param> /// <param name="Add_Cols"></param> /// <param name="Add_Types"></param> /// <param name="dValue"></param> /// <returns></returns> private bool DataTable_Add(DataSet ds, string tableName, string[] Add_Cols, string[] Add_Types, object[] dValue) { if (dsSetting.Tables.IndexOf(tableName) >= 0) { return(false); } DataTable grp = new DataTable(tableName); Fnc.DataTable_ColumnsAdd(grp, Add_Cols, Add_Types, dValue); ds.Tables.Add(grp); return(true); }
public static Control LoadingImage_Set(Control Parent_Control, int size = 60, System.Drawing.Image img = null) { PictureBox pic = null; if (Parent_Control.Parent == null) { return(null); } foreach (Control c in Parent_Control.Parent.Controls) { if (Fnc.obj2String(c.Tag).Equals("LoadingImage")) { pic = c as PictureBox; break; } } if (pic == null) { pic = new PictureBox(); pic.SizeMode = PictureBoxSizeMode.StretchImage; if (img == null) { pic.Image = Function.resIcon16.loading_004; } else { pic.Image = img; } } pic.Width = size; pic.Height = size; pic.Tag = "LoadingImage"; pic.Visible = true; Parent_Control.Enabled = false; Parent_Control.Parent.Controls.Add(pic); pic.Left = Parent_Control.Left + (Parent_Control.Width / 2) - (pic.Width / 2); pic.Top = Parent_Control.Top + (Parent_Control.Height / 2) - (pic.Height / 2); pic.BringToFront(); return(pic); }
private void ReceiveAck(byte[] bytData) { if (!isStatusChecking) { return; } strAck += encoding.GetString(bytData); if (Fnc.inStr(strAck, strEtx) < 3) { return; } isStatusChecking = false; }
private async void btnSendChatMsgPhone_Click(object sender, EventArgs e) { if (grdChat.SelectedRows.Count < 1) { SetMessage(true, "채팅 방을 선택하여 주십시요.", false); return; } foreach (DataGridViewRow vr in grdChat.SelectedRows) { string id = Fnc.obj2String(vr.Cells["id"].Value); await _client.SendMessageToChat(enChatsInfoType.id, id, txtMsgChat.Text.Trim()); } }
/// <summary> /// 그리드 뷰에서 특정 값으로 로우를 찾는다 /// </summary> /// <param name="gv"></param> /// <param name="SearchColumn"></param> /// <param name="SearchValue"></param> /// <param name="StartRowIndex"></param> public static int GridView_SelectRowBySearch(GridView gv, string SearchColumn, string SearchValue, int StartRowIndex) { int Stidx = 0; int edidx = gv.DataRowCount; int rst = -1; bool loop = true; DataRow dr; if (edidx > StartRowIndex && StartRowIndex >= 0) { Stidx = StartRowIndex; } while (loop) { for (int idx = Stidx; idx < gv.DataRowCount; idx++) { dr = gv.GetDataRow(idx); if (Fnc.obj2String(dr[SearchColumn]).Equals(SearchValue)) { rst = idx; gv.FocusedRowHandle = idx; break; } } if (rst >= 0) { break; } if (Stidx != 0) { edidx = Stidx - 1; Stidx = 0; } else { loop = false; } } return(rst); }
/// <summary> /// 항목삭제.. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cmdDelete_Click(object sender, EventArgs e) { DataRow dr = gvSettingList.GetFocusedDataRow(); if (dr == null) { return; } if (Function.clsFunction.ShowMsg(this, "항목 삭제", "선택된 항목을 삭제 하시겠습니까?", frmMessage.enMessageType.YesNo) != DialogResult.Yes) { return; } string strUpdateType = Fnc.obj2String(dr["UpdateType"]); DataTable dt; //세부 설정 테이블 update foreach (string i in Fnc.EnumItems2Strings(new enSeverType())) { dt = dsSetting.Tables[i]; foreach (DataRow r in dt.Select(string.Format("UPDATETYPE = '{0}'", strUpdateType))) { dt.Rows.Remove(r); } dt.AcceptChanges(); } foreach (DataRow r in dsSetting.Tables["Setting"].Select(string.Format("UPDATETYPE = '{0}'", strUpdateType))) { dsSetting.Tables["Setting"].Rows.Remove(r); } dsSetting.AcceptChanges(); DataSet_Save(); }
/// <summary> /// InputComboBox에 선택된 값을 가져온다.(Invoke 아님) /// </summary> /// <param name="cmb"></param> /// <param name="strField"></param> public static string Invoke_InputComboBox_GetSelectValue(C1.Win.C1InputPanel.InputComboBox cmb, string strField) { if (cmb.SelectedIndex < 0) { return(string.Empty); } if (cmb.DataSource != null) { //DataRow dr = ((DataTable)cmb.DataSource).Select(string.Format("{0} = '{1}'", cmb.DisplayMember, cmb.Text))[0]; return(Fnc.obj2String(((DataRowView)cmb.SelectedValue)[strField])); //Function.Fnc.obj2String(dr[strField]); } else { return(cmb.Text); } }
public static void Server_FileDelete(enSeverType svrType, string strUpdateType, DataRow row, Function.Db.OracleDB.strConnect strConn, AutoUpdateServer_Web.AutoUpdateServer web) { string strFileName = Fnc.obj2String(row["FILENAME"]); switch (svrType) { case enSeverType.ORACLE: clsDBFunc.FileInfo_DeleteFile(strConn, strUpdateType, clsDBFunc.enUType.FILE.ToString(), strFileName.ToUpper()); break; case enSeverType.WEB: web.FileDelete(strUpdateType, strFileName); break; } }
public void initClass() { strXmlBody = Fnc.GetResource2string(System.Reflection.Assembly.GetExecutingAssembly(), "Function.xmlEpcis.xml"); this.ResetXml(); //SetObjectEvnet( // DateTime.Now, // new string[] { "urn:epc:id:sscc:0614142.0000000003" }, // enAction.ADD, // "urn:epcglobal:fmcg:bizstep:shipping", // "urn:epcglobal:hls:active", // new string[] { "urn:epcglobal:fmcg:loc:0614141073467.RP-2" }, // new string[] { "urn:epcglobal:fmcg:loc:0614141073467" } // ); //SEND(); }
public static void Data_Insert(string vin, string trimin, string pono, string cartype, string rst, string stationid, string data) { MsSQL sql = new MsSQL(vari.conn); string fld = string.Empty; string vals = string.Empty; int[] toolLength = new int[] { 4, 4, 2 }; for (int t = 1; t <= vari.tool_max_lenth; t++) { for (int n = 1; n <= vari.rst_max_lenth; n++) { fld += $", T{t:D2}_N{n:D2}"; vals += $", '{Fnc.StringGet(ref data,toolLength[n-1])}'"; } if (data.Length < 1) { break; } } string qry = string.Format(@" DECLARE @dtNow DATETIME BEGIN SET @dtNow = GETDATE(); INSERT INTO T_RESULT (CREATEDATE, PONO, TRIMINSEQ, VIN, CARTYPE, TOTALRESULT, STATION_ID {0} ) VALUES (@dtNow, '{1}', '{2}', '{3}', '{4}', '{5}', '{7}' {6} ); END; ", fld, pono, trimin, vin, cartype, rst, vals, stationid); sql.Excute_Query(qry, ""); }
/// <summary> /// 관리테이블에 해당 하는지 확인하다. /// </summary> /// <param name="dr"></param> int mng_Check(DataRow add, int newValue, bool chkIsUse = true) { try { string a = Fnc.obj2String(add["Address"]); foreach (DataRow r in _dtMng.Rows) { if (chkIsUse && !Fnc.obj2String(r["isUse"]).Equals("Y")) { continue; } switch (Fnc.obj2String(r["MNG_Type"])) { case "Fix": if (fnc.Address_InRange(a, Fnc.obj2String(r["Address"]), Fnc.obj2int(r["Address_Length"]))) { if (chkConditon(Fnc.obj2String(r["Condition"]))) { newValue = Fnc.obj2int(r["Value"]); } } break; case "Trigger": if (chkConditon(Fnc.obj2String(r["Condition"]), a, newValue)) { mng_Run(r); } break; } } return(newValue); } catch { return(newValue); } }
public void SaveSetting() { if (dsSet == null) { InitSettingFile(FileName, DevName); } DataTable dt = dsSet.Tables[fnc.sPLCSetTable]; DataRow d = dt.Select(string.Format("plcname = '{0}'", DevName))[0]; d["COMPORT"] = txtComport.Value; d["BAUDRATE"] = Fnc.obj2String(cmbBaudRate.SelectedItem); d["DATABIT"] = Fnc.obj2String(cmbDatabit.SelectedItem); d["STOPBIT"] = Fnc.obj2String(cmbStopbit.SelectedItem); d["PARITY"] = Fnc.obj2String(cmbHandshake.SelectedItem); d["FLOW"] = Fnc.obj2String(cmbParity.SelectedItem); fnc.SaveSettingFile(FileName, DevName, dsSet); }
public void SendData(DataRow d, string strAdd, bool isWithFormat) { try { //tcp/ip 연결에 경우 전송시 마다 연결을 하고, serial은 열어놓은 상태에서 사용한다. if (!isConnected) { Open(); } //포멧전송여부 - 포멧이 변경 되면 보낸다. if (isWithFormat) { SendFormat(); } string strData = "^XA"; //헤더 strData += "^XFR:" + strfromatName; strData += strAdd; //추가 데이터 foreach (DataRow dr in dtFormatItem.Rows) { string strCol = Fnc.obj2String(dr["COL"]); strData += string.Format("^{0}^FD{1}^FS", dr["FUNCTION"], d[strCol]); } strData += "^XZ"; SendStringData(strData); } catch { throw; } finally { if (clsSn == null && isConnected) { Close(); } } }
private void btnSave_Click(object sender, EventArgs e) { try { clsDBFunc.Insert_Order(clsDB, lstPlan, strOrderType, clsLog, strStationID, SYSTEMID); Fnc.ShowMsg(this, "생산지시 저장이 완료 되었습니다.", string.Empty, frmMessage.enMessageType.OK); lstPlan.Items.Clear(); ResetInput(); this.Close(); } catch (Exception ex) { clsLog.WLog_Exception("btnXlsLoad", ex); Fnc.ShowMsg(this, ex.Message, string.Empty, frmMessage.enMessageType.OK); } }
private void log_add(string log) { if (lstLog.InvokeRequired) { lstLog.Invoke(new dellog_add(log_add), new object[] { log }); return; } int log_max_cnt = 100; ListViewItem item = new ListViewItem(new string[] { "", Fnc.Date2String(DateTime.Now, Fnc.enDateType.DateTime), log }); lstLog.Items.Insert(0, item); while (lstLog.Items.Count > log_max_cnt) { lstLog.Items.RemoveAt(lstLog.Items.Count - 1); } }
private int intexcute_Query(string Query, bool writelog = false) { try { DB_isOpen(); if (Query.Trim() == "") { throw new Exception("쿼리에 문제가 있습니다.(길이 0)"); } Dbcmd.Parameters.Clear(); this.Dbcmd.Connection = this.Dbconn; Dbcmd.CommandType = CommandType.Text; Dbcmd.CommandText = Fnc.RemoveSpLetter(Query); if (Log != null & writelog) { Log.WLog("[OracleDB 쿼리 실행]{0}", Query); } int intRst = Dbcmd.ExecuteNonQuery(); Dbcmd.Dispose(); return(intRst); } catch (OracleException ex) { throw new Exception(string.Format("쿼리 실행 Err(Oracle) : {0} / 쿼리 : {1}", ex.Message, Query), ex); } catch (Exception ex) { throw new Exception(string.Format("DB Open Err(일반) : {0}", ex.Message), ex); } finally { if (!this.isTaransaction) { this.DB_Close(); } } }
public void Log(JointPositions positions, uint userId, IList <IGesture> gestures) { positions.InitIfNotSetExt(Fnc.Values <Joints>()); var timestamp = DateTime.Now.ToString("O"); var player = userId.ToString(CultureInfo.InvariantCulture); var positionsDump = string.Join(",", Fnc.Values <Joints>().Select(joint => positions[joint].x + "," + positions[joint].y + "," + positions[joint].z).ToArray()); var baseDataLine = timestamp + "," + player + "," + positionsDump + ","; if (gestures == null || gestures.Count < 1) { gestures = new IGesture[] { null } } ; foreach (var dataLine in gestures.Select(gestureDetected => baseDataLine + (gestureDetected != null ? gestureDetected.Gesture.ToString() : "None"))) { _dataStream.WriteLine(dataLine); } }
private void clsSerial_DataReceived(object sender, SerialDataReceivedEventArgs e) { Thread.Sleep(intRecieveWatingTime); int intLength = clsSn.BytesToRead; if (intLength < 1) { return; } byte[] bytReceive = new byte[intLength]; clsSn.Read(bytReceive, 0, intLength); Console.WriteLine("[serial]{0} / {1}", Fnc.Bytes2String(bytReceive), Encoding.Default.GetString(bytReceive)); if (OnDataReceived != null) { ThreadPool.QueueUserWorkItem(new WaitCallback(RaiseEvent), bytReceive); } }