2025-03-27 15:05:14 +08:00

395 lines
20 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.EXPENSEBILL>
{
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<Running.Business.EXPENSEDETAIL>(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<Running.Business.EXPENSEBILL> e)
{
base.OnDataAction_BeforeSave(e);
}
//查询
protected void ButtonSearch_CallBackClick(object sender, ClientSetEventArgs e)
{
GridViewEx1.Selecting<Running.Business.EXPENSEDETAIL>(ObjectDataSource1, GridPageEx1);
//设置UI变化
e.SetValue(GridViewEx1);
e.SetValue(GridPageEx1);
}
//翻页事件
protected void GridPageEx1_CallBackPageChanged(object src, ClientSetEventArgs e)
{
GridViewEx1.Pagging<Running.Business.EXPENSEDETAIL>(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<Running.Business.EXPENSEDETAIL>(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("请填入数字!");
}
}
}
}