コード例 #1
0
    // Code for 'Notice' and 'Log'. Disable all contols.
    public override void InitialDisableContainer(SPMTaskVariables SPMTaskVars, EFFormFields FormFields, ref object oContainer, IUIShadow UIShadow)
    {
        int caseID = int.Parse((string)(SPMTaskVars.ReadDatum("CASEID")));
        GDSExceptionHandlingUIShadow lUIControls = (GDSExceptionHandlingUIShadow)UIShadow;

        ShowRecord(lUIControls, FormFields, "Log", caseID, SPMTaskVars);
        base.InitialDisableContainer(SPMTaskVars, FormFields, ref oContainer, UIShadow);
    }
コード例 #2
0
 // Code for Page_Load
 protected override void PageLoad(object oContainer, IFormURLPara para, IUIShadow UIShadow)
 {
     oPage       = (Page)oContainer;
     oUIControls = (GDSExceptionHandlingUIShadow)UIShadow;
     oPara       = para;
     this.InitialPageControls();
     base.PageLoad(oContainer, para, UIShadow);
 }
コード例 #3
0
    // Code for 'draft' and 'pending for process'
    public override void InitialContainer(SPMTaskVariables SPMTaskVars, EFFormFields FormFields, ref object oContainer, IUIShadow UIShadow)
    {
        GDSExceptionHandlingUIShadow lUIControls = (GDSExceptionHandlingUIShadow)UIShadow;

        int    caseID   = int.Parse((string)(SPMTaskVars.ReadDatum("CASEID")));
        string stepName = SPMTaskVars.ReadDatum("STEPNAME").ToString();

        ShowRecord(lUIControls, FormFields, "Process", caseID, SPMTaskVars);
        base.InitialContainer(SPMTaskVars, FormFields, ref oContainer, UIShadow);
    }
コード例 #4
0
    // Fill SPM's EFFormFieldData
    public override void PrepareEFFormFields(SPMSubmitMethod SubmitMethod, SPMProcessMethod ProcessMethod, SPMTaskVariables TaskVars, ref EFFormFields FormFields, ref IInterfaceHandleResult HandleResult, object oContainer, IUIShadow UIShadow, ref string ApplicantInfo)
    {
        GDSExceptionHandlingUIShadow lUIControls = (GDSExceptionHandlingUIShadow)UIShadow;

        //基本資料
        FormFields.SetOrAdd("txtLogonID".ToUpper(), lUIControls.txtLogonID.Text);
        FormFields.SetOrAdd("txtName".ToUpper(), lUIControls.txtName.Text);
        FormFields.SetOrAdd("txtPlant".ToUpper(), lUIControls.txtPlant.Text);
        FormFields.SetOrAdd("txtDept".ToUpper(), lUIControls.txtDept.Text);
        FormFields.SetOrAdd("txtEMail".ToUpper(), lUIControls.txtEMail.Text);
        FormFields.SetOrAdd("txtExtNO".ToUpper(), lUIControls.txtExtNO.Text);

        FormFields.SetOrAdd("txtRDocNo".ToUpper(), lUIControls.txtRDocNo.Text);
        FormFields.SetOrAdd("txtDocNo".ToUpper(), lUIControls.txtDocNo.Text);
        FormFields.SetOrAdd("txtCostCenter".ToUpper(), lUIControls.txtCostCenter.Text);
        FormFields.SetOrAdd("txtDepartment".ToUpper(), lUIControls.txtDepartment.Text);
        FormFields.SetOrAdd("txtApplication".ToUpper(), lUIControls.txtApplication.Text);
        FormFields.SetOrAdd("txtMaterial".ToUpper(), lUIControls.txtMaterial.Text);
        FormFields.SetOrAdd("txtReturnQuantity".ToUpper(), lUIControls.txtReturnQuantity.Text);
        FormFields.SetOrAdd("txtReason".ToUpper(), lUIControls.txtReason.Text);
        FormFields.SetOrAdd("txtRemark".ToUpper(), lUIControls.txtRemark.Text);
        FormFields.SetOrAdd("txtReturn".ToUpper(), lUIControls.txtReturn.Text);
        FormFields.SetOrAdd("txtIADocNo".ToUpper(), lUIControls.txtIADocNo.Text);
        FormFields.SetOrAdd("txtI6DocNo".ToUpper(), lUIControls.txtI6DocNo.Text);
        FormFields.SetOrAdd("txtZEILE".ToUpper(), lUIControls.txtZEILE.Text);
        FormFields.SetOrAdd("txtAmount".ToUpper(), lUIControls.txtAmount.Text);


        //SOURCE DATA
        FormFields.SetOrAdd("txtHead".ToUpper(), lUIControls.txtHead.Text);
        FormFields.SetOrAdd("txtDetail".ToUpper(), lUIControls.txtDetail.Text);
        FormFields.SetOrAdd("txtDOA".ToUpper(), lUIControls.txtDOA.Text);
        FormFields.SetOrAdd("txtWERKS".ToUpper(), lUIControls.txtWERKS.Text);
        FormFields.SetOrAdd("txtAPTYP".ToUpper(), lUIControls.txtAPTYP.Text);


        base.PrepareEFFormFields(SubmitMethod, ProcessMethod, TaskVars, ref FormFields, ref HandleResult, oContainer, UIShadow, ref ApplicantInfo);
    }
