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; /// /// 用來取得專案處理人員資料的類別 /// [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; } /// /// 取得某使用者是否有處理某專案的權限 /// /// 年度專案編號 /// /// 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); } /// /// 專案處理人員 Grid 分頁查詢 /// [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); } /// /// 專案處理人員 Grid 查詢筆數 /// [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)); } /// /// 組出專案處理人員 Grid 的查詢條件 (與舊 AddSearch 行為一致) /// 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 + "%")); } } }