Beispiel #1
0
        // 给 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);
        }
Beispiel #2
0
        // 给 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);
        }
Beispiel #3
0
        /// <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);
        }
Beispiel #4
0
        // 在 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);
        }
Beispiel #5
0
        private void ShowWarningMsg(string msg, Color msgColor)
        {
            //tlblStatus.Text = msg;
            //tlblStatus.ForeColor = msgColor;

            JCMsg.ShowInfoOK(msg);
        }
Beispiel #6
0
        /// <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);
        }
Beispiel #7
0
        /// 检查控制器和室外机系统的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);
        }
Beispiel #8
0
        // 判断电脑中是否存在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);
        }
Beispiel #9
0
        // 给 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);
        }
Beispiel #10
0
        /// <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);
        }
Beispiel #11
0
 /// 检查控制器和室外机系统的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);
 }
Beispiel #12
0
 /// <summary>
 /// 检测指定选项内容是否不为空
 /// </summary>
 /// <returns></returns>
 private bool CheckCitySelect()
 {
     if (string.IsNullOrEmpty(this.jccmbLocation.Text))
     {
         JCMsg.ShowWarningOK(JCMsg.WARN_SELECTONE);
         return(false);
     }
     return(true);
 }
Beispiel #13
0
 /// <summary>
 /// 删除当前选中城市,包括该城市下的所有数据
 /// </summary>
 /// <param name="city"></param>
 private bool DoDeleteCity(string city)
 {
     if (!bll.DeleteCity(city, out errMsg))
     {
         JCMsg.ShowErrorOK(errMsg);
         return(false);
     }
     return(true);
 }
Beispiel #14
0
 /// <summary>
 /// 检测当前 Load Index 选中项目是否不为空
 /// </summary>
 /// <returns></returns>
 private bool CheckIndexSelect()
 {
     if (this.dgvLoadIndex.SelectedRows.Count == 0)
     {
         JCMsg.ShowWarningOK(JCMsg.WARN_SELECTONE);
         return(false);
     }
     return(true);
 }
Beispiel #15
0
 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();
         }
     }
 }
Beispiel #16
0
 /// <summary>
 /// 将当前城市设为默认城市
 /// </summary>
 private void DoSetDefaultCity(string city)
 {
     if (bll.SetDefaultCity(city, out errMsg))
     {
         JCMsg.ShowInfoOK(JCMsg.INFO_SUCCESS);
     }
     else
     {
         JCMsg.ShowErrorOK(errMsg);
     }
 }
Beispiel #17
0
 /// <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);
     }
 }
Beispiel #18
0
 /// <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);
     }
 }
Beispiel #19
0
 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);
         }
     }
 }
Beispiel #20
0
        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;
                    }
                }
            }
        }
Beispiel #21
0
 /// <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);
 }
Beispiel #22
0
        /// <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);
                }
            }
        }
Beispiel #23
0
        /// 检查控制器和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);
        }
Beispiel #24
0
        // 插入指定文本(带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);
        }
Beispiel #25
0
        // 在书签位置 插入指定文本(不带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);
        }
Beispiel #26
0
 /// <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);
 }
Beispiel #27
0
        /// <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);
                }
            }
        }
Beispiel #28
0
        /// <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);
        }
Beispiel #29
0
        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();
        }
Beispiel #30
0
        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;
                }
            }
        }