- BprmDAC 新增 SelectPage/SelectCount - dsBPRMGrid 改 ObjectDataSource;dsBPRM_Selected 拆分為 grid/form
363 lines
11 KiB
C#
363 lines
11 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.Text;
|
|
using Wellan.Common;
|
|
using Wellan.Data;
|
|
using System.Data.Common;
|
|
|
|
/// <summary>
|
|
/// 專案處理人員
|
|
/// </summary>
|
|
public partial class forms_customer_fmBprm : Wellan.Web.UI.WUserControlBase
|
|
{
|
|
protected string _BPPNM = "";
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
//if (IsPostBack)
|
|
// gvBPRM.DataBind();
|
|
}
|
|
|
|
protected override void OnInit(EventArgs e)
|
|
{
|
|
base.OnInit(e);
|
|
|
|
if (ddlBCUS.Items.Count == 0)
|
|
{
|
|
DbCommand cmd1 = Query.NewCommand();
|
|
cmd1.CommandText =
|
|
@"SELECT '' AS BCNUM, '(請選擇客戶)' AS BCNAM
|
|
UNION ALL
|
|
SELECT BCNUM, '(' + BCNUM + ') ' + BCNAM AS BCNAM
|
|
FROM BCUS
|
|
ORDER BY BCNUM";
|
|
ddlBCUS.DataSource = Query.Select(cmd1);
|
|
ddlBCUS.DataValueField = "BCNUM";
|
|
ddlBCUS.DataTextField = "BCNAM";
|
|
ddlBCUS.DataBind();
|
|
}
|
|
|
|
BindBPRJListBox();
|
|
|
|
/* 舊作法程式
|
|
dsBPRMForm.ConnectionString = ConnectionString;
|
|
dsBPRMGrid.ConnectionString = ConnectionString;
|
|
_BPPNM = GetStringParam("BPPNM");
|
|
GetGridViewRowColor(gvBPRM);
|
|
Search();
|
|
*/
|
|
}
|
|
|
|
#region 新作法程式
|
|
|
|
protected void BindBPRJListBox()
|
|
{
|
|
DbCommand cmd1 = Query.NewCommand();
|
|
cmd1.CommandText =
|
|
@"SELECT BPPNM, '(' + BPPNM + ') ' + BPPME AS BPPME
|
|
FROM BPRJ
|
|
WHERE BPNUM=@BPNUM
|
|
AND EXISTS (SELECT 1 FROM BPAA WHERE BPAA.BPPNM=BPRJ.BPPNM AND (BPAA.BPPNM = 'TYB00001' OR BPAA.BPPNM = 'JYB00001' OR BPAA.BPYER=@BPYER))
|
|
ORDER BY BPPNM";
|
|
Query.AddParam(cmd1, "BPNUM", ddlBCUS.SelectedValue);
|
|
Query.AddParam(cmd1, "BPYER", WQuery.GetInt32Value(txtYear.Text));
|
|
|
|
lbProject.DataSource = Query.Select(cmd1);
|
|
lbProject.DataValueField = "BPPNM";
|
|
lbProject.DataTextField = "BPPME";
|
|
lbProject.DataBind();
|
|
|
|
if (lbProject.Items.Count > 0 && lbProject.SelectedIndex == -1)
|
|
{
|
|
lbProject.SelectedIndex = 0;
|
|
BindWorkerListBox();
|
|
}
|
|
}
|
|
|
|
protected void BindWorkerListBox()
|
|
{
|
|
DbCommand cmd1 = Query.NewCommand();
|
|
cmd1.CommandText = String.Format(
|
|
@"SELECT BPENO, '(' + BPENO + ') ' + BPNME AS BPNME FROM BPSNView
|
|
WHERE BPEDY IS NULL
|
|
AND BPDPT IN {0}
|
|
AND EXISTS (SELECT BWEH.BPENO FROM BWEH WHERE BWEH.BPGLP='03' AND BWEH.BPENO=BPSNView.BPENO)
|
|
AND EXISTS (SELECT * FROM BPRM WHERE BPPNM=@BPPNM AND BPRM.BPENO=BPSNView.BPENO)", PublicVariable.InnerDepartment);
|
|
Query.AddParam(cmd1, "BPPNM", lbProject.SelectedValue);
|
|
|
|
DbCommand cmd2 = Query.NewCommand();
|
|
cmd2.CommandText = String.Format(
|
|
@"SELECT BPENO, '(' + BPENO + ') ' + BPNME AS BPNME FROM BPSNView
|
|
WHERE BPEDY IS NULL
|
|
AND BPDPT IN {0}
|
|
AND EXISTS (SELECT BWEH.BPENO FROM BWEH WHERE BWEH.BPGLP='03' AND BWEH.BPENO=BPSNView.BPENO)
|
|
AND NOT EXISTS (SELECT * FROM BPRM WHERE BPPNM=@BPPNM AND BPRM.BPENO=BPSNView.BPENO)", PublicVariable.InnerDepartment);
|
|
Query.AddParam(cmd2, "BPPNM", lbProject.SelectedValue);
|
|
|
|
lbInWork.DataSource = Query.Select(cmd1);
|
|
lbInWork.DataValueField = "BPENO";
|
|
lbInWork.DataTextField = "BPNME";
|
|
lbInWork.DataBind();
|
|
|
|
lbOutWork.DataSource = Query.Select(cmd2);
|
|
lbOutWork.DataValueField = "BPENO";
|
|
lbOutWork.DataTextField = "BPNME";
|
|
lbOutWork.DataBind();
|
|
}
|
|
|
|
protected void WButton1_Click(object sender, EventArgs e)
|
|
{
|
|
BindBPRJListBox();
|
|
}
|
|
|
|
protected void lbProject_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
BindWorkerListBox();
|
|
}
|
|
|
|
protected void btnMoveIn_Click(object sender, ImageClickEventArgs e)
|
|
{
|
|
DbCommand cmd1 = Query.NewCommand();
|
|
cmd1.CommandText =
|
|
@"SELECT BPENO FROM BPRM WHERE BPPNM=@BPPNM AND BPENO=@BPENO";
|
|
|
|
DbCommand cmd2 = Query.NewCommand();
|
|
cmd2.CommandText =
|
|
@"INSERT INTO BPRM (BPPNM, BPENO, APPNO) VALUES (@BPPNM, @BPENO, 1)";
|
|
|
|
foreach (ListItem item in lbOutWork.Items)
|
|
{
|
|
if (!item.Selected)
|
|
continue;
|
|
|
|
Query.AddParam(cmd1, "BPPNM", lbProject.SelectedValue);
|
|
Query.AddParam(cmd1, "BPENO", item.Value);
|
|
if (Query.Select(cmd1).Rows.Count == 0)
|
|
{
|
|
Query.AddParam(cmd2, "BPPNM", lbProject.SelectedValue);
|
|
Query.AddParam(cmd2, "BPENO", item.Value);
|
|
Query.ExecuteNonQuery(cmd2);
|
|
}
|
|
}
|
|
|
|
BindWorkerListBox();
|
|
}
|
|
|
|
protected void btnMoveOut_Click(object sender, ImageClickEventArgs e)
|
|
{
|
|
DbCommand cmd1 = Query.NewCommand();
|
|
cmd1.CommandText =
|
|
@"DELETE FROM BPRM WHERE BPPNM=@BPPNM AND BPENO=@BPENO";
|
|
|
|
foreach (ListItem item in lbInWork.Items)
|
|
{
|
|
if (!item.Selected)
|
|
continue;
|
|
|
|
Query.AddParam(cmd1, "BPPNM", lbProject.SelectedValue);
|
|
Query.AddParam(cmd1, "BPENO", item.Value);
|
|
Query.ExecuteNonQuery(cmd1);
|
|
}
|
|
|
|
BindWorkerListBox();
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 舊作法程式
|
|
|
|
// 查詢動作
|
|
private new void Search()
|
|
{
|
|
dsBPRMGrid.SelectParameters["BPPNM"].DefaultValue = _BPPNM;
|
|
}
|
|
|
|
protected void dsBPRMGrid_Selected(object sender, ObjectDataSourceStatusEventArgs e)
|
|
{
|
|
if (e.ReturnValue is Int32 && WDAC.GetInt32Value(e.ReturnValue) == 0)
|
|
{
|
|
fvBPRM.ChangeMode(FormViewMode.Insert);
|
|
}
|
|
}
|
|
|
|
protected void dsBPRM_Selected(object sender, SqlDataSourceStatusEventArgs e)
|
|
{
|
|
if (e.AffectedRows == 0)
|
|
{
|
|
fvBPRM.ChangeMode(FormViewMode.Insert);
|
|
}
|
|
}
|
|
|
|
protected void fvBPRM_DataBound(object sender, EventArgs e)
|
|
{
|
|
switch (fvBPRM.CurrentMode)
|
|
{
|
|
case FormViewMode.Insert:
|
|
case FormViewMode.Edit:
|
|
RegisterLookupEvent(fvBPRM, "btnBPRM_BPENO_WQRY", "txtBPRM_BPENO", "txtBPRM_BPENO,lbBPRM_BPENOX", "BPSN",
|
|
String.Format("BPEDY IS NULL AND BPDPT IN {0} AND NOT EXISTS (SELECT * FROM BPRM WHERE BPRM.BPPNM='" + _BPPNM + "' AND BPRM.BPENO=BPSNView.BPENO)", PublicVariable.InnerDepartment));
|
|
SetClientFocus(fvBPRM, "txtBPRM_BPENO");
|
|
break;
|
|
}
|
|
}
|
|
|
|
protected void gvBPRM_DataBound(object sender, EventArgs e)
|
|
{
|
|
GridView_DataBound(sender, e);
|
|
if (gvBPRM.SelectedIndex == -1 && gvBPRM.Rows.Count > 0)
|
|
gvBPRM.SelectedIndex = 0;
|
|
fvBPRM.DataBind();
|
|
}
|
|
|
|
protected void gvBPRM_PageIndexChanged(object sender, EventArgs e)
|
|
{
|
|
Search();
|
|
gvBPRM.SelectedIndex = 0;
|
|
gvBPRM.DataBind();
|
|
}
|
|
|
|
protected void fvBPRM_ItemCommand(object sender, FormViewCommandEventArgs e)
|
|
{
|
|
switch (e.CommandName)
|
|
{
|
|
case "Cancel":
|
|
Search();
|
|
fvBPRM.ChangeMode(FormViewMode.ReadOnly);
|
|
fvBPRM_ModeChanged(sender, e);
|
|
break;
|
|
case "BPRJ":
|
|
DoAfterCommand("BPRJ");
|
|
break;
|
|
}
|
|
}
|
|
|
|
protected void fvBPRM_ModeChanged(object sender, EventArgs e)
|
|
{
|
|
if (fvBPRM.CurrentMode == FormViewMode.ReadOnly)
|
|
{
|
|
gvBPRM.Visible = true;
|
|
gvBPRM.DataBind();
|
|
if (gvBPRM.Rows.Count > 0 && gvBPRM.SelectedIndex == -1)
|
|
{
|
|
gvBPRM.SelectedIndex = 0;
|
|
}
|
|
|
|
if (OldMode == FormViewMode.Insert && gvBPRM.Rows.Count > 0)
|
|
{
|
|
gvBPRM.PageIndex = gvBPRM.PageCount - 1;
|
|
gvBPRM.DataBind();
|
|
gvBPRM.SelectedIndex = gvBPRM.Rows.Count - 1;
|
|
}
|
|
|
|
fvBPRM.DataBind();
|
|
}
|
|
else
|
|
{
|
|
gvBPRM.Visible = false;
|
|
}
|
|
}
|
|
|
|
protected void fvBPRM_ModeChanging(object sender, FormViewModeEventArgs e)
|
|
{
|
|
OldMode = (sender as FormView).CurrentMode;
|
|
}
|
|
|
|
protected void CalcFields(System.Collections.Specialized.IOrderedDictionary values)
|
|
{
|
|
}
|
|
|
|
protected bool CheckDuplicate(string bpeno)
|
|
{
|
|
DbCommand cmd = Query.NewCommand(
|
|
@"SELECT COUNT(1) FROM BPRM WHERE BPPNM=@BPPNM AND BPENO=@BPENO");
|
|
cmd.Parameters.Add(Query.NewParameter("BPPNM", _BPPNM));
|
|
cmd.Parameters.Add(Query.NewParameter("BPENO", bpeno));
|
|
object o = Query.ExecuteScalar(cmd);
|
|
return (o == null || o == DBNull.Value || Convert.ToInt32(o) == 0);
|
|
}
|
|
|
|
protected void fvBPRM_ItemInserting(object sender, FormViewInsertEventArgs e)
|
|
{
|
|
// 檢查是否重複
|
|
if (!CheckDuplicate(e.Values["BPENO"].ToString()))
|
|
{
|
|
cvMessage.ErrorMessage = "員工編號重複,請重新輸入";
|
|
cvMessage.IsValid = false;
|
|
e.Cancel = true;
|
|
}
|
|
|
|
CalcFields(e.Values);
|
|
e.Values["BPPNM"] = _BPPNM;
|
|
}
|
|
|
|
protected void fvBPRM_ItemUpdating(object sender, FormViewUpdateEventArgs e)
|
|
{
|
|
// 檢查是否重複
|
|
if (e.OldValues["BPENO"].ToString() != e.NewValues["BPENO"].ToString() && !CheckDuplicate(e.NewValues["BPENO"].ToString()))
|
|
{
|
|
cvMessage.ErrorMessage = "員工編號重複,請重新輸入";
|
|
cvMessage.IsValid = false;
|
|
e.Cancel = true;
|
|
}
|
|
|
|
CalcFields(e.NewValues);
|
|
}
|
|
|
|
protected void gvBPRM_RowDataBound(object sender, GridViewRowEventArgs e)
|
|
{
|
|
SetGridViewMouseBehavier(sender as GridView, e.Row);
|
|
//GridView_RowDataBound_Shrink_ViewState(sender, e);
|
|
}
|
|
|
|
protected void gvBPRM_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
foreach (GridViewRow row in (sender as GridView).Rows)
|
|
SetGridViewMouseBehavier(sender as GridView, row);
|
|
}
|
|
|
|
protected void cvBPENO_ServerValidate(object source, ServerValidateEventArgs args)
|
|
{
|
|
BPSN_DAC bpsn = new BPSN_DAC(WConfig.GetConnectionConfig(), WConfig.GetConnectionConfigName());
|
|
args.IsValid = args.Value != "" && bpsn.IsExist(args.Value, true) && bpsn.GetDepartment(args.Value) != "X";
|
|
}
|
|
|
|
protected void dsBPRMForm_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
|
|
{
|
|
e.Command.Parameters["@BPPNM"].Value = _BPPNM;
|
|
}
|
|
|
|
protected void fvBPRM_ItemDeleted(object sender, FormViewDeletedEventArgs e)
|
|
{
|
|
Search();
|
|
gvBPRM.DataBind();
|
|
if (gvBPRM.SelectedIndex > gvBPRM.Rows.Count - 1)
|
|
{
|
|
gvBPRM.SelectedIndex = gvBPRM.Rows.Count - 1;
|
|
gvBPRM.DataBind();
|
|
}
|
|
fvBPRM.DataBind();
|
|
}
|
|
|
|
protected void fvBPRM_ItemInserted(object sender, FormViewInsertedEventArgs e)
|
|
{
|
|
Search();
|
|
}
|
|
|
|
protected void fvBPRM_ItemUpdated(object sender, FormViewUpdatedEventArgs e)
|
|
{
|
|
Search();
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
|
}
|