- 新增 RpfeDAC(SelectPage/SelectCount) - dsRPFEGrid 改 ObjectDataSource;Search/Selected 調整
612 lines
20 KiB
C#
612 lines
20 KiB
C#
using System;
|
|
using System.Data;
|
|
using System.Configuration;
|
|
using System.Collections;
|
|
using System.Web;
|
|
using System.Web.Security;
|
|
using System.Web.UI;
|
|
using System.Web.UI.WebControls;
|
|
using System.Web.UI.WebControls.WebParts;
|
|
using System.Web.UI.HtmlControls;
|
|
using System.Data.Common;
|
|
using Wellan.Data;
|
|
using Wellan.Common;
|
|
using System.Text;
|
|
using System.IO;
|
|
using System.Drawing;
|
|
using CRAX;
|
|
|
|
/// <summary>
|
|
/// 專案憑證處理
|
|
/// </summary>
|
|
public partial class forms_customer_fmRpfe : Wellan.Web.UI.WUserControlBase
|
|
{
|
|
private string _RPPYN = "";
|
|
private int _YY = 0;
|
|
private TextBox[] RPDATs = new TextBox[10];
|
|
private DropDownList[] RPACCs = new DropDownList[10];
|
|
private TextBox[] RPAMTs = new TextBox[10];
|
|
private TextBox[] RPDOCs = new TextBox[10];
|
|
private DateTime[] RPDATValues = new DateTime[10];
|
|
private int[] RPAMTValues = new int[10];
|
|
DataTable reportData;
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
//ddlBPPNM.DataSource = new BpaaDAC().GetBpaa();
|
|
//ddlBPPNM.DataBind();
|
|
//if (IsPostBack)
|
|
// RPFEGrid.DataBind();
|
|
}
|
|
|
|
protected override void OnInit(EventArgs e)
|
|
{
|
|
base.OnInit(e);
|
|
dsRPFEForm.ConnectionString = ConnectionString;
|
|
dsRPFE_RPACC.ConnectionString = ConnectionString;
|
|
dsRPFE_RPENO.ConnectionString = ConnectionString;
|
|
|
|
_RPPYN = GetStringParam("RPPYN");
|
|
_YY = GetIntParam("YY");
|
|
|
|
if (_YY > 0)
|
|
{
|
|
txtYY.Text = _YY.ToString();
|
|
ddlBPPNM.DataSource = new BpaaDAC().GetBpaa(_YY + WGuard1.CY11);
|
|
ddlBPPNM.DataBind();
|
|
ListItem item = ddlBPPNM.Items.FindByValue(_RPPYN);
|
|
if (item != null)
|
|
item.Selected = true;
|
|
}
|
|
else
|
|
{
|
|
txtYY.Focus();
|
|
}
|
|
|
|
MultiView1.Visible = _RPPYN != "";
|
|
|
|
dsRPFE_RPACC.SelectParameters["RPPYN"].DefaultValue = _RPPYN;
|
|
dsRPFE_RPENO.SelectParameters["RPPYN"].DefaultValue = _RPPYN;
|
|
|
|
RPDATs[0] = txtRPFE_RPDAT_01;
|
|
RPDATs[1] = txtRPFE_RPDAT_02;
|
|
RPDATs[2] = txtRPFE_RPDAT_03;
|
|
RPDATs[3] = txtRPFE_RPDAT_04;
|
|
RPDATs[4] = txtRPFE_RPDAT_05;
|
|
RPDATs[5] = txtRPFE_RPDAT_06;
|
|
RPDATs[6] = txtRPFE_RPDAT_07;
|
|
RPDATs[7] = txtRPFE_RPDAT_08;
|
|
RPDATs[8] = txtRPFE_RPDAT_09;
|
|
RPDATs[9] = txtRPFE_RPDAT_10;
|
|
|
|
RPACCs[0] = ddlRPFE_RPACC_01;
|
|
RPACCs[1] = ddlRPFE_RPACC_02;
|
|
RPACCs[2] = ddlRPFE_RPACC_03;
|
|
RPACCs[3] = ddlRPFE_RPACC_04;
|
|
RPACCs[4] = ddlRPFE_RPACC_05;
|
|
RPACCs[5] = ddlRPFE_RPACC_06;
|
|
RPACCs[6] = ddlRPFE_RPACC_07;
|
|
RPACCs[7] = ddlRPFE_RPACC_08;
|
|
RPACCs[8] = ddlRPFE_RPACC_09;
|
|
RPACCs[9] = ddlRPFE_RPACC_10;
|
|
|
|
RPAMTs[0] = txtRPFE_RPAMT_01;
|
|
RPAMTs[1] = txtRPFE_RPAMT_02;
|
|
RPAMTs[2] = txtRPFE_RPAMT_03;
|
|
RPAMTs[3] = txtRPFE_RPAMT_04;
|
|
RPAMTs[4] = txtRPFE_RPAMT_05;
|
|
RPAMTs[5] = txtRPFE_RPAMT_06;
|
|
RPAMTs[6] = txtRPFE_RPAMT_07;
|
|
RPAMTs[7] = txtRPFE_RPAMT_08;
|
|
RPAMTs[8] = txtRPFE_RPAMT_09;
|
|
RPAMTs[9] = txtRPFE_RPAMT_10;
|
|
|
|
RPDOCs[0] = txtRPFE_RPDOC_01;
|
|
RPDOCs[1] = txtRPFE_RPDOC_02;
|
|
RPDOCs[2] = txtRPFE_RPDOC_03;
|
|
RPDOCs[3] = txtRPFE_RPDOC_04;
|
|
RPDOCs[4] = txtRPFE_RPDOC_05;
|
|
RPDOCs[5] = txtRPFE_RPDOC_06;
|
|
RPDOCs[6] = txtRPFE_RPDOC_07;
|
|
RPDOCs[7] = txtRPFE_RPDOC_08;
|
|
RPDOCs[8] = txtRPFE_RPDOC_09;
|
|
RPDOCs[9] = txtRPFE_RPDOC_10;
|
|
|
|
//_RPPYN = ViewState["RPNUM"] != null ? ViewState["RPNUM"].ToString() : "";
|
|
//_RPRDT1 = ViewState["RPRDT1"] != null ? ViewState["RPRDT1"].ToString() : "";
|
|
//_RPRDT2 = ViewState["RPRDT2"] != null ? ViewState["RPRDT2"].ToString() : "";
|
|
|
|
StringBuilder sb1 = new StringBuilder();
|
|
StringBuilder sb2 = new StringBuilder();
|
|
StringBuilder sb3 = new StringBuilder();
|
|
for (int i = 0; i < 10; i++)
|
|
{
|
|
sb1.Append(String.Format("\"{0}\"", RPDATs[i].ClientID) + (i < 9 ? "," : ""));
|
|
sb2.Append(String.Format("\"{0}\"", RPAMTs[i].ClientID) + (i < 9 ? "," : ""));
|
|
sb3.Append(String.Format("\"{0}\"", RPDOCs[i].ClientID) + (i < 9 ? "," : ""));
|
|
}
|
|
Page.ClientScript.RegisterArrayDeclaration("RPDATIds", sb1.ToString());
|
|
Page.ClientScript.RegisterArrayDeclaration("RPAMTIds", sb2.ToString());
|
|
Page.ClientScript.RegisterArrayDeclaration("RPDOCIds", sb3.ToString());
|
|
|
|
GetGridViewRowColor(RPFEGrid);
|
|
|
|
reportData = new DataTable();
|
|
reportData.Columns.Add("RPREN", typeof(String));
|
|
reportData.Columns.Add("RPPYN", typeof(String));
|
|
reportData.Columns.Add("ProjectName", typeof(String));
|
|
reportData.Columns.Add("Amount", typeof(Int32));
|
|
reportData.Columns.Add("Document", typeof(String));
|
|
|
|
if (MultiView1.ActiveViewIndex == 0)
|
|
SetClientFocus(txtRPFE_RPDAT_01);
|
|
|
|
Search();
|
|
}
|
|
|
|
// 查詢動作
|
|
private new void Search()
|
|
{
|
|
dsRPFEGrid.SelectParameters["RPPYN"].DefaultValue = _RPPYN;
|
|
}
|
|
|
|
private int CheckInsertInput(int index)
|
|
{
|
|
RPDATs[index].Text = RPDATs[index].Text.Trim();
|
|
RPAMTs[index].Text = RPAMTs[index].Text.Trim();
|
|
RPDOCs[index].Text = RPDOCs[index].Text.Trim();
|
|
|
|
// 有輸入的條件為:日期有輸入且合理,金額大於0,備註無所謂
|
|
bool rpdatValid = false;
|
|
bool rpamtValid = false;
|
|
rpdatValid = CheckDate(RPDATs[index].Text + "01", out RPDATValues[index]);
|
|
rpamtValid = Int32.TryParse(RPAMTs[index].Text, out RPAMTValues[index]);
|
|
if (RPDATs[index].Text != "" && rpdatValid &&
|
|
RPAMTs[index].Text != "" && rpamtValid && RPAMTValues[index] > 0)
|
|
{
|
|
return 0;
|
|
}
|
|
if (RPDATs[index].Text == "" && RPAMTs[index].Text == "")
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
int returnValue = 0;
|
|
if (RPDATs[index].Text != "" && !rpdatValid)
|
|
{
|
|
returnValue -= 1;
|
|
}
|
|
if (RPAMTs[index].Text != "" && !rpamtValid)
|
|
{
|
|
returnValue -= 2;
|
|
}
|
|
return returnValue;
|
|
}
|
|
|
|
private new void CalcFields(SqlDataSourceCommandEventArgs e)
|
|
{
|
|
}
|
|
|
|
protected void dsRPFEForm_Inserting(object sender, SqlDataSourceCommandEventArgs e)
|
|
{
|
|
CalcFields(e);
|
|
}
|
|
|
|
protected void dsRPFEForm_Updating(object sender, SqlDataSourceCommandEventArgs e)
|
|
{
|
|
CalcFields(e);
|
|
}
|
|
|
|
protected void RPFEGrid_DataBound(object sender, EventArgs e)
|
|
{
|
|
GridView_DataBound(sender, e);
|
|
if (RPFEGrid.Rows.Count > 0)
|
|
{
|
|
if (RPFEGrid.SelectedIndex == -1)
|
|
RPFEGrid.SelectedIndex = 0;
|
|
if (RPFEGrid.SelectedIndex > RPFEGrid.Rows.Count - 1)
|
|
RPFEGrid.SelectedIndex = RPFEGrid.Rows.Count - 1;
|
|
RPFEForm.DataBind();
|
|
}
|
|
}
|
|
|
|
protected void RPFEGrid_PageIndexChanged(object sender, EventArgs e)
|
|
{
|
|
Search();
|
|
RPFEGrid.SelectedIndex = 0;
|
|
RPFEGrid.DataBind();
|
|
}
|
|
|
|
protected void dsRPFEGrid_Selected(object sender, ObjectDataSourceStatusEventArgs e)
|
|
{
|
|
if (e.ReturnValue is Int32 && WDAC.GetInt32Value(e.ReturnValue) == 0)
|
|
{
|
|
//RPFEForm.ChangeMode(FormViewMode.Insert);
|
|
//RPFEForm_ModeChanged(sender, e);
|
|
}
|
|
}
|
|
|
|
protected void RPFEForm_ItemCommand(object sender, FormViewCommandEventArgs e)
|
|
{
|
|
switch (e.CommandName)
|
|
{
|
|
case "APPEND":
|
|
MultiView1.ActiveViewIndex = 0;
|
|
break;
|
|
case "Print":
|
|
RPFEForm.DataBind();
|
|
if (RPFEForm.DataItem != null)
|
|
{
|
|
DataRowView rv = RPFEForm.DataItem as DataRowView;
|
|
AddReportData(rv["RPREN"].ToString(),
|
|
rv["RPPYN"].ToString(),
|
|
GetLookup("BPAA", rv["RPPYN"].ToString(), "BPPYM", ""),
|
|
Convert.ToInt32(rv["RPAMT"]),
|
|
rv["RPACC"].ToString(),
|
|
Convert.ToDateTime(rv["RPDAT"]),
|
|
rv["RPDOC"].ToString());
|
|
PrintReport();
|
|
}
|
|
break;
|
|
case "Cancel":
|
|
Search();
|
|
RPFEForm.ChangeMode(FormViewMode.ReadOnly);
|
|
RPFEForm_ModeChanged(sender, e);
|
|
break;
|
|
}
|
|
}
|
|
|
|
protected void RPFEForm_ItemDeleted(object sender, FormViewDeletedEventArgs e)
|
|
{
|
|
Search();
|
|
RPFEGrid.DataBind();
|
|
if (RPFEGrid.SelectedIndex > RPFEGrid.Rows.Count - 1)
|
|
{
|
|
RPFEGrid.SelectedIndex = RPFEGrid.Rows.Count - 1;
|
|
RPFEGrid.DataBind();
|
|
}
|
|
RPFEForm.DataBind();
|
|
}
|
|
|
|
protected void RPFEForm_ItemInserted(object sender, FormViewInsertedEventArgs e)
|
|
{
|
|
Search();
|
|
}
|
|
|
|
protected void RPFEForm_ItemUpdated(object sender, FormViewUpdatedEventArgs e)
|
|
{
|
|
Search();
|
|
}
|
|
|
|
protected void RPFEForm_ModeChanged(object sender, EventArgs e)
|
|
{
|
|
switch (RPFEForm.CurrentMode)
|
|
{
|
|
case FormViewMode.ReadOnly:
|
|
RPFEGrid.Visible = true;
|
|
RPFEGrid.DataBind();
|
|
if (RPFEGrid.Rows.Count > 0)
|
|
{
|
|
if (RPFEGrid.SelectedIndex == -1)
|
|
{
|
|
RPFEGrid.SelectedIndex = 0;
|
|
}
|
|
|
|
if (OldMode == FormViewMode.Insert)
|
|
{
|
|
RPFEGrid.PageIndex = RPFEGrid.PageCount - 1;
|
|
RPFEGrid.DataBind();
|
|
RPFEGrid.SelectedIndex = RPFEGrid.Rows.Count - 1;
|
|
}
|
|
RPFEGrid.DataBind();
|
|
RPFEForm.DataBind();
|
|
}
|
|
break;
|
|
|
|
case FormViewMode.Edit:
|
|
RPFEGrid.Visible = false;
|
|
break;
|
|
|
|
case FormViewMode.Insert:
|
|
RPFEGrid.Visible = false;
|
|
break;
|
|
}
|
|
}
|
|
|
|
protected void RPFEForm_ModeChanging(object sender, FormViewModeEventArgs e)
|
|
{
|
|
OldMode = (sender as FormView).CurrentMode;
|
|
}
|
|
|
|
protected void RPFEForm_DataBound(object sender, EventArgs e)
|
|
{
|
|
switch (RPFEForm.CurrentMode)
|
|
{
|
|
case FormViewMode.Edit:
|
|
SetClientFocus(RPFEForm, "txtRPFE_RPDAT");
|
|
break;
|
|
}
|
|
}
|
|
|
|
protected void RPFEGrid_RowDataBound(object sender, GridViewRowEventArgs e)
|
|
{
|
|
SetGridViewMouseBehavier(RPFEGrid, e.Row);
|
|
//GridView_RowDataBound_Shrink_ViewState(sender, e);
|
|
}
|
|
|
|
protected void RPFEGrid_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
foreach (GridViewRow row in RPFEGrid.Rows)
|
|
SetGridViewMouseBehavier(RPFEGrid, row);
|
|
}
|
|
|
|
protected void RPFEForm_ItemDeleting(object sender, FormViewDeleteEventArgs e)
|
|
{
|
|
// 刪除前檢查
|
|
// TODO: 檢查關帳日
|
|
}
|
|
|
|
protected new bool CheckInput(System.Collections.Specialized.IOrderedDictionary values)
|
|
{
|
|
cvMessage.ErrorMessage = "";
|
|
cvMessage.IsValid = true;
|
|
|
|
bool result = true;
|
|
values["RPDAT"] = CheckDate(values["RPDAT"].ToString() + "01", "請輸入正確的日期", ref result, cvMessage);
|
|
|
|
ProcessCustomValidatorMessage(cvMessage);
|
|
return result;
|
|
}
|
|
|
|
protected void RPFEForm_ItemInserting(object sender, FormViewInsertEventArgs e)
|
|
{
|
|
//e.Values["RPTYP"] = (RPFEForm.FindControl("ddlRPFE_RPTYP") as DropDownList).SelectedValue;
|
|
//e.Cancel = !CheckInput(e.Values);
|
|
}
|
|
|
|
protected void RPFEForm_ItemUpdating(object sender, FormViewUpdateEventArgs e)
|
|
{
|
|
e.Cancel = !CheckInput(e.NewValues);
|
|
}
|
|
|
|
protected void cvRPTCT_ServerValidate(object source, ServerValidateEventArgs args)
|
|
{
|
|
int i;
|
|
args.IsValid = args.Value != "" && Int32.TryParse(args.Value, out i);
|
|
}
|
|
|
|
// 新增畫面之存檔按鈕
|
|
protected void btnSave1_Click(object sender, EventArgs e)
|
|
{
|
|
// 存檔
|
|
// 1. 檢查各組輸入
|
|
int[] hasInput = new int[10];
|
|
bool valid = true;
|
|
bool saveOk = false;
|
|
bool needSave = false;
|
|
cvMessage.ErrorMessage = "";
|
|
cvMessage.IsValid = true;
|
|
for (int i = 0; i < RPACCs.Length; i++)
|
|
{
|
|
hasInput[i] = CheckInsertInput(i);
|
|
switch (hasInput[i])
|
|
{
|
|
case 0:
|
|
needSave = true;
|
|
break;
|
|
case -1:
|
|
valid = false;
|
|
cvMessage.ErrorMessage += String.Format("第{0}組輸入月份不合理<br/>", i + 1);
|
|
break;
|
|
case -2:
|
|
valid = false;
|
|
cvMessage.ErrorMessage += String.Format("第{0}組輸入金額不合理<br/>", i + 1);
|
|
break;
|
|
case -3:
|
|
valid = false;
|
|
cvMessage.ErrorMessage += String.Format("第{0}組輸入月份與金額不合理<br/>", i + 1);
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!valid)
|
|
{
|
|
cvMessage.IsValid = false;
|
|
ProcessCustomValidatorMessage(cvMessage);
|
|
return;
|
|
}
|
|
|
|
if (!needSave)
|
|
return;
|
|
|
|
// 2. 各組輸入存檔
|
|
DbCommand cmd1 = Query.NewCommand(
|
|
@"INSERT INTO RPFE
|
|
(RPREN, RPPYN, RPDAT, RPACC, RPAMT, RPDOC,
|
|
APPNO, TRDAT, TRMOD, TRUSR)
|
|
VALUES
|
|
(@RPREN, @RPPYN, @RPDAT, @RPACC, @RPAMT, @RPDOC,
|
|
1, GETDATE(), 'INSERT', @TRUSR)");
|
|
cmd1.Parameters.Add(Query.NewParameter("RPREN", DbType.String));
|
|
cmd1.Parameters.Add(Query.NewParameter("RPPYN", _RPPYN));
|
|
cmd1.Parameters.Add(Query.NewParameter("RPDAT", DbType.DateTime));
|
|
cmd1.Parameters.Add(Query.NewParameter("RPACC", DbType.String));
|
|
cmd1.Parameters.Add(Query.NewParameter("RPAMT", DbType.Int32));
|
|
cmd1.Parameters.Add(Query.NewParameter("RPDOC", DbType.String));
|
|
cmd1.Parameters.Add(Query.NewParameter("TRUSR", UserId));
|
|
|
|
// 取得專案年度名稱
|
|
string bppym = GetLookup("BPAA", _RPPYN, "BPPYM", "");
|
|
if (bppym == "")
|
|
{
|
|
string[] tmp = ddlBPPNM.SelectedItem.Text.Split('】');
|
|
bppym = tmp.Length > 1 ? tmp[1] : ddlBPPNM.SelectedItem.Text;
|
|
}
|
|
|
|
DbConnection conn = Query.NewConnection(ConnectionString);
|
|
cmd1.Connection = conn;
|
|
conn.Open();
|
|
DbTransaction tran = conn.BeginTransaction();
|
|
cmd1.Transaction = tran;
|
|
try
|
|
{
|
|
for (int i = 0; i < RPACCs.Length; i++)
|
|
{
|
|
if (hasInput[i] == 0)
|
|
{
|
|
string rpren = WGuard1.WNextRen(RPDATValues[i], "RPFE", "RPREN", "YYYYMM<999999>", "", tran);
|
|
|
|
cmd1.Parameters["RPREN"].Value = rpren;
|
|
cmd1.Parameters["RPDAT"].Value = RPDATValues[i];
|
|
cmd1.Parameters["RPACC"].Value = RPACCs[i].SelectedValue;
|
|
cmd1.Parameters["RPAMT"].Value = RPAMTValues[i];
|
|
cmd1.Parameters["RPDOC"].Value = RPDOCs[i].Text;
|
|
cmd1.ExecuteNonQuery();
|
|
|
|
// 將資料放進報表要用的 DataTable
|
|
AddReportData(rpren, _RPPYN, bppym, RPAMTValues[i], RPACCs[i].Text, RPDATValues[i], RPDOCs[i].Text);
|
|
}
|
|
}
|
|
tran.Commit();
|
|
saveOk = true;
|
|
|
|
// 清除畫面資料
|
|
for (int i = 0; i < RPDATs.Length; i++)
|
|
{
|
|
RPDATs[i].Text = "";
|
|
RPAMTs[i].Text = "";
|
|
RPDOCs[i].Text = "";
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
tran.Rollback();
|
|
cvMessage.ErrorMessage = ex.Message;
|
|
cvMessage.IsValid = false;
|
|
}
|
|
finally
|
|
{
|
|
conn.Close();
|
|
}
|
|
|
|
// 3. 是否要列印單據黏貼條
|
|
if (saveOk && cbWantPrint.Checked)
|
|
{
|
|
PrintReport();
|
|
}
|
|
}
|
|
|
|
// 將資料加入報表資料中
|
|
protected void AddReportData(string rpren, string rppyn, string projectName, int amount, string rpacc, DateTime rpdat, string rpdoc)
|
|
{
|
|
reportData.Rows.Add(rpren, rppyn, projectName, amount, rpdat.ToString("yyyy\"年\"MM\"月\"") + GetBPACC(rpacc) + (rpdoc != "" ? "(" + rpdoc + ")" : ""));
|
|
}
|
|
|
|
// 列印報表
|
|
protected void PrintReport()
|
|
{
|
|
WTableTr tableTr = new WTableTr();
|
|
string realFileName = tableTr.ExportToMDB(reportData, ReportDataPath + "RPFE_01.mdb", "RPFE_01", true, true, false);
|
|
realFileName = "reportData/" + Path.GetFileName(realFileName);
|
|
reportData.Dispose();
|
|
tableTr = null;
|
|
|
|
//WCrExport crex = new WCrExport();
|
|
//crex.LoadReport(ReportDataPath + "RPFE_01.rpt", realFileName);
|
|
//crex.WebExportAsPdf(Response);
|
|
//crex.CloseReport();
|
|
//RegisterStartupScript("REPORT_OBJECT", CRAXHelper.GetCRAXViewerDeclaration());
|
|
ReportParameter rp = new ReportParameter();
|
|
rp.Add("公司名稱", GetString("COMPANY.NAME"));
|
|
string realParamFileName = "reportData/" + Path.GetFileName(rp.Save(ReportDataPath + "RPFE_01.rpp", true));
|
|
|
|
RegisterStartupScript("REPORT_JS",
|
|
CRAXHelper.GetReportScript(Context,
|
|
GetWebRootUrl() + "CRAX/",
|
|
"../report/RPFE_01.rpt",
|
|
"../" + realFileName,
|
|
"../" + realParamFileName,
|
|
"",
|
|
"RPFE_01.rpt",
|
|
"RPFE_01.mdb",
|
|
"RPFE_01.rpp",
|
|
"",
|
|
"",
|
|
"",
|
|
"",
|
|
"",
|
|
0,
|
|
0));
|
|
}
|
|
|
|
// 新增畫面之取消按鈕
|
|
protected void btnCancel1_Click(object sender, EventArgs e)
|
|
{
|
|
// 回到處理畫面
|
|
MultiView1.ActiveViewIndex = 1;
|
|
}
|
|
|
|
protected string GetBPACC(string bpacc)
|
|
{
|
|
DbCommand cmd = Query.NewCommand("SELECT BPAME FROM BPAB WHERE BPPYN=@BPPYN AND BPACC=@BPACC");
|
|
cmd.Parameters.Add(Query.NewParameter("BPPYN", _RPPYN));
|
|
cmd.Parameters.Add(Query.NewParameter("BPACC", bpacc));
|
|
object o = Query.ExecuteScalar(cmd);
|
|
if (o == null || o == DBNull.Value)
|
|
return "";
|
|
else
|
|
return o.ToString();
|
|
}
|
|
|
|
protected void cvRPAMT_ServerValidate(object source, ServerValidateEventArgs args)
|
|
{
|
|
int i;
|
|
args.IsValid = args.Value != "" && Int32.TryParse(args.Value, out i) && i > 0;
|
|
}
|
|
|
|
protected void Next_Click(object sender, EventArgs e)
|
|
{
|
|
string rppyn = ddlBPPNM.SelectedValue;
|
|
|
|
// 檢查此使用者是否有權限處理這個專案
|
|
BprmDAC bprm = new BprmDAC(Query);
|
|
if (!bprm.GetRight(rppyn, UserId))
|
|
{
|
|
MultiView1.Visible = false;
|
|
cvMessage.ErrorMessage = "對不起,你沒有處理這個專案的權限!";
|
|
cvMessage.IsValid = false;
|
|
return;
|
|
}
|
|
|
|
// 檢查科目是否有設定
|
|
dsRPFE_RPACC.SelectParameters["RPPYN"].DefaultValue = rppyn;
|
|
DataView dv = dsRPFE_RPACC.Select(new DataSourceSelectArguments()) as DataView;
|
|
if (dv.Count == 0)
|
|
{
|
|
MultiView1.Visible = false;
|
|
cvMessage.ErrorMessage = "此專案年度接單尚未設定科目";
|
|
cvMessage.IsValid = false;
|
|
return;
|
|
}
|
|
|
|
ParamList["RPPYN"] = rppyn;
|
|
DoAfterCommand("RPFE");
|
|
}
|
|
|
|
protected void btnYY_Click(object sender, EventArgs e)
|
|
{
|
|
int year;
|
|
if (!Int32.TryParse(txtYY.Text.Trim(), out year))
|
|
{
|
|
cvMessage.IsValid = false;
|
|
cvMessage.ErrorMessage = "請輸入正確的年度";
|
|
return;
|
|
}
|
|
|
|
MultiView1.Visible = false;
|
|
ParamList["YY"] = year;
|
|
ParamList["RPPYN"] = "";
|
|
DoAfterCommand("RPFE");
|
|
}
|
|
}
|