feat: fmRparWorker GridView 改用 ObjectDataSource
- RparDAC 新增 SelectWorkerPage/SelectWorkerCount - RpabDAC 新增 SelectRPABByRPREN - dsRPARGrid/dsRPAB 改 ObjectDataSource;Search/Selected 調整
This commit is contained in:
@@ -1975,6 +1975,68 @@ public class RparDAC : Wellan.Data.WDAC
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 差勤紀錄 Grid 分頁查詢 (員工本人)
|
||||
/// </summary>
|
||||
[DataObjectMethod(DataObjectMethodType.Select)]
|
||||
public DataTable SelectWorkerPage(int startRowIndex, int maximumRows, string RPNUM_FIXED, string RPRDT1, string RPRDT2, string rparType)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
|
||||
StringBuilder filter = new StringBuilder();
|
||||
BuildWorkerGridFilter(filter, cmd, RPNUM_FIXED, RPRDT1, RPRDT2, rparType);
|
||||
|
||||
cmd.CommandText = String.Format(
|
||||
@"SELECT * FROM
|
||||
(
|
||||
SELECT {0}, ROW_NUMBER() OVER (ORDER BY RPREN) AS ROWID
|
||||
FROM RPAR {1}
|
||||
) AS TMP
|
||||
WHERE ROWID BETWEEN @STARTROWINDEX + 1 AND @STARTROWINDEX + @MAXIMUMROWS
|
||||
ORDER BY ROWID",
|
||||
RparGridColumns, 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 SelectWorkerCount(string RPNUM_FIXED, string RPRDT1, string RPRDT2, string rparType)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
|
||||
StringBuilder filter = new StringBuilder();
|
||||
BuildWorkerGridFilter(filter, cmd, RPNUM_FIXED, RPRDT1, RPRDT2, rparType);
|
||||
|
||||
cmd.CommandText = String.Format("SELECT COUNT(*) FROM RPAR {0}", filter.ToString());
|
||||
return WDAC.GetInt32Value(Query.ExecuteScalar(cmd));
|
||||
}
|
||||
|
||||
private void BuildWorkerGridFilter(StringBuilder sb, DbCommand cmd, string RPNUM_FIXED, string RPRDT1, string RPRDT2, string rparType)
|
||||
{
|
||||
sb.Append(" WHERE RPNUM = @RPNUM_FIXED ");
|
||||
cmd.Parameters.Add(Query.NewParameter("RPNUM_FIXED", RPNUM_FIXED));
|
||||
|
||||
switch (rparType)
|
||||
{
|
||||
case "0":
|
||||
sb.Append(" AND RPTYP LIKE '0%' AND RPADT IS NOT NULL ");
|
||||
break;
|
||||
case "1":
|
||||
sb.Append(" AND RPTYP LIKE '1%' AND RPADT IS NOT NULL ");
|
||||
break;
|
||||
case "3":
|
||||
sb.Append(" AND RPTYP LIKE '3%' AND RPADT IS NOT NULL ");
|
||||
break;
|
||||
}
|
||||
|
||||
AppendRparRange(sb, cmd, "RPRDT", RPRDT1, RPRDT2, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user