- BprmDAC 新增 SelectPage/SelectCount - dsBPRMGrid 改 ObjectDataSource;dsBPRM_Selected 拆分為 grid/form
123 lines
3.8 KiB
C#
123 lines
3.8 KiB
C#
using System;
|
|
using System.Data;
|
|
using System.Configuration;
|
|
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 System.ComponentModel;
|
|
using System.Text;
|
|
using Wellan.Data;
|
|
|
|
/// <summary>
|
|
/// 用來取得專案處理人員資料的類別
|
|
/// </summary>
|
|
[DataObject(true)]
|
|
public class BprmDAC : Wellan.Data.WDAC
|
|
{
|
|
public BprmDAC()
|
|
{
|
|
}
|
|
|
|
public BprmDAC(string connectionConfig, string connectionConfigName)
|
|
: this()
|
|
{
|
|
this._connectionConfig = connectionConfig;
|
|
this._connectionConfigName = connectionConfigName;
|
|
}
|
|
|
|
public BprmDAC(WQuery query)
|
|
{
|
|
this._query = query;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 取得某使用者是否有處理某專案的權限
|
|
/// </summary>
|
|
/// <param name="bppyn">年度專案編號</param>
|
|
/// <param name="bpeno"></param>
|
|
/// <returns></returns>
|
|
public bool GetRight(string bppyn, string bpeno)
|
|
{
|
|
DbCommand cmd = Query.NewCommand(
|
|
//@"SELECT COUNT(1) FROM BPRM A
|
|
// INNER JOIN BPAA B ON A.BPPNM=B.BPPNM
|
|
// WHERE B.BPPYN=@BPPYN AND BPENO=@BPENO");
|
|
@"SELECT COUNT(1) FROM BPRM
|
|
WHERE BPPNM=@BPPYN AND BPENO=@BPENO");
|
|
cmd.Parameters.Add(Query.NewParameter("BPPYN", bppyn.Length > 3 ? bppyn.Substring(3) : bppyn));
|
|
cmd.Parameters.Add(Query.NewParameter("BPENO", bpeno));
|
|
int i;
|
|
ExecuteScalar(cmd, out i);
|
|
return i > 0;
|
|
}
|
|
|
|
public DataTable SelectBy年度接單編號(string BPPYN)
|
|
{
|
|
DbCommand cmd = Query.NewCommand(
|
|
@"SELECT A.BPENO, C.BPNME, C.BPEML
|
|
FROM BPRM A
|
|
JOIN BPAA B ON A.BPPNM = B.BPPNM
|
|
JOIN BPSNView C ON A.BPENO = C.BPENO
|
|
WHERE B.BPPYN = @BPPYN");
|
|
cmd.Parameters.Add(Query.NewParameter("BPPYN", BPPYN));
|
|
return Query.Select(cmd);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 專案處理人員 Grid 分頁查詢
|
|
/// </summary>
|
|
[DataObjectMethod(DataObjectMethodType.Select)]
|
|
public DataTable SelectPage(int startRowIndex, int maximumRows, string BPPNM)
|
|
{
|
|
DbCommand cmd = Query.NewCommand();
|
|
|
|
StringBuilder filter = new StringBuilder();
|
|
BuildFilter(filter, cmd, BPPNM);
|
|
|
|
cmd.CommandText = String.Format(
|
|
@"SELECT * FROM
|
|
(
|
|
SELECT *, ROW_NUMBER() OVER (ORDER BY BPENO) AS ROWID
|
|
FROM BPRM WHERE 1=1 {0}
|
|
) AS TMP
|
|
WHERE ROWID BETWEEN @STARTROWINDEX + 1 AND @STARTROWINDEX + @MAXIMUMROWS
|
|
ORDER BY ROWID",
|
|
filter.ToString());
|
|
cmd.Parameters.Add(Query.NewParameter("STARTROWINDEX", startRowIndex));
|
|
cmd.Parameters.Add(Query.NewParameter("MAXIMUMROWS", maximumRows));
|
|
|
|
return Query.Select(cmd);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 專案處理人員 Grid 查詢筆數
|
|
/// </summary>
|
|
[DataObjectMethod(DataObjectMethodType.Select)]
|
|
public int SelectCount(string BPPNM)
|
|
{
|
|
DbCommand cmd = Query.NewCommand();
|
|
|
|
StringBuilder filter = new StringBuilder();
|
|
BuildFilter(filter, cmd, BPPNM);
|
|
|
|
cmd.CommandText = String.Format("SELECT COUNT(*) FROM BPRM WHERE 1=1 {0}", filter.ToString());
|
|
return WDAC.GetInt32Value(Query.ExecuteScalar(cmd));
|
|
}
|
|
|
|
/// <summary>
|
|
/// 組出專案處理人員 Grid 的查詢條件 (與舊 AddSearch 行為一致)
|
|
/// </summary>
|
|
private void BuildFilter(StringBuilder sb, DbCommand cmd, string BPPNM)
|
|
{
|
|
if (!string.IsNullOrEmpty(BPPNM))
|
|
{
|
|
sb.Append(" AND BPPNM LIKE @BPPNM1 ");
|
|
cmd.Parameters.Add(Query.NewParameter("BPPNM1", BPPNM + "%"));
|
|
}
|
|
}
|
|
}
|