using System; using System.Data; using System.Linq; using System.Web.UI; using System.Web.UI.WebControls; using SuperMap.RealEstate.CoreFrameWork; using SuperMap.RealEstate.ServiceModel; using SuperMap.RealEstate.Utility; using SuperMap.RealEstate.Web.UI; using SuperMap.RealEstate.Web.UI.WebControls; using SuperMap.RealEstate.Web.Utility; using Storage = SuperMap.RealEstate.HighWay.Storage; using SuperMap.RealEstate.CoreFrameWork.Dictionary.Business; using SuperMap.RealEstate.HighWay.Common; namespace SuperMap.RealEstate.HighWay.Compents.ExpenseBill { public partial class Default : UserControl { Running.Business.HIGHWAYPROINST _HighWayProInst = null; protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) return; try { if (CurrObject != null && CurrObject.PropertyObject != null) { //初始化并加载列表 GridViewEx1.SelectingWithInit(ObjectDataSource1, GridPageEx1); } } catch { } //工具条按钮事件 if (CurrObject.EXPENSEBILL_TYPE != null) GridViewEx1.SetOpenControl(ButtonNew, "/HighWay/Compents/ExpenseBill/EXPENSEDETAILPage.aspx?EXPENSEBILL_ID=" + CurrObject.EXPENSEBILL_ID_Encrypt + "&EXPENSEBILL_TYPE=" + CurrObject.EXPENSEBILL_TYPE.ToEncrypt()); else { ButtonNew.OnClientClick = Page.GetAlertStr("请先保存报销单!"); } //设置回车焦点按钮 Page.SetControlClientAction(ButtonSearch); //if (this.ModifyType == ModifyTypeEnum.ReadOnly) SetControlState(); } protected override void OnInit(EventArgs e) { Common.PageHelper.CreateHeaderStyle(Page); _HighWayProInst = Running.Business.HIGHWAYPROINST.CreateInstance(Page); base.ButtonVisible = false; base.OnInit(e); } //在此加入界面的数据初始化(Page_Load之前),如DropDownList的数据源绑定等 public override void InitializeWebControl() { //绑定下拉框 EXPENSEBILL_TYPE.Items.Clear(); DictionaryHelper.BindingDropDownList("EXPENSEBILL_TYPE", EXPENSEBILL_TYPE.Items, this.Transaction); } #region EXPENSEBILL_TYPE_CallBackSetControl protected void EXPENSEBILL_TYPE_CallBackSetControl(object sender, ClientSetEventArgs e) { int ColumnsCount = GridViewEx1.Columns.Count; switch (EXPENSEBILL_TYPE.SelectedValue) { case "1000": e.SetVisible(Li_PAYEE_UNIT.ClientID, false); e.SetVisible(Li_BANK_NAME.ClientID, false); e.SetVisible(Li_BANK_ACCOUNT.ClientID, false); e.SetVisible(Li_PAY_TYPE.ClientID, false); e.SetVisible(Li_PAYMENT_DETAIL.ClientID, false); e.SetVisible(Li_BUSINESS_PERSON.ClientID, true); e.SetVisible(Li_BUSINESS_REASON.ClientID, true); e.SetVisible(Li_PREPAY_EXPENSE.ClientID, true); e.SetVisible(Li_PREPAY_DATE.ClientID, true); e.SetVisible(Li_PAYMENT_RETURN.ClientID, true); e.SetVisible(Li_PAYMENT_COMPLEMENT.ClientID, true); //e.SetVisible(PAYEE_UNIT.ClientID, false, true); //e.SetVisible(BANK_NAME.ClientID, false, true); //e.SetVisible(BANK_ACCOUNT.ClientID, false, true); //e.SetVisible(PAY_TYPE.ClientID, false, true); //e.SetVisible(PAYMENT_DETAIL.ClientID, false, true); //e.SetVisible(BUSINESS_PERSON.ClientID, true, true); //e.SetVisible(BUSINESS_REASON.ClientID, true, true); //e.SetVisible(PREPAY_EXPENSE.ClientID, true, true); //e.SetVisible(PREPAY_DATE.ClientID, true, true); //e.SetVisible(PAYMENT_RETURN.ClientID, true, true); //e.SetVisible(PAYMENT_COMPLEMENT.ClientID, true, true); e.SetCaptionText(PAYMENT_LOWER.ClientID, "报销总额(小写):"); e.SetCaptionText(PAYMENT_CAP.ClientID, "报销总额(大写):"); e.SetCaptionText(PREPAY_EXPENSE.ClientID, "预支旅费:"); e.SetCaptionText(PAYMENT_RETURN.ClientID, "退还金额:"); e.SetCaptionText(PAYMENT_COMPLEMENT.ClientID, "补足金额:"); foreach (DataControlField _DataGridColumn in GridViewEx1.Columns) { if (ColumnsCount > 5) _DataGridColumn.Visible = true; else _DataGridColumn.Visible = false; ColumnsCount--; } break; case "2000": e.SetVisible(Li_BUSINESS_PERSON.ClientID, false); e.SetVisible(Li_BUSINESS_REASON.ClientID, false); e.SetVisible(Li_PAYEE_UNIT.ClientID, true); e.SetVisible(Li_BANK_NAME.ClientID, true); e.SetVisible(Li_BANK_ACCOUNT.ClientID, true); e.SetVisible(Li_PAY_TYPE.ClientID, true); e.SetVisible(Li_PAYMENT_DETAIL.ClientID, true); e.SetVisible(Li_PREPAY_EXPENSE.ClientID, false); e.SetVisible(Li_PREPAY_DATE.ClientID, false); e.SetVisible(Li_PAYMENT_RETURN.ClientID, false); e.SetVisible(Li_PAYMENT_COMPLEMENT.ClientID, false); //e.SetVisible(BUSINESS_PERSON.ClientID, false, true); //e.SetVisible(BUSINESS_REASON.ClientID, false, true); //e.SetVisible(PAYEE_UNIT.ClientID, true, true); //e.SetVisible(BANK_NAME.ClientID, true, true); //e.SetVisible(BANK_ACCOUNT.ClientID, true, true); //e.SetVisible(PAY_TYPE.ClientID, true, true); //e.SetVisible(PAYMENT_DETAIL.ClientID, true, true); //e.SetVisible(PREPAY_EXPENSE.ClientID, false, true); //e.SetVisible(PREPAY_DATE.ClientID, false, true); //e.SetVisible(PAYMENT_RETURN.ClientID, false, true); //e.SetVisible(PAYMENT_COMPLEMENT.ClientID, false, true); e.SetCaptionText(PAYMENT_LOWER.ClientID, "付款金额(小写):"); e.SetCaptionText(PAYMENT_CAP.ClientID, "付款金额(大写):"); break; case "3000": e.SetVisible(Li_BUSINESS_PERSON.ClientID, false); e.SetVisible(Li_BUSINESS_REASON.ClientID, false); e.SetVisible(Li_PAYEE_UNIT.ClientID, false); e.SetVisible(Li_BANK_NAME.ClientID, false); e.SetVisible(Li_BANK_ACCOUNT.ClientID, false); e.SetVisible(Li_PAY_TYPE.ClientID, false); e.SetVisible(Li_PAYMENT_DETAIL.ClientID, false); e.SetVisible(Li_PREPAY_EXPENSE.ClientID, true); e.SetVisible(Li_PREPAY_DATE.ClientID, false); e.SetVisible(Li_PAYMENT_RETURN.ClientID, true); e.SetVisible(Li_PAYMENT_COMPLEMENT.ClientID, true); //e.SetVisible(BUSINESS_PERSON.ClientID, false, true); //e.SetVisible(BUSINESS_REASON.ClientID, false, true); //e.SetVisible(PAYEE_UNIT.ClientID, false, true); //e.SetVisible(BANK_NAME.ClientID, false, true); //e.SetVisible(BANK_ACCOUNT.ClientID, false, true); //e.SetVisible(PAY_TYPE.ClientID, false, true); //e.SetVisible(PAYMENT_DETAIL.ClientID, false, true); //e.SetVisible(PREPAY_EXPENSE.ClientID, true, true); //e.SetVisible(PREPAY_DATE.ClientID, false, true); //e.SetVisible(PAYMENT_RETURN.ClientID, true, true); //e.SetVisible(PAYMENT_COMPLEMENT.ClientID, true, true); e.SetCaptionText(PAYMENT_LOWER.ClientID, "费用合计(小写):"); e.SetCaptionText(PAYMENT_CAP.ClientID, "费用合计(大写):"); e.SetCaptionText(PREPAY_EXPENSE.ClientID, "偿还预支借款:"); e.SetCaptionText(PAYMENT_RETURN.ClientID, "归还多余:"); e.SetCaptionText(PAYMENT_COMPLEMENT.ClientID, "补领不足:"); foreach (DataControlField _DataGridColumn in GridViewEx1.Columns) { if (ColumnsCount > 5 && ColumnsCount != GridViewEx1.Columns.Count) _DataGridColumn.Visible = false; else _DataGridColumn.Visible = true; ColumnsCount--; } break; } //e.SetGridViewEx(GridViewEx1); } #endregion //载入数据 public override bool LoadData() { //如果是工作流组件请自行修改载入的逻辑,以下是功能模块的默认代码 if (_HighWayProInst.__ProInst != null && _HighWayProInst.__ProInst.Division_Code_BaseValue != null) { foreach (FieldEnum _FieldEnum in (new FieldEnum(this.Transaction)).FillCollection( "where FieldEnum_Value in('" + _HighWayProInst.__ProInst.Division_Code_BaseValue.ToString() + "')")) { Storage.Business.SERVERPART _SERVERPART = new Storage.Business.SERVERPART(this.Transaction); _SERVERPART.AddSearchParameter("FIELDENUM_ID", _FieldEnum.FieldEnum_ID); if (_SERVERPART.Search()) { SERVERPART_ID.Text = _SERVERPART.SERVERPART_ID.ToString(); break; } } } else { foreach (Storage.Business.SERVERPART _SERVERPART in (new Storage.Business.SERVERPART(Transaction)).GetPassportServerPart(Page.PassportInfo.CityAuthority)) { SERVERPART_ID.Text = _SERVERPART.SERVERPART_ID.ToString(); break; } } Running.Business.EXPENSEBILL _EXPENSEBILL = new Running.Business.EXPENSEBILL(_HighWayProInst); _EXPENSEBILL.AddSearchParameter("HIGHWAYPROINST_ID", _HighWayProInst.HIGHWAYPROINST_ID); if (_EXPENSEBILL.Search()) { BtnSearchImg.Visible = true; BtnSearchImg.OnClientClick = Page.GetOpenPopDialogClientScript("/HighWay/Compents/ExpenseBill/IMAGEPage.aspx?EXPENSEBILL_ID=" + _EXPENSEBILL.EXPENSEBILL_ID_Encrypt, "IMAGEPage", 850, 600, true, false, true); CurrObject.EXPENSEBILL_ID_Encrypt = _EXPENSEBILL.EXPENSEBILL_ID_Encrypt;//Request["ID"]; return this.Select(); } else { HIGHWAYPROINST_ID.Text = _HighWayProInst.HIGHWAYPROINST_ID.ToString(); } //默认返回值,工作流组件返回True,功能模块返回False。 return (WorkFlowPage != null); } //OnDataAction_XXXXX 有一个系列可用,在此加入界面的逻辑处理 //e.CancelDataAction 来处理是否取消该动作; //失败的原因可以用Page.Alert()传递到页面 public override void OnDataAction_BeforeSave(DataActionEventArgs e) { base.OnDataAction_BeforeSave(e); } //查询 protected void ButtonSearch_CallBackClick(object sender, ClientSetEventArgs e) { GridViewEx1.Selecting(ObjectDataSource1, GridPageEx1); //设置UI变化 e.SetValue(GridViewEx1); e.SetValue(GridPageEx1); } //翻页事件 protected void GridPageEx1_CallBackPageChanged(object src, ClientSetEventArgs e) { GridViewEx1.Pagging(ObjectDataSource1, GridPageEx1); //设置UI变化 e.SetValue(GridViewEx1); } //查询SQL设置 protected void GridViewEx1_SelectMethodParameters(object sender, SelectMethodParametersArgs e) { //搜索选项的搜索条件过滤 if (!string.IsNullOrEmpty(TextBox_Search.Text)) e.AddOrParams(GridViewSearch1, TextBox_Search.Text); //且搜索条件 if (EXPENSEBILL_ID.Text != "") { e.AddAndParams("EXPENSEBILL_ID", EXPENSEBILL_ID.Text); } else { e.AddAndParams("EXPENSEBILL_ID", 0); } //或搜索条件 //e.AddOrParams(字段名, 值); //排序 e.AddOrderByParams(GridViewOrderBy1); } protected void GridViewEx1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { string _EXPENSEDETAIL_ID = GridViewEx1.DataKeys[e.Row.RowIndex].Values["EXPENSEDETAIL_ID"].ToString().ToEncrypt(); Running.Business.EXPENSEBILL _EXPENSEBILL = new Running.Business.EXPENSEBILL(_HighWayProInst); _EXPENSEBILL.EXPENSEBILL_ID_Encrypt = EXPENSEBILL_ID.Text.ToEncrypt(); if (_EXPENSEBILL.Select()) { e.Row.Attributes["onclick"] = GridViewEx1.GetOpenPopDialogClientScript( "/HighWay/Compents/ExpenseBill/EXPENSEDETAILPage.aspx?ID=" + _EXPENSEDETAIL_ID + "&EXPENSEBILL_TYPE=" + _EXPENSEBILL.EXPENSEBILL_TYPE.ToEncrypt(), 800, 400); } else e.Row.Attributes["onclick"] = null; } } protected void ButtonSave_Click(object sender, EventArgs e) { base.Save(); Page.Alert("保存成功!"); if (CurrObject.EXPENSEBILL_TYPE == 2000) ExpenseDetail.Attributes["style"] = "display: none"; else ExpenseDetail.Attributes["style"] = "display: inherit;"; SetControlState(); BtnSearchImg.Visible = true; BtnSearchImg.OnClientClick = Page.GetOpenPopDialogClientScript("/HighWay/Compents/ExpenseBill/IMAGEPage.aspx?EXPENSEBILL_ID=" + CurrObject.EXPENSEBILL_ID_Encrypt, "IMAGEPage", 850, 600, true, false, true); //初始化并加载列表 GridViewEx1.SelectingWithInit(ObjectDataSource1, GridPageEx1); GridViewEx1.SetOpenControl(ButtonNew, "/HighWay/Compents/ExpenseBill/EXPENSEDETAILPage.aspx?EXPENSEBILL_ID=" + CurrObject.EXPENSEBILL_ID_Encrypt + "&EXPENSEBILL_TYPE=" + CurrObject.EXPENSEBILL_TYPE.ToEncrypt()); Page.RefreshOpener(); } #region SetControlState -> 初始化页面控件 protected void SetControlState() { int ColumnsCount = GridViewEx1.Columns.Count; switch (CurrObject.EXPENSEBILL_TYPE == null ? short.Parse(EXPENSEBILL_TYPE.SelectedValue) : CurrObject.EXPENSEBILL_TYPE) { case 1000: Li_PAYEE_UNIT.Attributes["style"] = "display: none"; Li_BANK_NAME.Attributes["style"] = "display: none"; Li_BANK_ACCOUNT.Attributes["style"] = "display: none"; Li_PAY_TYPE.Attributes["style"] = "display: none"; Li_PAYMENT_DETAIL.Attributes["style"] = "display: none"; Li_BUSINESS_PERSON.Attributes["style"] = "display: inherit"; Li_BUSINESS_REASON.Attributes["style"] = "display: inherit"; Li_PREPAY_EXPENSE.Attributes["style"] = "display: inherit"; Li_PREPAY_DATE.Attributes["style"] = "display: inherit"; Li_PAYMENT_RETURN.Attributes["style"] = "display: inherit"; Li_PAYMENT_COMPLEMENT.Attributes["style"] = "display: inherit"; PAYMENT_LOWER.CaptionText = "报销总额(小写):"; PAYMENT_CAP.CaptionText = "报销总额(大写):"; PREPAY_EXPENSE.CaptionText = "预支旅费:"; PAYMENT_RETURN.CaptionText = "退还金额:"; PAYMENT_COMPLEMENT.CaptionText = "补足金额:"; ExpenseDetail.Attributes["style"] = "display: inherit;"; foreach (DataControlField _DataGridColumn in GridViewEx1.Columns) { if (ColumnsCount > 5) _DataGridColumn.Visible = true; else _DataGridColumn.Visible = false; ColumnsCount--; } break; case 2000: Li_BUSINESS_PERSON.Attributes["style"] = "display: none"; Li_BUSINESS_REASON.Attributes["style"] = "display: none"; Li_PAYEE_UNIT.Attributes["style"] = "display: inherit"; Li_BANK_NAME.Attributes["style"] = "display: inherit"; Li_BANK_ACCOUNT.Attributes["style"] = "display: inherit"; Li_PAY_TYPE.Attributes["style"] = "display: inherit"; Li_PAYMENT_DETAIL.Attributes["style"] = "display: inherit"; Li_PREPAY_EXPENSE.Attributes["style"] = "display: none"; Li_PREPAY_DATE.Attributes["style"] = "display: none"; Li_PAYMENT_RETURN.Attributes["style"] = "display: none"; Li_PAYMENT_COMPLEMENT.Attributes["style"] = "display: none"; PAYMENT_LOWER.CaptionText = "付款金额(小写):"; PAYMENT_CAP.CaptionText = "付款金额(大写):"; ExpenseDetail.Attributes["style"] = "display: none"; break; case 3000: Li_BUSINESS_PERSON.Attributes["style"] = "display: none"; Li_BUSINESS_REASON.Attributes["style"] = "display: none"; Li_PAYEE_UNIT.Attributes["style"] = "display: none"; Li_BANK_NAME.Attributes["style"] = "display: none"; Li_BANK_ACCOUNT.Attributes["style"] = "display: none"; Li_PAY_TYPE.Attributes["style"] = "display: none"; Li_PAYMENT_DETAIL.Attributes["style"] = "display: none"; Li_PREPAY_EXPENSE.Attributes["style"] = "display: inherit"; Li_PREPAY_DATE.Attributes["style"] = "display: none"; Li_PAYMENT_RETURN.Attributes["style"] = "display: inherit"; Li_PAYMENT_COMPLEMENT.Attributes["style"] = "display: inherit"; PAYMENT_LOWER.CaptionText = "费用合计(小写):"; PAYMENT_CAP.CaptionText = "费用合计(大写):"; PREPAY_EXPENSE.CaptionText = "偿还预支借款:"; PAYMENT_RETURN.CaptionText = "归还多余:"; PAYMENT_COMPLEMENT.CaptionText = "补领不足:"; ExpenseDetail.Attributes["style"] = "display: inherit;"; foreach (DataControlField _DataGridColumn in GridViewEx1.Columns) { if (ColumnsCount > 5 && ColumnsCount != GridViewEx1.Columns.Count) _DataGridColumn.Visible = false; else _DataGridColumn.Visible = true; ColumnsCount--; } break; } } #endregion protected void PAYMENT_LOWER_CallBackSetControl(object sender, ClientSetEventArgs e) { try { PAYMENT_CAP.Text = PAYMENT_LOWER.Text.Trim().Replace(" ", "") == "" ? "零元" : PAYMENT_LOWER.Text.ToCurrency(); e.SetValue(PAYMENT_CAP); } catch { throw new Exception("请填入数字!"); } } } }