feat: fmSalaryCalc GridView 改用 ObjectDataSource

- 新增 SacdDAC(SelectByProject)

- dsSACD 改 ObjectDataSource
This commit is contained in:
2026-09-10 10:49:55 +08:00
parent b61b8281c8
commit 6d6f18e2ef
4 changed files with 52 additions and 9 deletions
+45
View File
@@ -0,0 +1,45 @@
using System;
using System.Data;
using System.Data.Common;
using System.ComponentModel;
using Wellan.Data;
/// <summary>
/// 薪資科目匯總的資料處理類別
/// </summary>
[DataObject(true)]
public class SacdDAC : Wellan.Data.WDAC
{
public SacdDAC()
{
}
public SacdDAC(string connectionConfig, string connectionConfigName)
: this()
{
this._connectionConfig = connectionConfig;
this._connectionConfigName = connectionConfigName;
}
public SacdDAC(WQuery query)
{
this._query = query;
}
/// <summary>
/// 取得某專案年月的科目預算與本月金額
/// </summary>
[DataObjectMethod(DataObjectMethodType.Select)]
public DataTable SelectByProject(string BPPYN, DateTime SAYMM)
{
DbCommand cmd = Query.NewCommand(
@"SELECT BPAB.BPPYN, BPAB.BPACC, ISNULL(BPAB.BPBGT, 0) AS BPBGT, BPAB.BPCLS, BPAB.BPAME, ISNULL(SACD.SAAMT, 0) AS SAAMT, SACD.SADOC
FROM BPAB
LEFT OUTER JOIN SACD ON BPAB.BPPYN = SACD.SAPYN AND BPAB.BPACC = SACD.SAACC AND SACD.SAYMM = @SAYMM
WHERE (BPAB.BPPYN = @BPPYN) AND (SUBSTRING(BPAB.BPACC, 5, 2) <> '00')
ORDER BY BPAB.BPCLS");
cmd.Parameters.Add(Query.NewParameter("BPPYN", BPPYN));
cmd.Parameters.Add(Query.NewParameter("SAYMM", SAYMM));
return Query.Select(cmd);
}
}
+5 -7
View File
@@ -139,15 +139,13 @@
</asp:Panel>
<asp:Panel ID="pnSACD" runat="server"
Width="100%" Visible="False">
<asp:SqlDataSource ID="dsSACD"
runat="server" ConnectionString="Data Source=(local);Initial Catalog=THINKYU_WEB;Persist Security Info=True;User ID=sa"
ProviderName="System.Data.SqlClient"
SelectCommand="SELECT BPAB.BPPYN, BPAB.BPACC, ISNULL(BPAB.BPBGT, 0) AS BPBGT, BPAB.BPCLS, BPAB.BPAME, ISNULL(SACD.SAAMT, 0) AS SAAMT, SACD.SADOC FROM BPAB LEFT OUTER JOIN SACD ON BPAB.BPPYN = SACD.SAPYN AND BPAB.BPACC = SACD.SAACC AND SACD.SAYMM = @SAYMM WHERE (BPAB.BPPYN = @BPPYN) AND (SUBSTRING(BPAB.BPACC, 5, 2) <> '00') ORDER BY BPAB.BPCLS">
<asp:ObjectDataSource ID="dsSACD"
runat="server" TypeName="SacdDAC" SelectMethod="SelectByProject">
<SelectParameters>
<asp:Parameter Name="SAYMM" />
<asp:Parameter Name="BPPYN" />
<asp:Parameter Name="BPPYN" Type="String" />
<asp:Parameter Name="SAYMM" Type="DateTime" />
</SelectParameters>
</asp:SqlDataSource>
</asp:ObjectDataSource>
<table cellpadding="0" cellspacing="0">
<tr>
<td>
-1
View File
@@ -1560,7 +1560,6 @@ public partial class forms_summary_fmSalaryCalc : Wellan.Web.UI.WUserControlBase
bool result = true;
aYYMM = CheckDate(lbYYMM.Text + "01", "", ref result, cvMessage);
dsSACD.ConnectionString = ConnectionString;
dsSACD.SelectParameters["BPPYN"].DefaultValue = ddlRSPYN.SelectedValue;
dsSACD.SelectParameters["SAYMM"].DefaultValue = aYYMM.ToString(System.Globalization.CultureInfo.InvariantCulture);
GridView1.DataBind();