Inheritance: MonoBehaviour
Esempio n. 1
0
        private void frmMain_Load(object sender, EventArgs e)
        {
            bool IsExist = thread.isRunning(false);
            if (IsExist)
            {
                if (DialogResult.Yes == MessageBox.Show("The DBPusher process is running,Do you want to kill it?", "Notice", 
                    MessageBoxButtons.YesNo, MessageBoxIcon.Question))
                {
                    thread.isRunning(true);
                }
                else
                    Environment.Exit(0);
            }

            msgDis = new MessageDisplay(MainTextBox);
            this.Text = AppSet.Default.Title + " (V. " + Application.ProductVersion + " )";

            chkNetLog.Checked = true;

            DBAccessMonitor.Instance.noticeEvent += msgDis.msg;

            Trunk.Instance.noticeEvent += msgDis.msg;

            try
            {
                Trunk.Instance.Init();
                Trunk.Instance.Active = true;
            }
            catch (Exception E)
            {
                MessageBox.Show(string.Format("Trunk active fatal error:{0}", E.Message), "Exit", MessageBoxButtons.OK,
                    MessageBoxIcon.Stop);
                Environment.Exit(0);
            }
        }
        protected override bool ValidateRoleDate(RoleCollection roles, MessageDisplay msgdisp)
        {
            bool returnValue = true;
            for (int i = 0; i < roles.Count; i++)
            {
                if (string.IsNullOrEmpty(roles[i].Title) || roles[i].Title.Trim() == string.Empty)
                {
                    msgdisp.AddError("title", i, Lang_Error.Role_EmptyTitleError);
                    returnValue = false;
                }

                for (int j = i + 1; j < roles.Count; j++)
                {
                    if (i!=j)
                    {
                        if (roles[i].RequiredPoint == roles[j].RequiredPoint)
                        {
                            msgdisp.AddError("RequiredPoint", i, string.Format(Lang_Error.Role_DuplicatePointError,i+1,j+1));
                            msgdisp.AddError("RequiredPoint", j, string.Format(Lang_Error.Role_DuplicatePointError, j+1,i+1));
                            returnValue = false;
                        }
                    }
                }
            }

            return returnValue;
        }
Esempio n. 3
0
        public void DeleteGroup(int groupID,MessageDisplay msgdisplay)
        {
            DefaultEmoticonGroup group = m_groups.GetValue(groupID);// m_groups[groupName];
            if (group != null)
            {
                bool error = false;

                if (string.IsNullOrEmpty(group.DirectoryName))
                {
                    msgdisplay.AddError("groupname", "不能删除默认分组");
                }
                else
                {
                    //全部文件监控都关闭然后再删除文件夹, 否则会导致重启 ||  事实证明停止监视也会重启
                    EndWach();
                    foreach (DefaultEmoticonGroup tempgroup in m_groups)
                    {
                        tempgroup.EndWach();
                    }

                    try
                    {
                      
                        Directory.Delete(m_groups .GetValue(groupID).FilePath,true);
                    }
                    catch (Exception ex)
                    {
                        group.BeginWach();
                        msgdisplay.AddError("删除表情出错,错误信息:" + ex.Message);
                        error = true;
                    }

                    if (error == false)
                    {
                        SettingManager.SaveSettings(this);
                        init(group.DirectoryName);
                    }
                    else
                    {
                        foreach (DefaultEmoticonGroup tempgroup in m_groups)
                        {
                            tempgroup.BeginWach();
                        }
                        BeginWach();
                    }
                }   
            }
        }
Esempio n. 4
0
        /// <summary>
        /// 验证验证码
        /// </summary>
        /// <param name="actionType"></param>
        /// <param name="id"></param>
        /// <param name="msgDisplay"></param>
        /// <returns></returns>
        public static bool CheckValidateCode(string actionType, string id, MessageDisplay msgDisplay,bool removeSession)
        {
            HttpSessionState Session = HttpContext.Current.Session;

            if (MaxLabs.bbsMax.ValidateCodes.ValidateCodeManager.HasValidateCode(actionType) == false)
                return true;

            if (id == null)
                id = string.Empty;

            string inputName = string.Format(Consts.ValidateCode_InputName, actionType, id);


            string code = HttpContext.Current.Request.Form[inputName];

            string sessionKey = Consts.ValidateCode_SessionKey_Prefix + actionType + id.Trim().ToLower();

            if (string.IsNullOrEmpty(code))
            {
                if (msgDisplay != null)
                    msgDisplay.AddError(inputName, Lang_Error.ValidateCode_EmptyValidateCodeError);
                
                if (removeSession)
                    Session.Remove(sessionKey);
                return false;
            }

            object realCode = Session[sessionKey];
            if (realCode == null)
            {
                if (msgDisplay != null)
                    msgDisplay.AddError(inputName, Lang_Error.ValidateCode_EmptyValidateCodeError);
                return false;
            }

            if (string.Compare(code.Trim(), realCode.ToString(), true) != 0)
            {
                if (msgDisplay != null)
                    msgDisplay.AddError(inputName, Lang_Error.ValidateCode_InvalidValidateCodeError);

                if (removeSession)
                    Session.Remove(sessionKey);
                return false;
            }
            return true;
        }
Esempio n. 5
0
        public void CreateGroup(int sortorder,string GroupName,MessageDisplay msgdisplay)
        {
            if (GroupName!=null && GroupName.Trim()!=string.Empty)
            {
                GroupName = GroupName.Trim();
                if ( GetEmoticonGroupByName(GroupName) != null)
                {
                    msgdisplay.AddError("groupname", "分组:"+GroupName+" 已经存在");
                }
                else
                {
                    if (Regex.IsMatch(GroupName, "[\\/:\\*\\?\"\\<\\>\\|]+"))
                    {
                        msgdisplay.AddError("分组是以文件夹的形式存在。因此,分组名称里不能包含下列字符:/ : * ? \" < > |");
                    }
                    else
                    {

                        bool error = false;
                        try
                        {
                            Directory.CreateDirectory(IOUtil.JoinPath(this.FaceDirectory, GroupName));
                        }
                        catch (Exception ex)
                        {
                            error = true;
                            msgdisplay.AddError("创建表情分组失败, 可能的原因是: 对 " + this.FaceDirectory + " 无写入权限! 具体错误信息: " + ex.Message);
                        }

                        if (error == false)
                        {
                            init();
                            DefaultEmoticonGroup newGroup = GetEmoticonGroupByName(GroupName);
                            if(newGroup!=null)
                                newGroup.SortOrder = sortorder;
                            SettingManager.SaveSettings(this);
                        }
                    }
                }
            }
            else
            {
                msgdisplay.AddError("groupname", "分组名称不能为空。");
            }
        }
Esempio n. 6
0
        protected virtual bool ValidateRoleDate(RoleCollection roles, MessageDisplay msgdisp)
        {
            Role myMaxRole = My.MaxRole;
            bool returnValue = true;
            for (int i = 0; i < roles.Count; i++)
            {
                if (string.IsNullOrEmpty(roles[i].Name) || roles[i].Name.Trim() == string.Empty)
                {
                    msgdisp.AddError("name", i, Lang_Error.Role_EmptyRoleNameError);
                    returnValue = false;
                }

                if ( !My.IsOwner && roles[i].IsNew && roles[i].IsManager && roles[i].Level >= myMaxRole.Level)
                {
                    msgdisp.AddError("level", i, string.Format("您当前的用户组为{0}。因此,您不能添加和{0}同级别或级别更高的用户组",myMaxRole.Name));
                    returnValue = false;
                }
            }

            return returnValue;
        }
Esempio n. 7
0
        private bool StartExport()
        {
            /* 條件值檢核*/
            DateTime ldstart, ldend;
            string   lsType = "";

            switch (rgDate.EditValue)
            {
            case "rb_day":
                //週
                if (!emStartDate.IsDate(emStartDate.Text, CheckDate.Start) ||
                    !emEndDate.IsDate(emEndDate.Text, CheckDate.End))
                {
                    return(false);
                }
                if (string.Compare(emStartDate.Text, emEndDate.Text) > 0)
                {
                    MessageDisplay.Error(GlobalInfo.ErrorText, CheckDate.Datedif);
                    return(false);
                }
                ldstart = Convert.ToDateTime(emStartDate.Text);
                ldend   = Convert.ToDateTime(emEndDate.Text);

                startYMD = emStartDate.Text.Replace("/", "").SubStr(0, 8);
                endYMD   = emEndDate.Text.Replace("/", "").SubStr(0, 8);
                lsType   = "Day";
                sumType  = "D";

                logText = ldstart.ToString("yyyy.mm.dd") + "至" + ldend.ToString("yyyy.mm.dd") + " 交易量";
                break;

            case "rb_week":
                //週
                if (!emStartDate1.IsDate(emStartDate1.Text, CheckDate.Start) ||
                    !emEndDate1.IsDate(emEndDate1.Text, CheckDate.End))
                {
                    return(false);
                }
                if (string.Compare(emStartDate1.Text, emEndDate1.Text) > 0)
                {
                    MessageDisplay.Error(GlobalInfo.ErrorText, CheckDate.Datedif);
                    return(false);
                }
                ldstart = Convert.ToDateTime(emStartDate1.Text);
                ldend   = Convert.ToDateTime(emEndDate1.Text);

                startYMD = emStartDate1.Text.Replace("/", "").SubStr(0, 8);
                endYMD   = emEndDate1.Text.Replace("/", "").SubStr(0, 8);
                lsType   = "Week";
                sumType  = "D";

                logText = ldstart.ToString("yyyy.mm.dd") + "至" + ldend.ToString("yyyy.mm.dd") + " 交易量";
                break;

            case "rb_month":
                //月
                string emSmth = emStartMth.Text + "/01";
                string emEmth = emEndMth.Text + "/01";
                if (!emStartMth.IsDate(emSmth, CheckDate.Start) ||
                    !emEndMth.IsDate(emEmth, CheckDate.End))
                {
                    return(false);
                }
                ldstart = Convert.ToDateTime(emSmth);
                ldend   = PbFunc.relativedate(Convert.ToDateTime(emEmth), 31);
                if (ldend.Month != PbFunc.Right(emStartMth.Text, 2).AsInt())
                {
                    ldend = PbFunc.relativedate(ldend, -ldend.Day);
                }
                startYMD = emStartMth.Text.Replace("/", "").SubStr(0, 6);
                endYMD   = emEndMth.Text.Replace("/", "").SubStr(0, 6);
                lsType   = "Month";
                sumType  = "M";

                logText = startYMD + "至" + endYMD + " 交易量";
                break;

            case "rb_year":
                //年
                startYMD = emStartYear.Text;
                endYMD   = emEndYear.Text;
                lsType   = "Year";
                sumType  = "Y";
                logText  = startYMD + "至" + endYMD + " 交易量";
                break;

            default:
                break;
            }

            saveFilePath = _ProgramID + "_" + lsType + "(" + startYMD + "-" + endYMD + ")";
            //商品別
            switch (rgPeriod.EditValue)
            {
            case "rb_txw":
                lsKindId2    = "MXW%";
                saveFilePath = saveFilePath + "W";
                break;

            case "rb_txo":
                lsKindId2    = "MXF%";
                saveFilePath = saveFilePath + "S";
                break;

            default:
                lsKindId2 = "%";
                break;
            }

            /*點選儲存檔案之目錄*/
            saveFilePath = PbFunc.wf_GetFileSaveName(saveFilePath + ".csv");
            if (string.IsNullOrEmpty(saveFilePath))
            {
                return(false);
            }

            /*******************
            *  Messagebox
            *******************/
            stMsgTxt.Visible = true;
            stMsgTxt.Text    = "開始轉檔...";
            stMsgTxt.Text    = logText + " 轉檔中...";
            this.Cursor      = Cursors.WaitCursor;
            this.Refresh();
            Thread.Sleep(5);
            return(true);
        }
Esempio n. 8
0
 /// <summary>
 /// 检查验证码 是否正确
 /// </summary>
 protected bool CheckValidateCode(string actionType, MessageDisplay msgDisplay)
 {
     return CheckValidateCode(actionType, null, msgDisplay);
 }
Esempio n. 9
0
 /// <summary>
 /// 在当前界面上面显示错误的信息,错误信息的id必须为:info_msg
 /// </summary>
 /// <param name="names"></param>
 public void DisplayMsg(params string[] names)
 {
     Display = new MessageDisplay(null, names);
 }
Esempio n. 10
0
        //function wf_30593
        private bool wf_Export(Workbook workbook)
        {
            try {
                string rptName = "臺股期貨交易概況表";
                ShowMsg(string.Format("{0}-{1} 轉檔中...", _ProgramID, rptName));

                Worksheet worksheet = workbook.Worksheets[0]; //切換sheet

                string ls_market_code;

                #region 交易時段
                if (gbMarket.EditValue.ToString() == "rbMarket0")
                {
                    ls_market_code = "0";
                }
                else if (gbMarket.EditValue.ToString() == "rbMarket1")
                {
                    ls_market_code = "1";
                }
                else
                {
                    ls_market_code = "%";
                }

                string StartYMD = txtStartYMD.DateTimeValue.ToString("yyyyMMdd");
                string EndYMD   = txtEndYMD.DateTimeValue.ToString("yyyyMMdd");

                DataTable dt = dao30593.GetData(StartYMD, EndYMD, ls_market_code);
                if (dt.Rows.Count <= 0)
                {
                    ShowMsg(string.Format("{0},{1}-{2},無任何資料!", txtStartYMD.DateTimeValue.ToString("yyyyMM"), _ProgramID, rptName));
                    MessageDisplay.Info(string.Format("{0},{1}-{2},(市場總成交量雙邊(A)無任何資料!", txtStartYMD.DateTimeValue.ToString("yyyyMM"), _ProgramID, rptName), GlobalInfo.ResultText);
                    return(false);
                }

                DataTable dtFilter = new DataTable();
                //全部 or 單一商品
                string prod = ddlProd.Text.SubStr(0, 1);
                if (prod != "%")
                {
                    dtFilter = dt.Filter("apdk_param_key ='" + ddlProd.Text + "'"); //單一商品
                }
                else
                {
                    dtFilter = dt.Copy();
                }

                #endregion

                #region 表頭
                int ii_ole_row = 1;
                int li_col     = 2;

                foreach (CheckedListBoxItem item in chkGroup.Items)
                {
                    if (item.CheckState == CheckState.Checked)
                    {
                        switch (item.Value)
                        {
                        case "chkMonQnty":
                            li_col += 1;
                            worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = "總交易量 [(買+賣)/2]";
                            break;

                        case "chkOI":
                            li_col += 1;
                            worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = "未平倉量[(買+賣)/2]";
                            break;

                        case "chkMonCnt":
                            li_col += 1;
                            worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = "成交筆數(買+賣)";
                            break;

                        case "chkAmt":
                            li_col += 1;
                            worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = "成交金額(台幣) [(買+賣)/2]";
                            li_col += 1;
                            worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = "成交金額(原始幣別) [(買+賣)/2]";
                            break;

                        case "chkAcc":
                            li_col += 1;
                            worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = "交易戶數(買+賣)";
                            break;

                        case "chkId":
                            li_col += 1;
                            worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = "交易人數(ID數)(買+賣)";
                            break;
                        }
                    }
                }//foreach (CheckedListBoxItem item in chkGroup.Items)
                #endregion

                #region 內容
                foreach (DataRow dr in dtFilter.Rows)
                {
                    ii_ole_row++;
                    worksheet.Cells[ii_ole_row - 1, 0].Value = dr["APDK_YMD"].AsString();
                    worksheet.Cells[ii_ole_row - 1, 1].Value = dr["APDK_PARAM_KEY"].AsString();

                    li_col = 2;

                    foreach (CheckedListBoxItem item in chkGroup.Items)
                    {
                        if (item.CheckState == CheckState.Checked)
                        {
                            switch (item.Value)
                            {
                            case "chkMonQnty":
                                li_col++;
                                if (dr["AI2_M_QNTY"] != DBNull.Value)
                                {
                                    worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = dr["AI2_M_QNTY"].AsDecimal();
                                }
                                break;

                            case "chkOI":
                                li_col++;
                                if (dr["AI2_OI"] != DBNull.Value)
                                {
                                    worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = dr["AI2_OI"].AsDecimal();
                                }
                                break;

                            case "chkMonCnt":
                                li_col++;
                                if (dr["AM10_CNT"] != DBNull.Value)
                                {
                                    worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = dr["AM10_CNT"].AsDecimal();
                                }
                                break;

                            case "chkAmt":
                                li_col++;
                                if (dr["AA2_AMT"] != DBNull.Value)
                                {
                                    worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = dr["AA2_AMT"].AsDecimal();
                                }
                                li_col++;
                                if (dr["AA2_AMT_ORG_CURRENCY"] != DBNull.Value)
                                {
                                    worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = dr["AA2_AMT_ORG_CURRENCY"].AsDecimal();
                                }
                                break;

                            case "chkAcc":
                                li_col++;
                                if (dr["AM9_ACC_CNT"] != DBNull.Value)
                                {
                                    worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = dr["AM9_ACC_CNT"].AsDecimal();
                                }
                                break;

                            case "chkId":
                                li_col++;
                                if (dr["AB4_ID_CNT"] != DBNull.Value)
                                {
                                    worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = dr["AB4_ID_CNT"].AsDecimal();
                                }
                                break;
                            }
                        }
                    } //foreach (CheckedListBoxItem item in chkGroup.Items)
                }     //foreach (DataRow dr in dtFilter.Rows)
                #endregion

                worksheet.Range["A1"].Select();
                worksheet.ScrollToRow(0);

                return(true);
            } catch (Exception ex) {
                WriteLog(ex);
                labMsg.Visible = false;
                return(false);
            }
        }
Esempio n. 11
0
        private void Register()
        {
            MessageDisplay msgDisplay = CreateMessageDisplay("username", "password", "password2", "email", "serial", "inviterid", GetValidateCodeInputName(validateCodeAction));
            string         password   = _Request.Get("password", Method.Post, string.Empty, false);

            if (password != _Request.Get("password2", Method.Post, string.Empty, false))
            {
                _Request.Remove("password2", Method.Post);
                ThrowError(new PasswordInconsistentError("password2"));
            }

            string username   = _Request.Get("username", Method.Post, string.Empty, false).Trim();
            string email      = _Request.Get("email", Method.Post, string.Empty, false).Trim();
            string inviteCode = _Request.Get("invite", Method.All, string.Empty).Trim();
            int    userid     = 0;

            //if (string.IsNullOrEmpty(inviteCode)) inviteCode = _Request.Get("invite", Method.Get);

            int?inviterID = _Request.Get <int>("inviterid");

            if (_Request.Get("agree", Method.Post) != "1")
            {
                ThrowError(new NotAgreeError("notagreeerror"));
            }

            //验证码检查
            bool isRightValidateCode = CheckValidateCode(validateCodeAction, msgDisplay);
            //if (!CheckValidateCode(validateCodeAction, msgDisplay))
            //{
            //    return;
            //}

            UserRegisterState state = UserRegisterState.Failure;

            try
            {
                if (!HasUnCatchedError)
                {
                    state = UserBO.Instance.Register(ref userid, username, password, email, _Request.IpAddress, inviteCode, null, isRightValidateCode);
                }
            }
            catch (Exception ex)
            {
                msgDisplay.AddException(ex);
            }

            switch (state)
            {
            case UserRegisterState.Success:
                BbsRouter.JumpTo("default");
                ValidateCodeManager.CreateValidateCodeActionRecode(validateCodeAction);
                break;

            case UserRegisterState.NeedActive:
                ValidateCodeManager.CreateValidateCodeActionRecode(validateCodeAction);
                password = SecurityUtil.Encrypt(EncryptFormat.bbsMax, password);
                //已经发送过邮件了,跳转后,不需要再次提示发送邮件.
                string reactiveUrl = UrlHelper.GetSendEmailUrl(ValidateEmailAction.ActivingUser, userid, password, true);
                Response.Redirect(reactiveUrl);
                break;

            case UserRegisterState.Failure:
                //失败
                CatchError <ErrorInfo>(delegate(ErrorInfo error)
                {
                    msgDisplay.AddError(error);
                });
                break;
            }
        }
