feat: fmRasn GridView 改用 ObjectDataSource

- RasnDAC 新增 SelectPage/SelectCount 及 SelectRAENO/SelectRABRH

- dsRASNGrid 改 ObjectDataSource(EnablePaging);dsRASN_RAENO1/dsRASN_RABRH1 改 ObjectDataSource

- Search/Selected 調整
This commit is contained in:
2026-09-10 10:46:11 +08:00
parent dd8a26206f
commit fca50b7715
4 changed files with 149 additions and 70 deletions
+8 -39
View File
@@ -53,13 +53,10 @@ public partial class forms_customer_fmRasn : Wellan.Web.UI.WUserControlBase
{
base.OnInit(e);
dsRASNForm.ConnectionString = ConnectionString;
dsRASNGrid.ConnectionString = ConnectionString;
dsRASN_RABRH.ConnectionString = ConnectionString;
dsRASN_RANUM.ConnectionString = ConnectionString;
dsRASN_BPJNO.ConnectionString = ConnectionString;
dsRASN_BPCNO.ConnectionString = ConnectionString;
dsRASN_RAENO1.ConnectionString = ConnectionString;
dsRASN_RABRH1.ConnectionString = ConnectionString;
dsRASN_RAWTZ.ConnectionString = ConnectionString;
_YY = GetIntParam("YY");
@@ -219,44 +216,16 @@ public partial class forms_customer_fmRasn : Wellan.Web.UI.WUserControlBase
// 查詢動作
private new void Search()
{
StringBuilder sql = new StringBuilder();
List<string> HQ_RAPYNS = new List<string>() { "103TYB00001", "103JYB00001" };
String searchOrder1 = String.Empty, searchOrder2 = String.Empty;
if (HQ_RAPYNS.IndexOf(_RAPYN) < 0)
{
searchOrder1 = "RANUM";
searchOrder2 = "RAEDT, RANUM";
}
else
{
searchOrder1 = "RAEDT, RANUM";
searchOrder2 = "RAEDT, RANUM";
}
sql.Append(string.Format(@"
SELECT A.*, B.BPSRM, B.BPSRD, B.BPP01, B.BPP02, B.BPP03, B.BPP04, B.BPP05
FROM
(
SELECT * FROM (SELECT *, ROW_NUMBER() OVER (ORDER BY {0}) ROWNUM FROM RASN WHERE RAPYN=@RAPYN AND RAEDT IS NULL) T1
UNION ALL
SELECT * FROM (SELECT *, ROW_NUMBER() OVER (ORDER BY {1}) ROWNUM FROM RASN WHERE RAPYN=@RAPYN AND RAEDT IS NOT NULL) T2
) A
LEFT OUTER JOIN BPJB B ON A.RAPYN=B.BPPYN AND A.RAJNO=B.BPJNO AND A.RACNO=B.BPCNO
LEFT OUTER JOIN BPSNView C ON A.RANUM=C.BPENO
WHERE 1=1
", searchOrder1, searchOrder2));
int year = 0;
if (!string.IsNullOrEmpty(txtYY.Text) && HQ_RAPYNS.IndexOf(_RAPYN) < 0)
{
sql.Append(string.Format(" AND ((RASDT >= '{0}/01/01' AND RASDT <= '{0}/12/31') OR (RAEDT >= '{0}/01/01' AND RAEDT <= '{0}/12/31') OR (RASDT <= '{0}/01/01' AND RAEDT >= '{0}/12/31') ) ", WQuery.GetInt32Value(txtYY.Text) + WGuard1.CY11));
}
year = WQuery.GetInt32Value(txtYY.Text) + WGuard1.CY11;
dsRASNGrid.SelectParameters.Clear();
dsRASNGrid.SelectParameters.Add(new Parameter("RAPYN", DbType.String, _RAPYN));
// AddSearch(sql, dsRASNGrid, "RAPYN", _RAPYN, "", true);
AddSearch(sql, dsRASNGrid, "C.BPENO", _BPENO, "", true);
AddSearch(sql, dsRASNGrid, "C.BPNME", _BPNME, "", true);
dsRASNGrid.SelectCommand = sql.ToString();
dsRASNGrid.SelectParameters["RAPYN"].DefaultValue = _RAPYN;
dsRASNGrid.SelectParameters["BPENO"].DefaultValue = _BPENO;
dsRASNGrid.SelectParameters["BPNME"].DefaultValue = _BPNME;
dsRASNGrid.SelectParameters["year"].DefaultValue = year.ToString();
}
// 存檔前的計算動作
@@ -302,9 +271,9 @@ WHERE 1=1
RASNGrid.DataBind();
}
protected void dsRASNGrid_Selected(object sender, SqlDataSourceStatusEventArgs e)
protected void dsRASNGrid_Selected(object sender, ObjectDataSourceStatusEventArgs e)
{
if (e.AffectedRows == 0)
if (e.ReturnValue is Int32 && WDAC.GetInt32Value(e.ReturnValue) == 0)
{
if (ForwardSource != "")
RASNForm.ChangeMode(FormViewMode.Insert);