// 给 Word 文档中的数据表插入数据(不带合计行) #region InsertDataToTable /// <summary> /// 给 Word 文档中的数据表插入数据(不带合计行) /// </summary> /// <param name="table"> word 文档中的表格 </param> /// <param name="docRowStart"> word 表格的起始行 </param> /// <param name="docColStart"> word 表格的起始列 </param> /// <param name="data"> DataTable 数据源 </param> /// <param name="logInfo"> 日志内容 </param> /// <returns></returns> public static bool InsertDataToTable(ref Word.Table table, int docRowStart, int docColStart, DataTable data, out string logInfo) { bool res = true; try { for (int rIndex = 0; rIndex < data.Rows.Count; rIndex++) { DataRow RowItem = data.Rows[rIndex]; for (int cIndex = 0; cIndex < data.Columns.Count; cIndex++) { string colValueStr = RowItem[cIndex].ToString(); // 逐个单元格填充表格数据 table.Cell(rIndex + docRowStart, cIndex + docColStart).Range.Text = colValueStr; } } res = true; logInfo = "数据写入成功!"; } catch (Exception ex) { JCMsg.ShowErrorOK(ex.GetType().ToString() + "\n" + ex.Message); res = false; logInfo = "数据写入失败!"; } return(res); }
// 给 Word 文档中的数据表插入空行(注:表中已有一行空行~) #region InsertEmptyRowsToTable /// <summary> /// 给 Word 文档中的数据表插入空行(注:表中已有一行空行~) /// </summary> /// <param name="selection"></param> /// <param name="table"> word 文档中的表格 </param> /// <param name="docRowStart"> word 表格的起始行 </param> /// <param name="rowCount">要插入的空行数目</param> /// <param name="logInfo"> 日志内容 </param> /// <returns></returns> public static bool InsertEmptyRowsToTable(ref Word.Selection selection, ref Word.Table table, int docRowStart, int docColStart, int rowCount, out string logInfo) { bool res = true; try { // 2012-01-10 Update if (rowCount > 1) { table.Cell(docRowStart, docColStart).Select(); selection.InsertRowsBelow(rowCount - 1); logInfo = "插入空行成功!"; } else { res = false; logInfo = "无对应的数据记录!"; } } catch (Exception ex) { JCMsg.ShowErrorOK(ex.GetType().ToString() + "\n" + ex.Message); res = false; logInfo = "插入空行失败!"; } return(res); }
/// <summary> /// 更改当前城市名称 /// </summary> /// <param name="city"></param> private bool DoEditCity(string oldcity) { frmLoadIndexAddCity f = new frmLoadIndexAddCity(oldcity); if (f.ShowDialog() == DialogResult.OK) { string errMsg = ""; string newcity = f.CityName; if (newcity == oldcity) { return(false); } int ret = bll.UpdateCity(newcity, oldcity, out errMsg); if (ret == 1) { this.jccmbLocation.Text = newcity; JCMsg.ShowInfoOK(JCMsg.INFO_SUCCESS); return(true); } else { JCMsg.ShowErrorOK(errMsg); } } return(false); }
// 在 word 文档中当前光标位置中插入指定路径下的图片 #region InsertPicture /// <summary> /// 在 word 文档中当前光标位置中插入指定路径下的图片 /// </summary> /// <param name="selection"></param> /// <param name="fullPath"></param> /// <param name="logInfo"></param> /// <returns></returns> public static bool InsertPicture(ref Word.Selection selection, string fullPath, out string logInfo) { bool res = true; try { object linkToFile = false; //默认 object saveWithDocument = true; //默认 //object drawrange = selection.Range; object Nothing = System.Reflection.Missing.Value; Word.InlineShape inlineShape = selection.InlineShapes.AddPicture(fullPath, ref linkToFile, ref saveWithDocument, ref Nothing); //System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(drawPath); //double dpi = bmp.VerticalResolution; //96 //设置图片大小 int maxHeight = JCBase.Utility.Util.CentimeterToPixel(22, 72);//TODO:待确认 word 2003默认为72 if (inlineShape.Height > maxHeight) { inlineShape.Height = maxHeight; } logInfo = "图片插入成功!"; } catch (Exception ex) { JCMsg.ShowErrorOK(ex.GetType().ToString() + "\n" + ex.Message); res = false; logInfo = "图片插入失败!"; } return(res); }
private void ShowWarningMsg(string msg, Color msgColor) { //tlblStatus.Text = msg; //tlblStatus.ForeColor = msgColor; JCMsg.ShowInfoOK(msg); }
/// <summary> /// 增加新城市 /// </summary> private bool DoAddCity() { frmLoadIndexAddCity f = new frmLoadIndexAddCity(); if (f.ShowDialog() == DialogResult.OK) { string city = f.CityName; int ret = bll.AddCity(city, out errMsg); if (ret == 1) { this.jccmbLocation.Text = city; JCMsg.ShowInfoOK(JCMsg.INFO_SUCCESS); return(true); } else if (ret == 0) { JCMsg.ShowWarningOK(errMsg); } else { JCMsg.ShowErrorOK(errMsg); } } return(false); }
/// 检查控制器和室外机系统的ProductType是否匹配 /// <summary> /// 检查控制器和室外机系统的ProductType是否匹配 /// </summary> /// <returns></returns> private bool CheckSystemAndExchanger(DataTable exchanger, string controllerProductType) { // DataTable dt = ucDropOutdoor1.GetOutdoorAndExchanger(); if (exchanger != null && exchanger.Rows.Count > 0) { int systemCount = 0; int exchangerCount = 0; DataRow dr = exchanger.Rows[0]; systemCount = Convert.ToInt32(dr[0].ToString()); exchangerCount = Convert.ToInt32(dr[1].ToString()); if (systemCount == 0 && exchangerCount > 0) { if (!controllerProductType.Contains("Heat Exchanger")) { JCMsg.ShowWarningOK(Msg.CONTROLLER_PRODUCTTYPE_NOT_MATCH); return(false); } } else if (systemCount > 0 && exchangerCount == 0) { if (controllerProductType.Contains("Heat Exchanger")) { JCMsg.ShowWarningOK(Msg.CONTROLLER_PRODUCTTYPE_NOT_MATCH); return(false); } } } return(true); }
// 判断电脑中是否存在Word2003或更高版本 #region ValWordVersion /// <summary> /// 判断电脑中是否存在Word2003或更高版本 /// </summary> /// <param name="curWordApp">当前 word 应用程序</param> /// <returns></returns> public static bool ValWordVersion(ref Word._Application curWordApp) { bool res = true; try { if (curWordApp == null) { curWordApp = new Word.Application(); } if (Convert.ToDouble(curWordApp.Version) < 11) { JCMsg.ShowErrorOK("The version of Microsoft Word is too low. It must be Microsoft Word 2003 or higher."); res = false; } } catch (System.Runtime.InteropServices.COMException) { JCMsg.ShowErrorOK("Missing support software:\nMicrosoft Word 2003 or higher."); res = false; } catch (System.Exception ex) { JCMsg.ShowErrorOK(ex.GetType().ToString() + "\n" + ex.Message); res = false; } return(res); }
// 给 Word 文档中的数据表插入数据(带合计行) #region InsertDataToTableWithSum /// <summary> /// 给 Word 文档中的数据表插入数据(带合计行)--注意:插入数据源无需拆分单元格!! /// </summary> /// <param name="table"> word 文档中的表格 </param> /// <param name="docRowStart"> word 表格的起始行 </param> /// <param name="docColStart"> word 表格的起始列 </param> /// <param name="data"> DataTable 数据源 </param> /// <param name="sumColIndexArray"> 求和的列的索引(数据源中的列索引号) </param> /// <param name="sumColIndexDiff"> word 文档中的表的合计列号跟数据源的列索引号的差距(正差) </param> /// <param name="logInfo"> 日志内容 </param> /// <returns></returns> public static bool InsertDataToTableWithSum(ref Word.Table table, int docRowStart, int docColStart, DataTable data, int[] sumColIndexArray, int sumColIndexDiff, out string logInfo) { bool res = true; try { // 定义并初始化存放合计值的 list List <double> sumValueArray = new List <double>(); for (int i = 0; i < sumColIndexArray.Length; i++) { sumValueArray.Add(0); } // 逐行填充表格的数据部分(合计行除外)并累计每一个合计值 for (int rIndex = 0; rIndex < data.Rows.Count; rIndex++) { DataRow RowItem = data.Rows[rIndex]; // 逐列填充表格数据 for (int cIndex = 0; cIndex < data.Columns.Count; cIndex++) { string colValueStr = RowItem[cIndex].ToString(); table.Cell(rIndex + docRowStart, cIndex + docColStart).Range.Text = colValueStr; } // 累计计算当前行中参与合计的列 for (int i = 0; i < sumColIndexArray.Length; i++) { int cIndex = sumColIndexArray[i]; string colValueStr = RowItem[cIndex].ToString(); if (colValueStr == "-" || string.IsNullOrEmpty(colValueStr)) { continue; } sumValueArray[i] += Convert.ToDouble(colValueStr); } } // 逐个单元格填充合计行的值 for (int i = 0; i < sumColIndexArray.Length; i++) { string sumValueStr = sumValueArray[i].ToString(); if (sumValueStr == "0") { sumValueStr = "-"; } table.Cell(table.Rows.Count, sumColIndexArray[i] + 1 + sumColIndexDiff).Range.Text = sumValueStr; } res = true; logInfo = "数据写入成功!"; } catch (Exception ex) { JCMsg.ShowErrorOK(ex.GetType().ToString() + "\n" + ex.Message); res = false; logInfo = "数据写入失败!"; } return(res); }
/// <summary> /// 校验输入长度 add by axj 2018 03 12 /// 规则 LA <= LB <= LC <= 10m /// </summary> /// <returns></returns> private bool ValidateLength() { bool chk = true; string series = curSystemItem.Series; //Add FSNC7B/5B by Yunxiao Lin 20190107 if (series.Contains("FSNS") || series.Contains("FSNP") || series.Contains("FSXNS") || series.Contains("FSXNP") || series.Contains("JTOH-BS1") || series.Contains("JTOR-BS1") || series.Contains("FSNC7B") || series.Contains("FSNC5B")) { if (_nodeOut.UnitCount == 2) { double b = Unit.ConvertToSource(Convert.ToDouble(jctxtLengthB.Text), UnitType.LENGTH_M, ut_length); double c = Unit.ConvertToSource(Convert.ToDouble(jctxtLengthC.Text), UnitType.LENGTH_M, ut_length); if (!(b <= c && c <= 10)) { JCMsg.ShowErrorOK("b ≤ c ≤ " + Unit.ConvertToControl(10d, UnitType.LENGTH_M, ut_length).ToString("n1") + ut_length); chk = false; } } else if (_nodeOut.UnitCount == 3) { double b = Unit.ConvertToSource(Convert.ToDouble(jctxtLengthB.Text), UnitType.LENGTH_M, ut_length); double c = Unit.ConvertToSource(Convert.ToDouble(jctxtLengthC.Text), UnitType.LENGTH_M, ut_length); double d = Unit.ConvertToSource(Convert.ToDouble(jctxtLengthD.Text), UnitType.LENGTH_M, ut_length); double e = Unit.ConvertToSource(Convert.ToDouble(jctxtLengthE.Text), UnitType.LENGTH_M, ut_length); if (!(c <= (b + d) && (b + d) <= (b + e) && (b + e) <= 10)) { JCMsg.ShowErrorOK("c ≤ b+d ≤ b+e ≤" + Unit.ConvertToControl(10d, UnitType.LENGTH_M, ut_length).ToString("n1") + ut_length); chk = false; } } else if (_nodeOut.UnitCount == 4) { double b = Unit.ConvertToSource(Convert.ToDouble(jctxtLengthB.Text), UnitType.LENGTH_M, ut_length); double c = Unit.ConvertToSource(Convert.ToDouble(jctxtLengthC.Text), UnitType.LENGTH_M, ut_length); double d = Unit.ConvertToSource(Convert.ToDouble(jctxtLengthD.Text), UnitType.LENGTH_M, ut_length); double e = Unit.ConvertToSource(Convert.ToDouble(jctxtLengthE.Text), UnitType.LENGTH_M, ut_length); double f = Unit.ConvertToSource(Convert.ToDouble(jctxtLengthF.Text), UnitType.LENGTH_M, ut_length); if (!useDoublePipeB) { double g = Unit.ConvertToSource(Convert.ToDouble(jctxtLengthG.Text), UnitType.LENGTH_M, ut_length); if (!((b + d) <= (b + e) && (b + e) <= (c + f) && (c + f) <= (c + g) && (c + g) <= 10)) { JCMsg.ShowErrorOK("b+d ≤ b+e ≤ c+f ≤ c+g ≤" + Unit.ConvertToControl(10d, UnitType.LENGTH_M, ut_length).ToString("n1") + ut_length); chk = false; } } else { if (!((b + c) <= (b + d) && (b + d) <= (b + e) && (b + e) <= (b + f) && (b + f) <= 10)) { JCMsg.ShowErrorOK("b+c ≤ b+d ≤ b+e ≤ b+f ≤" + Unit.ConvertToControl(10d, UnitType.LENGTH_M, ut_length).ToString("n1") + ut_length); chk = false; } } } } return(chk); }
/// 检查控制器和室外机系统的ProductType是否匹配 /// <summary> /// 检查控制器和室外机系统的ProductType是否匹配 /// </summary> /// <returns></returns> private bool CheckProductType(List <string> outdoorProductTypes, string controllerProductType) { if (outdoorProductTypes.Count > 0 && !outdoorProductTypes.Contains(controllerProductType)) { JCMsg.ShowWarningOK(Msg.CONTROLLER_PRODUCTTYPE_NOT_MATCH); return(false); } return(true); }
/// <summary> /// 检测指定选项内容是否不为空 /// </summary> /// <returns></returns> private bool CheckCitySelect() { if (string.IsNullOrEmpty(this.jccmbLocation.Text)) { JCMsg.ShowWarningOK(JCMsg.WARN_SELECTONE); return(false); } return(true); }
/// <summary> /// 删除当前选中城市,包括该城市下的所有数据 /// </summary> /// <param name="city"></param> private bool DoDeleteCity(string city) { if (!bll.DeleteCity(city, out errMsg)) { JCMsg.ShowErrorOK(errMsg); return(false); } return(true); }
/// <summary> /// 检测当前 Load Index 选中项目是否不为空 /// </summary> /// <returns></returns> private bool CheckIndexSelect() { if (this.dgvLoadIndex.SelectedRows.Count == 0) { JCMsg.ShowWarningOK(JCMsg.WARN_SELECTONE); return(false); } return(true); }
private void pbDeleteLocation_Click(object sender, EventArgs e) { if (CheckCitySelect()) { DialogResult res = JCMsg.ShowConfirmOKCancel(JCMsg.CONFIRM_DEL); if (res == DialogResult.OK && DoDeleteCity(jccmbLocation.Text)) { BindCityList(); } } }
/// <summary> /// 将当前城市设为默认城市 /// </summary> private void DoSetDefaultCity(string city) { if (bll.SetDefaultCity(city, out errMsg)) { JCMsg.ShowInfoOK(JCMsg.INFO_SUCCESS); } else { JCMsg.ShowErrorOK(errMsg); } }
/// <summary> /// 删除当前选中的 Load index 记录 /// </summary> /// <param name="roomType"></param> private void DoDeleteIndex(string city, string rType) { if (bll.DeleteLoadIndex(city, rType, out errMsg)) { JCMsg.ShowInfoOK(JCMsg.INFO_SUCCESS); BindLoadIndexList(jccmbLocation.Text.Trim()); } else { JCMsg.ShowErrorOK(errMsg); } }
/// <summary> /// 将当前 Load index 记录设为默认项 /// </summary> private void DoSetDefaultLoadIndex(string city, string rType) { if (bll.SetDefaultRoomLoadIndex(city, rType, out errMsg)) { JCMsg.ShowInfoOK(JCMsg.INFO_SUCCESS); BindLoadIndexList(city); } else { JCMsg.ShowErrorOK(errMsg); } }
private void pbDeleteIndex_Click(object sender, EventArgs e) { if (CheckIndexSelect()) { DialogResult res = JCMsg.ShowConfirmOKCancel(JCMsg.CONFIRM_DEL); if (res == DialogResult.OK) { string roomType = this.dgvLoadIndex.SelectedRows[0].Cells[0].Value.ToString(); DoDeleteIndex(this.jccmbLocation.Text, roomType); } } }
public void CheckAccessryCount() { if (MaxNumber < _count && MaxNumber != 0) { JCMsg.ShowWarningOK("Count can not be greater then maxnumber "); _count = MaxNumber; } else if (_count < 0) { JCMsg.ShowWarningOK("Count can not be below zero!"); _count = 0; } else if (accType.ContainsKey(Type)) { if ((!flag && Type == "Wireless Remote Control Switch") || (!flag && Type == "Receiver Kit for Wireless Control") || (Type == "Wireless Remote Control Switch" && Count == 0 && flag) || (Type == "Receiver Kit for Wireless Control" && Count == 0 && flag)) { accType["Wireless Remote Control Switch"] = Count; accType["Receiver Kit for Wireless Control"] = Count; if (Count == 0) { flag = false; } else { flag = true; } } else { accType[Type] = Count; //flag = false; } if (accType["Half-size Remote Control Switch"] + accType["Remote Control Switch"] + accType["Wireless Remote Control Switch"] + accType["Receiver Kit for Wireless Control"] > 2) { JCMsg.ShowWarningOK("Number exceeds limitation"); _count = Count - 1; if (Type == "Wireless Remote Control Switch" || Type == "Receiver Kit for Wireless Control") { accType["Wireless Remote Control Switch"] = 0; accType["Receiver Kit for Wireless Control"] = 0; flag = false; } else { accType[Type] = Count - 1; } } } }
/// <summary> /// 获取不再指定范围里的型号,如果都在范围里面则返回null /// </summary> /// <param name="type1"></param> /// <param name="type2"></param> /// <param name="number">比较的次数,1是A和B比较,2是B和A比较。</param> /// <returns></returns> private bool CheckControllerCompatible(CentralController type1, CentralController type2, int number) { if (string.IsNullOrEmpty(type1.CompatibleModel)) { if (number == 1) { //type1没有明确兼容的控制器,需要第二次比较,如果type2不兼容type1,则最后结果是不兼容 return(CheckControllerCompatible(type2, type1, 2)); } else { return(true); } } else if (type1.CompatibleModel == "none") { //2.1 - Not compatible with other central controler JCMsg.ShowWarningOK(Msg.CONTROLLER_NOT_COMPATIBLE); return(false); } else { //2.2 - is combinable List <string> compatibleModels = new List <string>(); compatibleModels.AddRange(type1.CompatibleModel.Split(',')); //兼容性逻辑应该是所有类型适用的,所以下面的判断可以去掉 20160901 by Yunxiao Lin //if (type2.Type == ControllerType.CentralController || type2.Type == ControllerType.ONOFF) //{ if (!compatibleModels.Contains(type2.BrandCode == "H" ? type2.Model_Hitachi : type2.Model_York)) { //type1不兼容type2, 有3种情况 //1. 如果是第二次比较还是不兼容的话,则肯定是不兼容 //2. 如果是第一次比较,type1不兼容typ2,而type2没有指定兼容的型号,则判断为不兼容。 if (number == 2 || string.IsNullOrEmpty(type2.CompatibleModel)) { JCMsg.ShowWarningOK(Msg.CONTROLLER_NOT_COMPATIBLE_WITH(number == 1 ? type2.Model : type1.Model)); return(false); } //3.如果第一次比较下来type1不兼容typ2, 并且type2有明确兼容的型号,则要看type2是不是兼容type1。 else { return(CheckControllerCompatible(type2, type1, 2)); } } //} } return(true); }
/// <summary> /// 编辑当前选中的 Load index 记录 /// </summary> /// <param name="roomType"></param> private void DoEditIndex(RoomLoadIndex item) { frmLoadIndexAddIndex f = new frmLoadIndexAddIndex(item); if (f.ShowDialog() == DialogResult.OK) { RoomLoadIndex newItem = f.LoadIndexItem; if (bll.UpdateLoadIndex(newItem, out errMsg) == 1) { JCMsg.ShowInfoOK(JCMsg.INFO_SUCCESS); BindLoadIndexList(jccmbLocation.Text.Trim()); } else { JCMsg.ShowErrorOK(errMsg); } } }
/// 检查控制器和exchanger系统的ProductType是否匹配 on 20170904 by xyj /// <summary> /// 检查控制器和exchanger系统的ProductType是否匹配 /// </summary> /// <returns></returns> private bool CheckExchangerIsMatch(DataTable exchanger, string controllerProductType) { if (exchanger != null && exchanger.Rows.Count > 0) { //判断当前节点里面是否包含System DataRow[] rows = null; rows = exchanger.Select("ProductType='System'"); if (rows.Length > 0) { //如果包含直接返回不需验证 return(true); } DataRow[] rowexchanger = exchanger.Select("ProductType='Exchanger'"); if (rowexchanger.Length == 1) { if (!rowexchanger[0]["ExchangerType"].ToString().Contains(controllerProductType)) { JCMsg.ShowWarningOK(Msg.CONTROLLER_PRODUCTTYPE_NOT_MATCH); return(false); } } else if (rowexchanger.Length > 1) { //判断是否存在包含Exchanger 的类型 bool isTrue = false; foreach (DataRow r in rowexchanger) { if (r["ExchangerType"].ToString().Contains(controllerProductType)) { isTrue = true; break; } } if (!isTrue) { JCMsg.ShowWarningOK(Msg.CONTROLLER_PRODUCTTYPE_NOT_MATCH); return(false); } } } return(true); }
// 插入指定文本(带style和font) #region InsertTextWithStyle /// <summary> /// 在书签位置 插入指定文本(带style) /// </summary> /// <param name="style"> 指定样式 </param> /// <param name="font"> 指定字体 </param> /// <param name="selection"></param> /// <param name="text"> 插入的字符串内容 </param> /// <param name="logInfo"> 日志内容 </param> /// <returns></returns> public static bool InsertTextWithStyle(object style, ref Word.Selection selection, string text, out string logInfo) { bool res = true; try { selection.set_Style(style); selection.TypeText(text); logInfo = "写入成功!"; } catch (Exception ex) { JCMsg.ShowErrorOK(ex.GetType().ToString() + "\n" + ex.Message); res = false; logInfo = "写入失败!"; } return(res); }
// 在书签位置 插入指定文本(不带style) #region InsertTextToBookMark /// <summary> /// 在书签位置 插入指定文本(不带style) /// </summary> /// <param name="selection"></param> /// <param name="markName"> BookMark Name </param> /// <param name="text"> 插入的字符串内容 </param> /// <param name="logInfo"> 日志内容 </param> /// <returns></returns> public static bool InsertTextToBookMark(ref Word.Selection selection, string markName, string text, out string logInfo) { bool res = true; try { GoToBookMark(ref selection, markName); selection.TypeText(text); logInfo = "写入 【" + markName + "】 成功!"; } catch (Exception ex) { JCMsg.ShowErrorOK(ex.GetType().ToString() + "\n" + ex.Message); res = false; logInfo = "写入 【" + markName + "】 失败!"; } return(res); }
/// <summary> /// 检查H-Link/H-Link II的限制,H-Link与H-Link II并存时,使用H-Link的限制 /// </summary> /// <param name="isHLinkII"></param> /// <param name="indoorQty"></param> /// <param name="outdoorQty"></param> /// <param name="deviceQty"></param> /// <returns></returns> private bool CheckHLinkLimiation(bool isHLinkII, int indoorQty, int outdoorQty, int deviceQty) { if (isHLinkII) { if (indoorQty > ControllerConstValue.HLINKII_MAX_IDU_QTY) { JCMsg.ShowWarningOK(Msg.CONTROLLER_HLINK_INDOOR_QTY("H-Link II", ControllerConstValue.HLINKII_MAX_IDU_QTY)); return(false); } if (outdoorQty > ControllerConstValue.HLINKII_MAX_ODU_QTY) { JCMsg.ShowWarningOK(Msg.CONTROLLER_HLINK_OUTDOOR_QTY("H-Link II", ControllerConstValue.HLINKII_MAX_ODU_QTY)); return(false); } if (deviceQty > ControllerConstValue.HLINKII_MAX_DEVICE_QTY) { JCMsg.ShowWarningOK(Msg.CONTROLLER_HLINK_DEVICE_QTY("H-Link II", ControllerConstValue.HLINKII_MAX_DEVICE_QTY)); return(false); } } else { if (indoorQty > ControllerConstValue.HLINK_MAX_IDU_QTY) { JCMsg.ShowWarningOK(Msg.CONTROLLER_HLINK_INDOOR_QTY("H-Link", ControllerConstValue.HLINKII_MAX_IDU_QTY)); return(false); } if (outdoorQty > ControllerConstValue.HLINK_MAX_ODU_QTY) { JCMsg.ShowWarningOK(Msg.CONTROLLER_HLINK_OUTDOOR_QTY("H-Link", ControllerConstValue.HLINKII_MAX_ODU_QTY)); return(false); } if (deviceQty > ControllerConstValue.HLINK_MAX_DEVICE_QTY) { // JCMsg.ShowWarningOK(Msg.CONTROLLER_HLINK_DEVICE_QTY("H-Link", Model.ConstValue.HLINKII_MAX_DEVICE_QTY));//HLINKII_MAX_DEVICE_QTY 限制200 JCMsg.ShowWarningOK(Msg.CONTROLLER_HLINK_DEVICE_QTY("H-Link", ControllerConstValue.HLINK_MAX_DEVICE_QTY));// HLINK_MAX_DEVICE_QTY 限制145 on 20180306 by xyj return(false); } } return(true); }
/// <summary> /// 增加新的 Load index 记录 /// </summary> private void DoAddIndex(string city) { frmLoadIndexAddIndex f = new frmLoadIndexAddIndex(city); if (f.ShowDialog() == DialogResult.OK) { RoomLoadIndex newItem = f.LoadIndexItem; int index = bll.AddLoadIndex(newItem, out errMsg); if (index == 1) { JCMsg.ShowInfoOK(JCMsg.INFO_SUCCESS); BindLoadIndexList(jccmbLocation.Text.Trim()); } else if (index == 0) { JCMsg.ShowErrorOK(Msg.ROOM_TYPE_IS_EXIST()); } else { JCMsg.ShowErrorOK(errMsg); } } }
/// <summary> /// 检查室内机、室外机和设备总数的限制 /// </summary> /// <param name="typeInfo"></param> /// <param name="indoorQty"></param> /// <param name="outdoorQty"></param> /// <param name="deviceQty"></param> /// <returns></returns> private bool CheckSystemQtyLimitation(CentralController typeInfo, int indoorQty, int outdoorQty, int deviceQty) { //1 - 200 devices (incl. ODU, IDU, remote controller, central controller) can be connected in 1 H-Link if (typeInfo.MaxDeviceNumber > 0 && deviceQty > typeInfo.MaxDeviceNumber) { JCMsg.ShowWarningOK(Msg.CONTROLLER_TOTAL_DEVICE_QTY(typeInfo.MaxDeviceNumber)); return(false); } //2 - Indoor quantity limitation if (typeInfo.MaxIndoorUnitNumber > 0 && indoorQty > typeInfo.MaxIndoorUnitNumber) { JCMsg.ShowWarningOK(Msg.CONTROLLER_MAX_INDOOR_QTY(typeInfo.Model, typeInfo.MaxIndoorUnitNumber)); return(false); } //3 - Outdoor quantity limitation if (typeInfo.MaxSystemNumber > 0 && outdoorQty > typeInfo.MaxSystemNumber) { JCMsg.ShowWarningOK(Msg.CONTROLLER_MAX_OUTDOOR_QTY(typeInfo.Model, typeInfo.MaxSystemNumber)); return(false); } return(true); }
private void btnControlOK_Click(object sender, EventArgs e) { if (!JCValidateSingle(jctxtIndoorDifference)) { JCMsg.ShowWarningOK(Msg.WARNING_PAYATTENTION); return; } RoomIndoor emptyIndoor = new RoomIndoor(); if (this.jccmbPosition.SelectedIndex == 0) { emptyIndoor.PositionType = PipingPositionType.Upper.ToString(); } else if (this.jccmbPosition.SelectedIndex == 1) { emptyIndoor.PositionType = PipingPositionType.SameLevel.ToString(); } else { emptyIndoor.PositionType = PipingPositionType.Lower.ToString(); } emptyIndoor.HeightDiff = Unit.ConvertToSource(Convert.ToDouble(this.jctxtIndoorDifference.Text == "" ? "0" : this.jctxtIndoorDifference.Text), UnitType.LENGTH_M, ut_length); if (emptyIndoor.PositionType != PipingPositionType.SameLevel.ToString()) { if (emptyIndoor.HeightDiff <= 0) { JCMsg.ShowErrorOK(Msg.GetResourceString("INDOOR_HIGHERDIFFERENCE_LENGTH")); return; } } //判断当前室外机高度差 if (emptyIndoor.PositionType == PipingPositionType.Upper.ToString() && emptyIndoor.HeightDiff > sysItemSource.MaxOutdoorAboveHeight) { double len = Unit.ConvertToControl(sysItemSource.MaxOutdoorAboveHeight, UnitType.LENGTH_M, ut_length); JCMsg.ShowErrorOK(Msg.Piping_HeightDiffH(len.ToString("n0") + ut_length)); return; } if (emptyIndoor.PositionType == PipingPositionType.Lower.ToString() && emptyIndoor.HeightDiff > sysItemSource.MaxOutdoorBelowHeight) { double len = Unit.ConvertToControl(sysItemSource.MaxOutdoorBelowHeight, UnitType.LENGTH_M, ut_length); JCMsg.ShowErrorOK(Msg.Piping_HeightDiffH(len.ToString("n0") + ut_length)); return; } foreach (SelectedIDUList ind in SelIDUList) { int IDU_ID = ind.IndoorNo; double HeightDiff = emptyIndoor.HeightDiff; if (ind.IndoorTag is MyNodeCH) { MyNodeCH nodech = ind.IndoorTag as MyNodeCH; if (emptyIndoor.PositionType == PipingPositionType.Lower.ToString()) { HeightDiff = -HeightDiff; } nodech.HeightDiff = HeightDiff; } else if (ind.IndoorTag is MyNodeMultiCH) { MyNodeMultiCH nodech = ind.IndoorTag as MyNodeMultiCH; if (emptyIndoor.PositionType == PipingPositionType.Lower.ToString()) { HeightDiff = -HeightDiff; } nodech.HeightDiff = HeightDiff; } else if (ind.IndoorTag is MyNodeIn) { MyNodeIn node = ind.IndoorTag as MyNodeIn; node.RoomIndooItem.PositionType = emptyIndoor.PositionType.ToString(); node.RoomIndooItem.HeightDiff = HeightDiff; //RoomIndoor ri = listRISelected.Find(p => p.IndoorNO == IDU_ID); // UpdateHeightDiff(ri, emptyIndoor); //RoomIndoor inds = thisProject.RoomIndoorList.Find(p => p.IndoorNO == IDU_ID); //UpdateHeightDiff(inds, emptyIndoor); } } RefreshPanel(); BindHighDifference(); //验证当前输入的高度差 是否大于系统 VerificationHighDiff(); }
private void jcbtnSetLengthOK_Click(object sender, EventArgs e) { if (!this.JCValidateForm()) { return; } //DialogResult = DialogResult.OK; bool errFlag = false; //if (this.rbtnHigher.Checked) //{ // //this.jctxtHighDifference.JCMaxValue = float.Parse(Unit.ConvertToControl(50, UnitType.LENGTH_M, ut_length).ToString("n0")); // //FSNS与FSNP机型高度能超过50,最大110m // if (sysItemCopy.SelOutdoorType.Contains("FSNS") || sysItemCopy.SelOutdoorType.Contains("FSNP") || sysItemCopy.SelOutdoorType.Contains("FSXNS") || sysItemCopy.SelOutdoorType.Contains("FSXNP") || sysItemCopy.SelOutdoorType.Contains("JTOH-BS1") || sysItemCopy.SelOutdoorType.Contains("JTOR-BS1")) // { // //高度超过50.提示信息 // if (Convert.ToDecimal(jctxtHighDifference.Text) > 50) // msgFlag = true; // else // msgFlag = false; // this.jctxtHighDifference.JCMaxValue = float.Parse(Unit.ConvertToControl(110, UnitType.LENGTH_M, ut_length).ToString("n0")); // } // else // this.jctxtHighDifference.JCMaxValue = float.Parse(Unit.ConvertToControl(50, UnitType.LENGTH_M, ut_length).ToString("n0")); //} //else //{ // this.jctxtHighDifference.JCMaxValue = float.Parse(Unit.ConvertToControl(40, UnitType.LENGTH_M, ut_length).ToString("n0")); //} //if (!JCValidateSingle(jctxtHighDifference)) // return; try { this.Cursor = Cursors.WaitCursor; BindPipeLength(); // 修改了Pipe Length之后要重新执行自动选型(注:若用户手动输入的pipe长度值则无效) //SelectOutdoorResult result = DoSelectOutdoor(out ERRList); //如果最长等效管长小于设置高度则加入错误列表 if (sysItemSource.PipeEquivalentLength < sysItemSource.HeightDiff) { double len = Unit.ConvertToControl(double.Parse(jctxtEqPipeLength.Text), UnitType.LENGTH_M, ut_length); double diff = Unit.ConvertToControl(0, UnitType.LENGTH_M, ut_length); JCMsg.ShowWarningOK(Msg.PIPING_LENGTHFACTOR(sysItemSource.Name, len.ToString("n2") + ut_length, Math.Abs(diff).ToString("n2") + ut_length)); errFlag = true; return; } //是否自动模式的判断 add by Shen Junjie on 20170619 if (sysItemSource != null && sysItemSource.IsAuto) { //室外机选型统一改用新逻辑 Global.DoSelectOutdoorODUFirst 20161112 by Yunxiao Lin //result = Global.DoSelectOutdoorODUFirst(sysItemCopy, listRISelected, thisProject, out ERRList, out MSGList); result = Global.DoSelectOutdoorODUFirst(sysItemSource, listRISelected, thisProject, out ERRList, out MSGList); if (result == SelectOutdoorResult.Null) { errFlag = true; return; } } //if (!SaveToSourceSystem()) //{ // errFlag = true; //} } catch (Exception exc) { JCMsg.ShowWarningOK(exc.Message); } finally { this.Cursor = Cursors.Default; if (!errFlag) { DialogResult = DialogResult.OK; } } }