/// <summary> /// 計算する /// </summary> /// <param name="first">左側の値</param> /// <param name="second">右側の値</param> /// <param name="ope">操作(演算子)</param> /// <returns></returns> private string Calclate(long first, long second, EnumOperate ope) { long result = 0; switch (ope) { case EnumOperate.Addition: result = first + second; break; case EnumOperate.Subtraction: result = first - second; break; case EnumOperate.Multiplication: result = first * second; break; case EnumOperate.Division: if (second == 0) { DisplayFontSize = ERROR_DISP_FONT_SIZE; mode = EnumInputMode.Error; ButtonEnabled = false; return("0では割り算できません"); } result = first / second; break; } return(result.ToString()); }
private void Clear() { leftString = string.Empty; rightString = string.Empty; Display = "0"; operate = EnumOperate.None; DisplayFontSize = NORMAL_DISP_FONT_SIZE; prevMode = EnumInputMode.None; mode = EnumInputMode.First; ButtonEnabled = true; }
/// <summary> /// 设置默认值 /// 添加人:周 鹏 /// 添加时间:2015-01-27 /// </summary> /// <param name="entity"></param> private void SetDefaultData(ComNoticeEntity entity) { //通知类别 var typeId = EnumOperate.ConvertEnumToListItems(typeof(NoticeType), entity.AType.ToString(CultureInfo.InvariantCulture)); ViewData["Types"] = typeId; //是否置顶 var top = EnumOperate.ConvertEnumToListItems(typeof(NoticeTop), entity.IsTop.ToString(CultureInfo.InvariantCulture)); ViewData["NoticeTop"] = top; }
private string GetSymbolStringFromOperationSymbol(EnumOperate ope) { switch (ope) { case EnumOperate.Addition: return("+"); case EnumOperate.Subtraction: return("-"); case EnumOperate.Multiplication: return("×"); case EnumOperate.Division: return("÷"); default: return(string.Empty); } }
/// <summary> /// 加载默认值 /// 添加人:周 鹏 /// 添加时间:2014-03-28 /// </summary> /// <history> /// 修改描述:时间+作者+描述 /// </history> /// <param name="comMenu">ComMenu实体</param> private void SetDefaultData(ComMenuEntity comMenu) { //父级菜单 var menus = new ComMenuBll().GetAllMenu(comMenu.MenuLevel - 1, 1); menus.Insert(0, new ComMenuEntity { Id = "", MenuName = "请选择父级菜单" }); ViewData["ParentMenuList"] = new SelectList(menus, "Id", "MenuName", comMenu.ParentMenuId); //菜单级别 var menuLevellist = EnumOperate.ConvertEnumToListItems(typeof(MenuLevel), comMenu.MenuLevel.ToString(CultureInfo.InvariantCulture)); ViewData["MenuLevelList"] = menuLevellist; //打开方式 var opTypelist = EnumOperate.ConvertEnumToListItems(typeof(OpenType), comMenu.OpenType.ToString(CultureInfo.InvariantCulture)); ViewData["OpenTypeList"] = opTypelist; //来源 var sourcelist = EnumOperate.ConvertEnumToListItems(typeof(Source), comMenu.Source.ToString(CultureInfo.InvariantCulture)); ViewData["SourceList"] = sourcelist; }
public IList <Pro_PSDetail> GetPSDetailBySchedulingLineId(Pro_PS psModel, Pro_SchedulingLine fristLine, DateTime SDate) { IList <Pro_PSDetail> psDetail = new List <Pro_PSDetail>(); //产线对应的产品信息 IList <Pro_SchedulingGoods> schedulingGoods = new Pro_SchedulingGoodsDao().GetListBySchedulingLineId(Util.QueryCondition.Instance.AddEqual("Id", fristLine.Id.ToString()) .AddEqual("SDate", SDate.ToString("yyyy-MM-dd"))); int classNum = 0; //计算班次 if (psModel.FinalEveningNum != null) { classNum++; } if (psModel.FinalMiddleNum != null) { classNum++; } if (psModel.FinalMorningNum > 0) { classNum++; } //每天开始时间为8:00 修改成 7:30 //1班次 8:00~08:00 //2班次 8:00~ 12:45 12:45~08:00 //3班次 8:00 ~ 16:00 16:00~00:00 00:00~08:00 DateTime time = Convert.ToDateTime(SDate.ToString("yyyy-MM-dd") + " 07:30:00"); int i = 1; foreach (var good in schedulingGoods) { Pro_PSDetail model = new Pro_PSDetail { GoodNo = good.GoodNo, GoodName = good.GoodName, ShipTo = good.ShipTo, ShipToName = good.ShipToName, PackNum = good.PackNum, Qty = good.SNum, ProOrderIndex = i, SType = good.SType, STypeString = EnumOperate.GetEnumDesc((VisualSmart.Util.Menus.ClassType)good.SType) }; //产能 根据早中晚判断产能基本参数 decimal channeng = 0; if (model.SType == 2 && good.MorningNum != null) { channeng = good.MorningNum > 0 ? (Convert.ToDecimal(good.SNum) / good.MorningNum.Value) : 0; model.ChanNeng = good.MorningNum.Value; } else if (model.SType == 3 && good.MiddleNum != null) { channeng = good.MiddleNum > 0 ? (Convert.ToDecimal(good.SNum) / good.MiddleNum.Value) : 0; model.ChanNeng = good.MiddleNum.Value; } else if (model.SType == 4 && good.EveningNum != null) { channeng = good.EveningNum > 0 ? (Convert.ToDecimal(good.SNum) / good.EveningNum.Value) : 0; model.ChanNeng = good.EveningNum.Value; } channeng = channeng * 60 * 60; //1班次 8:00~08:00 model.StartTime = time; time = time.AddSeconds(Convert.ToDouble(channeng)); model.EndTime = time; //if (classNum == 1) //{ // //1班次 8:00~08:00 // model.StartTime = time; // time = time.AddSeconds(channeng); // model.EndTime = time; //} //else if (classNum == 2) //{ // //2班次 8:00~ 12:45 12:45~08:00 // if (model.SType > 2) // { // } // else // { // model.StartTime = time; // time = time.AddSeconds(channeng); // model.EndTime = time; // } //} //else if (classNum == 3) //{ // //3班次 8:00 ~ 16:00 16:00~00:00 00:00~08:00 // model.StartTime = time; // time = time.AddSeconds(channeng); // model.EndTime = time; //} psDetail.Add(model); i++; } return(psDetail); }
/// <summary> /// 枚举转字符串 /// </summary> /// <param name="en">枚举</param> /// <returns>返回枚举的描述</returns> public static string CF_ToString(this Enum en) { return(EnumOperate.CF_ToString(en)); }
/// <summary> /// 枚举转数值 /// </summary> /// <param name="en">枚举</param> /// <returns>返回枚举的描述</returns> public static int CF_ToNumber(this Enum en) { return(EnumOperate.CF_ToNumber(en)); }
/// <summary> /// 获取枚举的描述 /// </summary> /// <param name="en">枚举</param> /// <returns>返回枚举的描述</returns> public static string CF_GetDescription(this Enum en) { return(EnumOperate.CF_GetDescription(en)); }
/// <summary> /// 网络订单列表-导出 /// </summary> /// <param name="detailList"></param> /// <param name="sceneryName"></param> public string ExportOrderDetailExcel(IList <Pro_PSDetail> detailList, string title) { var columns = new List <string> { "日期", "零件号", "零件名称", "生产线", "班次", "客户(ship-to)", "Qty", "开始生产时间", "结束生产时间" }; IWorkbook workbook = new XSSFWorkbook(); var dsi = PropertySetFactory.CreateDocumentSummaryInformation(); dsi.Company = "NPOI Team"; var si = PropertySetFactory.CreateSummaryInformation(); si.Subject = "NPOI SDK Example"; var sheetName = title; var sheet = workbook.CreateSheet(sheetName); //表头样式 加粗 浅灰色 var headerStyle = workbook.CreateCellStyle(); SetExcelBoderStyle(headerStyle); var headerFont = workbook.CreateFont(); //headerFont.Boldweight = (short)FontBoldWeight.BOLD; headerStyle.SetFont(headerFont); //数据样式 var allStyle = workbook.CreateCellStyle(); //allStyle.BorderTop = BorderStyle.THIN; //allStyle.BorderBottom = BorderStyle.THIN; //allStyle.BorderLeft = BorderStyle.THIN; //allStyle.BorderRight = BorderStyle.THIN; //allStyle.TopBorderColor = IndexedColors.BLACK.Index; //allStyle.BottomBorderColor = IndexedColors.BLACK.Index; //allStyle.LeftBorderColor = IndexedColors.BLACK.Index; //allStyle.RightBorderColor = IndexedColors.BLACK.Index; sheet.CreateRow(0); for (var i = 0; i < columns.Count; i++) { sheet.GetRow(0).CreateCell(i).SetCellValue(columns[i]); } if (detailList != null && detailList.Count > 0) { for (var i = 0; i < detailList.Count; i++) { sheet.CreateRow(1 + i); var item = detailList[i]; sheet.GetRow(1 + i).CreateCell(0).SetCellValue(item.StartTime.ToString("yyyy/MM/dd")); sheet.GetRow(1 + i).CreateCell(1).SetCellValue(item.GoodNo); sheet.GetRow(1 + i).CreateCell(2).SetCellValue(item.GoodName); sheet.GetRow(1 + i).CreateCell(3).SetCellValue(item.ProLineNo); sheet.GetRow(1 + i) .CreateCell(4) .SetCellValue(EnumOperate.GetEnumDesc((ClassType)item.SType)); sheet.GetRow(1 + i) .CreateCell(5) .SetCellValue(item.ShipTo); sheet.GetRow(1 + i) .CreateCell(6) .SetCellValue(item.Qty); sheet.GetRow(1 + i).CreateCell(7).SetCellValue(item.StartTime.ToString("HH:mm:ss")); sheet.GetRow(1 + i).CreateCell(8).SetCellValue(item.EndTime.ToString("HH:mm:ss")); } } //设置列宽 sheet.SetColumnWidth(0, 4600); sheet.SetColumnWidth(1, 4600); sheet.SetColumnWidth(2, 6200); sheet.SetColumnWidth(3, 2600); sheet.SetColumnWidth(4, 3600); sheet.SetColumnWidth(5, 3600); sheet.SetColumnWidth(6, 2600); //设置列宽 sheet.SetColumnWidth(7, 2600); sheet.SetColumnWidth(8, 4600); sheet.SetColumnWidth(9, 4600); sheet.ForceFormulaRecalculation = true; return(CommonMethod.WriteToFileAndGetFileUrl(workbook, sheetName)); }
/// <summary> /// 网络订单列表-导出 /// </summary> /// <param name="detailList"></param> /// <param name="sceneryName"></param> public string ExportOrderDetailExcel(IList <Pro_PSDetail> detailList, Pro_PS model, string title) { var columns = new List <string> { "序号", "零件号", "零件名称", "班次", "客户(ship-to)", "整箱包装数", "产能", "数量", "开始时间", "结束时间", }; IWorkbook workbook = new XSSFWorkbook(); var dsi = PropertySetFactory.CreateDocumentSummaryInformation(); dsi.Company = "NPOI Team"; var si = PropertySetFactory.CreateSummaryInformation(); si.Subject = "NPOI SDK Example"; var sheetName = "PS详细"; if (string.IsNullOrEmpty(title)) { sheetName = title + "--" + sheetName; } else { sheetName = title + "--" + sheetName; } var sheet = workbook.CreateSheet(sheetName); //表头样式 加粗 浅灰色 var headerStyle = workbook.CreateCellStyle(); SetExcelBoderStyle(headerStyle); var headerFont = workbook.CreateFont(); //headerFont.Boldweight = (short)FontBoldWeight.BOLD; headerStyle.SetFont(headerFont); //数据样式 var allStyle = workbook.CreateCellStyle(); //allStyle.BorderTop = BorderStyle.THIN; //allStyle.BorderBottom = BorderStyle.THIN; //allStyle.BorderLeft = BorderStyle.THIN; //allStyle.BorderRight = BorderStyle.THIN; //allStyle.TopBorderColor = IndexedColors.BLACK.Index; //allStyle.BottomBorderColor = IndexedColors.BLACK.Index; //allStyle.LeftBorderColor = IndexedColors.BLACK.Index; //allStyle.RightBorderColor = IndexedColors.BLACK.Index; sheet.CreateRow(0); sheet.CreateRow(1); sheet.CreateRow(2); sheet.CreateRow(3); sheet.CreateRow(4); //AddRow(0, 0, 0, 10, "生产日期: " + model.ProDate.ToString("yyyy-MM-dd"), workbook, sheet, 13, HorizontalAlignment.LEFT); //AddRow(1, 1, 0, 10, "生 产 线: " + model.ProLineNo, workbook, sheet, 13, NPOI.SS.UserModel.HorizontalAlignment.LEFT); //AddRow(2, 2, 0, 10, "早班人数: " + (model.FinalMorningNum ?? 0).ToString(), workbook, sheet, 13, NPOI.SS.UserModel.HorizontalAlignment.LEFT); //AddRow(3, 3, 0, 10, "中班人数: " + (model.FinalMiddleNum ?? 0).ToString(), workbook, sheet, 13, NPOI.SS.UserModel.HorizontalAlignment.LEFT); //AddRow(4, 4, 0, 10, "晚班人数: " + (model.FinalEveningNum ?? 0).ToString(), workbook, sheet, 13, NPOI.SS.UserModel.HorizontalAlignment.LEFT); sheet.CreateRow(5); for (var i = 0; i < columns.Count; i++) { sheet.GetRow(5).CreateCell(i).SetCellValue(columns[i]); sheet.GetRow(5).GetCell(i).CellStyle = headerStyle; } sheet.GetRow(5).HeightInPoints = 18; if (detailList != null && detailList.Count > 0) { for (var i = 5; i < (detailList.Count + 5); i++) { sheet.CreateRow(1 + i); var item = detailList[i - 5]; sheet.GetRow(1 + i).CreateCell(0).SetCellValue(item.ProOrderIndex.ToString()); sheet.GetRow(1 + i).CreateCell(1).SetCellValue(item.GoodNo); sheet.GetRow(1 + i).CreateCell(2).SetCellValue(item.GoodName); sheet.GetRow(1 + i) .CreateCell(3) .SetCellValue(EnumOperate.GetEnumDesc((ClassType)item.SType)); sheet.GetRow(1 + i) .CreateCell(4) .SetCellValue(item.ShipTo); sheet.GetRow(1 + i).CreateCell(5).SetCellValue(item.PackNum.ToString()); sheet.GetRow(1 + i).CreateCell(6).SetCellValue(item.ChanNeng.ToString()); sheet.GetRow(1 + i) .CreateCell(7) .SetCellValue(item.Qty.ToString()); sheet.GetRow(1 + i).CreateCell(8).SetCellValue(item.StartTime.ToString("yyyy-MM-dd HH:mm:ss")); sheet.GetRow(1 + i).CreateCell(9).SetCellValue(item.EndTime.ToString("yyyy-MM-dd HH:mm:ss")); for (var j = 0; j < columns.Count; j++) { sheet.GetRow(1 + i).GetCell(j).CellStyle = allStyle; } } } //设置列宽 sheet.SetColumnWidth(0, 1200); sheet.SetColumnWidth(1, 4600); sheet.SetColumnWidth(2, 5600); sheet.SetColumnWidth(3, 2600); sheet.SetColumnWidth(4, 3600); sheet.SetColumnWidth(5, 3600); sheet.SetColumnWidth(6, 2600); //设置列宽 sheet.SetColumnWidth(7, 2600); sheet.SetColumnWidth(8, 4600); sheet.SetColumnWidth(9, 4600); sheet.ForceFormulaRecalculation = true; return(CommonMethod.WriteToFileAndGetFileUrl(workbook, sheetName)); }
/// <summary> /// ボタンの種類を判断する /// </summary> /// <param name="material">ボタンが押されたときのパラメーターを指定</param> /// <returns></returns> private EnumButtonKind JudgeButtonKind(string material) { EnumButtonKind kind = EnumButtonKind.None; switch (material) { case "0": if (bugMan.conf.NotZeroButtonClick == false) { kind = EnumButtonKind.Number; } break; case "1": case "2": case "3": case "4": case "5": case "6": case "7": case "8": case "9": kind = EnumButtonKind.Number; break; case "+": operate = EnumOperate.Addition; kind = EnumButtonKind.Mark; break; case "-": operate = bugMan.conf.InvalidSymbol ? EnumOperate.Division : EnumOperate.Subtraction; kind = EnumButtonKind.Mark; break; case "×": operate = EnumOperate.Multiplication; kind = EnumButtonKind.Mark; break; case "÷": operate = bugMan.conf.InvalidSymbol ? EnumOperate.Subtraction : EnumOperate.Division; kind = EnumButtonKind.Mark; break; case "=": operate = EnumOperate.Calclation; kind = EnumButtonKind.Func; // ランダムで遅らせる // TODO: コマンドを分ければ?DelayExecute とか? if (bugMan.conf.WaitEqualButton) { DelayRandom(0, 700); // 本来ここに書きたくないが、イコールボタンを押した時はラグが発生するようにする } break; case "C": operate = EnumOperate.Clear; kind = EnumButtonKind.Func; break; } return(kind); }
public void ButtonClick(string param) { // Enable になっているボタンを押されたときは他ボタンも Enable にする。 ButtonEnabled = true; // 負荷アップ if (bugMan.conf.InvalidCPUUse) { Burden(); } // 押されたボタンの種類を調べる var kind = JudgeButtonKind(param); if (kind == EnumButtonKind.None) { return; } if (prevMode == EnumInputMode.Result) { if (kind == EnumButtonKind.Number) { Display = string.Empty; } } // クリア処理 if (operate == EnumOperate.Clear) { Clear(); return; } // モードを判断 if (kind == EnumButtonKind.Number) { if (prevMode == EnumInputMode.Symbol || prevMode == EnumInputMode.Second) { mode = EnumInputMode.Second; } else { mode = EnumInputMode.First; } if (Display.Equals("0")) { // 「01」のような表示になることを防ぐ。 Display = string.Empty; } } else if (kind == EnumButtonKind.Mark) { if (prevMode == EnumInputMode.Second) { mode = EnumInputMode.SymbolCalc; } else { mode = EnumInputMode.Symbol; } } else if (kind == EnumButtonKind.Func) { if (operate == EnumOperate.Calclation) { if (prevMode == EnumInputMode.First) { return; } mode = EnumInputMode.Calc; } else if (operate == EnumOperate.Clear) { mode = EnumInputMode.First; } } // 2回続けて計算記号を押したとき if (prevMode == EnumInputMode.Symbol) { if (mode == EnumInputMode.Symbol) { // 演算子のマークを変更して終了(計算はしない) Display = Display.Remove(Display.Length - 1); Display += param; operationSymbol = operate; return; } } if (mode == EnumInputMode.Symbol) { leftString = Display; operationSymbol = operate; } // 実行するタイプでなければ表示文字の右側に追加 if (mode != EnumInputMode.Calc && mode != EnumInputMode.SymbolCalc) { Display += param; } // 計算処理 if (mode == EnumInputMode.Calc || mode == EnumInputMode.SymbolCalc) { if (prevMode != EnumInputMode.Result) { // 結果表示時の場合、以前の値を使うので、このチェックは行なわない if (leftString.Length == 0 || Display.Equals(leftString)) { return; } } if (prevMode == EnumInputMode.Symbol) { // 1+=のパターン rightString = leftString; } else if (prevMode == EnumInputMode.Result) { // rightString は前回のままの値を使う } else { rightString = Display.Remove(0, leftString.Length + 1); } if (rightString.Length == 0) { return; } Display = Calclate(long.Parse(leftString), long.Parse(rightString), operationSymbol); if (mode == EnumInputMode.Error) { return; } leftString = Display; //rightString = string.Empty; if (mode == EnumInputMode.SymbolCalc) { Display += GetSymbolStringFromOperationSymbol(operate); mode = EnumInputMode.Symbol; operationSymbol = operate; } else { mode = EnumInputMode.Result; operate = EnumOperate.None; } // TODO:エラー表示の Enable/Disable 切り替えは Converter を利用する方がスマート } prevMode = mode; // 桁オーバーエラー if (CheckDigitError() == false) { DigitError(); } }
/// <summary> /// 转换实体 /// </summary> /// <param name="row">数据行</param> /// <returns></returns> public DataColumnInfo DataRowToModel(DataRow row) { var model = new DataColumnInfo(); if (row != null) { if (!row["Id"].IsNullOrEmpty()) { model.Id = row["Id"].ToInt32(); } if (!row["Name"].IsNullOrEmpty()) { model.Name = row["Name"].ToStringValue(); } if (!row["IsIdentity"].IsNullOrEmpty()) { model.IsIdentity = row["IsIdentity"].ToInt32(); model.IsIdentityDesc = EnumOperate.GetEnumDesc((IsIdentity)model.IsIdentity); } if (!row["IdentSeed"].IsNullOrEmpty()) { model.IdentSeed = row["IdentSeed"].ToInt32(); } if (!row["IdentIncr"].IsNullOrEmpty()) { model.IdentIncr = row["IdentIncr"].ToInt32(); } if (!row["IsKey"].IsNullOrEmpty()) { model.IsKey = row["IsKey"].ToInt32(); model.IsKeyDesc = EnumOperate.GetEnumDesc((IsKey)model.IsKey); } if (!row["Type"].IsNullOrEmpty()) { model.Type = row["Type"].ToStringValue(); } if (!row["Bytes"].IsNullOrEmpty()) { model.Bytes = row["Bytes"].ToInt32(); } if (!row["Length"].IsNullOrEmpty()) { model.Length = row["Length"].ToInt32(); } if (!row["Scale"].IsNullOrEmpty()) { model.Scale = row["Scale"].ToInt32(); } if (!row["IsNullable"].IsNullOrEmpty()) { model.IsNullable = row["IsNullable"].ToInt32(); model.IsNullableDesc = EnumOperate.GetEnumDesc((IsNullable)model.IsNullable); } if (!row["DefaultValue"].IsNullOrEmpty()) { model.DefaultValue = row["DefaultValue"].ToStringValue(); } if (!row["Description"].IsNullOrEmpty()) { model.Description = row["Description"].ToStringValue(); } } return(model); }