Esempio n. 12
0
        protected override ResultStatus Export()
        {
            try {
                this.Cursor = Cursors.WaitCursor;
                this.Refresh();
                Thread.Sleep(5);
                lblProcessing.Visible = true;
                ShowMsg("開始轉檔...");
                dao43010 = new D43010();
                dao43020 = new D43020();
                #region ue_export_before
                //130批次作業做完
                string rtnStr, oswGrp;
                oswGrp = dwOswGrp.EditValue + "%";
                rtnStr = PbFunc.f_chk_130_wf(_ProgramID, txtSDate.DateTimeValue, oswGrp);
                if (rtnStr != "")
                {
                    DialogResult result = MessageDisplay.Choose(txtSDate.Text + "-" + rtnStr + ",是否要繼續?");
                    if (result == DialogResult.No)
                    {
                        lblProcessing.Visible = false;
                        return(ResultStatus.Fail);
                    }
                }
                #endregion

                string rptName, rptId, file;
                int    rowStart;
                rptName = "股票期貨保證金狀況表-標的證券為受益憑證";
                rptId   = "43010";
                ShowMsg(rptId + '-' + rptName + " 轉檔中...");

                //1. 讀取檔案
                DataTable dt43010 = dao43010.d_43010(txtSDate.DateTimeValue.ToString("yyyyMMdd"), oswGrp, "S");
                if (dt43010.Rows.Count == 0)
                {
                    MessageDisplay.Info(txtSDate.Text + "," + rptId + '-' + rptName + ",無任何資料!");
                    //return ResultStatus.Fail;
                }
                int rowIndex = dt43010.Rows.Count;

                //2. 複製檔案
                file = PbFunc.wf_copy_file(rptId, rptId);
                if (file == "")
                {
                    return(ResultStatus.Fail);
                }

                //3. 開啟檔案
                Workbook workbook = new Workbook();
                workbook.LoadDocument(file);

                //4. 切換Sheet
                Worksheet ws43010  = workbook.Worksheets[0];
                string    dataDate = "資料日期:" + Environment.NewLine + txtSDate.DateTimeValue.Year + "年" + txtSDate.DateTimeValue.Month + "月" + txtSDate.DateTimeValue.Day + "日";
                ws43010.Cells[0, 9].Value    = dataDate;
                ws43010.Cells[35, 14].Value  = dataDate;
                ws43010.Cells[73, 14].Value  = dataDate;
                ws43010.Cells[110, 14].Value = dataDate;

                //5. 填入資料
                int cnt      = 0;
                int f        = 0;
                int rowCount = dt43010.Rows.Count;
                foreach (DataRow dr in dt43010.Rows)
                {
                    //5.1 一、現行收取保證金金額
                    //從B3開始填資料
                    rowStart = 2;
                    cnt      = cnt + 1;
                    ws43010.Cells[rowStart + f, 1].Value = cnt.AsString();
                    ws43010.Cells[rowStart + f, 2].SetValue(dr["MG1_KIND_ID"]);
                    ws43010.Cells[rowStart + f, 3].SetValue(dr["APDK_NAME"]);
                    ws43010.Cells[rowStart + f, 4].SetValue(dr["APDK_STOCK_ID"]);
                    ws43010.Cells[rowStart + f, 5].SetValue(dr["PID_NAME"]);
                    ws43010.Cells[rowStart + f, 6].SetValue(dr["MG1_CUR_CM"]);
                    ws43010.Cells[rowStart + f, 7].SetValue(dr["MG1_CUR_MM"]);
                    ws43010.Cells[rowStart + f, 8].SetValue(dr["MG1_CUR_IM"]);
                    ws43010.Cells[rowStart + f, 9].SetValue(dr["MG1_CUR_CM_RATE"]);
                    ws43010.Cells[rowStart + f, 10].SetValue(dr["MG1_CUR_MM_RATE"]);
                    ws43010.Cells[rowStart + f, 11].SetValue(dr["MG1_CUR_IM_RATE"]);

                    //5.2 二、本日結算保證金計算
                    //SMA 從B41開始填資料
                    rowStart = 40;
                    ws43010.Cells[rowStart + f, 1].Value = cnt.AsString();
                    ws43010.Cells[rowStart + f, 2].SetValue(dr["MG1_KIND_ID"]);
                    ws43010.Cells[rowStart + f, 3].SetValue(dr["APDK_NAME"]);
                    ws43010.Cells[rowStart + f, 4].SetValue(dr["APDK_STOCK_ID"]);
                    ws43010.Cells[rowStart + f, 5].SetValue(dr["PID_NAME"]);

                    ws43010.Cells[rowStart + f, 6].SetValue(dr["MG1_PRICE"]);
                    ws43010.Cells[rowStart + f, 7].SetValue(dr["MG1_XXX"]);
                    ws43010.Cells[rowStart + f, 8].SetValue(dr["MG1_RISK"]);
                    ws43010.Cells[rowStart + f, 9].SetValue(dr["MG1_CP_RISK"]);
                    ws43010.Cells[rowStart + f, 10].SetValue(dr["MG1_MIN_RISK"]);

                    ws43010.Cells[rowStart + f, 11].SetValue(dr["MG1_CP_CM"]);
                    ws43010.Cells[rowStart + f, 12].SetValue(dr["MG1_CUR_CM"]);
                    ws43010.Cells[rowStart + f, 13].SetValue(dr["MG1_CHANGE_RANGE"]);
                    ws43010.Cells[rowStart + f, 14].SetValue(dr["MG1_CHANGE_FLAG"]);
                    f++;
                }//foreach (DataRow dr in dt43010.Rows)
                dt43010 = dao43010.d_43010(txtSDate.DateTimeValue.ToString("yyyyMMdd"), oswGrp, "E");
                cnt     = 0;
                f       = 0;
                foreach (DataRow dr in dt43010.Rows)
                {
                    //EWMA 從B79開始填資料
                    rowStart = 78;
                    cnt      = cnt + 1;
                    ws43010.Cells[rowStart + f, 1].Value = cnt.AsString();
                    ws43010.Cells[rowStart + f, 2].SetValue(dr["MG1_KIND_ID"]);
                    ws43010.Cells[rowStart + f, 3].SetValue(dr["APDK_NAME"]);
                    ws43010.Cells[rowStart + f, 4].SetValue(dr["APDK_STOCK_ID"]);
                    ws43010.Cells[rowStart + f, 5].SetValue(dr["PID_NAME"]);

                    ws43010.Cells[rowStart + f, 6].SetValue(dr["MG1_PRICE"]);
                    ws43010.Cells[rowStart + f, 7].SetValue(dr["MG1_XXX"]);
                    ws43010.Cells[rowStart + f, 8].SetValue(dr["MG1_RISK"]);
                    ws43010.Cells[rowStart + f, 9].SetValue(dr["MG1_CP_RISK"]);
                    ws43010.Cells[rowStart + f, 10].SetValue(dr["MG1_MIN_RISK"]);

                    ws43010.Cells[rowStart + f, 11].SetValue(dr["MG1_CP_CM"]);
                    ws43010.Cells[rowStart + f, 12].SetValue(dr["MG1_CUR_CM"]);
                    ws43010.Cells[rowStart + f, 13].SetValue(dr["MG1_CHANGE_RANGE"]);
                    ws43010.Cells[rowStart + f, 14].SetValue(dr["MG1_CHANGE_FLAG"]);
                    f++;
                }//foreach (DataRow dr in dt43010.Rows)
                dt43010 = dao43010.d_43010(txtSDate.DateTimeValue.ToString("yyyyMMdd"), oswGrp, "M");
                cnt     = 0;
                f       = 0;
                foreach (DataRow dr in dt43010.Rows)
                {
                    //MAX 從B116開始填資料
                    rowStart = 115;
                    cnt      = cnt + 1;
                    ws43010.Cells[rowStart + f, 1].Value = cnt.AsString();
                    ws43010.Cells[rowStart + f, 2].SetValue(dr["MG1_KIND_ID"]);
                    ws43010.Cells[rowStart + f, 3].SetValue(dr["APDK_NAME"]);
                    ws43010.Cells[rowStart + f, 4].SetValue(dr["APDK_STOCK_ID"]);
                    ws43010.Cells[rowStart + f, 5].SetValue(dr["PID_NAME"]);

                    ws43010.Cells[rowStart + f, 6].SetValue(dr["MG1_PRICE"]);
                    ws43010.Cells[rowStart + f, 7].SetValue(dr["MG1_XXX"]);
                    ws43010.Cells[rowStart + f, 8].SetValue(dr["MG1_RISK"]);
                    ws43010.Cells[rowStart + f, 9].SetValue(dr["MG1_CP_RISK"]);
                    ws43010.Cells[rowStart + f, 10].SetValue(dr["MG1_MIN_RISK"]);

                    ws43010.Cells[rowStart + f, 11].SetValue(dr["MG1_CP_CM"]);
                    ws43010.Cells[rowStart + f, 12].SetValue(dr["MG1_CUR_CM"]);
                    ws43010.Cells[rowStart + f, 13].SetValue(dr["MG1_CHANGE_RANGE"]);
                    ws43010.Cells[rowStart + f, 14].SetValue(dr["MG1_CHANGE_FLAG"]);

                    f++;
                }//foreach (DataRow dr in dt43010.Rows)

                //6. 刪除空白列
                int delRowCnt = 30 - rowIndex;
                if (rowIndex < 30)
                {
                    rowStart = 115;
                    ws43010.Rows.Remove(rowIndex + rowStart, delRowCnt);
                    rowStart = 78;
                    ws43010.Rows.Remove(rowIndex + rowStart, delRowCnt);
                    rowStart = 40;
                    ws43010.Rows.Remove(rowIndex + rowStart, delRowCnt);
                    rowStart = 2;
                    ws43010.Rows.Remove(rowIndex + rowStart, delRowCnt);
                }

                #region sheet 2
                rptName = "保證金狀況表";
                rptId   = "40011_stat";
                ShowMsg(rptId + '-' + rptName + " 轉檔中...");

                //1. 讀取檔案
                DataTable dt40011stat = dao43020.d_40011_stat(txtSDate.DateTimeValue.ToString("yyyyMMdd"));
                dt40011stat = dt40011stat.Sort("seq_no, kind_id");
                dt40011stat = dt40011stat.Filter("prod_type ='F' and param_key = 'ETF' and osw_grp like'" + oswGrp + "'");
                if (dt40011stat.Rows.Count == 0)
                {
                    MessageDisplay.Info(txtSDate.Text + "," + rptId + '-' + rptName + ",無任何資料!");
                    //return ResultStatus.Fail;
                }


                //2. 切換Sheet
                ws43010 = workbook.Worksheets["fut_3index"];

                //3. 填入資料
                ws43010.Cells[0, 0].Value = "資料日期:" + Environment.NewLine + txtSDate.DateTimeValue.Year + "年" + txtSDate.DateTimeValue.Month + "月" + txtSDate.DateTimeValue.Day + "日";
                int rowNum = 3 - 1;
                foreach (DataRow dr in dt40011stat.Rows)
                {
                    for (f = 0; f < 37; f++)
                    {
                        ws43010.Cells[rowNum, f].SetValue(dr[f]);
                    }
                    rowNum++;
                }

                #endregion

                //存檔
                ws43010 = workbook.Worksheets[0];
                ws43010.ScrollToRow(0);

                //若所有Sheet皆無資料時,刪除檔案
                if (dt43010.Rows.Count == 0 && dt40011stat.Rows.Count == 0)
                {
                    workbook = null;
                    System.IO.File.Delete(file);
                    return(ResultStatus.Fail);
                }
                workbook.SaveDocument(file);
                ShowMsg("轉檔成功");
            }
            catch (Exception ex) {
                //WriteLog(ex, "", false); 如果不用throw會繼續往下執行(?
                ShowMsg("轉檔錯誤");
                throw ex;
            }
            finally {
                this.Cursor = Cursors.Arrow;
                this.Refresh();
                Thread.Sleep(5);
            }
            return(ResultStatus.Success);
        }
Esempio n. 13
0
 public ErrorTemplateParams(string firstMessage, MessageDisplay messageDisplay, int line)
     : this(firstMessage, messageDisplay, "line", null, line) { }
Esempio n. 14
0
 public ErrorTemplateParams(string firstMessage, MessageDisplay messageDisplay, string name)
     : this(firstMessage, messageDisplay, "name", name, -1) { }
Esempio n. 15
0
 public ErrorTemplateParams(string firstMessage, MessageDisplay messageDisplay, string name, int line)
     : this(firstMessage, messageDisplay, "name|line", name, line) { }
Esempio n. 16
0
 private ErrorTemplateParams(string firstMessage, MessageDisplay messageDisplay, string mode, string name, int line)
 {
     m_MessageDisplay = messageDisplay;
     m_FirstMessage = firstMessage;
     m_Name = name;
     m_Mode = mode;
     m_Line = line;
 }
Esempio n. 17
0
        private PointActionItem GetNeedValuePointActionItem(string action, int id, bool isNew, MessageDisplay msgDisplay)
        {
            string pointTypeName, minRemainName, maxValueName, minValueName;
            Guid roleID;
            int sortOrder;
            if (isNew)
            { 
                pointTypeName = "pointaction.new." + action;
                minRemainName = "minremaining.new." + action;
                maxValueName = "maxvalue.new." + action;
                minValueName = "minvalue.new." + action;
            }
            else
            {
                pointTypeName = "pointaction." + action + "." + id;
                minRemainName = "minremaining." + action + "." + id;
                maxValueName = "maxvalue." + action + "." + id;
                minValueName = "minvalue." + action + "." + id;
            }

            if (id == 0 && isNew == false)
            {
                roleID = Guid.Empty;
                sortOrder = 0;
            }
            else
            {
                string roleIDName, sortOrderName;
                if (isNew)
                {
                    roleIDName = "pointtype.new.role." + action;
                    sortOrderName = "pointtype.new.sortorder." + action;
                }
                else
                {
                    roleIDName = "pointtype.role." + action + "." + id;
                    sortOrderName = "pointtype.sortorder." + action + "." + id;
                }

                roleID = _Request.Get<Guid>(roleIDName, Method.Post, Guid.Empty);
                if (roleID == Guid.Empty)
                {
                    if (isNew && _Request.Get("display.tr.pointtype." + action, Method.Post, "0") == "1")
                    {
                        msgDisplay.AddError("pointtype.new." + action , Lang_Error.User_UserPointActionEmptyRoleIDError);
                    }
                    else
                        return null;
                }
                string tempValueString = _Request.Get(sortOrderName, Method.Post, string.Empty);

                if (!int.TryParse(tempValueString, out sortOrder))
                {
                    if (isNew)
                        msgDisplay.AddError("pointtype.new." + action , Lang_Error.User_UserPointActionInvalidSortOrderError);
                    else
                        msgDisplay.AddError("pointtype." + action, id, Lang_Error.User_UserPointActionInvalidSortOrderError);
                }
            }

            UserPointType pointType = _Request.Get<UserPointType>(pointTypeName, Method.Post, UserPointType.Point1);

            int? minRemaining, maxValue;
            int minValue;


            #region minRemaining, maxValue ,minValue

            StringBuilder errorMessages = new StringBuilder();

            int value;
            string valueString = _Request.Get(minRemainName, Method.Post, string.Empty);
            if (valueString.Trim() == string.Empty)
            {
                minRemaining = null;
            }
            else if (int.TryParse(valueString, out value))
            {
                minRemaining = value;


                if (minRemaining < AllSettings.Current.PointSettings.GetUserPoint(pointType).MinValue)
                    errorMessages.Append(Lang_Error.User_UserPointInvalidMinRemainingError).Append("<br />");
            }
            else
            {
                errorMessages.Append(Lang_Error.User_UserPointMinRemainingFormatError).Append("<br />");
                minRemaining = null;
            }

            valueString = _Request.Get(minValueName, Method.Post, string.Empty);
            if (valueString.Trim() == string.Empty)
            {
                minValue = 1;
            }
            else if (int.TryParse(valueString, out value))
            {
                minValue = value;
                if (minValue < 1)
                    errorMessages.Append(Lang_Error.User_UserPointTradeMinValueFormatError).Append("<br />");
            }
            else
            {
                errorMessages.Append(Lang_Error.User_UserPointTradeMinValueFormatError).Append("<br />");
                minValue = 1;
            }

            valueString = _Request.Get(maxValueName, Method.Post, string.Empty);
            if (valueString.Trim() == string.Empty)
            {
                maxValue = null;
            }
            else if (int.TryParse(valueString, out value))
            {
                maxValue = value;
                if (maxValue < minValue)
                    errorMessages.Append(Lang_Error.User_UserPointInvalidTradeMaxValueError).Append("<br />");
            }
            else
            {
                errorMessages.Append(Lang_Error.User_UserPointTradeMaxValueFormatError).Append("<br />");
                maxValue = null;
            }

            if (errorMessages.Length > 0)
            {
                if (isNew)
                    msgDisplay.AddError("pointtype.new." + action, errorMessages.ToString(0, errorMessages.Length - 6));
                else
                    msgDisplay.AddError("pointtype." + action, id, errorMessages.ToString(0, errorMessages.Length - 6));
            }

            #endregion


            PointActionItem item = new PointActionItem();
            item.Action = action;
            item.PointType = pointType;
            item.MaxValue = maxValue == null ? int.MaxValue : maxValue.Value;
            item.MinRemaining = minRemaining == null ? int.MinValue : minRemaining.Value;
            item.MinValue = minValue;
            item.RoleID = roleID;
            item.RoleSortOrder = sortOrder;

            return item;
        }
Esempio n. 18
0
        private PointActionItem GetPointActionItem(string action,int id,bool isNew,MessageDisplay msgDisplay)
        {
            Guid roleID;
            int sortOrder = 0;
            if (id == 0 && isNew == false)
                roleID = Guid.Empty;
            else
            {
                string roleIDName, sortOrderName;
                if (isNew)
                {
                    roleIDName = "new.role." + action;
                    sortOrderName = "new.sortorder." + action;
                }
                else
                {
                    roleIDName = "role." + action + "." + id;
                    sortOrderName = "sortorder." + action + "." + id;
                }

                roleID = _Request.Get<Guid>(roleIDName, Method.Post, Guid.Empty);
                if (roleID == Guid.Empty)
                {
                    if (isNew && _Request.Get("display.tr." + action, Method.Post, "0") == "1")
                    {
                        msgDisplay.AddError("new." + action, Lang_Error.User_UserPointActionEmptyRoleIDError);
                    }
                    else
                        return null;
                }
                string value = _Request.Get(sortOrderName, Method.Post, string.Empty);

                if (!int.TryParse(value, out sortOrder))
                {
                    if (isNew)
                        msgDisplay.AddError("new." + action, Lang_Error.User_UserPointActionInvalidSortOrderError);
                    else
                        msgDisplay.AddError(action, id, Lang_Error.User_UserPointActionInvalidSortOrderError);
                }
            }

            PointActionItem pointActionItem = new PointActionItem();
            pointActionItem.RoleID = roleID;
            pointActionItem.RoleSortOrder = sortOrder;

            int[] points = new int[8];
            StringBuilder pointNames = new StringBuilder();


            foreach (UserPoint userPoint in AllSettings.Current.PointSettings.EnabledUserPoints)
            {
                int pointID = (int)userPoint.Type;

                int point;
                string name;
                if (isNew)
                    name = "new.pointaction." + action + "." + pointID;
                else
                    name = "pointaction." + action + "." + pointID + "." + id;

                string value = _Request.Get(name, Method.Post, string.Empty);
                if (value == string.Empty)
                {
                    point = 0;
                }
                else
                {
                    if (!int.TryParse(value, out point))
                    {
                        pointNames.Append(userPoint.Name).Append(",");
                    }
                }
                points[pointID] = point;
            }
            if (pointNames.Length > 0)
            {
                if(isNew)
                    msgDisplay.AddError("new."+action, id, string.Format(Lang_Error.User_PointFormatError2, pointNames.ToString(0, pointNames.Length - 1)));
                else
                    msgDisplay.AddError(action, id, string.Format(Lang_Error.User_PointFormatError2, pointNames.ToString(0, pointNames.Length - 1)));
            }

            pointActionItem.Action = action;
            foreach (int point in points)
            {
                pointActionItem.PointValues.Add(point.ToString());
            }

            return pointActionItem;

        }
Esempio n. 19
0
 /// <summary>
 /// 检查验证码 是否正确
 /// </summary>
 /// <param name="actionType"></param>
 /// <param name="msgDisplay"></param>
 /// <param name="id">
 /// 如果同一个页面 出现两个及两个以上相同动作的验证码 
 /// 需要指定一个区别的标志(如: 输入框名字必须为 "{$inputName}id" id(a-zA-Z\d_)任意指定 不重复)
 /// 如果没有相同动作的验证码 则传null 
 /// </param>
 /// <returns></returns>
 protected bool CheckValidateCode(string actionType, string id, MessageDisplay msgDisplay)
 {
     return ValidateCodeManager.CheckValidateCode(actionType, id, msgDisplay);
 }
