feat: fmRsaj GridView 改用 ObjectDataSource

- RsajDAC 新增 SelectPage/SelectCount

- dsRSAJGrid 改 ObjectDataSource;Search/Selected 調整
This commit is contained in:
2026-09-10 11:00:06 +08:00
parent f1cf00d06c
commit b66279e5fa
4 changed files with 75 additions and 22 deletions
+61
View File
@@ -1,12 +1,15 @@
using System;
using System.Data;
using System.Data.Common;
using System.ComponentModel;
using System.Text;
using Wellan.Data;
using Wellan.Common;
/// <summary>
/// 薪資加減項資料處理類別
/// </summary>
[DataObject(true)]
public class RsajDAC : Wellan.Data.WDAC
{
public RsajDAC()
@@ -127,4 +130,62 @@ public class RsajDAC : Wellan.Data.WDAC
cmd.Parameters.Add(Query.NewParameter("RSYMM", yymm));
return GetStringValue(Query.ExecuteScalar(cmd));
}
/// <summary>
/// 薪資加減項 Grid 分頁查詢
/// </summary>
[DataObjectMethod(DataObjectMethodType.Select)]
public DataTable SelectPage(int startRowIndex, int maximumRows, string RSENO, string RSPYN)
{
DbCommand cmd = Query.NewCommand();
StringBuilder filter = new StringBuilder();
BuildFilter(filter, cmd, RSENO, RSPYN);
cmd.CommandText = String.Format(
@"SELECT * FROM
(
SELECT *, ROW_NUMBER() OVER (ORDER BY RSYMM DESC, RSREN DESC) AS ROWID
FROM RSAJ 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 RSENO, string RSPYN)
{
DbCommand cmd = Query.NewCommand();
StringBuilder filter = new StringBuilder();
BuildFilter(filter, cmd, RSENO, RSPYN);
cmd.CommandText = String.Format("SELECT COUNT(*) FROM RSAJ WHERE 1=1 {0}", filter.ToString());
return WDAC.GetInt32Value(Query.ExecuteScalar(cmd));
}
/// <summary>
/// 組出薪資加減項 Grid 的查詢條件 (與舊 AddSearch 行為一致)
/// </summary>
private void BuildFilter(StringBuilder sb, DbCommand cmd, string RSENO, string RSPYN)
{
if (!string.IsNullOrEmpty(RSENO))
{
sb.Append(" AND RSENO LIKE @RSENO1 ");
cmd.Parameters.Add(Query.NewParameter("RSENO1", RSENO + "%"));
}
if (!string.IsNullOrEmpty(RSPYN))
{
sb.Append(" AND RSPYN LIKE @RSPYN1 ");
cmd.Parameters.Add(Query.NewParameter("RSPYN1", RSPYN + "%"));
}
}
}