コード例 #5
0
    // Validate contols before submit
    public override bool EFFormFieldsValidation(SPMSubmitMethod SubmitMethod, SPMProcessMethod ProcessMethod, SPMTaskVariables SPMTaskVars, ref IInterfaceHandleResult HandleResult, object oContainer, IUIShadow UIShadow)
    {
        GDSExceptionHandlingUIShadow lUIControls = (GDSExceptionHandlingUIShadow)UIShadow;
        GDS_Helper    oStandard = new GDS_Helper();
        StringBuilder ErrMsg    = new StringBuilder();


        string stepName = (string)(SPMTaskVars.ReadDatum("STEPNAME"));
        string curDOA   = lUIControls.txtDOA.Text;
        string plant    = lUIControls.txtWERKS.Text;
        string apType   = lUIControls.txtAPTYP.Text;

        DOA    spmDOA     = new DOA();
        string sApplicant = lUIControls.txtApplication.Text.Trim();
        //獲取 表頭及表身DATA
        string    formDetail = lUIControls.txtDetail.Text.Trim().Replace("&lt1;", "<").Replace("&gt1;", ">");
        string    formHead   = lUIControls.txtHead.Text.Trim().Replace("&lt1;", "<").Replace("&gt1;", ">");
        DataTable dtHead     = LiteOn.GDS.Utility.Tools.BuildHeadTable();

        System.IO.StringReader reader = new System.IO.StringReader(formHead);
        dtHead.ReadXml(reader);
        System.IO.StringReader reader2 = new System.IO.StringReader(formDetail);
        DataTable dtDetail             = LiteOn.GDS.Utility.Tools.BuildDetailTable();

        dtDetail.ReadXml(reader2);
        if (SubmitMethod == SPMSubmitMethod.CreateNewCase)
        {
            #region 欄位的非空驗證

            #endregion

            #region Check單據是否已經過帳
            string I1DocNo = oUIControls.txtRDocNo.Text;
            string IADocNo = oUIControls.txtIADocNo.Text;
            string I6DocNo = oUIControls.txtI6DocNo.Text;
            string WERKS   = oUIControls.txtWERKS.Text;
            //Check此I1單(領料單)和關聯的IA,I6單(退料單)是否都已經過賬 (Call SAP BAPI Z_BAPI_GDS_SEND MBLNR不為空則表示已經過賬)
            if (!oStandard.CheckFormNoIsPass(I1DocNo, IADocNo, I6DocNo, WERKS))
            {
                HandleResult.IsSuccess     = false;
                HandleResult.CustomMessage = "I1(領料單)或者IA,I6(退料單)存在未過賬的單子!";
            }
            #endregion
        }
        else
        {
            //only  approve action check controls
            if (SubmitMethod == SPMSubmitMethod.HandleCase_Approve)
            {
                int    caseId    = int.Parse((string)(SPMTaskVars.ReadDatum("CASEID")));
                string curStepId = SPMAppLine.GetCurrentStep(curDOA);
                //調用FUNCTION作FormFieldsValidation
                string errMsg = DOA.FieldsValidationByStepId(plant, apType, curStepId, caseId);
                if (errMsg.Length > 0)
                {
                    HandleResult.IsSuccess     = false;
                    HandleResult.CustomMessage = errMsg;
                }
                else
                {
                    try
                    {
                        //CALL FUNCTION獲取下關簽核人
                        DOAHandler = spmDOA.GetStepHandler(sApplicant, curDOA, dtHead, dtDetail, false);
                        oStandard.UpdateSettingxml(oUIControls.txtDocNo.Text, DOAHandler._sDOA.ToString());
                    }
                    catch (Exception ex)
                    {
                        HandleResult.IsSuccess     = false;
                        HandleResult.CustomMessage = ex.Message;
                    }
                }

                if (ErrMsg.ToString().Length > 0)
                {
                    HandleResult.IsSuccess     = false;
                    HandleResult.CustomMessage = ErrMsg.ToString();
                }

                //簽核人防呆檢查
                if (DOAHandler._sEndFlag == "N" && DOAHandler._sHandler.Length == 0)
                {
                    HandleResult.IsSuccess     = false;
                    HandleResult.CustomMessage = "Can't find next step handler, pls contact sys administrator";
                }
                string sCurLogonID  = (string)(SPMTaskVars.ReadDatum("SYS_LOGONID"));
                string sCurRoleCode = SPMAppLine.GetCurrentApprover(curDOA).Replace("{", "").Replace("}", "");

                //簽核人重復簽核防呆
                if (DOAHandler._sEndFlag == "N" && DOAHandler._sRoleCode == sCurRoleCode && DOAHandler._sHandler.ToUpper() == sCurLogonID.ToUpper())
                {
                    HandleResult.IsSuccess     = false;
                    HandleResult.CustomMessage = "Server or network is busy now, pls try again";
                }
            }
        }
        return(base.EFFormFieldsValidation(SubmitMethod, ProcessMethod, SPMTaskVars, ref HandleResult, oContainer, UIShadow));
    }