Esempio n. 20
0
        /// <summary>
        /// 讀取前條件檢核
        /// </summary>
        /// <param name="sbrkno">造市者代號起始</param>
        /// <param name="ebrkno">造市者代號迄止</param>
        /// <returns></returns>
        private bool StartRetrieve(string sbrkno = "", string ebrkno = "")
        {
            /*******************
            *  條件值檢核
            *******************/
            _D500Xx.IsCheck = "N";
            /*造市者代號 */
            _D500Xx.Sbrkno = dwSbrkno.EditValue.AsString();
            if (string.IsNullOrEmpty(_D500Xx.Sbrkno))
            {
                _D500Xx.Sbrkno = sbrkno;
            }
            _D500Xx.Ebrkno = dwEbrkno.EditValue.AsString();
            if (string.IsNullOrEmpty(_D500Xx.Ebrkno))
            {
                _D500Xx.Ebrkno = ebrkno;
            }
            if ((string.Compare(dwSbrkno.SelectedText, dwEbrkno.SelectedText) > 0) && !string.IsNullOrEmpty(_D500Xx.Ebrkno))
            {
                MessageDisplay.Error("造市者代號起始不可大於迄止");

                dwEbrkno.Focus();
                _D500Xx.IsCheck = "Y";
                return(false);
            }

            /* 商品群組 */
            _D500Xx.ProdCategory = dwProdCt.EditValue.AsString();
            if (string.IsNullOrEmpty(_D500Xx.ProdCategory) || dwProdCt.Enabled == false)
            {
                _D500Xx.ProdCategory = "";
            }

            /* 商品 */
            _D500Xx.ProdKindId = dwProdKd.EditValue.AsString();
            if (string.IsNullOrEmpty(_D500Xx.ProdKindId) || dwProdKd.Enabled == false)
            {
                _D500Xx.ProdKindId = "";
            }
            _D500Xx.ProdKindIdSto = dwProdKdSto.EditValue.AsString();
            if (string.IsNullOrEmpty(_D500Xx.ProdKindIdSto) || dwProdKdSto.Enabled == false)
            {
                _D500Xx.ProdKindIdSto = "";
            }
            //DateTime dtDate;
            /* 月報表 */
            if (gbReportType.EditValue.Equals("rb_month"))
            {
                if (emStartYM.Visible == true)
                {
                    if (!emStartYM.IsDate(emStartYM.Text + "/01", CheckDate.Start))
                    {
                        _D500Xx.IsCheck = "Y";
                        return(false);
                    }
                    _D500Xx.Sdate = emStartYM.Text.Replace("/", "").SubStr(0, 6);
                }
                if (emEndYM.Visible == true)
                {
                    if (!emEndYM.IsDate(emEndYM.Text + "/01", CheckDate.End))
                    {
                        _D500Xx.IsCheck = "Y";
                        return(false);
                    }
                    _D500Xx.Edate = emEndYM.Text.Replace("/", "").SubStr(0, 6);
                }
            }
            /* 日報表 */
            else
            {
                if (emStartDate.Visible == true)
                {
                    if (!emStartDate.IsDate(emStartDate.Text, CheckDate.Start))
                    {
                        _D500Xx.IsCheck = "Y";
                        return(false);
                    }
                }
                _D500Xx.Sdate = emStartDate.Text.Replace("/", "").SubStr(0, 8);
                if (emEndDate.Visible == true)
                {
                    if (!emEndDate.IsDate(emEndDate.Text, CheckDate.End))
                    {
                        _D500Xx.IsCheck = "Y";
                        return(false);
                    }
                    _D500Xx.Edate = emEndDate.Text.Replace("/", "").SubStr(0, 8);
                }
            }
            _D500Xx.SumType    = ReportSumType(gbReportType.EditValue.ToString());
            _D500Xx.SortType   = PrintSortType(gbPrintSort.EditValue.ToString());
            _D500Xx.SumSubType = GrpSubType(gbGroup.EditValue.AsString());

            /*******************
            *  資料類別
            *******************/
            _D500Xx.DataType = "R";

            /*******************
            *  條件值檢核OK
            *******************/
            _D500Xx.IsCheck = "Y";


            /*******************
            *  //Local Window
            *  條件值檢核
            *  if		is_chk <> 'E'	then
            *     is_chk = 'Y'
            *  end	if
            *
            *  資料類別:
            *  報價:
            *  is_data_type = 'Q'
            *  詢價:
            *  is_data_type = 'R'
            *******************/
            return(true);
        }
Esempio n. 21
0
        //function wf_30594
        private bool wf_Export(Workbook workbook, Worksheet worksheet)
        {
            try {
                /*************************************
                *  ls_year = 年
                *  li_ole_row_tol = 總列數
                *  li_row_start = 開始列
                *************************************/
                string ls_kind_id2, ls_pc_code, ls_expiry_type, ls_prod_type, ls_param_key, ls_market_code;
                int    li_col, ii_ole_row = 1;

                #region 讀取資料(每日)
                ls_prod_type = "O";
                ls_param_key = "TXO";
                ls_kind_id2  = "%";
                if (gbProd.EditValue.ToString() == "rbProdAll")
                {
                    ls_pc_code = "%";
                }
                else
                {
                    ls_pc_code = "Y";
                }

                ls_expiry_type = "%";
                #endregion

                #region 交易時段
                if (gbMarket.EditValue.ToString() == "rbMarket0")
                {
                    ls_market_code = "0";
                }
                else if (gbMarket.EditValue.ToString() == "rbMarket1")
                {
                    ls_market_code = "1";
                }
                else
                {
                    ls_market_code = "%";
                }

                string StartYMD = txtStartYMD.Text.AsDateTime().ToString("yyyyMMdd");
                string EndYMD   = txtEndYMD.Text.AsDateTime().ToString("yyyyMMdd");

                DataTable dt = new DataTable();
                dt = dao30594.GetData(ls_expiry_type, ls_pc_code, ls_kind_id2, StartYMD, EndYMD, ls_market_code);
                if (dt.Rows.Count <= 0)
                {
                    labMsg.Text = StartYMD.SubStr(0, 6) + "," + _ProgramID + '-' + _ProgramName + "(市場總成交量雙邊(A)無任何資料!";
                    MessageDisplay.Info(labMsg.Text, GlobalInfo.ResultText);
                    return(false);
                }
                #endregion

                #region 表頭
                ii_ole_row = 1;
                if (gbProd.EditValue.ToString() == "rbProdPC")
                {
                    li_col = 3;
                }
                else
                {
                    li_col = 2;
                }

                /*************************************
                *  chkGroup.Items[0] = MonQnty
                *  chkGroup.Items[1] = OI
                *  chkGroup.Items[2] = MonCnt
                *  chkGroup.Items[3] = Amt
                *  chkGroup.Items[4] = AmtStk
                *  chkGroup.Items[5] = Acc
                *  chkGroup.Items[6] = Id
                *************************************/
                if (chkGroup.Items[0].CheckState.ToString() == "Checked")
                {
                    li_col += 1;
                    worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = "總交易量 [(買+賣)/2]";
                }

                if (chkGroup.Items[1].CheckState.ToString() == "Checked")
                {
                    li_col += 1;
                    worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = "未平倉量[(買+賣)/2]";
                }

                if (chkGroup.Items[2].CheckState.ToString() == "Checked")
                {
                    li_col += 1;
                    worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = "成交筆數(買+賣)";
                }

                if (chkGroup.Items[3].CheckState.ToString() == "Checked")
                {
                    li_col += 1;
                    worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = "成交金額(台幣) [(買+賣)/2]";
                    li_col += 1;
                    worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = "成交金額(原始幣別) [(買+賣)/2]";
                }

                if (chkGroup.Items[4].CheckState.ToString() == "Checked")
                {
                    li_col += 1;
                    worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = "名目契約價值(台幣)[(買+賣)/2]";
                    li_col += 1;
                    worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = "名目契約價值(原始幣別)[(買+賣)/2]";
                }

                if (chkGroup.Items[5].CheckState.ToString() == "Checked")
                {
                    li_col += 1;
                    worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = "交易戶數(買+賣)";
                }

                if (chkGroup.Items[6].CheckState.ToString() == "Checked")
                {
                    li_col += 1;
                    worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = "交易人數(ID數)(買+賣)";
                }
                #endregion

                #region 內容
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    ii_ole_row += 1;
                    worksheet.Cells[ii_ole_row - 1, 0].Value = dt.Rows[i]["APDK_YMD"].AsString();
                    worksheet.Cells[ii_ole_row - 1, 1].Value = dt.Rows[i]["APDK_PARAM_KEY"].AsString();

                    if (gbProd.EditValue.ToString() == "rbProdPC")
                    {
                        worksheet.Cells[ii_ole_row - 1, 2].Value = dt.Rows[i]["APDK_PC_CODE"].AsString();
                        li_col = 3;
                    }
                    else
                    {
                        li_col = 2;
                    }

                    //全加入若撈出的值為null,則輸出也要為null,不能直接轉成0
                    if (chkGroup.Items[0].CheckState.ToString() == "Checked")
                    {
                        li_col += 1;
                        if (dt.Rows[i]["AI2_M_QNTY"] != DBNull.Value)
                        {
                            worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = dt.Rows[i]["AI2_M_QNTY"].AsDecimal();
                        }
                    }

                    if (chkGroup.Items[1].CheckState.ToString() == "Checked")
                    {
                        li_col += 1;
                        if (dt.Rows[i]["AI2_OI"] != DBNull.Value)
                        {
                            worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = dt.Rows[i]["AI2_OI"].AsDecimal();
                        }
                    }

                    if (chkGroup.Items[2].CheckState.ToString() == "Checked")
                    {
                        li_col += 1;
                        if (dt.Rows[i]["AM10_CNT"] != DBNull.Value)
                        {
                            worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = dt.Rows[i]["AM10_CNT"].AsDecimal();
                        }
                    }

                    if (chkGroup.Items[3].CheckState.ToString() == "Checked")
                    {
                        li_col += 1;
                        if (dt.Rows[i]["AA2_AMT"] != DBNull.Value)
                        {
                            worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = dt.Rows[i]["AA2_AMT"].AsDecimal();
                        }
                        li_col += 1;
                        if (dt.Rows[i]["AA2_AMT_ORG_CURRENCY"] != DBNull.Value)
                        {
                            worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = dt.Rows[i]["AA2_AMT_ORG_CURRENCY"].AsDecimal();
                        }
                    }

                    if (chkGroup.Items[4].CheckState.ToString() == "Checked")
                    {
                        li_col += 1;
                        if (dt.Rows[i]["AA2_AMT_STK"] != DBNull.Value)
                        {
                            worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = dt.Rows[i]["AA2_AMT_STK"].AsDecimal();
                        }
                        li_col += 1;
                        if (dt.Rows[i]["AA2_AMT_STK_ORG"] != DBNull.Value)
                        {
                            worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = dt.Rows[i]["AA2_AMT_STK_ORG"].AsDecimal();
                        }
                    }

                    if (chkGroup.Items[5].CheckState.ToString() == "Checked")
                    {
                        li_col += 1;
                        if (dt.Rows[i]["AM9_ACC_CNT"] != DBNull.Value)
                        {
                            worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = dt.Rows[i]["AM9_ACC_CNT"].AsDecimal();
                        }
                    }

                    if (chkGroup.Items[6].CheckState.ToString() == "Checked")
                    {
                        li_col += 1;
                        if (dt.Rows[i]["AB4_ID_CNT"] != DBNull.Value)
                        {
                            worksheet.Cells[ii_ole_row - 1, li_col - 1].Value = dt.Rows[i]["AB4_ID_CNT"].AsDecimal();
                        }
                    }
                }
                #endregion

                return(true);
            } catch (Exception ex) {
                WriteLog(ex, "error");
                labMsg.Visible = false;
                return(false);
            }
        }
Esempio n. 22
0
 public ErrorTemplateParams(string firstMessage, MessageDisplay messageDisplay)
     : this(firstMessage, messageDisplay, "other", null, -1) { }
Esempio n. 23
0
 void SendingMessage(byte[] data, IPAddress destination)
 {
     networkHelper.SendPackage(data, destination);
     MyText = Encoding.Unicode.GetString(data);
     MessageDisplay.BeginInvoke(new InvokeDelegate(AddMessage), destination, MyText, " отправлено");
 }
Esempio n. 24
0
 void OnLevelWasLoaded(int level)
 {
     if (level == 0) {
         messageDisplay = GameObject.Find ("BattleCanvas/Bottom Right Panel/Radio").GetComponentInChildren<MessageDisplay> ();
     }
 }
Esempio n. 25
0
        /// <summary>
        /// 存檔前檢查
        /// </summary>
        /// <param name="dt">要檢查的資料</param>
        /// <returns></returns>
        private bool SaveBefore(DataTable dt)
        {
            string lsType, lsVal1, lsVal2, lsVal3, lsVal4, lsVal5;

            try {
                //只檢查變動的部分
                foreach (DataRow dr in dt.GetChanges().Rows)
                {
                    if (dr.RowState == DataRowState.Deleted)
                    {
                        continue;
                    }
                    if (dr["OP_TYPE"].AsString() == " ")
                    {
                        continue;
                    }

                    //key值不能為null
                    string marketCode = dr[MARKET_CODE].AsString();
                    if (string.IsNullOrEmpty(marketCode))
                    {
                        MessageDisplay.Error("「交易時段」必須要選取值!");
                        //set Focused
                        SetFocused(dt, dr, MARKET_CODE);
                        return(false);
                    }
                    string paramKey = dr[PARAM_KEY].AsString();
                    if (string.IsNullOrEmpty(paramKey))
                    {
                        MessageDisplay.Error("「商品類別」必須要選取值!");
                        //set Focused
                        SetFocused(dt, dr, PARAM_KEY);
                        return(false);
                    }

                    //key值不能重複
                    int valueCount = dt.AsEnumerable().Where(r => r.RowState != DataRowState.Deleted &&
                                                             r.Field <string>(MARKET_CODE).AsString() == marketCode &&
                                                             r.Field <string>(PARAM_KEY).AsString() == paramKey).Count();
                    if (valueCount >= 2)
                    {
                        MessageDisplay.Error($"交易時段:{(marketCode == "0" ? "[一般]" : "[夜盤]")}與商品類別:[{paramKey}] 不得重複新增!");
                        SetFocused(dt, dr, PARAM_KEY);
                        return(false);
                    }

                    //必須回應詢價比
                    if (string.IsNullOrEmpty(dr["MMF_RESP_RATIO"].AsString()))
                    {
                        MessageDisplay.Warning("「必須回應詢價比(%)」必須要輸入值!");
                        //set Focused
                        SetFocused(dt, dr, "MMF_RESP_RATIO");
                        return(false);
                    }
                    //最低造市量
                    if (string.IsNullOrEmpty(dr["MMF_QNTY_LOW"].AsString()))
                    {
                        MessageDisplay.Warning("「最低造市量」必須要輸入值!");
                        //set Focused
                        SetFocused(dt, dr, "MMF_QNTY_LOW");
                        return(false);
                    }
                    //報價有效量比率
                    if (string.IsNullOrEmpty(dr["MMF_QUOTE_VALID_RATE"].AsString()))
                    {
                        MessageDisplay.Warning("「報價有效量比率」必須要輸入值!");
                        //set Focused
                        SetFocused(dt, dr, "MMF_QUOTE_VALID_RATE");
                        return(false);
                    }
                    //報價每日平均維持分鐘
                    if (string.IsNullOrEmpty(dr["MMF_AVG_TIME"].AsString()))
                    {
                        MessageDisplay.Warning("「報價每日平均維持分鐘」必須要輸入值!");
                        //set Focused
                        SetFocused(dt, dr, "MMF_AVG_TIME");
                        return(false);
                    }
                    //寫LOGV
                    lsType = "I";
                    lsVal1 = dr["MMF_PARAM_KEY"].AsString();
                    lsVal2 = dr["MMF_RESP_RATIO"].AsString();
                    lsVal3 = dr["MMF_QNTY_LOW"].AsString();
                    lsVal4 = dr["MMF_QUOTE_VALID_RATE"].AsString();
                    lsVal5 = dr["MMF_AVG_TIME"].AsString();
                    new LOGV().Insert(_ProgramID, GlobalInfo.USER_ID, lsType, lsVal1, lsVal2, lsVal3, lsVal4, lsVal5);
                }
            }
            catch (Exception ex) {
                WriteLog(ex);
                return(false);
            }
            return(true);
        }
 private int[] GetPoint(string formName, MessageDisplay msgDisplay)
 {
     return GetPoint(formName, false, msgDisplay);
 }
Esempio n. 27
0
        private bool StartExport()
        {
            /* 條件值檢核*/
            DateTime ldStart, ldEnd;
            string   lsType = "";

            switch (rgDate.EditValue)
            {
            case "rb_day":
                //週
                if (!emStartDate.IsDate(emStartDate.Text, CheckDate.Start) ||
                    !emEndDate.IsDate(emEndDate.Text, CheckDate.End))
                {
                    return(false);
                }
                if (string.Compare(emStartDate.Text, emEndDate.Text) > 0)
                {
                    MessageDisplay.Error(GlobalInfo.ErrorText, CheckDate.Datedif);
                    return(false);
                }
                ldStart = Convert.ToDateTime(emStartDate.Text);
                ldEnd   = Convert.ToDateTime(emEndDate.Text);

                lsSymd  = emStartDate.Text.Replace("/", "").SubStr(0, 8);
                lsEymd  = emEndDate.Text.Replace("/", "").SubStr(0, 8);
                lsType  = "Daily";
                sumType = "D";

                logText = ldStart.ToString("yyyy.MM.dd") + "至" + ldEnd.ToString("yyyy.MM.dd") + " 交易量";
                break;

            case "rb_week":
                //週
                if (!emStartDate1.IsDate(emStartDate1.Text, CheckDate.Start) ||
                    !emEndDate1.IsDate(emEndDate1.Text, CheckDate.End))
                {
                    return(false);
                }
                if (string.Compare(emStartDate1.Text, emEndDate1.Text) > 0)
                {
                    MessageDisplay.Error(GlobalInfo.ErrorText, CheckDate.Datedif);
                    return(false);
                }
                ldStart = Convert.ToDateTime(emStartDate1.Text);
                ldEnd   = Convert.ToDateTime(emEndDate1.Text);

                lsSymd  = emStartDate1.Text.Replace("/", "").SubStr(0, 8);
                lsEymd  = emEndDate1.Text.Replace("/", "").SubStr(0, 8);
                lsType  = "Weekly";
                sumType = "D";

                logText = ldStart.ToString("yyyy.MM.dd") + "至" + ldEnd.ToString("yyyy.MM.dd") + " 交易量";
                break;

            case "rb_month":
                //月
                string Smth = this.emStartMth.Text + "/01";
                string Emth = this.emEndMth.Text + "/01";
                if (!this.emStartMth.IsDate(Smth, CheckDate.Start) ||
                    !this.emEndMth.IsDate(Emth, CheckDate.End))
                {
                    return(false);
                }
                ldStart = Convert.ToDateTime(Smth);
                ldEnd   = PbFunc.relativedate(Convert.ToDateTime(Emth), 31);
                if (ldEnd.Month != PbFunc.Right(emStartMth.Text, 2).AsInt())
                {
                    ldEnd = PbFunc.relativedate(ldEnd, -ldEnd.Day);
                }
                lsSymd  = emStartMth.Text.Replace("/", "").SubStr(0, 6);
                lsEymd  = emEndMth.Text.Replace("/", "").SubStr(0, 6);
                lsType  = "Monthly";
                sumType = "M";

                logText = lsSymd + "至" + lsEymd + " 交易量";
                break;

            case "rb_year":
                //年
                lsSymd  = emStartYear.Text;
                lsEymd  = emEndYear.Text;
                lsType  = "Yearly";
                sumType = "Y";
                logText = lsSymd + "至" + lsEymd + " 交易量";
                break;

            default:
                break;
            }

            //商品別
            if (rbTMU.EditValue.Equals("rb_options"))
            {
                lsType     = lsType + "_OPT";
                lsProdType = "O";
            }
            else
            {
                lsType     = lsType + "_FUT";
                lsProdType = "F";
            }
            //ids_1.dataobject = "d_"+gs_txn_id
            if (cbxEng.Checked)
            {
                lsType = lsType + "_eng";
            }

            //交易時段
            switch (rgTime.EditValue)
            {
            case "rb_market0":
                lsMarketCode = "0";
                lsType       = lsType + "_day";
                break;

            case "rb_market1":
                lsMarketCode = "1";
                lsType       = lsType + "_night";
                break;

            default:
                lsMarketCode = "%";
                break;
            }

            /*點選儲存檔案之目錄*/
            saveFilePath = PbFunc.wf_GetFileSaveName(lsType + "(" + lsSymd + "-" + lsEymd + ").csv");
            if (string.IsNullOrEmpty(saveFilePath))
            {
                return(false);
            }

            /*******************
            *  Messagebox
            *******************/
            stMsgTxt.Visible = true;
            stMsgTxt.Text    = "開始轉檔...";
            stMsgTxt.Text    = logText + " 轉檔中...";
            this.Cursor      = Cursors.WaitCursor;
            this.Refresh();
            Thread.Sleep(5);
            return(true);
        }
 private int[] GetPoint(string formName,bool isSetIntMinValue,MessageDisplay msgDisplay)
 {
     UserPointCollection allPoints = AllSettings.Current.PointSettings.UserPoints;
     int[] points = new int[allPoints.Count];
     StringBuilder pointNames = new StringBuilder();
     for (int i = 0; i < points.Length;i++ )
     {
         UserPoint point = allPoints[i];
         if (point.Enable)
         {
             int value;
             string valueString;
             if (!GetIntValue(formName + "." + (int)point.Type, isSetIntMinValue, out value, out valueString))
             {
                 pointNames.Append(point.Name+",");
             }
             points[i] = value;
         }
         else
             points[i] = 0;
     }
     if (pointNames.Length > 0)
         msgDisplay.AddError(formName, new PointFormatError(formName, pointNames.ToString(0, pointNames.Length - 1),string.Empty).Message);
     return points;
 }
