feat: fmRparWorker GridView 改用 ObjectDataSource
- RparDAC 新增 SelectWorkerPage/SelectWorkerCount - RpabDAC 新增 SelectRPABByRPREN - dsRPARGrid/dsRPAB 改 ObjectDataSource;Search/Selected 調整
This commit is contained in:
@@ -304,4 +304,18 @@ public class RpabDAC : Wellan.Data.WDAC
|
||||
cmd.Parameters.Add(Query.NewParameter("RPREN", RPREN));
|
||||
return Query.Select(cmd);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 取得簽核關卡明細 (全部)
|
||||
/// </summary>
|
||||
[DataObjectMethod(DataObjectMethodType.Select)]
|
||||
public DataTable SelectRPABByRPREN(string RPREN)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand(
|
||||
@"SELECT RPANO, RPAPN, RPENO, RPDAT, RPAPP, RPDOC
|
||||
FROM RPAB
|
||||
WHERE RPREN = @RPREN");
|
||||
cmd.Parameters.Add(Query.NewParameter("RPREN", RPREN));
|
||||
return Query.Select(cmd);
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -5,9 +5,16 @@
|
||||
TagPrefix="uc1" %>
|
||||
<cc1:WLabel ID="WLabel1" runat="server" CssClass="pageTitle"></cc1:WLabel>
|
||||
<asp:CustomValidator ID="cvMessage" runat="server" Display="None"></asp:CustomValidator>
|
||||
<asp:SqlDataSource ID="dsRPARGrid" runat="server" ConflictDetection="CompareAllValues"
|
||||
SelectCommand="SELECT * FROM RPAR WHERE (1 = 0)" ConnectionString="Data Source=(local);Initial Catalog=THINKYU_WEB;Persist Security Info=True;User ID=sa"
|
||||
ProviderName="System.Data.SqlClient" OnSelected="dsRPARGrid_Selected"></asp:SqlDataSource>
|
||||
<asp:ObjectDataSource ID="dsRPARGrid" runat="server"
|
||||
TypeName="RparDAC" SelectMethod="SelectWorkerPage" SelectCountMethod="SelectWorkerCount"
|
||||
EnablePaging="true" OnSelected="dsRPARGrid_Selected">
|
||||
<SelectParameters>
|
||||
<asp:Parameter Name="RPNUM_FIXED" Type="String" />
|
||||
<asp:Parameter Name="RPRDT1" Type="String" />
|
||||
<asp:Parameter Name="RPRDT2" Type="String" />
|
||||
<asp:Parameter Name="rparType" Type="String" />
|
||||
</SelectParameters>
|
||||
</asp:ObjectDataSource>
|
||||
<asp:SqlDataSource ID="dsRPARForm" runat="server"
|
||||
InsertCommand="INSERT INTO RPAR
|
||||
(RPREN, RPNUM, RAITM, RPCNM, RPPYN, RPRDT, RPEDT,
|
||||
@@ -182,14 +189,13 @@
|
||||
</SelectParameters>
|
||||
</asp:ObjectDataSource>
|
||||
|
||||
<asp:SqlDataSource ID="dsRPAB" runat="server" ConnectionString="Data Source=SRYANG-X200\SQL2K8;Initial Catalog=THINKYU_WEB_TY;Integrated Security=True"
|
||||
ProviderName="System.Data.SqlClient"
|
||||
SelectCommand="SELECT [RPANO], [RPAPN], [RPENO], [RPDAT], [RPAPP], [RPDOC] FROM [RPAB] WHERE [RPREN] = @RPREN">
|
||||
<asp:ObjectDataSource ID="dsRPAB" runat="server"
|
||||
TypeName="RpabDAC" SelectMethod="SelectRPABByRPREN">
|
||||
<SelectParameters>
|
||||
<asp:ControlParameter ControlID="RPARGrid" Name="RPREN" PropertyName="SelectedValue"
|
||||
Type="String" />
|
||||
</SelectParameters>
|
||||
</asp:SqlDataSource>
|
||||
</asp:ObjectDataSource>
|
||||
|
||||
<asp:ObjectDataSource ID="dsBPSE" runat="server" OldValuesParameterFormatString="original_{0}"
|
||||
OnSelecting="dsBPSE_Selecting" SelectMethod="Select片語By類別"
|
||||
|
||||
@@ -49,7 +49,6 @@ public partial class forms_customer_fmRpar : Wellan.Web.UI.WUserControlBase
|
||||
FLOOR(RPTC5 / 60) AS RPTC5, RPTC5 - FLOOR(RPTC5 / 60) * 60 AS RPTM5";
|
||||
private string from = " FROM RPAR ";
|
||||
private string where = " WHERE 1=1 ";
|
||||
private string order = " ORDER BY RPRDT DESC";
|
||||
private FormView RPARForm;
|
||||
private Panel RPARPanel;
|
||||
protected string rparType;
|
||||
@@ -136,9 +135,7 @@ public partial class forms_customer_fmRpar : Wellan.Web.UI.WUserControlBase
|
||||
{
|
||||
base.OnInit(e);
|
||||
dsRPARForm.ConnectionString = ConnectionString;
|
||||
dsRPARGrid.ConnectionString = ConnectionString;
|
||||
dsRPAR_RPTYP.ConnectionString = ConnectionString;
|
||||
dsRPAB.ConnectionString = ConnectionString;
|
||||
|
||||
bpsnDao = new BpsnDAC(Query);
|
||||
rparDao = new RparDAC(Query);
|
||||
@@ -354,19 +351,14 @@ public partial class forms_customer_fmRpar : Wellan.Web.UI.WUserControlBase
|
||||
RPARPanel.Visible = true;
|
||||
}
|
||||
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.Append(select);
|
||||
sql.Append(from);
|
||||
sql.Append(where);
|
||||
dsRPARGrid.SelectParameters.Clear();
|
||||
|
||||
DateTime RPRDT1, RPRDT2;
|
||||
CheckDate(_RPRDT1, out RPRDT1);
|
||||
CheckDate(_RPRDT2, out RPRDT2);
|
||||
|
||||
AddSearch(sql, dsRPARGrid, "RPRDT", RPRDT1, RPRDT2, true);
|
||||
sql.Append(order);
|
||||
dsRPARGrid.SelectCommand = sql.ToString();
|
||||
dsRPARGrid.SelectParameters["RPNUM_FIXED"].DefaultValue = UserId;
|
||||
dsRPARGrid.SelectParameters["RPRDT1"].DefaultValue = RPRDT1.Ticks > 0 ? RPRDT1.ToString("yyyy-MM-dd") : "";
|
||||
dsRPARGrid.SelectParameters["RPRDT2"].DefaultValue = RPRDT2.Ticks > 0 ? RPRDT2.ToString("yyyy-MM-dd") : "";
|
||||
dsRPARGrid.SelectParameters["rparType"].DefaultValue = rparType;
|
||||
|
||||
dsRPARForm.SelectCommand = select + from + " WHERE RPREN=@RPREN ";
|
||||
|
||||
@@ -959,9 +951,9 @@ public partial class forms_customer_fmRpar : Wellan.Web.UI.WUserControlBase
|
||||
gvRPAD.DataBind();
|
||||
}
|
||||
|
||||
protected void dsRPARGrid_Selected(object sender, SqlDataSourceStatusEventArgs e)
|
||||
protected void dsRPARGrid_Selected(object sender, ObjectDataSourceStatusEventArgs e)
|
||||
{
|
||||
if (e.AffectedRows == 0)
|
||||
if (e.ReturnValue is Int32 && WDAC.GetInt32Value(e.ReturnValue) == 0)
|
||||
{
|
||||
switch (MultiView1.ActiveViewIndex)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user