コード例 #6
0
    private void ShowRecord(GDSExceptionHandlingUIShadow lUIControls, EFFormFields FormFields, string type, int caseId, SPMTaskVariables SPMTaskVars)
    {
        string     caseid    = SPMTaskVars.ReadDatum("CASEID").ToString();
        string     stepName  = (string)(SPMTaskVars.ReadDatum("STEPNAME"));
        GDS_Helper oStandard = new GDS_Helper();

        if (stepName != "Begin")
        {
            #region 抓取 異常單資料 並綁定到控件中
            DataTable dt = oStandard.GetMaster_Exception(int.Parse(caseid));//加載 異常單主表資料
            if (dt.Rows.Count > 0)
            {
                #region 數據加載
                DataRow dr = dt.Rows[0];
                oUIControls.txtDocNo.Text          = dr["MBLNR"].ToString();      //主單號
                oUIControls.txtRDocNo.Text         = dr["MBLNR_A"].ToString();    //Link 單號
                oUIControls.txtCostCenter.Text     = dr["KOSTL"].ToString();      //成本中心
                oUIControls.txtDepartment.Text     = dr["ABTEI"].ToString();      //部門
                oUIControls.txtApplication.Text    = dr["Applicant"].ToString();  //LoginID
                oUIControls.txtReturn.Text         = dr["RTNIF"].ToString();      // Return Flag
                oUIControls.txtWERKS.Text          = dr["WERKS"].ToString();      //廠別
                oUIControls.txtMaterial.Text       = dr["MATNR"].ToString();      //料號
                oUIControls.txtZEILE.Text          = dr["ZEILE"].ToString();      //料號對應的ITEM
                oUIControls.txtAmount.Text         = dr["Amount"].ToString();     //金額
                oUIControls.txtIADocNo.Text        = dr["IADocNo"].ToString();    //關聯IA單
                oUIControls.txtI6DocNo.Text        = dr["I6DocNo"].ToString();    //關聯I6單
                oUIControls.txtReason.Text         = dr["Reason"].ToString();     //REASON
                oUIControls.txtRemark.Text         = dr["Remark"].ToString();     //REMARK
                oUIControls.txtReturnQuantity.Text = dr["MENGE"].ToString();      //RETURN 數量
                oUIControls.txtDOA.Text            = dr["Settingxml"].ToString(); //Settingxml
                #endregion

                #region 控件顯示
                oUIControls.btnLink.Hidden             = true;
                oUIControls.frmUserInfo.Hidden         = true;
                oUIControls.txtDocNo.ReadOnly          = true;
                oUIControls.txtRDocNo.ReadOnly         = true;
                oUIControls.txtCostCenter.ReadOnly     = true;
                oUIControls.txtDepartment.ReadOnly     = true;
                oUIControls.txtApplication.ReadOnly    = true;
                oUIControls.txtReturn.ReadOnly         = true;
                oUIControls.txtMaterial.ReadOnly       = true;
                oUIControls.txtZEILE.ReadOnly          = true;
                oUIControls.txtAmount.ReadOnly         = true;
                oUIControls.txtIADocNo.ReadOnly        = true;
                oUIControls.txtI6DocNo.ReadOnly        = true;
                oUIControls.txtReason.ReadOnly         = true;
                oUIControls.txtRemark.ReadOnly         = true;
                oUIControls.txtReturnQuantity.ReadOnly = true;
                #endregion
            }
            #endregion


            #region 通過異常單的Link單號 抓取正常單中的Head和Detail
            DataTable dtHead   = oStandard.GetdtHead(oUIControls.txtRDocNo.Text.Trim());
            DataTable dtDetail = oStandard.GetdtDetail(oUIControls.txtRDocNo.Text.Trim());
            oUIControls.txtWERKS.Text = dtHead.Rows[0]["WERKS"].ToString(); //廠別
            oUIControls.txtAPTYP.Text = dtHead.Rows[0]["APTYP"].ToString(); //單據類型
            string xmlstrHead = oStandard.DataTableToXMLStr(dtHead);
            oUIControls.txtHead.Text = xmlstrHead;                          //Head
            string xmlstrDetail = oStandard.DataTableToXMLStr(dtDetail);
            oUIControls.txtDetail.Text = xmlstrDetail;                      //Detail
            //string tempWEKS = DOA.GetXMLConfigName(dtHead);//CALL FUNCTION獲取XML配置檔名
            //SettingParser x = new SettingParser(tempWEKS, oUIControls.txtAPTYP.Text);//讀取XML配置檔信息
            //oUIControls.txtDOA.Text = x.ApproveXML.Replace("&lt1;", "<").Replace("&gt1;", ">"); ;//抓取DOA的簽核邏輯
            #endregion
        }
    }