Esempio n. 29
0
        private void ValidateJudgment(Judgement jud, MessageDisplay msgDisp, int rowindex)
        {

            if (string.IsNullOrEmpty(jud.Description))
            {
                msgDisp.AddError(new CustomError("description", rowindex, Lang_Error.Judgement_EmptyDescriptionError));
            }

            if (string.IsNullOrEmpty(jud.LogoUrl))
            {
                msgDisp.AddError(new CustomError("logourl", rowindex, Lang_Error.Judgement_EmptyLogoUrlError));
            }
        }
Esempio n. 30
0
        private void GetAttachments(int postUserID, MessageDisplay msgDisplay, ref AttachmentCollection attachs)
        {
            AttachmentCollection attachments = new AttachmentCollection();
            DiskFileCollection diskFiles = null;

            List<int> tempFileIds = new List<int>(), diskFileIds=new List<int>();

            string[] attachIndexs = _Request.Get("attachIndex", Method.Post,string.Empty).Split( new string[]{ ","}, StringSplitOptions.RemoveEmptyEntries);


            foreach (string i in attachIndexs)
            {
                if (i == "{index}")
                    continue;
                int id = _Request.Get<int>("attachid_" + i, Method.Post, 0);
                int attachType=_Request.Get<int>("attachtype_" + i, Method.Post, 0);
                if ( attachType == 0)
                    tempFileIds.Add(id);
                else if( attachType==1 )
                    diskFileIds.Add(id);
            }

           diskFiles = DiskBO.Instance.GetDiskFiles(diskFileIds);
            
                Attachment attach;

                string extendName = string.Empty;
                foreach (DiskFile file in diskFiles)
                {
                    attach = new Attachment();
                    attach.DiskFileID = file.DiskFileID;
                    attach.FileID = file.FileID;
                    attach.FileSize = file.Size;
                    attach.FileName = _Request.Get("filename_1_" + file.DiskFileID, Method.Post, "未命名", false);
                    attach.Price = _Request.Get("price_1_" + file.DiskFileID, Method.Post, 0);
                    extendName = _Request.Get("extname_1_" + file.DiskFileID, Method.Post, string.Empty);
                    attach.AttachType = AttachType.DiskFile;
                    if (!string.IsNullOrEmpty(attach.FileName) && !string.IsNullOrEmpty(extendName))
                        attach.FileName += "." + extendName;

                    attach.FileType = extendName;
                    attachments.Add(attach);
                }

                foreach (int id in tempFileIds)
                {
                    attach = new Attachment();
                    attach.AttachmentID = id;
                    attach.FileName = _Request.Get("filename_0_" + id, Method.Post, "未命名", false);
                    attach.Price = _Request.Get("price_0_" + id, Method.Post, 0);

                    attach.AttachType = AttachType.TempAttach;

                    extendName = _Request.Get("extname_0_" + id, Method.Post, string.Empty);
                    if (!string.IsNullOrEmpty(attach.FileName) && !string.IsNullOrEmpty(extendName))
                        attach.FileName += "." + extendName;

                    attach.FileType = extendName;
                    attachments.Add(attach);
                }

            foreach(Attachment att in attachments)
            {
                att.PostID = 0;

                if (IsEditPost || IsEditThread)
                    att.UserID = postUserID;
                
                else
                    att.UserID = MyUserID;

                if (att.Price < 0)
                {
                    msgDisplay.AddError("附件售价不能小于0");
                    return;
                }
            }
            attachs.AddRange(attachments);
        }
 public Error(ErrorType errorType, string message, MessageDisplay messageDisplay = MessageDisplay.Standard)
 {
     ErrorType      = errorType;
     Message        = message;
     MessageDisplay = messageDisplay;
 }
Esempio n. 32
0
        private RateSetItem GetRankSetItem(UserPointType pointType, int id, bool isNew, MessageDisplay msgDisplay)
        {
            Guid roleID;
            string value;

            int sortOrder = 0;
            if (id == 0 && isNew == false)
                roleID = Guid.Empty;
            else
            {
                string roleIDName, sortOrderName;
                if (isNew)
                {
                    roleIDName = "new_role_" + pointType.ToString();
                    sortOrderName = "new_sortorder_" + pointType.ToString();
                }
                else
                {
                    roleIDName = "role_" + pointType.ToString() + "_" + id;
                    sortOrderName = "sortorder_" + pointType.ToString() + "_" + id;
                }

                roleID = _Request.Get<Guid>(roleIDName, Method.Post, Guid.Empty);
                if (roleID == Guid.Empty)
                {
                    if (isNew && _Request.Get("display_tr_" + pointType.ToString(), Method.Post, "0") == "1")
                    {
                        msgDisplay.AddError("new_" + pointType.ToString(), "请选择一个用户组");
                    }
                    else
                        return null;
                }
                value = _Request.Get(sortOrderName, Method.Post, string.Empty);

                if (!int.TryParse(value, out sortOrder))
                {
                    if (isNew)
                        msgDisplay.AddError("new_" + pointType.ToString(), "排序必须为整数");
                    else
                        msgDisplay.AddError(pointType.ToString(), id, "排序必须为整数");
                }
            }

            RateSetItem rankSetItem = new RateSetItem();
            rankSetItem.PointType = pointType;
            rankSetItem.RoleID = roleID;
            rankSetItem.RoleSortOrder = sortOrder;

            string minValueName,maxValueName,maxValueInTimeName;
            if (isNew)
            {
                minValueName = "new_minvalue_" + pointType.ToString();
                maxValueName = "new_maxvalue_" + pointType.ToString();
                maxValueInTimeName = "new_maxvalueintime_" + pointType.ToString();
            }
            else
            {
                minValueName = "minvalue_" + pointType.ToString() + "_" + id;
                maxValueName = "maxvalue_" + pointType.ToString() + "_" + id;
                maxValueInTimeName = "maxvalueintime_" + pointType.ToString() + "_" + id;
            }

            int minValue = 0, maxValue = 0, maxValueInTime = 0;

            StringBuilder errors = new StringBuilder();

            value = _Request.Get(minValueName, Method.Post, string.Empty);
            if (value == string.Empty)
            {
                minValue = 0;
            }
            else
            {
                if (!int.TryParse(value, out minValue))
                {
                    errors.Append("最小值,");
                }
            }

            value = _Request.Get(maxValueName, Method.Post, string.Empty);
            if (value == string.Empty)
            {
                maxValue = 0;
            }
            else
            {
                if (!int.TryParse(value, out maxValue))
                {
                    errors.Append("最大值,");
                }
            }

            value = _Request.Get(maxValueInTimeName, Method.Post, string.Empty);
            if (value == string.Empty)
            {
                maxValueInTime = 0;
            }
            else
            {
                if (ForumID == 0)//全局设置 才能设置最大评分数
                {
                    if (!int.TryParse(value, out maxValueInTime))
                    {
                        errors.Append("1天内最大评分数,");
                    }
                }
            }

            string errorName;
            if(isNew)
                errorName = "new_"+pointType.ToString();
            else
                errorName = pointType.ToString();

            if (errors.Length > 0)
            {
                msgDisplay.AddError(errorName, id, errors.ToString(0, errors.Length - 1) + "必须为整数");

                return null;
            }

            if (maxValue < minValue)
            {
                msgDisplay.AddError(errorName, id, "“评分最小值”不能大于“评分最大值”");
                return null;
            }

            if (maxValueInTime < 0)
            {
                msgDisplay.AddError(errorName, id, "1天内最大评分数必须大于0");
                return null;
            }

            if (Math.Abs(minValue) > maxValueInTime)
            {
                msgDisplay.AddError(errorName, id, "1天内最大评分数必须大等于“评分最小值”的绝对值");
                return null;
            }

            if (Math.Abs(maxValue) > maxValueInTime)
            {
                msgDisplay.AddError(errorName, id, "1天内最大评分数必须大等于“评分最大值”的绝对值");
                return null;
            }

            rankSetItem.MaxValue = maxValue;
            rankSetItem.MinValue = minValue;
            rankSetItem.MaxValueInTime = maxValueInTime;

            return rankSetItem;

        }
Esempio n. 33
0
        protected override ResultStatus Save(PokeBall pokeBall)
        {
            int printStep = 0;

            try {
                DataTable dtCurrent = (DataTable)gcMain.DataSource;
                gvMain.CloseEditor();
                gvMain.UpdateCurrentRow();

                DataTable dtChange = dtCurrent.GetChanges();

                if (dtChange == null)
                {
                    MessageDisplay.Warning("沒有變更資料,不需要存檔!", GlobalInfo.WarningText);
                    return(ResultStatus.Fail);
                }
                if (dtChange.Rows.Count == 0)
                {
                    MessageDisplay.Warning("沒有變更資料,不需要存檔!", GlobalInfo.WarningText);
                    return(ResultStatus.Fail);
                }

                DialogResult liRtn;
                int          pos = -1;
                foreach (DataRow dr in dtChange.Rows)
                {
                    pos++;
                    if (dr.RowState == DataRowState.Added || dr.RowState == DataRowState.Modified)
                    {
                        dr["CPR_W_TIME"]    = DateTime.Now;
                        dr["CPR_W_USER_ID"] = GlobalInfo.USER_ID;
                        dr["CPR_DATA_NUM"]  = 0; //隱藏欄位賦值

                        if (dr["CPR_PRICE_RISK_RATE"] == DBNull.Value)
                        {
                            string kind = dr["CPR_KIND_ID"].AsString();

                            liRtn = MessageDisplay.Choose(string.Format("{0}最小風險價格係數欄位為空白,請確認是否為已下市契約", kind), MessageBoxDefaultButton.Button2, GlobalInfo.QuestionText);
                            if (liRtn == DialogResult.No)
                            {
                                return(ResultStatus.Fail);
                            }
                            else
                            {
                                dr["CPR_PRICE_RISK_RATE"] = DBNull.Value;
                            }
                        }

                        gvMain.SetRowCellValue(pos, "CPR_W_TIME", DateTime.Now);
                        gvMain.SetRowCellValue(pos, "CPR_W_USER_ID", GlobalInfo.USER_ID);
                        gvMain.UpdateCurrentRow();
                    }
                } //foreach (DataRow dr in dtCurrent.Rows)

                printStep = 1; //跑儲存前確認單
                CheckPrint(gcMain, dtChange, printStep);
                liRtn = MessageDisplay.Choose("已列印確認單,點選確認進行儲存資料", MessageBoxDefaultButton.Button2, GlobalInfo.QuestionText);
                if (liRtn == DialogResult.No)
                {
                    return(ResultStatus.Fail);
                }
                else
                {
                    ResultData result = new HCPR().UpdateData(dtChange);
                    if (result.Status == ResultStatus.Fail)
                    {
                        MessageDisplay.Error("儲存失敗", GlobalInfo.ErrorText);
                        return(ResultStatus.FailButNext);
                    }

                    printStep = 2; //儲存後列印已確認單
                    CheckPrint(gcMain, dtChange, printStep);
                }
            } catch (Exception ex) {
                MessageDisplay.Error("儲存錯誤", GlobalInfo.ErrorText);
                WriteLog(ex, "", false);
                return(ResultStatus.FailButNext);
            } finally {
                DataTable dtAll = dao49010.GetDataList();
                DataTable dt    = dtAll.Clone();
                gcMain.DataSource = dt;

                gvMain.AppearancePrint.BandPanel.Options.UseTextOptions = true;
                gvMain.AppearancePrint.BandPanel.TextOptions.WordWrap   = WordWrap.Wrap;
                gvMain.AppearancePrint.BandPanel.Font = new Font("Microsoft YaHei", 10);

                gvMain.AppearancePrint.Row.Font           = new Font("Microsoft YaHei", 10);
                gvMain.OptionsPrint.AllowMultilineHeaders = true;
                gvMain.AppearancePrint.GroupRow.Font      = new Font("Microsoft YaHei", 10);

                gvMain.BestFitColumns();
                GridHelper.SetCommonGrid(gvMain);

                gridBand9.AppearanceHeader.TextOptions.WordWrap = WordWrap.Wrap;

                gridBand9.Caption = "(輸入方式:如3.5%,則輸入0.035)";

                gvMain.Columns["CPR_PROD_SUBTYPE"].ColumnEdit = lupProdSubtype;
                gvMain.Columns["CPR_KIND_ID"].ColumnEdit      = lupKindId;

                //製作連動下拉選單(觸發事件)
                gvMain.ShownEditor += gvMain_ShownEditor;
                lupProdSubtype.EditValueChanged += lupProdSubtype_EditValueChanged;

                //gcMain.Visible = true;
                gcMain.Focus();
                _ToolBtnPrintAll.Enabled = false;//列印
                this.Refresh();
            }
            gcMain.Visible = false;
            return(ResultStatus.Success);
        }
Esempio n. 34
0
        /// <summary>
        /// 按下[匯出]按鈕時
        /// </summary>
        /// <returns></returns>
        protected override ResultStatus Export()
        {
            #region 輸入&日期檢核 (exportbefore)
            if (string.Compare(txtStartMonth.Text, txtEndMonth.Text) > 0)
            {
                MessageDisplay.Error("月份起始年月不可小於迄止年月!", GlobalInfo.ErrorText);
                return(ResultStatus.Fail);
            }
            #endregion

            //0.將畫面資訊做些轉換
            string startNo = cbxFcmStartNo.EditValue.AsString("");
            string endNo   = cbxFcmEndNo.EditValue.AsString("");


            //1.檢查
            //1.1期貨商後面號碼不能小於前面號碼
            //ken,注意,期貨商代號第一碼為英文,如果要比較字串大小,則要使用string.Compare
            if (startNo.Length > 0)
            {
                if (endNo.Length > 0)
                {
                    if (startNo.CompareTo(endNo) > 0)
                    {
                        MessageDisplay.Warning("造市者代號起始不可大於迄止", GlobalInfo.WarningText);
                        cbxFcmStartNo.Focus();
                        return(ResultStatus.Fail);
                    }
                }
            }

            //2.get data
            DataTable dt;
            if (rgpType.SelectedIndex == 0)//依照期貨商別
            {
                dt = dao55020.ListAll(txtStartMonth.FormatValue,
                                      txtEndMonth.FormatValue,
                                      startNo,
                                      endNo,
                                      cbxProdType.EditValue.AsString());
            }
            else//依照商品別
            {
                dt = dao55020.ListAll2(txtStartMonth.FormatValue,
                                       txtEndMonth.FormatValue,
                                       startNo,
                                       endNo);
            }

            if (dt.Rows.Count <= 0)
            {
                MessageDisplay.Info(string.Format("{0},{1},無任何資料!", txtStartMonth.Text + "~" + txtEndMonth.Text, this.Text), GlobalInfo.ResultText);
                return(ResultStatus.Fail);
            }

            try {
                //3.開始轉出資料
                panFilter.Enabled = false;
                labMsg.Visible    = true;
                labMsg.Text       = "訊息:資料轉出中........";

                //3.1 copy template xls to target path
                string excelDestinationPath = PbFunc.wf_copy_file(_ProgramID, _ProgramID);

                //3.2 open xls
                Workbook workbook = new Workbook();
                workbook.LoadDocument(excelDestinationPath);
                int       sheetNo   = rgpType.SelectedIndex;
                Worksheet worksheet = workbook.Worksheets[sheetNo];

                //3.3寫入檔頭
                worksheet.Cells[3, 0].Value += DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
                worksheet.Cells[3, 3].Value += txtStartMonth.Text.Replace("/", "");
                worksheet.Cells[3, 5].Value += txtEndMonth.Text.Replace("/", "");
                worksheet.Cells[3, 7].Value  = "資料更新時間 : " + dt.Rows[0]["FEETRD_UPD_TIME"].AsDateTime(DateTime.Now).ToString("yyyy/MM/dd HH:mm:ss");

                //3.4寫入明細
                //ken,預先做好一堆空白行數,但是如果筆數超過預設空白行數,會把最後的統計那行覆蓋掉
                int rowIndex      = 7;                                                    //起始row index position
                int pos           = 0;
                int rowTotalCount = rowIndex + (rgpType.SelectedIndex == 0 ? 3000 : 200); //總行數(包含空白)
                foreach (DataRow row in dt.Rows)
                {
                    if (pos % 20 == 0)
                    {
                        labMsg.Text = string.Format("資料轉出中......{0} / {1}", pos, dt.Rows.Count);
                        this.Refresh();
                        //Application.DoEvents();
                    }

                    if (rgpType.SelectedIndex == 0)
                    {
                        //依照期貨商別
                        worksheet.Cells[rowIndex, 0].Value = row["feetrd_fcm_no"].AsString();                                                       //期貨商代號
                        worksheet.Cells[rowIndex, 1].Value = row["brk_abbr_name"].AsString();                                                       //期貨商名稱
                                                                                                                                                    //ken,商品名稱feetrd_kind_id不要用AsString,會把最前面的空白trim掉,excel總計有用到公式比對前面空白
                        worksheet.Cells[rowIndex, 2].Value = (!DBNull.Value.Equals(row["feetrd_kind_id"]) ? row["feetrd_kind_id"].ToString() : ""); //商品名稱

                        worksheet.Cells[rowIndex, 3].Value = row["feetrd_m_qnty"].AsDouble();                                                       //成交口數
                        worksheet.Cells[rowIndex, 4].Value = row["feetrd_ar"].AsDecimal();                                                          //應收交易經手費
                        worksheet.Cells[rowIndex, 5].Value = row["feetrd_mk_disc_amt"].AsDecimal();                                                 //造市折減
                        worksheet.Cells[rowIndex, 6].Value = row["feetrd_oth_disc_amt"].AsDecimal();                                                //其他折減
                        worksheet.Cells[rowIndex, 8].Value = row["feetrd_rec_amt"].AsDecimal();                                                     //金額
                    }
                    else
                    {
                        //依照商品別
                        //ken,商品名稱feetrd_kind_id不要用AsString,會把最前面的空白trim掉,excel總計有用到公式比對前面空白
                        worksheet.Cells[rowIndex, 0].Value = (!DBNull.Value.Equals(row["feetrd_kind_id"]) ? row["feetrd_kind_id"].ToString() : ""); //商品名稱

                        worksheet.Cells[rowIndex, 1].Value = row["feetrd_m_qnty"].AsDouble();                                                       //成交口數
                        worksheet.Cells[rowIndex, 2].Value = row["feetrd_ar"].AsDecimal();                                                          //應收交易經手費
                        worksheet.Cells[rowIndex, 3].Value = row["feetrd_mk_disc_amt"].AsDecimal();                                                 //造市折減
                        worksheet.Cells[rowIndex, 4].Value = row["feetrd_oth_disc_amt"].AsDecimal();                                                //其他折減
                        worksheet.Cells[rowIndex, 6].Value = row["feetrd_rec_amt"].AsDecimal();                                                     //金額
                    }

                    rowIndex++; pos++;
                }//foreach (DataRow row in dt.Rows) {


                //刪除空白列
                if (rowIndex <= rowTotalCount)
                {
                    worksheet.Rows.Remove(rowIndex, rowTotalCount - rowIndex);
                }

                worksheet.Range["A1"].Select();
                worksheet.ScrollToRow(0);

                //存檔
                workbook.SaveDocument(excelDestinationPath);
                if (FlagAdmin)
                {
                    System.Diagnostics.Process.Start(excelDestinationPath);
                }

                return(ResultStatus.Success);
            } catch (Exception ex) {
                WriteLog(ex);
            } finally {
                labMsg.Text       = "";
                labMsg.Visible    = false;
                panFilter.Enabled = true;
            }
            return(ResultStatus.Fail);
        }
