Files
sryang a525bf2610 feat: fmBpab/fmBpabBig/fmBpabSmall GridView 改用 ObjectDataSource
- 新增 BpabDAC(SelectPage/SelectCount,mode 區分 科目/大類/小類)

- 三檔 dsBPABGrid 改 ObjectDataSource(EnablePaging)

- Search/Selected 調整

- 計畫文檔更新
2026-09-10 10:38:27 +08:00

423 lines
20 KiB
Plaintext

<%@ Control Language="C#" AutoEventWireup="true"
CodeFile="fmBpabBig.ascx.cs"
Inherits="forms_customer_fmBpabBig" %>
<%@ Register Assembly="WNET" Namespace="Wellan.Web.UI"
TagPrefix="cc1" %>
<cc1:WLabel ID="WLabel1" runat="server"
CssClass="pageTitle" TextMessageId="FMBPAB.NAME+'--科目大類'"></cc1:WLabel>
<asp:CustomValidator ID="cvMessage"
runat="server" Display="None"></asp:CustomValidator>
<asp:MultiView ID="MultiView1"
runat="server" ActiveViewIndex="0">
<asp:View ID="BigClassView" runat="server">
<asp:ObjectDataSource ID="dsBPABGrid" runat="server"
TypeName="BpabDAC" SelectMethod="SelectPage" SelectCountMethod="SelectCount"
EnablePaging="true" OnSelected="dsBPABGrid_Selected">
<SelectParameters>
<asp:Parameter Name="BPPYN" Type="String" />
<asp:Parameter Name="mode" Type="String" DefaultValue="BIG" />
</SelectParameters>
</asp:ObjectDataSource>
<asp:SqlDataSource ID="dsBPABForm"
runat="server" InsertCommand="INSERT INTO BPAB&#13;&#10; (BPPYN, BPACC, BPAME, BPBGT, BPCLS, BPORD, &#13;&#10; APPNO, TRDAT, TRMOD, TRUSR) &#13;&#10; VALUES &#13;&#10; (@BPPYN, @BPACC, @BPAME, @BPBGT, @BPCLS, @BPORD, &#13;&#10; 1, GETDATE(), 'INSERT', @TRUSR)"
UpdateCommand="UPDATE BPAB SET &#13;&#10; BPACC = @BPACC, &#13;&#10; BPAME = @BPAME, &#13;&#10; BPBGT = @BPBGT, &#13;&#10; BPCLS = @BPCLS, &#13;&#10; BPORD = @BPORD, &#13;&#10; APPNO = APPNO + 1, &#13;&#10; TRDAT = GETDATE(), &#13;&#10; TRMOD = 'UPDATE', &#13;&#10; TRUSR = @TRUSR&#13;&#10; WHERE BPPYN = @OLD_BPPYN&#13;&#10; AND BPACC = @OLD_BPACC&#13;&#10; AND APPNO = @OLD_APPNO"
DeleteCommand="DELETE FROM BPAB&#13;&#10; WHERE BPPYN = @OLD_BPPYN&#13;&#10; AND BPACC = @OLD_BPACC&#13;&#10; AND APPNO = @OLD_APPNO"
ConflictDetection="CompareAllValues"
OldValuesParameterFormatString="OLD_{0}"
OnInserting="dsBPABForm_Inserting"
ConnectionString="Data Source=(local);Initial Catalog=THINKYU_WEB;Persist Security Info=True;User ID=sa"
ProviderName="System.Data.SqlClient"
SelectCommand="SELECT * FROM BPAB WHERE BPPYN = @BPPYN AND BPACC = @BPACC"
OnUpdating="dsBPABForm_Updating"
OnUpdated="dsBPABForm_Updated">
<DeleteParameters>
<asp:Parameter Name="OLD_BPPYN" />
<asp:Parameter Name="OLD_BPACC" />
<asp:Parameter Name="OLD_APPNO" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="BPACC" Size="8"
Type="String" />
<asp:Parameter Name="BPAME" />
<asp:Parameter Name="BPBGT" />
<asp:Parameter Name="BPCLS" Size="8"
Type="String" />
<asp:Parameter Name="BPORD" />
<asp:SessionParameter DefaultValue=""
Name="TRUSR" SessionField="W_CUSR" />
<asp:Parameter Name="OLD_BPPYN" />
<asp:Parameter Name="OLD_BPACC" />
<asp:Parameter Name="OLD_APPNO" />
</UpdateParameters>
<SelectParameters>
<asp:ControlParameter ControlID="gvBPAB"
Name="BPPYN" PropertyName="SelectedDataKey[&quot;BPPYN&quot;]" />
<asp:ControlParameter ControlID="gvBPAB"
Name="BPACC" PropertyName="SelectedDataKey[&quot;BPACC&quot;]" />
</SelectParameters>
<InsertParameters>
<asp:Parameter Name="BPPYN" />
<asp:Parameter Name="BPACC" />
<asp:Parameter Name="BPAME" />
<asp:Parameter Name="BPBGT" />
<asp:Parameter Name="BPCLS" />
<asp:Parameter Name="BPORD" />
<asp:SessionParameter DefaultValue=""
Name="TRUSR" SessionField="W_CUSR" />
</InsertParameters>
</asp:SqlDataSource>
<asp:FormView ID="fvBPAB" runat="server"
OnItemCommand="fvBPAB_ItemCommand"
DataSourceID="dsBPABForm" OnItemCreated="fvBPAB_ItemCreated"
OnDataBound="fvBPAB_DataBound"
OnItemDeleted="fvBPAB_ItemDeleted"
OnItemInserted="fvBPAB_ItemInserted"
OnItemUpdated="fvBPAB_ItemUpdated"
OnModeChanged="fvBPAB_ModeChanged"
OnModeChanging="fvBPAB_ModeChanging"
OnItemDeleting="fvBPAB_ItemDeleting">
<EditItemTemplate>
<cc1:WButton ID="btnSave" runat="server"
CommandName="Update" CssClass="button"
Text="S.存檔" TextMessageId="S.+SAVE"
OnClientClick="return confirm(msgConfirmSave);"
AccessKey="S" />
<cc1:WButton ID="btnCancel" runat="server"
CommandName="Cancel" CssClass="button"
Text="C.取消" TextMessageId="C.+CANCEL"
OnClientClick="return confirm(msgConfirmCancel);"
AccessKey="C" CommandArgument="Big" CausesValidation="False" />
<asp:RequiredFieldValidator ID="rfvBPAME"
runat="server" ControlToValidate="txtBPAB_BPAME"
Display="None" ErrorMessage="請輸入大類名稱"></asp:RequiredFieldValidator>
<asp:RequiredFieldValidator ID="rfvBPORD"
runat="server" ControlToValidate="txtBPAB_BPORD"
Display="None" ErrorMessage="請輸入順序"></asp:RequiredFieldValidator>
<asp:CustomValidator ID="cvBPORD"
runat="server" Display="None" ControlToValidate="txtBPAB_BPORD"
ErrorMessage="順序請輸入 1-99 的數字"
OnServerValidate="cvBPORD_ServerValidate" ValidateEmptyText="True"></asp:CustomValidator>
<table border="0" cellpadding="2"
cellspacing="2" width="1" style="table-layout: fixed">
<tr>
<td colspan="1" style="height: 0px;
width: 90px">
</td>
<td colspan="1" style="height: 0px;
width: 120px">
</td>
<td colspan="1" style="height: 0px;
width: 90px">
</td>
<td colspan="1" style="height: 0px;
width: 120px">
</td>
<td colspan="1" style="height: 0px;
width: 90px">
</td>
<td colspan="1" style="height: 0px;
width: 120px">
</td>
<td colspan="1" style="height: 0px;
width: 90px">
</td>
<td colspan="1" style="height: 0px;
width: 120px">
</td>
</tr>
<tr>
<td align="right" colspan="1">
<cc1:WLabel ID="WLabel9" runat="server"
CssClass="controlLabel" TextMessageId="BPAA.BPPYN+:">專案年度編號:</cc1:WLabel></td>
<td colspan="1" class="dataDisplayCell">
<asp:Label ID="lbBPAB_BPPYN" runat="server"
CssClass="textInput" Text='<%# Bind("BPPYN", "{0:c}") %>'></asp:Label></td>
<td align="right" colspan="1">
<cc1:WLabel ID="WLabel10" runat="server"
CssClass="controlLabel" TextMessageId="BPAA.BPPYM+:">專案年度名稱:</cc1:WLabel></td>
<td colspan="5" class="dataDisplayCell">
<asp:Label ID="lbBPAB_BPPYNX" runat="server"
CssClass="textInput" Text='<%# GetLookup("BPAA", Eval("BPPYN", "{0:c}"), "BPPYM", "") %>'></asp:Label></td>
</tr>
<tr>
<td align="right" colspan="1">
<cc1:WLabel ID="WLabel11" runat="server"
CssClass="controlLabel" TextMessageId="BCUS.BCNUM+:">客戶編號:</cc1:WLabel></td>
<td colspan="1" class="dataDisplayCell">
<asp:Label ID="lbBPAB_BPNUM" runat="server"
CssClass="textInput" Text='<%# _BPNUM %>'></asp:Label></td>
<td align="right" colspan="1">
<cc1:WLabel ID="WLabel12" runat="server"
CssClass="controlLabel" TextMessageId="BCUS.BCNAM+:">客戶名稱:</cc1:WLabel></td>
<td colspan="5" class="dataDisplayCell">
<asp:Label ID="lbBPAB_BPNUMX" runat="server"
CssClass="textInput" Text='<%# GetLookup("BCUS", _BPNUM, "BCNAM", "") %>'></asp:Label></td>
</tr>
<tr>
<td align="right" colspan="1">
<cc1:WLabel ID="WLabel14" runat="server"
CssClass="controlLabel">大類名稱:</cc1:WLabel></td>
<td colspan="3" class="dataEditCell">
<asp:TextBox ID="txtBPAB_BPAME"
runat="server" CssClass="textInput"
Text='<%# Bind("BPAME") %>' MaxLength="20"></asp:TextBox></td>
<td align="right" colspan="1">
<cc1:WLabel ID="WLabel15" runat="server"
CssClass="controlLabel" TextMessageId="">順序:</cc1:WLabel></td>
<td class="dataEditCell">
<asp:TextBox ID="txtBPAB_BPORD"
runat="server" CssClass="textInput"
Text='<%# Bind("BPORD") %>' MaxLength="2"></asp:TextBox></td>
</tr>
</table>
<asp:HiddenField ID="hfBPAB_BPACC"
runat="server" Value='<%# Bind("BPACC") %>' />
<asp:HiddenField ID="hfBPAB_APPNO"
runat="server" Value='<%# Bind("APPNO") %>' />
</EditItemTemplate>
<InsertItemTemplate>
<cc1:WButton ID="btnSave" runat="server"
CommandName="Insert" CssClass="button"
Text="S.存檔" TextMessageId="S.+SAVE"
OnClientClick="return confirm(msgConfirmSave);"
AccessKey="S" />
<cc1:WButton ID="btnCancel" runat="server"
CommandName="Cancel" CssClass="button"
Text="C.取消" TextMessageId="C.+CANCEL"
OnClientClick="return confirm(msgConfirmCancel);"
AccessKey="C" CommandArgument="Big" CausesValidation="False" />
<asp:RequiredFieldValidator ID="rfvBPAME"
runat="server" ControlToValidate="txtBPAB_BPAME"
Display="None" ErrorMessage="請輸入大類名稱"></asp:RequiredFieldValidator>
<asp:RequiredFieldValidator ID="rfvBPORD"
runat="server" ControlToValidate="txtBPAB_BPORD"
Display="None" ErrorMessage="請輸入順序"></asp:RequiredFieldValidator>
<asp:CustomValidator ID="cvBPORD"
runat="server" Display="None"
ControlToValidate="txtBPAB_BPORD"
ErrorMessage="順序請輸入 1-99 的數字"
OnServerValidate="cvBPORD_ServerValidate" ValidateEmptyText="True"></asp:CustomValidator>
<table border="0" cellpadding="2"
cellspacing="2" width="1" style="table-layout: fixed">
<tr>
<td colspan="1" style="height: 0px;
width: 90px">
</td>
<td colspan="1" style="height: 0px;
width: 120px">
</td>
<td colspan="1" style="height: 0px;
width: 90px">
</td>
<td colspan="1" style="height: 0px;
width: 120px">
</td>
<td colspan="1" style="height: 0px;
width: 90px">
</td>
<td colspan="1" style="height: 0px;
width: 120px">
</td>
<td colspan="1" style="height: 0px;
width: 90px">
</td>
<td colspan="1" style="height: 0px;
width: 120px">
</td>
</tr>
<tr>
<td align="right" colspan="1">
<cc1:WLabel ID="WLabel2" runat="server"
CssClass="controlLabel" TextMessageId="BPAA.BPPYN+:">專案年度編號:</cc1:WLabel></td>
<td colspan="1" class="dataDisplayCell">
<asp:Label ID="lbBPAB_BPPYN" runat="server"
CssClass="textInput" Text='<%# Bind("BPPYN", "{0:c}") %>'></asp:Label></td>
<td align="right" colspan="1">
<cc1:WLabel ID="WLabel3" runat="server"
CssClass="controlLabel" TextMessageId="BPAA.BPPYM+:">專案年度名稱:</cc1:WLabel></td>
<td colspan="5" class="dataDisplayCell">
<asp:Label ID="lbBPAB_BPPYNX" runat="server"
CssClass="textInput" Text='<%# GetLookup("BPAA", _BPPYN, "BPPYM", "")%>'></asp:Label></td>
</tr>
<tr>
<td align="right" colspan="1">
<cc1:WLabel ID="WLabel4" runat="server"
CssClass="controlLabel" TextMessageId="BCUS.BCNUM+:">客戶編號:</cc1:WLabel></td>
<td colspan="1" class="dataDisplayCell">
<asp:Label ID="lbBPAB_BPNUM" runat="server"
CssClass="textInput" Text='<%# _BPNUM %>'></asp:Label></td>
<td align="right" colspan="1">
<cc1:WLabel ID="WLabel5" runat="server"
CssClass="controlLabel" TextMessageId="BCUS.BCNAM+:">客戶名稱:</cc1:WLabel></td>
<td colspan="5" class="dataDisplayCell">
<asp:Label ID="lbBPAB_BPNUMX" runat="server"
CssClass="textInput" Text='<%# GetLookup("BCUS", _BPNUM, "BCNAM", "") %>'></asp:Label></td>
</tr>
<tr>
<td align="right" colspan="1">
<cc1:WLabel ID="WLabel7" runat="server"
CssClass="controlLabel">大類名稱:</cc1:WLabel></td>
<td colspan="3" class="dataEditCell">
<asp:TextBox ID="txtBPAB_BPAME"
runat="server" CssClass="textInput"
Text='<%# Bind("BPAME") %>' MaxLength="20"></asp:TextBox></td>
<td align="right" colspan="1">
<cc1:WLabel ID="WLabel8" runat="server"
CssClass="controlLabel" TextMessageId="">順序:</cc1:WLabel></td>
<td class="dataEditCell">
<asp:TextBox ID="txtBPAB_BPORD"
runat="server" CssClass="textInput"
Text='<%# Bind("BPORD") %>' MaxLength="2"></asp:TextBox></td>
</tr>
</table>
</InsertItemTemplate>
<ItemTemplate>
<table border="0" cellpadding="0"
cellspacing="0" width="858">
<tr>
<td align="left">
<cc1:WButton ID="btnInsert" runat="server"
CommandName="New" CssClass="button"
Text="I.新增" TextMessageId="I.+INSERT"
AccessKey="I" />
<cc1:WButton ID="btnEdit" runat="server"
CommandName="Edit" CssClass="button"
Text="M.更正" TextMessageId="M.+UPDATE"
AccessKey="M" />
<cc1:WButton ID="btnDelete" runat="server"
CommandName="Delete" CssClass="button"
Text="T.刪除" TextMessageId="T.+DELETE"
OnClientClick="return confirm(msgConfirmDelete);"
AccessKey="T" /></td>
<td align="left">
<cc1:WButton ID="WButton2" runat="server"
CausesValidation="False" CommandName="Small"
CssClass="button" Text="2.科目小類"
AccessKey="2" />
<cc1:WButton ID="WButton3" runat="server"
AccessKey="3" CausesValidation="False"
CommandName="Detail" CssClass="button"
Text="3.科目明細" /></td>
<td align="right">
<cc1:WButton ID="WButton1" runat="server"
CausesValidation="False" CommandName="Return"
CssClass="button" Text="R.返回年度接單"
Style="width: 105px" AccessKey="R" />&nbsp;</td>
</tr>
</table>
<asp:HiddenField ID="hfBPAB_BPACC"
runat="server" Value='<%# Bind("BPACC", "{0}") %>' />
<asp:HiddenField ID="hfBPAB_APPNO"
runat="server" Value='<%# Bind("APPNO", "{0}") %>' />
<table border="0" cellpadding="2"
cellspacing="2" width="1" style="table-layout: fixed">
<tr>
<td colspan="1" style="height: 0px;
width: 90px">
</td>
<td colspan="1" style="height: 0px;
width: 120px">
</td>
<td colspan="1" style="height: 0px;
width: 90px">
</td>
<td colspan="1" style="height: 0px;
width: 120px">
</td>
<td colspan="1" style="height: 0px;
width: 90px">
</td>
<td colspan="1" style="height: 0px;
width: 120px">
</td>
<td colspan="1" style="height: 0px;
width: 90px">
</td>
<td colspan="1" style="height: 0px;
width: 120px">
</td>
</tr>
<tr>
<td align="right" colspan="1">
<cc1:WLabel ID="lbBPRJ_BPPYNLabel"
runat="server" CssClass="controlLabel"
TextMessageId="BPAA.BPPYN+:">專案年度編號:</cc1:WLabel></td>
<td colspan="1" class="dataDisplayCell">
<asp:Label ID="lbBPRJ_BPPYN" runat="server"
CssClass="textInput" Text='<%# Bind("BPPYN", "{0:c}") %>'></asp:Label></td>
<td align="right" colspan="1">
<cc1:WLabel ID="lbBPRJ_BPPMELabel"
runat="server" CssClass="controlLabel"
TextMessageId="BPAA.BPPYM+:">專案年度名稱:</cc1:WLabel></td>
<td colspan="5" class="dataDisplayCell">
<asp:Label ID="lbBPRJ_BPPME" runat="server"
CssClass="textInput" Text='<%# GetLookup("BPAA", Eval("BPPYN", "{0:c}"), "BPPYM", "") %>'></asp:Label></td>
</tr>
<tr>
<td align="right" colspan="1">
<cc1:WLabel ID="lbBPRJ_BPNUMLabel"
runat="server" CssClass="controlLabel"
TextMessageId="BCUS.BCNUM+:">客戶編號:</cc1:WLabel></td>
<td colspan="1" class="dataDisplayCell">
<asp:Label ID="lbBPRJ_BPNUM" runat="server"
CssClass="textInput" Text='<%# _BPNUM %>'></asp:Label></td>
<td align="right" colspan="1">
<cc1:WLabel ID="lbBPRJ_BPNUMXLabel"
runat="server" CssClass="controlLabel"
TextMessageId="BCUS.BCNAM+:">客戶名稱:</cc1:WLabel></td>
<td colspan="5" class="dataDisplayCell">
<asp:Label ID="lbBPRJ_BPNUMX" runat="server"
CssClass="textInput" Text='<%# GetLookup("BCUS", _BPNUM, "BCNAM", "") %>'></asp:Label></td>
</tr>
<tr>
<td align="right" colspan="1">
<cc1:WLabel ID="lbBPAB_BPAMELabel"
runat="server" CssClass="controlLabel">大類名稱:</cc1:WLabel></td>
<td colspan="3" class="dataDisplayCell">
<cc1:WLabel ID="lbBPAB_BPAME" runat="server"
CssClass="textInput" Text='<%# Bind("BPAME", "{0}") %>'></cc1:WLabel></td>
<td align="right" colspan="1">
<cc1:WLabel ID="lbBPAB_BPORDLabel"
runat="server" CssClass="controlLabel"
TextMessageId="">順序:</cc1:WLabel></td>
<td class="dataDisplayCell">
<cc1:WLabel ID="lbBPAB_BPORD" runat="server"
CssClass="textInput" Text='<%# Bind("BPORD", "{0}") %>'
TextMessageId=""></cc1:WLabel></td>
</tr>
</table>
</ItemTemplate>
</asp:FormView>
<asp:GridView ID="gvBPAB" runat="server"
DataSourceID="dsBPABGrid" DataKeyNames="BPPYN,BPACC"
AutoGenerateColumns="False"
AllowPaging="True" OnDataBound="gvBPAB_DataBound"
OnPageIndexChanged="gvBPAB_PageIndexChanged"
OnRowDataBound="gvBPAB_RowDataBound"
OnSelectedIndexChanged="gvBPAB_SelectedIndexChanged">
<Columns>
<asp:CommandField SelectText=""
ShowSelectButton="True">
<ItemStyle Font-Bold="True" Font-Underline="False"
ForeColor="Orange" />
</asp:CommandField>
<asp:BoundField DataField="BPACC"
HeaderText="大類編號" ReadOnly="True"
SortExpression="BPACC">
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:BoundField DataField="BPAME"
HeaderText="大類名稱" SortExpression="BPAME" />
<asp:BoundField DataField="BPORD"
HeaderText="順序" SortExpression="BPORD">
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
</Columns>
<PagerTemplate>
<cc1:WGridViewPager ID="GridView1Pager"
runat="server" />
</PagerTemplate>
</asp:GridView>
</asp:View>
</asp:MultiView>