コード例 #7
0
    protected void Page_Load(object sender, EventArgs e)
    {
        //內嵌JS
        HtmlGenericControl ctrl = new HtmlGenericControl("script");

        ctrl.Attributes.Add("type", "text/javascript");
        ctrl.Attributes.Add("src", @"JScript.js");
        this.Page.Header.Controls.Add(ctrl);
        SpmMaster _Master = (SpmMaster)Master;

        oUIControls = new GDSExceptionHandlingUIShadow(this);
        oFlowLogics = new GDSExceptionHandlingLogics(this, oUIControls);
        oFlowLogics.PageLoad(_Master.IFormURLPara);


        /// Register MasterPage events
        _Master.MasterPageEvent_EFFormFieldsValidation  += new SpmMaster.EFFormFieldsValidationHandler(oFlowLogics.EFFormFieldsValidation);
        _Master.MasterPageEvent_PrepareEFFormFields     += new SpmMaster.PrepareEFFormFieldsHandler(oFlowLogics.PrepareEFFormFields);
        _Master.MasterPageEvent_PrepareSPMVariables     += new SpmMaster.PrepareSPMVariablesHandler(oFlowLogics.PrepareSPMVariables);
        _Master.MasterPageEvent_InitialContainer        += new SpmMaster.InitialContainerHandler(oFlowLogics.InitialContainer);
        _Master.MasterPageEvent_InitialDisableContainer += new SpmMaster.InitialDisableContainerHandler(oFlowLogics.InitialDisableContainer);
        _Master.MasterPageEvent_SPMBeforeSend           += new SpmMaster.SPM_BeforeSendHandler(oFlowLogics.SPMBeforeSend);
        _Master.MasterPageEvent_SPMAfterSend            += new SpmMaster.SPM_AfterSendHandler(oFlowLogics.SPMAfterSend);
        _Master.MasterPageEvent_SPMRecallProcess        += new SpmMaster.SPM_RecallProcessHandler(oFlowLogics.SPMRecallProcess);
        _Master.MasterPageEvent_SPMBackoutProcess       += new SpmMaster.SPM_BackoutProcessHandler(oFlowLogics.SPMBackoutProcess);
        _Master.MasterPageEvent_SPMStepComplete         += new SpmMaster.SPM_StepCompleteHandler(oFlowLogics.SPMStepComplete);
        _Master.MasterPageEvent_SPMStepActivity         += new SpmMaster.SPM_StepActivityHandler(oFlowLogics.SPMStepActivity);
        _Master.MasterPageEvent_Print        += new SpmMaster.PrintHandler(oFlowLogics.Print);
        _Master.MasterPageEvent_SPMSendError += new SpmMaster.SPM_SendErrorHandler(oFlowLogics.SPM_SendError);
        // _Master.MasterPageEvent_SPMSendSuccess += new SpmMaster.SPM_SendSuccessHandler(oFlowLogics.SPM_SendSuccess);
        //_Master.MasterPageEvent_SPMSendSuccessNotice += new SpmMaster.SPM_SendSuccessNoticeHandler(oFlowLogics.SPM_SendSuccessNotice);

        /*
         * Properties of Master Page
         * _Master.Manual                   : string. set link for [Manual]. e.g. "http://yahoo.com.tw"
         * _Master.HelpDesk                 : string. set link for [HelpDesk]. e.g. "http://10.1.13.61/wwwroot.zip";
         * _Master.BannerText1  &
         * _Master.BannerText2              : string. set info to show in [Banner]. e.g. "Example 3"
         * _Master.SelectPersonnelRowLimit  : integer. set the display count for [CCNotice]. e.g. 5
         * _Master.EnableShowProcessLogStepName : boolean. if the Process Log shows [StepName]. e.g. true
         * _Master.HeadLiteral              : string. set Head script. e.g. "<link href=\"Common/style.css\" rel=\"stylesheet\" type=\"text/css\" />"
         * _Master.LogoPath                 : string. set Logo path. e.g. "common/images/logo.gif";
         * _Master.AsyncPostBackTimeout     : integer. set AsyncPostBackTimeout. e.g. 300
         * _Master.WindowPrintEnable        : boolean. enable print function. e.g. true
         * _Master.ReferenceJavaScriptPath  : string array. set referenced script file. e.g. new string[1] { "~/JS/jquery.js" };
         */

        if (!IsPostBack)
        {
            _Master.Manual                       = "http://home-cz/Sites/CORP_IT/DocLib1/Forms/AllItems.aspx?RootFolder=%2FSites%2FCORP%5FIT%2FDocLib1%2FWorkflow%20%E7%9B%B8%E9%97%9C%E6%93%8D%E4%BD%9C%E6%89%8B%E5%86%8A&FolderCTID=0x012000F6570CA28FE20A4E9C70F18B590D6D16&View={F275949A-55A8-4AA7-8764-3B524F1B40D2}";
            _Master.HelpDesk                     = "http://www.liteon.com.tw/SPM/Example/Help.zip";
            _Master.BannerText1                  = "Liteon CZ";
            _Master.BannerText2                  = "GDS_應退未退申請表";
            _Master.SelectPersonnelRowLimit      = 5;
            _Master.EnableShowProcessLogStepName = true;
            _Master.HeadLiteral                  = "<link href=\"Common/style.css\" rel=\"stylesheet\" type=\"text/css\" />";
            //_Master.LogoPath = "common/images/logo.gif";
            _Master.AsyncPostBackTimeout = 300;
            _Master.WindowPrintEnable    = false;
            //_Master.ReferenceJavaScriptPath = new string[1] { "~/JS/jquery.js" };

            //set client side script
            //if (_Master.IFormURLPara.HandleType == "1")//Create New Case
            //{
            //_Master.ButtonSubmitClientOnClick = "alert('submit click')";
            //}
            //else if (_Master.IFormURLPara.StepName == "Direct Manager")
            //{

            /*
             * Add required code here.
             * Sample:
             * _Master.ButtonApproveClientOnClick = "alert('approve click')";
             * _Master.ButtonRejectClientOnClick = "alert('reject')";
             * _Master.ButtonAbortClientOnClick = "alert('abort')";
             * _Master.ButtonRecallClientOnClick = "alert('recall')";
             */
            //    _Master.ButtonRejectClientOnClick = "event.returnValue=false;";
            //}

            // Applicant Setting
            LiteOn.ea.SPM3G.UserInfoClass.UserInfoControlSetting lUC = new LiteOn.ea.SPM3G.UserInfoClass.UserInfoControlSetting();
            lUC.SingleSelect = true;
            lUC.Display      = false;

            if (_Master.IFormURLPara.StepName.ToUpper().Equals("BEGIN") &&   //Create New Case
                _Master.IFormURLPara.HandleType == "1")
            {
                lUC.ChangeUserEnabled = true;
            }
            else
            {
                lUC.ChangeUserEnabled = false;
            }

            //ScaleType.Dept Sample

            /*
             * LiteOn.ea.SPM3G.UserInfoClass.UserSearhScaleSetting lSetting = new LiteOn.ea.SPM3G.UserInfoClass.UserSearhScaleSetting();
             * lSetting.Scale = LiteOn.ea.SPM3G.UserInfoClass.ScaleType.Department;
             * lSetting.DeptNo = "50015866";
             * lUC.UserSearchControlScaleSetting = lSetting;
             */

            //ScaleType.Custom Sample 2-1

            /*
             * LiteOn.ea.SPM3G.UserInfoClass.UserSearhScaleSetting lSetting = new LiteOn.ea.SPM3G.UserInfoClass.UserSearhScaleSetting();
             * lSetting.Scale = LiteOn.ea.SPM3G.UserInfoClass.ScaleType.Custom;
             * lSetting.CustomScaleSetting = GetCustomSearchSetting(); ;
             * lUC.UserSearchControlScaleSetting = lSetting;
             */
            _Master.ApplicantControlSetting = lUC;
            // ScriptManager.RegisterStartupScript(this.Page, typeof(string), "setListBoxValue", "SPM_onload();", true);


            Model_BorgUserInfo oModel_BorgUserInfo = new Model_BorgUserInfo();
            Borg_User          oBorg_User          = new Borg_User();
            oModel_BorgUserInfo = oBorg_User.GetUserInfoByLogonId(_Master.IFormURLPara.LoginId);
            if (oModel_BorgUserInfo._EXISTS)
            {
                lblSite.Text    = Borg_Tools.GetSiteInfo();
                lblBu.Text      = oModel_BorgUserInfo._BU;
                lblLogonId.Text = oModel_BorgUserInfo._LOGON_ID;
            }
        }
    }