Esempio n. 35
0
        protected override ResultStatus Export()
        {
            try {
                #region 輸入&日期檢核
                if (string.Compare(txtStartDate.Text, txtEndDate.Text) > 0)
                {
                    MessageDisplay.Error(CheckDate.Datedif, GlobalInfo.ErrorText);
                    return(ResultStatus.Fail);
                }
                #endregion

                //0. ready
                panFilter.Enabled = false;
                labMsg.Visible    = true;
                labMsg.Text       = "開始轉檔...";
                this.Cursor       = Cursors.WaitCursor;
                this.Refresh();
                Thread.Sleep(5);

                //1.撈資料
                DataTable dtContent = daoVPR.ListByMarket(StartDate, EndDate, 'S', 'S');
                if (dtContent.Rows.Count <= 0)
                {
                    labMsg.Hide();
                    MessageDisplay.Info(string.Format("{0},{1},無任何資料!", txtStartDate.Text + "-" + txtEndDate.Text, this.Text), GlobalInfo.ResultText);
                    return(ResultStatus.Fail);
                }

                //1.1處理資料型態
                DataTable dt = dtContent.Clone();                      //轉型別用的datatable
                dt.Columns["VPR_DATA_TIME"].DataType = typeof(string); //將原DataType(datetime)轉為string
                foreach (DataRow row in dtContent.Rows)
                {
                    dt.ImportRow(row);
                }

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    dt.Rows[i]["VPR_DATA_TIME"] = Convert.ToDateTime(dtContent.Rows[i]["VPR_DATA_TIME"]).ToString("yyyy/MM/dd HH:mm:ss.fff");
                }

                //2.存Txt
                string etfFileName = "30684_" + DateTime.Now.ToString("yyyy.MM.dd-HH.mm.ss") + ".txt";
                etfFileName = Path.Combine(GlobalInfo.DEFAULT_REPORT_DIRECTORY_PATH, etfFileName);
                ExportOptions txtref = new ExportOptions();
                txtref.HasHeader = true;
                txtref.Encoding  = System.Text.Encoding.GetEncoding(950);//ASCII
                Common.Helper.ExportHelper.ToText(dt, etfFileName, txtref);

                labMsg.Text  = "轉檔成功!";
                exportStatus = ResultStatus.Success;
                return(ResultStatus.Success);
            } catch (Exception ex) {
                WriteLog(ex);
                labMsg.Text = "轉檔失敗";
            } finally {
                panFilter.Enabled = true;
                labMsg.Text       = "";
                labMsg.Visible    = false;
                this.Cursor       = Cursors.Arrow;
            }
            return(ResultStatus.Fail);
        }
Esempio n. 36
0
        protected override ResultStatus Export()
        {
            try {
                if (txtSID.Text.AsString() == "")
                {
                    MessageDisplay.Error("請輸入標的證券代號");
                    return(ResultStatus.Fail);
                }
                this.Cursor = Cursors.WaitCursor;
                this.Refresh();
                Thread.Sleep(5);
                lblProcessing.Visible = true;
                ShowMsg("開始轉檔...");
                string rptId = "42012", file, rptName = "股票期貨風險價格係數分析表";

                //讀取資料(保證金適用比例級距)
                DataTable dt42012 = dao42012.d_42012_detl(txtSDate.DateTimeValue.ToString("yyyyMMdd"), txtEDate.DateTimeValue.ToString("yyyyMMdd"), txtSID.Text.AsString(),
                                                          txtRange.Text.AsDecimal() / 100, txtRate2Ref.Text.AsDecimal() / 100, txtRate3Ref.Text.AsDecimal() / 100, txtRate4Ref.Text.AsDecimal() / 100,
                                                          txtRate1.Text.AsDecimal() / 100, txtRate2.Text.AsDecimal() / 100, txtRate3.Text.AsDecimal() / 100, txtRate4.Text.AsDecimal() / 100);
                if (dt42012.Rows.Count == 0)
                {
                    MessageDisplay.Info(txtSDate.Text + "~" + txtEDate.Text + "," + rptId + '-' + rptName + ",無任何資料!");
                    lblProcessing.Visible = false;
                    return(ResultStatus.Fail);
                }
                dt42012 = dt42012.Sort("MGR3_YMD");

                //複製檔案
                file = PbFunc.wf_copy_file(rptId, rptId);
                if (file == "")
                {
                    return(ResultStatus.Fail);
                }

                //開啟檔案
                Workbook workbook = new Workbook();
                workbook.LoadDocument(file);

                //切換Sheet
                Worksheet ws = workbook.Worksheets[0];
                ws.Cells[0, 15].Value = txtSDate.Text + "~" + txtEDate.Text;

                //填資料
                //表首
                int   f, rowIndex, startRow = 3 - 1, totalRow = 300, minusRow = 0;
                Range range;
                if (cbx1.Checked)
                {
                    if (txtRange.Text != "10")
                    {
                        //表首
                        //使用RichTextString才能保留原本設定的格式
                        RichTextString richText = new RichTextString();
                        richText = ws.Cells[2, 2].GetRichText();
                        f        = richText.Text.IndexOf("10%") + 1;
                        if (f > 0)
                        {
                            richText.Characters(f - 1, 3).Text = txtRange.Text + "%";
                            richText.Characters(f - 1, txtRange.Text.Length).Font.Color = Color.Red;
                        }
                        ws.Cells[startRow, 2].SetRichText(richText);
                    }
                }
                else
                {
                    range = ws.Range[(startRow + 1).AsString() + ":" + (startRow + 1).AsString()];
                    range.Delete(DeleteMode.EntireRow);
                    minusRow = minusRow + 1;
                    //改編號
                    ws.Cells[startRow, 1].Value     = "1";
                    ws.Cells[startRow + 1, 1].Value = "2";
                    ws.Cells[startRow + 2, 1].Value = "3";
                    ws.Cells[startRow + 3, 1].Value = "4";
                }
                startRow = 4 - 1;
                startRow = startRow - minusRow;

                if (cbx2.Checked)
                {
                    if (txtRange.Text != _CON1 || txtRate2.Text != _CON2 || txtRate3.Text != _CON3 || txtRate4.Text != _CON4 || lblCmRate.Text != _CON5)
                    {
                        //表首
                        RichTextString richText = new RichTextString();
                        richText = ws.Cells[startRow, 2].GetRichText();

                        if (txtRange.Text != _CON1)
                        {
                            f = richText.Text.IndexOf(_CON1 + " %") + 1;
                            if (f > 0)
                            {
                                richText.Characters(f - 1, 5).Text = txtRate1.Text + "%";
                                richText.Characters(f - 1, txtRate1.Text.Length).Font.Color = Color.Red;
                            }
                        }
                        if (txtRate2.Text != _CON2)
                        {
                            f = richText.Text.IndexOf(_CON2 + " %") + 1;
                            if (f > 0)
                            {
                                richText.Characters(f - 1, 6).Text = txtRate2.Text + "%";
                                richText.Characters(f - 1, txtRate2.Text.Length).Font.Color = Color.Red;
                            }
                        }
                        if (txtRate3.Text != _CON3)
                        {
                            f = richText.Text.IndexOf(_CON3 + " %") + 1;
                            if (f > 0)
                            {
                                richText.Characters(f - 1, 6).Text = txtRate3.Text + "%";
                                richText.Characters(f - 1, txtRate3.Text.Length).Font.Color = Color.Red;
                            }
                        }
                        if (txtRate4.Text != _CON4)
                        {
                            f = richText.Text.IndexOf(_CON4 + " %") + 1;
                            if (f > 0)
                            {
                                richText.Characters(f - 1, 5).Text = txtRate4.Text + "%";
                                richText.Characters(f - 1, txtRate4.Text.Length).Font.Color = Color.Red;
                            }
                        }
                        if (lblCmRate.Text != _CON5)
                        {
                            f = richText.Text.IndexOf(_CON5 + "%") + 1;
                            if (f > 0)
                            {
                                richText.Characters(f - 1, 5).Text = lblCmRate.Text + "%";
                                richText.Characters(f - 1, lblCmRate.Text.Length).Font.Color = Color.Red;
                            }
                        }
                        ws.Cells[startRow, 2].SetRichText(richText);
                    }
                }
                else
                {
                    range = ws.Range[(startRow + 1).AsString() + ":" + (startRow + 1).AsString()];
                    range.Delete(DeleteMode.EntireRow);
                    minusRow = minusRow + 1;
                    //改編號
                    ws.Cells[startRow, 1].Value     = "2";
                    ws.Cells[startRow + 1, 1].Value = "3";
                    ws.Cells[startRow + 2, 1].Value = "4";
                }

                #region 表1
                startRow = 13 - 1;
                startRow = startRow - minusRow;
                totalRow = 1000;
                rowIndex = startRow;

                if (cbx1.Checked)
                {
                    if (txtRange.Text != "10")
                    {
                        //表頭
                        RichTextString richText = new RichTextString();
                        richText = ws.Cells[rowIndex - 3, 2].GetRichText();

                        f = richText.Text.IndexOf("10%") + 1;
                        if (f > 0)
                        {
                            richText.Characters(f - 1, 3).Text = txtRange.Text + "%";
                            richText.Characters(f - 1, txtRange.Text.Length).Font.Color = Color.Red;
                            ws.Cells[rowIndex - 3, 2].SetRichText(richText);
                        }
                    }
                    if (cbxRate.Checked)
                    {
                        DataView dv = dt42012.AsDataView();
                        dv.RowFilter = "(mgr2_level = 'Z' and T_30_RATE >= (MGR3_CUR_CM - " +
                                       (txtRate4Ref.Text.AsDecimal() / 100).AsString() + ")) or (mgr2_level = '1' and t_30_rate >= " +
                                       (txtRate1Ref.Text.AsDecimal() / 100).AsString() + ") or (mgr2_level = '2' and t_30_rate >= " +
                                       (txtRate2Ref.Text.AsDecimal() / 100).AsString() + ")";
                        dt42012 = dv.ToTable();
                    }

                    foreach (DataRow dr in dt42012.Rows)
                    {
                        rowIndex++;
                        ws.Cells[rowIndex, 1].Value = dr["MGR3_YMD"].AsDateTime("yyyyMMdd").ToString("yyyy/MM/dd");
                        ws.Cells[rowIndex, 2].Value = dr["MGR3_KIND_ID"].AsString();
                        ws.Cells[rowIndex, 3].Value = dr["APDK_NAME"].AsString();
                        ws.Cells[rowIndex, 4].Value = dr["MGR3_SID"].AsString();
                        ws.Cells[rowIndex, 5].Value = dr["PID_NAME"].AsString();
                        ws.Cells[rowIndex, 6].SetValue(dr["T_30_RATE"]);
                        ws.Cells[rowIndex, 7].SetValue(dr["MGR2_DAY_RATE"]);
                        if (dr["MGR3_CUR_LEVEL"].AsString() == "Z")
                        {
                            RichTextString richText = new RichTextString();
                            richText.AddTextRun("從其高", new RichTextRunFont("標楷體", 12, Color.Red));
                            richText.AddTextRun("(" + (dr["MGR3_CUR_CM"].AsDecimal() * 100).AsString() + "%)", new RichTextRunFont("Times New Roman", 12, Color.Red));
                            ws.Cells[rowIndex, 8].SetRichText(richText);
                        }
                        else
                        {
                            RichTextString richText = new RichTextString();
                            richText.AddTextRun(dr["MGR3_CUR_LEVEL"].AsString(), new RichTextRunFont("Times New Roman", 12));
                            ws.Cells[rowIndex, 8].SetRichText(richText);
                        }
                        if (dr["DAY_CNT"].AsInt() == 0)
                        {
                            ws.Cells[rowIndex, 9].Value = "-";
                        }
                        else
                        {
                            ws.Cells[rowIndex, 9].SetValue(dr["DAY_CNT"]);
                        }
                        ws.Cells[rowIndex, 10].SetValue(dr["TFXM1_PRICE"]);
                        ws.Cells[rowIndex, 11].SetValue(dr["AI5_PRICE"]);
                        ws.Cells[rowIndex, 12].SetValue(dr["TS_UPDOWN"]);
                        ws.Cells[rowIndex, 13].SetValue(dr["TI_UPDOWN"]);
                        ws.Cells[rowIndex, 14].SetValue(dr["YS_UPDOWN"]);
                        ws.Cells[rowIndex, 15].SetValue(dr["YI_UPDOWN"]);
                        ws.Cells[rowIndex, 16].SetValue(dr["AI2_OI"]);
                        ws.Cells[rowIndex, 17].SetValue(dr["AI2_M_QNTY"]);
                    }//foreach (DataRow dr in dt42012.Rows)

                    //刪除空白列
                    if (dt42012.Rows.Count < totalRow)
                    {
                        range = ws.Range[(startRow + dt42012.Rows.Count + 1 + 1) + ":" + (startRow + totalRow + 1)];
                        range.Delete(DeleteMode.EntireRow);
                        minusRow = minusRow + (totalRow - dt42012.Rows.Count);
                    }
                }
                else
                {
                    range = ws.Range[(startRow - 3 + 1) + ":" + (startRow + totalRow + 1)];
                    range.Delete(DeleteMode.EntireRow);
                    minusRow = minusRow + (totalRow + 4);
                }
                #endregion

                #region 表2
                startRow = 1018 - 1;
                startRow = startRow - minusRow;
                totalRow = 1000;
                rowIndex = startRow;
                if (cbx2.Checked)
                {
                    if (txtRange.Text != _CON1 || txtRate2.Text != _CON2 || txtRate3.Text != _CON3 || txtRate4.Text != _CON4 || lblCmRate.Text != _CON5)
                    {
                        //表頭
                        RichTextString richText = new RichTextString();
                        richText = ws.Cells[rowIndex - 3, 2].GetRichText();

                        if (txtRange.Text != _CON1)
                        {
                            f = richText.Text.IndexOf(_CON1 + " %") + 1;
                            if (f > 0)
                            {
                                richText.Characters(f - 1, 5).Text = txtRate1.Text + "%";
                                richText.Characters(f - 1, txtRate1.Text.Length).Font.Color = Color.Red;
                            }
                        }
                        if (txtRate2.Text != _CON2)
                        {
                            f = richText.Text.IndexOf(_CON2 + " %") + 1;
                            if (f > 0)
                            {
                                richText.Characters(f - 1, 6).Text = txtRate2.Text + "%";
                                richText.Characters(f - 1, txtRate2.Text.Length).Font.Color = Color.Red;
                            }
                        }
                        if (txtRate3.Text != _CON3)
                        {
                            f = richText.Text.IndexOf(_CON3 + " %") + 1;
                            if (f > 0)
                            {
                                richText.Characters(f - 1, 6).Text = txtRate3.Text + "%";
                                richText.Characters(f - 1, txtRate3.Text.Length).Font.Color = Color.Red;
                            }
                        }
                        if (txtRate4.Text != _CON4)
                        {
                            f = richText.Text.IndexOf(_CON4 + " %") + 1;
                            if (f > 0)
                            {
                                richText.Characters(f - 1, 5).Text = txtRate4.Text + "%";
                                richText.Characters(f - 1, txtRate4.Text.Length).Font.Color = Color.Red;
                            }
                        }
                        if (lblCmRate.Text != _CON5)
                        {
                            f = richText.Text.IndexOf(_CON5 + "%") + 1;
                            if (f > 0)
                            {
                                richText.Characters(f - 1, 5).Text = lblCmRate.Text + "%";
                                richText.Characters(f - 1, lblCmRate.Text.Length).Font.Color = Color.Red;
                            }
                        }
                        ws.Cells[rowIndex - 3, 2].SetRichText(richText);
                        if (!cbx1.Checked)
                        {
                            ws.Cells[rowIndex - 3, 1].Value = "1";
                        }
                    }
                    if (cbxRate.Checked)
                    {
                        DataView dv = dt42012.AsDataView();
                        dv.RowFilter = "(mgr2_level = 'Z' and mgr2_day_rate >= (MGR3_CUR_CM - " +
                                       (txtRate4.Text.AsDecimal() / 100).AsString() + ")) or (mgr2_level = '1' and mgr2_day_rate >= " +
                                       (txtRate1.Text.AsDecimal() / 100).AsString() + ") or (mgr2_level = '2' and mgr2_day_rate >= " +
                                       (txtRate2.Text.AsDecimal() / 100).AsString() + ")";
                        dt42012 = dv.ToTable();
                    }

                    foreach (DataRow dr in dt42012.Rows)
                    {
                        rowIndex++;
                        ws.Cells[rowIndex, 1].Value = dr["MGR3_YMD"].AsDateTime("yyyyMMdd").ToString("yyyy/MM/dd");
                        ws.Cells[rowIndex, 2].Value = dr["MGR3_KIND_ID"].AsString();
                        ws.Cells[rowIndex, 3].Value = dr["APDK_NAME"].AsString();
                        ws.Cells[rowIndex, 4].Value = dr["MGR3_SID"].AsString();
                        ws.Cells[rowIndex, 5].Value = dr["PID_NAME"].AsString();
                        ws.Cells[rowIndex, 6].SetValue(dr["MGR2_DAY_RATE"]);
                        ws.Cells[rowIndex, 7].SetValue(dr["T_30_RATE"]);
                        if (dr["MGR3_CUR_LEVEL"].AsString() == "Z")
                        {
                            RichTextString richText = new RichTextString();
                            richText.AddTextRun("從其高", new RichTextRunFont("標楷體", 12, Color.Red));
                            richText.AddTextRun("(" + (dr["MGR3_CUR_CM"].AsDecimal() * 100).AsString() + "%)", new RichTextRunFont("Times New Roman", 12, Color.Red));
                            ws.Cells[rowIndex, 8].SetRichText(richText);
                        }
                        else
                        {
                            RichTextString richText = new RichTextString();
                            richText.AddTextRun(dr["MGR3_CUR_LEVEL"].AsString(), new RichTextRunFont("Times New Roman", 12));
                            ws.Cells[rowIndex, 8].SetRichText(richText);
                        }
                        if (dr["DAY_CNT_3"].AsInt() == 0)
                        {
                            ws.Cells[rowIndex, 9].Value = "-";
                        }
                        else
                        {
                            ws.Cells[rowIndex, 9].SetValue(dr["DAY_CNT_3"]);
                        }
                        ws.Cells[rowIndex, 10].SetValue(dr["TFXM1_PRICE"]);
                        ws.Cells[rowIndex, 11].SetValue(dr["AI5_PRICE"]);
                        ws.Cells[rowIndex, 12].SetValue(dr["TS_UPDOWN"]);
                        ws.Cells[rowIndex, 13].SetValue(dr["TI_UPDOWN"]);
                        ws.Cells[rowIndex, 14].SetValue(dr["YS_UPDOWN"]);
                        ws.Cells[rowIndex, 15].SetValue(dr["YI_UPDOWN"]);
                        ws.Cells[rowIndex, 16].SetValue(dr["AI2_OI"]);
                        ws.Cells[rowIndex, 17].SetValue(dr["AI2_M_QNTY"]);
                    }//foreach (DataRow dr in dt42012.Rows)

                    //刪除空白列
                    if (dt42012.Rows.Count < totalRow)
                    {
                        range = ws.Range[(startRow + dt42012.Rows.Count + 1 + 1) + ":" + (startRow + totalRow + 1)];
                        range.Delete(DeleteMode.EntireRow);
                        minusRow = minusRow + (totalRow - dt42012.Rows.Count);
                    }
                }
                else
                {
                    range = ws.Range[(startRow - 3 + 1) + ":" + (startRow + totalRow + 1)];
                    range.Delete(DeleteMode.EntireRow);
                    minusRow = minusRow + (totalRow + 4);
                }
                #endregion

                //存檔
                ws.ScrollToRow(0);
                workbook.SaveDocument(file);
                ShowMsg("轉檔成功");
            } catch (Exception ex) {
                ShowMsg("轉檔錯誤");
                MessageDisplay.Error("輸出錯誤");
                throw ex;
            } finally {
                this.Cursor = Cursors.Arrow;
                this.Refresh();
                Thread.Sleep(5);
            }
            return(ResultStatus.Success);
        }
Esempio n. 37
0
        protected override ResultStatus Export()
        {
            string lsRptName = ConditionText().Trim();

            StartExport(_ProgramID, lsRptName);

            try {
                //讀取資料
                if (_Data == null || _Data.Rows.Count <= 0 || _defReport == null)
                {
                    MessageDisplay.Info(MessageDisplay.MSG_NO_DATA);
                    return(ResultStatus.Fail);
                }
                //開啟檔案
                Workbook workbook = new Workbook();
                //複製檔案
                _D500Xx.Filename = PbFunc.wf_copy_file(_ProgramID, _ProgramID);
                if (_D500Xx.Filename == "")
                {
                    return(ResultStatus.Fail);
                }
                _D500Xx.LogText = _D500Xx.Filename;

                if (lsRptName == "")
                {
                    lsRptName = "報表條件:" + "(" + DateText() + ")";
                }
                else
                {
                    lsRptName = ConditionText().Trim() + " " + "(" + DateText() + ")";
                }

                // Get its XLSX export options.
                XlsExportOptions xlsOptions = _defReport.ExportOptions.Xls;
                xlsOptions.SheetName = _ProgramID;

                //Export the report to XLSX.
                _defReport.ExportToXls(_D500Xx.Filename);

                /******************
                *  開啟檔案
                ******************/
                workbook.LoadDocument(_D500Xx.Filename);

                /******************
                *  切換Sheet
                ******************/
                Worksheet worksheet = workbook.Worksheets[0];
                for (int k = 0; k < 3; k++)
                {
                    worksheet.Rows.Insert(0);
                }

                worksheet.Cells["F1"].Value = $"[{_ProgramID}]{_ProgramName}";
                worksheet.Cells["F3"].Value = lsRptName;
                worksheet.Rows[3].AutoFitRows();

                workbook.SaveDocument(_D500Xx.Filename);
            }
            catch (Exception ex) {
                WriteLog(ex);
                WfRunError();
            }
            finally {
                EndExport();
            }

            return(ResultStatus.Success);
        }
Esempio n. 38
0
        //protected override ResultStatus Run(PokeBall args)
        //{
        //    this.BeginInvoke(new MethodInvoker(() => {
        //        args.GridControlMain = gcMain;
        //        args.GridControlSecond = gcLogsp;
        //        args.OcfDate = txtOcfDate.DateTimeValue;
        //        args.OcfType = OCF_TYPE;
        //    }));

        //    ResultStatus result = base.RunAsync(args);

        //    return result;
        //}

        /// <summary>
        /// 1系列功能使用
        /// </summary>
        /// <param name="args"></param>
        /// <returns></returns>
        protected override ResultStatus Run(PokeBall args)
        {
            DateTime OcfDate = txtOcfDate.DateTimeValue;

            this.Invoke(new MethodInvoker(() => {
                FormWait formWait = new FormWait();

                SplashScreenManager.ShowForm(this, typeof(FormWait), true, true);

                //SplashScreenManager.ShowForm(this , typeof(FormWait) , true , true , SplashFormStartPosition.Manual , pointWait , ParentFormState.Locked);
            }));

            GridView gv = gvMain;


            DataTable dtLOGSPForRuned = servicePrefix1.ListLogspForRunned(OcfDate, _ProgramID, OCF_TYPE);
            DataView  dvLOGSPForRuned = new DataView(dtLOGSPForRuned);



            servicePrefix1.SetTXF1(" ", _ProgramID);

            for (int i = 0; i < gv.RowCount; i++)
            {
                string TXF_SERVER   = gv.GetRowCellValue(i, "TXF_SERVER").AsString();
                string TXF_DB       = gv.GetRowCellValue(i, "TXF_DB").AsString();
                string TXF_TXN_ID   = gv.GetRowCellValue(i, "TXF_TXN_ID").AsString();
                int    TXF_SEQ_NO   = gv.GetRowCellValue(i, "TXF_SEQ_NO").AsInt();
                string TXF_TYPE     = gv.GetRowCellValue(i, "TXF_TYPE").AsString();
                string TXF_TID      = gv.GetRowCellValue(i, "TXF_TID").AsString();
                string TXF_TID_NAME = gv.GetRowCellValue(i, "TXF_TID_NAME").AsString();
                string TXF_DESC     = gv.GetRowCellValue(i, "TXF_DESC").AsString();
                string TXF_DEFAULT  = gv.GetRowCellValue(i, "TXF_DEFAULT").AsString();
                string TXF_REDO     = gv.GetRowCellValue(i, "TXF_REDO").AsString();
                string TXF_ARG      = gv.GetRowCellValue(i, "TXF_ARG").AsString();
                string TXF_PERIOD   = gv.GetRowCellValue(i, "TXF_PERIOD").AsString();
                string TXF_SERVICE  = gv.GetRowCellValue(i, "TXF_SERVICE").AsString();
                string TXF_FOLDER   = gv.GetRowCellValue(i, "TXF_FOLDER").AsString();
                string TXF_AP_NAME  = gv.GetRowCellValue(i, "TXF_AP_NAME").AsString();
                args.TXF_TID      = TXF_TID;
                args.TXF_TID_NAME = TXF_TID_NAME;

                if (TXF_DEFAULT == "1")
                {
                    DateTime LOGSP_DATE       = OcfDate;
                    string   LOGSP_TXN_ID     = _ProgramID;
                    int      LOGSP_SEQ_NO     = TXF_SEQ_NO;
                    string   LOGSP_TID        = TXF_DESC;
                    string   LOGSP_TID_NAME   = TXF_TID_NAME;
                    DateTime LOGSP_BEGIN_TIME = new DateTime();
                    DateTime LOGSP_END_TIME   = new DateTime();
                    string   LOGSP_MSG        = "";


                    //判斷是否可重覆執行
                    if (TXF_REDO == "N")
                    {
                        dvLOGSPForRuned.RowFilter = "LOGSP_TID='" + LOGSP_TID + "' AND NOT ISNULL(LOGSP_BEGIN_TIME)";
                        if (dvLOGSPForRuned.Count != 0)
                        {
                            if (MessageDisplay.Choose(TXF_TID + " ★★★曾經執行過且不可重覆執行,是否強迫繼續執行 ?") == DialogResult.No)
                            {
                                return(ResultStatus.Fail);
                            }
                        }
                    }


                    #region 開始執行
                    LOGSP_BEGIN_TIME = DateTime.Now;

                    string nextYmd = PbFunc.f_ocf_date(2, _DB_TYPE);
                    if (!string.IsNullOrEmpty(TXF_PERIOD))
                    {
                        switch (TXF_PERIOD)
                        {
                        case "M":    //月底執行
                            if (OcfDate.ToString("yyyyMM") == PbFunc.Left(nextYmd, 6))
                            {
                                LOGSP_MSG = "完成! (今日非月底,不需執行)";
                                this.Invoke(new MethodInvoker(() => { gv.SetRowCellValue(i, "TXF_DEFAULT", 0); }));
                            }
                            break;

                        case "W":    //週最後一天執行
                            if (Convert.ToInt32(OcfDate.DayOfWeek) < Convert.ToInt32(nextYmd.AsDateTime("yyyyMMdd").DayOfWeek))
                            {
                                LOGSP_MSG = "完成! (今日非本週最後1天,不需執行)";
                                this.Invoke(new MethodInvoker(() => { gv.SetRowCellValue(i, "TXF_DEFAULT", 0); }));
                            }
                            break;

                        case "Y":    //年底執行
                            if (OcfDate.ToString("yyyy") == PbFunc.Left(nextYmd, 4))
                            {
                                LOGSP_MSG = "完成! (今日非本年度最後1日,不需執行)";
                                this.Invoke(new MethodInvoker(() => { gv.SetRowCellValue(i, "TXF_DEFAULT", 0); }));
                            }
                            break;
                        }
                        LOGSP_END_TIME = DateTime.Now;

                        servicePrefix1.SaveLogsp(LOGSP_DATE, LOGSP_TXN_ID, LOGSP_SEQ_NO, LOGSP_TID, LOGSP_TID_NAME, LOGSP_BEGIN_TIME, LOGSP_END_TIME, LOGSP_MSG, OCF_TYPE);
                        continue;
                    }


                    //開始前執行特別的Function
                    string rtnText = RunBeforeEveryItem(args);
                    if (!string.IsNullOrEmpty(rtnText))
                    {
                        if (PbFunc.Left(rtnText, 4) == "不需執行")
                        {
                            LOGSP_MSG = "完成! (" + rtnText + ")";
                            gv.SetRowCellValue(i, "ERR_MSG", LOGSP_MSG);
                            gv.SetRowCellValue(i, "TXF_DEFAULT", 0);
                            LOGSP_END_TIME = DateTime.Now;

                            servicePrefix1.SaveLogsp(LOGSP_DATE, LOGSP_TXN_ID, LOGSP_SEQ_NO, LOGSP_TID, LOGSP_TID_NAME, LOGSP_BEGIN_TIME, LOGSP_END_TIME, LOGSP_MSG, OCF_TYPE);
                        }
                        else
                        {
                            if (MessageDisplay.Choose($"{rtnText}是否強迫繼續執行?", MessageBoxDefaultButton.Button2).AsInt() == 2)
                            {
                                gv.SetRowCellValue(i, "ERR_MSG", rtnText);
                                continue;
                            }
                        }
                    }

                    //記錄正在執行
                    servicePrefix1.SetTXF1(TXF_TID, _ProgramID);

                    servicePrefix1.SaveLogs(LOGSP_DATE, TXF_TID, DateTime.Now, GlobalInfo.USER_ID, "開始執行");

                    ResultData resultData = new ResultData();
                    string     fileName   = "";
                    switch (TXF_TYPE)
                    {
                    //Informatica
                    case "I":
                        fileName   = $@"{GlobalInfo.DEFAULT_BATCH_ErrSP_DIRECTORY_PATH}\{TXF_SERVER}_{TXF_TXN_ID}_{TXF_SEQ_NO}_infor";
                        resultData = serviceCommon.ExecuteInfoWorkFlow(TXF_TID, UserProgInfo, TXF_FOLDER, TXF_SERVICE, TXF_AP_NAME, fileName);
                        break;

                    //SP
                    case "S":
                        List <DbParameterEx> listParams = null;

                        // 如果這個SP有參數的話
                        if (TXF_ARG == "Y")
                        {
                            DataTable dtTXFPARM = serviceCommon.ListTXFPARM(TXF_SERVER, TXF_DB, TXF_TXN_ID, TXF_TID);

                            if (dtTXFPARM.Rows.Count > 0)
                            {
                                listParams = new List <DbParameterEx>();
                            }

                            foreach (DataRow row in dtTXFPARM.Rows)
                            {
                                string TXFPARM_ARG      = row["TXFPARM_ARG"].AsString();
                                string TXFPARM_ARG_TYPE = row["TXFPARM_ARG_TYPE"].AsString();
                                string TXFPARM_DEFAULT  = row["TXFPARM_DEFAULT"].AsString();

                                DbParameterEx paramEx;

                                switch (TXFPARM_ARG)
                                {
                                case "":
                                    paramEx = new DbParameterEx("", TXFPARM_DEFAULT);
                                    listParams.Add(paramEx);
                                    break;

                                case "em_ymd":
                                    paramEx = new DbParameterEx("", OcfDate.ToString("yyyyMMdd"));
                                    listParams.Add(paramEx);
                                    break;

                                case "em_ym":
                                    paramEx = new DbParameterEx("", OcfDate.ToString("yyyyMM"));
                                    listParams.Add(paramEx);
                                    break;

                                case "em_date":
                                    paramEx        = new DbParameterEx();
                                    paramEx.DbType = DbTypeEx.Date;
                                    paramEx.Name   = "";
                                    paramEx.Value  = OcfDate;
                                    listParams.Add(paramEx);
                                    break;

                                default:
                                    break;
                                }
                            }
                        }

                        ConnectionInfo connectionInfo = SettingDragons.Instance.GetConnectionInfo(TXF_DB);

                        try
                        {
                            resultData = serviceCommon.ExecuteStoredProcedure(connectionInfo, string.Format("{0}.{1}", TXF_DB, TXF_TID), listParams, true);
                        }
                        catch (Exception ex)
                        {
                            resultData.Status = ResultStatus.Fail;
                            string msg =
                                fileName = $@"{GlobalInfo.DEFAULT_BATCH_ErrSP_DIRECTORY_PATH}\{TXF_SERVER}_{TXF_TXN_ID}_{TXF_SEQ_NO}.err";
                            System.IO.File.WriteAllText(fileName, ex.Message);
                            resultData.returnString = $"請通知「{TXF_AP_NAME}」 作業執行失敗!\n{ex.Message}";
                        }

                        break;

                    //視窗功能
                    case "W":
                        this.Invoke(new MethodInvoker(() => { resultData = ExecuteForm(args); }));

                        break;

                    default:
                        break;
                    }

                    LOGSP_END_TIME = DateTime.Now;

                    if (resultData.Status == ResultStatus.Success)
                    {
                        LOGSP_MSG = "執行正常完成!";
                    }
                    else
                    {
                        LOGSP_MSG = "作業執行失敗!";

                        servicePrefix1.SaveLogsp(LOGSP_DATE, LOGSP_TXN_ID, LOGSP_SEQ_NO, LOGSP_TID, LOGSP_TID_NAME, LOGSP_BEGIN_TIME, LOGSP_END_TIME, LOGSP_MSG, OCF_TYPE);

                        //MessageDisplay.Error("序號" + LOGSP_SEQ_NO + "的" + LOGSP_TID + "," + LOGSP_MSG);
                        MessageDisplay.Error(resultData.returnString);

                        this.Invoke(new MethodInvoker(() => {
                            SplashScreenManager.CloseForm();
                            gv.SetRowCellValue(i, "ERR_MSG", LOGSP_MSG);
                        }));

                        return(ResultStatus.Fail);
                    }

                    this.Invoke(new MethodInvoker(() => { gv.SetRowCellValue(i, "ERR_MSG", LOGSP_MSG); }));

                    servicePrefix1.SaveLogsp(LOGSP_DATE, LOGSP_TXN_ID, LOGSP_SEQ_NO, LOGSP_TID, LOGSP_TID_NAME, LOGSP_BEGIN_TIME, LOGSP_END_TIME, LOGSP_MSG, OCF_TYPE);
                    servicePrefix1.SaveLogs(LOGSP_DATE, TXF_TID, DateTime.Now, GlobalInfo.USER_ID, "執行完畢");

                    #endregion 開始執行


                    #region 執行特別的程式


                    this.Invoke(new MethodInvoker(() => {
                        gv.SetRowCellValue(i, "TXF_DEFAULT", 0);
                        RunAfterEveryItem(args);
                    }));

                    #endregion 執行特別的程式

                    //流程時間控制
                    DataTable dtJRF = servicePrefix1.ListJrf(_ProgramID, TXF_TID);
                    if (dtJRF.Rows.Count > 0)
                    {
                        string JRF_DO_TXN_ID   = dtJRF.Rows[0]["JRF_DO_TXN_ID"].AsString();
                        string JRF_DO_JOB_TYPE = dtJRF.Rows[0]["JRF_DO_TXN_ID"].AsString();
                        string JRF_DO_SEQ_NO   = dtJRF.Rows[0]["JRF_DO_TXN_ID"].AsString();
                        string JRF_SW_CODE     = dtJRF.Rows[0]["JRF_DO_TXN_ID"].AsString();
                        servicePrefix1.UpdateJsw(JRF_DO_TXN_ID, JRF_DO_JOB_TYPE, JRF_DO_SEQ_NO, JRF_SW_CODE, OcfDate, DateTime.Now, GlobalInfo.USER_ID);
                    }
                }
                else
                {
                    // 沒勾選項目的話清空狀態
                    this.Invoke(new MethodInvoker(() => { gv.SetRowCellValue(i, "ERR_MSG", ""); }));
                }
                if (i == gv.RowCount - 1 && OCF_TYPE == "D")
                {
                    servicePrefix1.setCIOCF();
                }
            }


            //全部結束
            servicePrefix1.SetTXF1(" ", _ProgramID);

            this.Invoke(new MethodInvoker(() => { SplashScreenManager.CloseForm(); }));

            return(ResultStatus.Success);
        }
Esempio n. 39
0
        private void SaveValidateRole()
        {
            MessageDisplay msgDisplay = CreateMessageDisplay();

            string actiontype = _Request.Get("actiontype", Method.Get, string.Empty);


            string roleIDString = _Request.Get("validateCodeRole", Method.Post, string.Empty);

            if (roleIDString.Length == 0)
            {
                return;
            }


            bool isInvalidActionType = true;

            foreach (ValidateCodeAction action in ValidateCodeManager.GetAllValidateCodeActions())
            {
                if (string.Compare(action.Type, actiontype, true) == 0)
                {
                    if (action.CanSetExceptRoleId == false)
                    {
                        msgDisplay.AddError(string.Format(Lang_Error.ValidateCode_ValidateCodeActionCannotSetExceptRoleID, action.Name));
                        return;
                    }
                    isInvalidActionType = false;
                    break;
                }
            }

            if (isInvalidActionType == true)
            {
                msgDisplay.AddError(new InvalidParamError("actiontype").Message);
            }


            StringList exceptRoleIDs = new StringList();

            foreach (string roleID in roleIDString.Split(','))
            {
                exceptRoleIDs.Add(roleID);
            }


            ValidateCodeCollection tempValidateCodes = new ValidateCodeCollection();

            bool hasAdd = false;

            foreach (ValidateCode validateCode in AllSettings.Current.ValidateCodeSettings.ValidateCodes)
            {
                if (string.Compare(validateCode.ActionType, actiontype, true) == 0)
                {
                    ValidateCode tempValidateCode = (ValidateCode)validateCode.Clone();

                    tempValidateCode.ExceptRoleIds = exceptRoleIDs;

                    tempValidateCodes.Add(tempValidateCode);

                    hasAdd = true;
                }
                else
                {
                    tempValidateCodes.Add(validateCode);
                }
            }

            if (hasAdd == false)
            {
                ValidateCode validateCode = new ValidateCode();

                validateCode.ExceptRoleIds = exceptRoleIDs;
                validateCode.ActionType    = actiontype;

                tempValidateCodes.Add(validateCode);
            }


            try
            {
                using (new ErrorScope())
                {
                    ValidateCodeSettings setting = (ValidateCodeSettings)AllSettings.Current.ValidateCodeSettings.Clone();

                    setting.ValidateCodes = tempValidateCodes;

                    bool success = SettingManager.SaveSettings(setting);

                    if (!success)
                    {
                        CatchError <ErrorInfo>(delegate(ErrorInfo error)
                        {
                            msgDisplay.AddError(error);
                        });
                    }
                    else
                    {
                        Return(true);
                    }
                }
            }
            catch (Exception ex)
            {
                msgDisplay.AddError(ex.Message);
            }
        }
Esempio n. 40
0
        protected override ResultStatus Save(PokeBall poke)
        {
            gvMain.CloseEditor();
            gvMain.UpdateCurrentRow();
            ResultStatus resultStatus = ResultStatus.Fail;

            try {
                DataTable dt = (DataTable)gcMain.DataSource;

                if (!checkChanged())
                {
                    MessageDisplay.Info("沒有變更資料, 不需要存檔!");
                    return(ResultStatus.FailButNext);
                }

                foreach (DataRow r in dt.Rows)
                {
                    if (r.RowState == DataRowState.Deleted)
                    {
                        continue;
                    }

                    r.SetField("span_param_w_time", DateTime.Now);
                    if (r["span_param_type"].AsString() == "2")
                    {
                        switch (r["span_param_value"].AsString())
                        {
                        case "1":
                        case "2":
                        case "3":
                        case "4": {//最大漲跌停
                            break;
                        }

                        default: {
                            MessageDisplay.Info("設定方式選漲跌停價格, 則設定值請選擇1, 2, 3或最大漲跌停");
                            return(ResultStatus.FailButNext);
                        }
                        }
                    }
                }

                if (!checkComplete(dt))
                {
                    return(ResultStatus.FailButNext);
                }

                if (savePeriod() != ResultStatus.Success)
                {
                    return(ResultStatus.Fail);
                }

                resultStatus = daoS0071.UpdateAllDB(periodTable, dt);
                if (resultStatus == ResultStatus.Fail)
                {
                    MessageDisplay.Info("儲存錯誤!");
                    return(ResultStatus.Fail);
                }
            } catch (Exception ex) {
                throw ex;
            }
            return(resultStatus);
        }
Esempio n. 41
0
 private void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
 {
     maaliAani.Play();
     MessageDisplay.Add("Keräsit tähden!");
     tahti.Destroy();
 }
Esempio n. 42
0
        private void WireUpEvents()
        {
            #region Model Events

            _model.Events.TestsLoading += (TestFilesLoadingEventArgs e) =>
            {
                UpdateViewCommands(testLoading: true);

                var message = e.TestFilesLoading.Count == 1 ?
                              $"Loading Assembly: {e.TestFilesLoading[0]}" :
                              $"Loading {e.TestFilesLoading.Count} Assemblies...";

                _longOpDisplay = _view.LongOperationDisplay(message);
            };

            _model.Events.TestLoaded += (TestNodeEventArgs e) =>
            {
                if (_longOpDisplay != null)
                {
                    _longOpDisplay.Dispose();
                    _longOpDisplay = null;
                }

                UpdateViewCommands();

                var files = _model.TestFiles;
                if (files.Count == 1)
                {
                    _view.SetTitleBar(files.First());
                }
            };

            _model.Events.TestsUnloading += (TestEventArgse) =>
            {
                UpdateViewCommands();
            };

            _model.Events.TestUnloaded += (TestEventArgs e) =>
            {
                _view.RunSummary.Text = null;

                UpdateViewCommands();
            };

            _model.Events.TestsReloading += (TestEventArgs e) =>
            {
                UpdateViewCommands();

                _longOpDisplay = _view.LongOperationDisplay("Reloading...");
            };

            _model.Events.TestReloaded += (TestNodeEventArgs e) =>
            {
                if (_longOpDisplay != null)
                {
                    _longOpDisplay.Dispose();
                    _longOpDisplay = null;
                }

                //SetTitleBar(TestProject.Name);

                if (_settings.Gui.ClearResultsOnReload)
                {
                    _view.RunSummary.Text = null;
                }

                UpdateViewCommands();
            };

            _model.Events.TestLoadFailure += (TestLoadFailureEventArgs e) =>
            {
                if (_longOpDisplay != null)
                {
                    _longOpDisplay.Dispose();
                }

                _view.MessageDisplay.Error(e.Exception.Message);
            };

            _model.Events.RunStarting += (RunStartingEventArgs e) =>
            {
                UpdateViewCommands();

                _view.RunSummary.Text = null;
            };

            _model.Events.RunFinished += (TestResultEventArgs e) =>
            {
                UpdateViewCommands();

                ResultSummary summary = ResultSummaryCreator.FromResultNode(e.Result);
                _view.RunSummary.Text = string.Format(
                    "Passed: {0}   Failed: {1}   Errors: {2}   Inconclusive: {3}   Invalid: {4}   Ignored: {5}   Skipped: {6}   Time: {7}",
                    summary.PassCount, summary.FailedCount, summary.ErrorCount, summary.InconclusiveCount, summary.InvalidCount, summary.IgnoreCount, summary.SkipCount, summary.Duration);

                if (summary.RunCount == 0)
                {
                }

                //string resultPath = Path.Combine(TestProject.BasePath, "TestResult.xml");
                // TODO: Use Work Directory
                string resultPath = "TestResult.xml";
                _model.SaveResults(resultPath);
                //try
                //{
                //    _model.SaveResults(resultPath);
                //    //log.Debug("Saved result to {0}", resultPath);
                //}
                //catch (Exception ex)
                //{
                //    //log.Warning("Unable to save result to {0}\n{1}", resultPath, ex.ToString());
                //}

                //if (e.Result.Outcome.Status == TestStatus.Failed)
                //    _view.Activate();

                // If we were running unattended, it's time to close
                if (_options.Unattended)
                {
                    _view.Close();
                }
            };

            _settings.Changed += (s, e) =>
            {
                if (e.SettingName == "Gui.Options.DisplayFormat")
                {
                    InitializeDisplay();
                }
            };

            _model.Events.UnhandledException += (UnhandledExceptionEventArgs e) =>
            {
                var display = new MessageDisplay("TestCentric - Internal Error");
                display.Error($"{e.Message}\n\n{e.StackTrace}");
            };

            #endregion

            #region View Events

            _view.Load += (s, e) =>
            {
                InitializeDisplay(_settings.Gui.DisplayFormat);

                var settings = _model.PackageOverrides;
                if (_options.ProcessModel != null)
                {
                    _view.ProcessModel.SelectedItem = _options.ProcessModel;
                }
                if (_options.DomainUsage != null)
                {
                    _view.DomainUsage.SelectedItem = _options.DomainUsage;
                }
                if (_options.MaxAgents >= 0)
                {
                    _model.Settings.Engine.Agents = _options.MaxAgents;
                }
                _view.RunAsX86.Checked = _options.RunAsX86;
            };

            _view.Shown += (s, e) =>
            {
                Application.DoEvents();

                // Load test specified on command line or
                // the most recent one if options call for it
                if (_options.InputFiles.Count != 0)
                {
                    LoadTests(_options.InputFiles);
                }
                else if (_settings.Gui.LoadLastProject && !_options.NoLoad)
                {
                    foreach (string entry in _recentFiles.Entries)
                    {
                        if (entry != null && File.Exists(entry))
                        {
                            LoadTests(entry);
                            break;
                        }
                    }
                }

                //if ( guiOptions.include != null || guiOptions.exclude != null)
                //{
                //    testTree.ClearSelectedCategories();
                //    bool exclude = guiOptions.include == null;
                //    string[] categories = exclude
                //        ? guiOptions.exclude.Split(',')
                //        : guiOptions.include.Split(',');
                //    if ( categories.Length > 0 )
                //        testTree.SelectCategories( categories, exclude );
                //}

                // Run loaded test automatically if called for
                if (_model.IsPackageLoaded && _options.RunAllTests)
                {
                    RunAllTests();
                }
                // Currently, --unattended without --run does nothing except exit.
                else if (_options.Unattended)
                {
                    _view.Close();
                }
            };

            _view.SplitterPositionChanged += (s, e) =>
            {
                _settings.Gui.MainForm.SplitPosition = _view.SplitterPosition;
            };

            _view.FormClosing += (s, e) =>
            {
                if (_model.IsPackageLoaded)
                {
                    if (_model.IsTestRunning)
                    {
                        DialogResult dialogResult = _view.MessageDisplay.Ask(
                            "A test is running, do you want to stop the test and exit?");

                        if (dialogResult == DialogResult.No)
                        {
                            e.Cancel = true;
                            return;
                        }

                        _model.CancelTestRun(true);
                    }

                    if (CloseProject() == DialogResult.Cancel)
                    {
                        e.Cancel = true;
                    }
                }

                if (!e.Cancel)
                {
                    if (_settings.Gui.DisplayFormat == "Mini")
                    {
                        _settings.Gui.MiniForm.Location = _view.Location;
                        _settings.Gui.MiniForm.Size     = _view.Size;
                    }
                    else
                    {
                        _settings.Gui.MainForm.Location = _view.Location;
                        _settings.Gui.MainForm.Size     = _view.Size;
                    }
                }
            };

            _view.RunButton.Execute  += () => RunSelectedTests();
            _view.StopButton.Execute += () => CancelRun();

            _view.FileMenu.Popup += () =>
            {
                bool isPackageLoaded = _model.IsPackageLoaded;
                bool isTestRunning   = _model.IsTestRunning;

                _view.OpenCommand.Enabled  = !isTestRunning;
                _view.CloseCommand.Enabled = isPackageLoaded && !isTestRunning;

                _view.ReloadTestsCommand.Enabled = isPackageLoaded && !isTestRunning;

                _view.RuntimeMenu.Visible = _model.AvailableRuntimes.Count > 1;

                _view.RecentFilesMenu.Enabled = !isTestRunning;

                //if (!isTestRunning)
                //{
                //    _recentProjectsMenuHandler.Load();
                //}
            };

            _view.RuntimeMenu.Popup += () => _runtimeSelectionController.PopulateMenu();

            _view.OpenCommand.Execute         += () => OpenProject();
            _view.CloseCommand.Execute        += () => CloseProject();
            _view.AddTestFilesCommand.Execute += () => AddTestFiles();
            _view.ReloadTestsCommand.Execute  += () => ReloadTests();

            _view.ProcessModel.SelectionChanged += () =>
            {
                ChangePackageSettingAndReload(EnginePackageSettings.ProcessModel, _view.ProcessModel.SelectedItem);
            };

            _view.DomainUsage.SelectionChanged += () =>
            {
                ChangePackageSettingAndReload(EnginePackageSettings.DomainUsage, _view.DomainUsage.SelectedItem);
            };

            _view.RunAsX86.CheckedChanged += () =>
            {
                var key = EnginePackageSettings.RunAsX86;
                if (_view.RunAsX86.Checked)
                {
                    ChangePackageSettingAndReload(key, true);
                }
                else
                {
                    ChangePackageSettingAndReload(key, null);
                }
            };

            _view.RecentFilesMenu.Popup += () =>
            {
                var menuItems = _view.RecentFilesMenu.MenuItems;
                // Test for null, in case we are running tests with a mock
                if (menuItems == null)
                {
                    return;
                }

                menuItems.Clear();
                int num = 0;
                foreach (string entry in _model.RecentFiles.Entries)
                {
                    var menuText = string.Format("{0} {1}", ++num, entry);
                    var menuItem = new MenuItem(menuText);
                    menuItem.Click += (sender, ea) =>
                    {
                        // HACK: We are loading new files, cancel any runtime override
                        _model.PackageOverrides.Remove(EnginePackageSettings.RequestedRuntimeFramework);
                        string path = ((MenuItem)sender).Text.Substring(2);
                        _model.LoadTests(new[] { path });
                    };
                    menuItems.Add(menuItem);
                    if (num >= _settings.Gui.RecentProjects.MaxFiles)
                    {
                        break;
                    }
                }
            };

            _view.ExitCommand.Execute += () => _view.Close();

            _view.DisplayFormat.SelectionChanged += () =>
            {
                _settings.Gui.DisplayFormat = _view.DisplayFormat.SelectedItem;
                InitializeDisplay(_view.DisplayFormat.SelectedItem);
            };

            _view.IncreaseFontCommand.Execute += () =>
            {
                applyFont(IncreaseFont(_settings.Gui.Font));
            };

            _view.DecreaseFontCommand.Execute += () =>
            {
                applyFont(DecreaseFont(_settings.Gui.Font));
            };

            _view.ChangeFontCommand.Execute += () =>
            {
                Font currentFont = _settings.Gui.Font;
                Font newFont     = _view.DialogManager.SelectFont(currentFont);
                if (newFont != _settings.Gui.Font)
                {
                    applyFont(newFont);
                }
            };

            _view.DialogManager.ApplyFont += (font) => applyFont(font);

            _view.RestoreFontCommand.Execute += () =>
            {
                applyFont(Form.DefaultFont);
            };

            _view.IncreaseFixedFontCommand.Execute += () =>
            {
                _settings.Gui.FixedFont = IncreaseFont(_settings.Gui.FixedFont);
            };

            _view.DecreaseFixedFontCommand.Execute += () =>
            {
                _settings.Gui.FixedFont = DecreaseFont(_settings.Gui.FixedFont);
            };

            _view.RestoreFixedFontCommand.Execute += () =>
            {
                _settings.Gui.FixedFont = new Font(FontFamily.GenericMonospace, 8.0f);
            };

            _view.StatusBarCommand.CheckedChanged += () =>
            {
                _view.StatusBarView.Visible = _view.StatusBarCommand.Checked;
            };

            _view.RunAllCommand.Execute      += () => RunAllTests();
            _view.RunSelectedCommand.Execute += () => RunSelectedTests();
            _view.RunFailedCommand.Execute   += () => RunFailedTests();

            _view.StopRunCommand.Execute        += () => CancelRun();
            _view.TestParametersCommand.Execute += () =>
            {
                using (var dlg = new TestParametersDialog())
                {
                    dlg.Font          = _settings.Gui.Font;
                    dlg.StartPosition = FormStartPosition.CenterParent;

                    if (_model.PackageOverrides.ContainsKey("TestParametersDictionary"))
                    {
                        var testParms = _model.PackageOverrides["TestParametersDictionary"] as IDictionary <string, string>;
                        foreach (string key in testParms.Keys)
                        {
                            dlg.Parameters.Add(key, testParms[key]);
                        }
                    }

                    if (dlg.ShowDialog(_view as IWin32Window) == DialogResult.OK)
                    {
                        ChangePackageSettingAndReload("TestParametersDictionary", dlg.Parameters);
                    }
                }
            };

            _view.ToolsMenu.Popup += () =>
            {
                _view.SaveResultsAsMenu.MenuItems.Clear();

                foreach (string format in _resultFormats)
                {
                    MenuItem formatItem = new MenuItem(format);
                    formatItem.Click += (s, e) => SaveResults(format);
                    _view.SaveResultsAsMenu.MenuItems.Add(formatItem);
                }
            };

            _view.SaveResultsCommand.Execute += () => SaveResults();

            _view.OpenWorkDirectoryCommand.Execute += () => System.Diagnostics.Process.Start(_model.WorkDirectory);

            _view.ExtensionsCommand.Execute += () =>
            {
                using (var extensionsDialog = new ExtensionDialog(_model.Services.ExtensionService))
                {
                    extensionsDialog.Font = _settings.Gui.Font;
                    extensionsDialog.ShowDialog();
                }
            };

            _view.SettingsCommand.Execute += () =>
            {
                SettingsDialog.Display(this, _model);
            };

            _view.TestCentricHelpCommand.Execute += () =>
            {
                _view.MessageDisplay.Error("Not Yet Implemented");
            };

            _view.NUnitHelpCommand.Execute += () =>
            {
                System.Diagnostics.Process.Start("https://github.com/nunit/docs/wiki/NUnit-Documentation");
            };

            _view.AboutCommand.Execute += () =>
            {
                using (AboutBox aboutBox = new AboutBox())
                {
                    aboutBox.ShowDialog();
                }
            };

            _view.ResultTabs.SelectionChanged += () =>
            {
                _settings.Gui.SelectedTab = _view.ResultTabs.SelectedIndex;
            };

            #endregion
        }
Esempio n. 43
0
        private void ValidateEmail( EmailSendServer email,MessageDisplay msgDisplay,int line )
        {
            if ( string.IsNullOrEmpty(email.SmtpServer))
            {
                msgDisplay.AddError(new CustomError("SmtpServer", line, "smtp服务器地址不能为空!"));
            }

            if (string.IsNullOrEmpty(email.SenderEmail))
            {
                msgDisplay.AddError(new CustomError("SenderEmail", line, "发送端Email地址不能为空"));
            }
            else if (!emailreg.IsMatch(email.SenderEmail))
            {
                msgDisplay.AddError(new CustomError("SenderEmail", line, "发送端Email地址格式错误"));
            }
            

            if (string.IsNullOrEmpty(email.SmtpServerAccount))
            {
                msgDisplay.AddError(new CustomError("SmtpServerAccount",line,"邮箱用户名不能为空"));
            }

            if (string.IsNullOrEmpty(email.SmtpServerPassword))
            {
                msgDisplay.AddError(new CustomError("SmtpServerPassword", line, "邮箱密码不能为空"));
            }

            if (email.Port > 65535 || email.Port < 2)
            {
                msgDisplay.AddError(new CustomError("Port", line, "SMTP服务器端口错误"));
            }
        }
Esempio n. 44
0
        private bool wf_Export(Workbook workbook, Worksheet worksheet, string as_symd, string as_eymd)
        {
            try {
                int li_ole_row_tol = ii_ole_row + 60;
                int li_ole_col, li_header = 0;

                DataTable dt = dao30640.GetData(as_symd, as_eymd);
                if (dt.Rows.Count <= 0)
                {
                    MessageDisplay.Info(string.Format("{0},{1},無任何資料!", txtStartMonth.Text + "-" + txtEndMonth.Text, this.Text), GlobalInfo.ResultText);
                    return(false);
                }

                li_header = 10;
                //PB有寫這段可是報表未顯示,先備註
                //worksheet.Cells[1 , 5].Value = txtStartMonth.Text.Replace("/" , "") + " - " + txtEndMonth.Text.Replace("/" , "") + worksheet.Cells[1 , 5].Value;
                worksheet.Cells[li_header - 4, 0].Value = "查詢條件:" + txtStartMonth.Text.Replace("/", "") + "-" + txtEndMonth.Text.Replace("/", "");

                //依資料條件判斷去填excel計算欄位
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    ii_ole_row = dt.Rows[i]["RPT_SEQ_NO"].AsInt();
                    li_ole_col = 0;
                    switch (dt.Rows[i]["AM2_IDFG_TYPE"].AsInt())
                    {
                    case 1:
                        li_ole_col = 5;
                        break;

                    case 2:
                        li_ole_col = 7;
                        break;

                    case 3:
                        li_ole_col = 9;
                        break;

                    case 4:
                        li_ole_col = 11;
                        break;

                    case 5:
                        li_ole_col = 13;
                        break;

                    case 6:
                        li_ole_col = 17;
                        break;

                    case 7:
                        li_ole_col = 3;
                        break;

                    case 8:
                        li_ole_col = 15;
                        break;
                    }
                    if (ii_ole_row > 0 && li_ole_col > 0)
                    {
                        worksheet.Cells[ii_ole_row - 1, li_ole_col - 1].Value = dt.Rows[i]["AM2_OI"].AsDecimal();
                    }
                }
                return(true);
            } catch (Exception ex) { //失敗寫LOG
                WriteLog(ex);
                return(false);
            }
        }
Esempio n. 45
0
        protected void Page_Load(object sender, EventArgs e)
        {
            AddNavigationItem("注册新帐号");

#if !Passport
            PassportClientConfig setting = Globals.PassportClient;
            if (setting.EnablePassport)
            {
                Response.Redirect(setting.RegisterUrl);
                return;
            }
#endif

            activeCode = _Request.Get("active", Method.Get);

            MessageDisplay      msgDisplay        = CreateMessageDisplay();
            ValidateEmailAction activingEmailType = _Request.Get <ValidateEmailAction>("type", Method.Get, ValidateEmailAction.None);
            int isSent = _Request.Get("issent", Method.Get, 0);
            if (activingEmailType != ValidateEmailAction.None)
            {
                if (activingEmailType == ValidateEmailAction.ActivingUser)
                {
                    IsActivingUser = true;
                }
                else
                {
                    IsValidateEmail = true;
                }
                m_NeedActive = true;
                int userID = _Request.Get <int>("userid", Method.Get, 0);
                NeedActiveUser = UserBO.Instance.GetUser(userID);
                if (NeedActiveUser == null)
                {
                    ShowError("该用户ID可能已经被删除,请重新注册!");
                }
                m_email = NeedActiveUser.Email;
                CheckEmailLoginLink(m_email);
            }


            //判断用户是否点击了“注册”按钮
            if (_Request.IsClick("register"))
            {
                Register();
            }
            //判断用户是否点击了"重新发送邮件"按钮
            else if (_Request.IsClick("sendmail"))
            {
                ResendEmail();
            }
            //判断是否“激活帐号”操作
            else if (!string.IsNullOrEmpty(activeCode))
            {
                if (_Request.IsClick("activeme"))  //这里加点击按钮判断是因为某些邮箱会抓取邮件里的链接,造成用户自动激活。
                {
                    using (ErrorScope es = new ErrorScope())
                    {
                        if (UserBO.Instance.ActivingUser(activeCode))
                        {
                            //用户激活成功
                            ShowSuccess("恭喜!您的账号" + My.Username + "已成功激活。", IndexUrl);
                        }
                        else
                        {
                            if (es.HasUnCatchedError)
                            {
                                es.CatchError <ErrorInfo>(delegate(ErrorInfo error)
                                {
                                    IsOverrunLimitTimes = true;
                                    msgDisplay.AddError(error);
                                });
                            }
                            else
                            {
                                ShowError(new InvalidActiveCodeError("active", activeCode));
                            }
                        }
                    }
                }
            }

            //判断是否“重发激活邮件”的操作
            else if (activingEmailType == ValidateEmailAction.ActivingUser && isSent != 1)
            {
                NeedSendMailClick = true;
            }
            //判断是否"重新发送验证邮箱的邮件"
            else if (activingEmailType == ValidateEmailAction.ValidateEmail && isSent != 1)
            {
                NeedSendMailClick = true;
            }
        }
        //protected string MaxFileSize
        //{
        //    get
        //    {
        //        return ConvertUtil.FormatSize(EmoticonBO.Instance.MaxEmticonFileSize(MyUserID));
        //    }
        //}

        private void upload()
        {
            using (ErrorScope es = new ErrorScope())
            {
                int                uploadCount = 0, i = 0;
                MessageDisplay     msgDisplay = CreateMessageDisplay();
                HttpFileCollection files = Request.Files;
                int                fileCount = 0, savedCount = 0;

                if (files.Count > 0)
                {
                    List <EmoticonItem> emoticondDatas = new List <EmoticonItem>();
                    for (int j = 0; j < files.Count; j++)
                    {
                        if (files[j].ContentLength > 0)
                        {
                            uploadCount++;
                            EmoticonItem item = new EmoticonItem();
                            i++;

                            byte[] fileData = new byte[files[j].ContentLength];
                            item.MD5 = IOUtil.GetFileMD5Code(files[j].InputStream);

                            files[j].InputStream.Seek(0, System.IO.SeekOrigin.Begin);
                            files[j].InputStream.Read(fileData, 0, fileData.Length);

                            item.Shortcut = _Request.Get("shortcut" + i, Method.Post);

                            item.Data     = fileData;
                            item.FileName = files[j].FileName;
                            emoticondDatas.Add(item);
                        }
                    }

                    if (emoticondDatas.Count > 0)
                    {
                        Dictionary <string, List <EmoticonItem> > groupedDatas = new Dictionary <string, List <EmoticonItem> >();
                        groupedDatas.Add(string.Empty, emoticondDatas);
                        EmoticonBO.Instance.BatchImportEmoticon(MyUserID, Group.GroupID, groupedDatas, out fileCount, out savedCount);
                    }
                }

                if (uploadCount == 0)
                {
                    message = "没有选择文件";
                }
                else if (fileCount == 0)
                {
                    message = "没有有效的表情文件";
                }
                else if (savedCount == 0)
                {
                    if (es.HasUnCatchedError)
                    {
                        es.CatchError <ErrorInfo>(delegate(ErrorInfo error)
                        {
                            message += error.Message;
                        });
                    }
                    else
                    {
                        message = "没有保存任何文件, 可能的原因:文件类型不正确, 或者文件大小超出限制!";
                    }
                }
                else
                {
                    string msg = string.Empty;
                    if (es.HasUnCatchedError)
                    {
                        es.CatchError <ErrorInfo>(delegate(ErrorInfo error)
                        {
                            message += "<br />" + error.Message;
                        });
                    }


                    message = uploadCount == savedCount ? "文件全部保存成功" : "共上传" + uploadCount + "个文件, 成功保存了" + savedCount + "个文件。" + msg;

                    if (!es.HasUnCatchedError)
                    {
                        state = 2;
                    }
                    else
                    {
                        state = 1;
                    }
                }
            }
        }
Esempio n. 47
0
 protected override ResultStatus COMPLETE()
 {
     MessageDisplay.Info(MessageDisplay.MSG_OK);
     Retrieve();
     return(ResultStatus.Success);
 }
Esempio n. 48
0
        private void checkItem(Exceptable <T1> items, ExceptionItem <T1> item, string name, int id, List <int> sortOrders, List <Guid> roleIDs, MessageDisplay msgDisplay)
        {
            if (item != null)
            {
                //msgDisplay.HasAnyError == false 是为避免  有两个SortOrder 不为数字出错了(这时都为0)  而这里又提示重复
                if (id != 0 && sortOrders.Contains(item.SortOrder) && msgDisplay.HasAnyError() == false)
                {
                    msgDisplay.AddError(name, id, "排序数字不能重复");
                }
                else
                {
                    if (id != 0)
                    {
                        sortOrders.Add(item.SortOrder);
                    }
                    //items.Add(item);
                }

                if (item.RoleID != Guid.Empty && roleIDs.Contains(item.RoleID))
                {
                    msgDisplay.AddError(name, id, "已经存在对用户组“" + AllSettings.Current.RoleSettings.GetRole(item.RoleID).Name + "”的例外设置,不能重复设置");
                }
                else
                {
                    if (item.RoleID != Guid.Empty)
                    {
                        roleIDs.Add(item.RoleID);
                    }
                    items.Add(item);
                }
            }
        }
Esempio n. 49
0
        protected override ResultStatus Export()
        {
            try {
                #region 輸入&日期檢核
                if (string.Compare(txtStartYMD.Text, txtEndYMD.Text) > 0)
                {
                    MessageDisplay.Error(CheckDate.Datedif, GlobalInfo.ErrorText);
                    return(ResultStatus.Fail);
                }
                #endregion

                //0. ready
                panFilter.Enabled = false;
                labMsg.Visible    = true;
                labMsg.Text       = "開始轉檔...";
                this.Cursor       = Cursors.WaitCursor;
                this.Refresh();
                Thread.Sleep(5);

                /*************************************
                *  chkGroup.Items[0] = MonQnty
                *  chkGroup.Items[1] = OI
                *  chkGroup.Items[2] = MonCnt
                *  chkGroup.Items[3] = Amt
                *  chkGroup.Items[4] = Acc
                *  chkGroup.Items[5] = Id
                *************************************/

                //1. 判斷是否至少勾選一個選項
                if (chkGroup.CheckedItemsCount < 1)
                {
                    MessageDisplay.Warning("請勾選至少一個選項!", GlobalInfo.WarningText);
                    return(ResultStatus.Fail);
                }
                else
                {
                    string tempMarketCode;
                    //RadioButton (rbMarket0 = 一般 / rbMarket1 = 盤後 / rbMarketAll = 全部)
                    if (gbMarket.EditValue.ToString() == "rbMarket0")
                    {
                        tempMarketCode = "一般";
                    }
                    else if (gbMarket.EditValue.ToString() == "rbMarket1")
                    {
                        tempMarketCode = "盤後";
                    }
                    else
                    {
                        tempMarketCode = "全部";
                    }

                    //1.複製檔案 & 開啟檔案 (因檔案需因MarketCode更動,所以另外寫)
                    string originalFilePath = Path.Combine(GlobalInfo.DEFAULT_EXCEL_TEMPLATE_DIRECTORY_PATH, _ProgramID + "." + FileType.XLS.ToString().ToLower());

                    string destinationFilePath = Path.Combine(GlobalInfo.DEFAULT_REPORT_DIRECTORY_PATH,
                                                              _ProgramID + "_" + tempMarketCode + "_" + DateTime.Now.ToString("yyyy.MM.dd") + "-" + DateTime.Now.ToString("HH.mm.ss") + "." + FileType.XLS.ToString().ToLower());

                    File.Copy(originalFilePath, destinationFilePath, true);

                    Workbook workbook = new Workbook();
                    workbook.LoadDocument(destinationFilePath);

                    //2.填資料
                    bool result = false;
                    result = wf_Export(workbook); //function 30592

                    if (!result)
                    {
                        workbook = null;
                        File.Delete(destinationFilePath);

                        return(ResultStatus.Fail);
                    }

                    //3.存檔
                    workbook.SaveDocument(destinationFilePath);
                    labMsg.Visible = false;

                    return(ResultStatus.Success);
                }
            } catch (Exception ex) {
                WriteLog(ex);
            } finally {
                panFilter.Enabled = true;
                labMsg.Text       = "";
                labMsg.Visible    = false;
                this.Cursor       = Cursors.Arrow;
            }
            return(ResultStatus.Fail);
        }
Esempio n. 50
0
        private void performExercise()
        {

            this.currentPage = WORKOUT_PAGE;

            ExerciseListGrid.Visibility = Visibility.Collapsed;
            MainMenuGrid.Visibility = Visibility.Collapsed;
            calibrateGrid.Visibility = Visibility.Collapsed;

            WorkoutGrid.Visibility = Visibility.Visible;

            clearSelectExerciseText();

            this.messageDisplay = new MessageDisplay(this.errorList, 500, this.noErrorGrid);

            this.messageDisplay.render();

        }
Esempio n. 51
0
        protected override ResultStatus Export()
        {
            try {
                this.Cursor = Cursors.WaitCursor;
                this.Refresh();
                Thread.Sleep(5);
                lblProcessing.Visible = true;
                ShowMsg("開始轉檔...");
                dao30224 = new D30224();
                string rptId, file, rptName;
                int    rowNum;
                rptName = "個股類歷次部位限制查詢";
                rptId   = "30224";

                //讀取資料
                DataTable dt30224 = dao30224.d_30224(txtSDate.Text.Replace("/", ""), txtEDate.Text.Replace("/", ""));
                if (dt30224.Rows.Count == 0)
                {
                    MessageDisplay.Info(txtSDate.Text + "~" + txtEDate.Text + "," + rptId + '-' + rptName + ",無任何資料!");
                    return(ResultStatus.Fail);
                }

                //複製檔案
                file = PbFunc.wf_copy_file(rptId, rptId);
                if (file == "")
                {
                    return(ResultStatus.Fail);
                }
                logTxt = file;

                //開啟檔案
                Workbook workbook = new Workbook();
                workbook.LoadDocument(file);

                #region wf_30224
                ShowMsg(rptId + '-' + rptName + " 轉檔中...");
                //切換sheet
                Worksheet ws30224 = workbook.Worksheets[0];
                ws30224.Cells[1, 0].Value = ws30224.Cells[1, 0].Value.ToString() + txtSDate.Text + "~" + txtEDate.Text; //填寫公告日期

                //填入資料
                rowNum = 2;
                foreach (DataRow dr in dt30224.Rows)
                {
                    rowNum = rowNum + 1;
                    if (dr["PLS2_YMD"] != DBNull.Value)
                    {
                        ws30224.Cells[rowNum, 0].Value = dr["PLS2_YMD"].AsDateTime("yyyyMMdd").ToString("yyyy/MM/dd");
                    }
                    if (dr["PLS2_EFFECTIVE_YMD"] != DBNull.Value)
                    {
                        ws30224.Cells[rowNum, 1].Value = dr["PLS2_EFFECTIVE_YMD"].AsDateTime("yyyyMMdd").ToString("yyyy/MM/dd");
                    }
                    if (dr["PLS2_RAISE_CNT"] != DBNull.Value)
                    {
                        ws30224.Cells[rowNum, 2].Value = dr["PLS2_RAISE_CNT"].AsInt();
                    }
                    if (dr["PLS2_LOWER_CNT"] != DBNull.Value)
                    {
                        ws30224.Cells[rowNum, 3].Value = dr["PLS2_LOWER_CNT"].AsInt();
                    }
                    if (dr["PLS2_NEW_CNT"] != DBNull.Value)
                    {
                        ws30224.Cells[rowNum, 4].Value = dr["PLS2_NEW_CNT"].AsInt();
                    }
                    if (dr["PLS2_FUT_CNT"] != DBNull.Value)
                    {
                        ws30224.Cells[rowNum, 5].Value = dr["PLS2_FUT_CNT"].AsInt();
                    }
                    if (dr["PLS2_OPT_CNT"] != DBNull.Value)
                    {
                        ws30224.Cells[rowNum, 6].Value = dr["PLS2_OPT_CNT"].AsInt();
                    }
                }
                #endregion

                //存檔
                ws30224.ScrollToRow(0);
                workbook.SaveDocument(file);
                ShowMsg("轉檔成功");
            }
            catch (Exception ex) {
                MessageDisplay.Error("輸出錯誤");
                throw ex;
            }
            finally {
                this.Cursor = Cursors.Arrow;
                this.Refresh();
                Thread.Sleep(5);
            }
            return(ResultStatus.Success);
        }
Esempio n. 52
0
 public static bool CheckValidateCode(string actionType, string id, MessageDisplay msgDisplay)
 {
     return CheckValidateCode(actionType, id, msgDisplay, true);
 }
Esempio n. 53
0
 private void ValidateLink(Link link, MessageDisplay msgDsp, int line)
 {
     if (string.IsNullOrEmpty(link.Name))
     {
         msgDsp.AddError("name", line, Lang_Error.Link_EmptyNameError);
     }
     if (string.IsNullOrEmpty(link.Url))
     {
         msgDsp.AddError("url", line, Lang_Error.Link_EmptyUrlError);
     }
 }
 // ReSharper disable once UnusedMember.Local
 void Start()
 {
     _movementSensitivity = 1.3f;
     _mainCamera = GameObject.Find("/Main Camera");
     _movementByMouse = false;
     _movementByItem = false;
     _mouseMovementTarget = new Vector2();
     _mouseStopDistance = 0.15f;
     _pickupDistance = _mouseStopDistance*2;
     _mapGenerator = GameObject.FindGameObjectWithTag("MapGenerator");
     _mapGeneratorScript = _mapGenerator.GetComponent<MapGenerator>();
     _anim = gameObject.GetComponent<Animator>();
     var messageDisplayPrefab = GameObject.FindGameObjectWithTag("MessageDisplay");
     _messageDisplay = messageDisplayPrefab.GetComponent<MessageDisplay>();
 }
Esempio n. 55
0
        private void checkNewItem(Exceptable <T1> items, ExceptionItem <T1> item, string name, List <int> sortOrders, List <Guid> roleIDs, MessageDisplay msgDisplay)
        {
            if (item != null)
            {
                if (item.SortOrder == -1)
                {
                    int maxSortOrder = 0;
                    foreach (int sortOrder in sortOrders)
                    {
                        if (sortOrder > maxSortOrder)
                        {
                            maxSortOrder = sortOrder;
                        }
                    }
                    item.SortOrder = maxSortOrder + 1;
                }
                else if (sortOrders.Contains(item.SortOrder) && msgDisplay.HasAnyError() == false)
                {
                    msgDisplay.AddError("new_" + name, "排序数字不能重复");
                }

                if (item.RoleID != Guid.Empty && roleIDs.Contains(item.RoleID))
                {
                    msgDisplay.AddError("new_" + name, "已经存在对用户组“" + AllSettings.Current.RoleSettings.GetRole(item.RoleID).Name + "”的例外设置,不能重复设置");
                }
                else
                {
                    if (item.RoleID != Guid.Empty)
                    {
                        roleIDs.Add(item.RoleID);
                    }
                }
                items.Add(item);
            }
        }
Esempio n. 56
0
 protected MessageDisplay CreateMessageDisplayForForm(string form, params string[] names)
 {
     MessageDisplay d = new MessageDisplay(form, names);
     return d;
 }
Esempio n. 57
0
        /// <summary>
        /// Execute startup tasks
        /// </summary>
        /// <param name="sender">object sending the event</param>
        /// <param name="e">event arguments</param>
        private void WindowLoaded(object sender, RoutedEventArgs e)
        {
            // Create the drawing group we'll use for drawing
            this.drawingGroup = new DrawingGroup();

            // Create an image source that we can use in our image control
            this.imageSource = new DrawingImage(this.drawingGroup);

            // Display the drawing using our image control
            Image.Source = this.imageSource;

            // Allocate depth map variables
            this.colorBitmap = new WriteableBitmap((int) RenderWidth, (int) RenderHeight,
                   96.0, 96.0, PixelFormats.Bgr32, null);
            DepthImage.Source = this.colorBitmap;

            // prevent drawing outside of our render area
            this.drawingGroup.ClipGeometry = new RectangleGeometry(new Rect(0.0, 0.0, RenderWidth, RenderHeight));
           
            
            // Look through all sensors and start the first connected one.
            // This requires that a Kinect is connected at the time of app startup.
            // To make your app robust against plug/unplug, 
            // it is recommended to use KinectSensorChooser provided in Microsoft.Kinect.Toolkit (See components in Toolkit Browser).
            foreach (var potentialSensor in KinectSensor.KinectSensors)
            {
                if (potentialSensor.Status == KinectStatus.Connected)
                {
                    this.sensor = potentialSensor;
                    speechRecognizer = CreateSpeechRecognizer();
                    break;
                }
            }

            if (null != this.sensor)
            {
                // Turn on the skeleton stream to receive skeleton frames
                this.sensor.SkeletonStream.Enable();
                this.sensor.DepthStream.Enable();

                // Add an event handler to be called whenever there is new color frame data
                this.sensor.SkeletonFrameReady += this.SensorSkeletonFrameReady;

                // Add event handler for depth data
                this.sensor.DepthFrameReady += this.SensorDepthFrameReady;

                // Add event handler for Kinect switch
                KinectSensor.KinectSensors.StatusChanged += KinectSensors_StatusChanged;
                
                // Allocate Depth data objects
                this.depthPixels = new DepthImagePixel[this.sensor.DepthStream.FramePixelDataLength];
                this.colorPixels = new byte[this.sensor.DepthStream.FramePixelDataLength * sizeof(int)];

                // Initialize MessageDisplay object
                messageDisplay = new MessageDisplay(this.errorList, 500, this.noErrorGrid);

                this.currentPage = 0;

                // Start the sensor!
                try
                {
                    this.sensor.Start();
                    StartKinectAudioStream();
                }
                catch (IOException)
                {
                    this.sensor = null;
                }

            }
            else
            {
                this.enterFormTrainerButton.Visibility = Visibility.Collapsed;
            }

        }
Esempio n. 58
0
 protected abstract T1 GetItemValue(string name, int id, bool isNew, MessageDisplay msgDisplay, out bool hasError);
Esempio n. 59
0
        /// <summary>
        /// 获取 除了例外的 用户组 排序 级别   还未获取T的值
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="name"></param>
        /// <param name="id"></param>
        /// <param name="isNew"></param>
        /// <param name="msgDisplay"></param>
        /// <returns></returns>
        private ExceptionItem <T1> GetExceptionItem(string name, int id, bool isNew, MessageDisplay msgDisplay)
        {
            if (_Request.Get <int>("delete_" + name + "_" + id, Method.Post, 0) == 1)//被删除的项
            {
                return(null);
            }

            Guid        roleID;
            LevelStatus level     = LevelStatus.Currently;
            int         sortOrder = 0;

            if (id == 0 && isNew == false)
            {
                roleID = Guid.Empty;
            }
            else
            {
                string roleIDName, sortOrderName, levelName;
                if (isNew)
                {
                    roleIDName    = "new_" + name + "_role";
                    sortOrderName = "new_" + name + "_sortorder";
                    levelName     = "new_" + name + "_level";
                }
                else
                {
                    roleIDName    = name + "_role_" + id;
                    sortOrderName = name + "_sortorder_" + id;
                    levelName     = name + "_level_" + id;
                }

                roleID = _Request.Get <Guid>(roleIDName, Method.Post, Guid.Empty);
                if (roleID == Guid.Empty)
                {
                    if (isNew && _Request.Get("display_tr_" + name, Method.Post, "0") == "1")
                    {
                        msgDisplay.AddError("new_" + name, "请选择一个用户组");
                    }
                    else
                    {
                        return(null);
                    }
                }
                string value = _Request.Get(sortOrderName, Method.Post, string.Empty);

                if (value == string.Empty)
                {
                    sortOrder = -1;
                }
                else if (!int.TryParse(value, out sortOrder))
                {
                    if (isNew)
                    {
                        msgDisplay.AddError("new_" + name, "排序必须为整数");
                    }
                    else
                    {
                        msgDisplay.AddError(name, id, "排序必须为整数");
                    }
                }

                level = _Request.Get <LevelStatus>(levelName, Method.Post, LevelStatus.Currently);
            }


            bool hasError;

            ExceptionItem <T1> t = new ExceptionItem <T1>();

            t.LevelStatus = level;
            t.RoleID      = roleID;
            t.SortOrder   = sortOrder;
            t.Value       = GetItemValue(name, id, isNew, msgDisplay, out hasError);

            if (hasError)
            {
                return(null);
            }

            return(t);
        }
Esempio n. 60
0
 private long GetSeconds(string name,MessageDisplay msgDisplay)
 {
     string valueString = _Request.Get(name + "Value", Method.Post, string.Empty);
     if(string.IsNullOrEmpty(valueString))
         return 0;
     long value;
     if (long.TryParse(valueString, out value))
     {
         TimeUnit unit = _Request.Get<TimeUnit>(name + "Unit", Method.Post, TimeUnit.Second);
         return DateTimeUtil.GetSeconds(value, unit);
     }
     else
     {
         msgDisplay.AddError(name, "请填写整数");
         return 0;
     }
 }