Merge branch 'feature/gridview-to-objectdatasource'
This commit is contained in:
@@ -0,0 +1,160 @@
|
||||
# GridView 銜接的 SqlDataSource 改用 ObjectDataSource
|
||||
|
||||
分支:`feature/gridview-to-objectdatasource`
|
||||
|
||||
## 目標與原則
|
||||
|
||||
- 只改**以 `DataSourceID` 綁定 SqlDataSource 的 GridView**;檔內的 FormView / DataList / DropDownList 之 SqlDataSource 不動。
|
||||
- 缺的 DAC 建立**專屬** DAC;查詢方法只要 `SelectPage` 與 `SelectCount`,**不**需要 Insert / Update / Delete。
|
||||
- 沿用既有 ObjectDataSource 工法(參考 `fmRpir` / `RpirDAC`):
|
||||
- ObjectDataSource 設定 `TypeName`、`SelectMethod`、`SelectCountMethod`、`EnablePaging="true"`。
|
||||
- `SelectPage` 前兩個參數為 `int startRowIndex, int maximumRows`(由 ObjectDataSource 自動帶入)。
|
||||
- 動態篩選邏輯由 code-behind 的 `SelectCommand` 字串組裝,改為 DAC 內參數化查詢,code-behind 只設 `SelectParameters[...].DefaultValue`。
|
||||
- 事件簽章由 `SqlDataSourceStatusEventArgs` 改為 `ObjectDataSourceStatusEventArgs`。
|
||||
|
||||
## 盤點:GridView ↔ SqlDataSource(共 24 個 / 19 檔,皆在 Web 專案)
|
||||
|
||||
| # | 檔案 | GridView ID | SqlDataSource ID | 來源表 | 既有 DAC | 狀態 |
|
||||
|---|---|---|---|---|---|---|
|
||||
| 1 | forms/customer/fmBcus.ascx | gvBCUS | dsBCUSGrid | BCUS | 無→BcusDAC | **完成** |
|
||||
| 2 | forms/customer/fmBpaa.ascx | gvBPAA | dsBPAAGrid | BPAA | BpaaDAC(+Select) | **完成** |
|
||||
| 3 | forms/customer/fmBpab.ascx | gvBPAB | dsBPABGrid | BPAB | 無→BpabDAC | **完成** |
|
||||
| 4 | forms/customer/fmBpabBig.ascx | gvBPAB | dsBPABGrid | BPAB | 無→BpabDAC | **完成** |
|
||||
| 5 | forms/customer/fmBpabSmall.ascx | gvBPAB | dsBPABGrid | BPAB | 無→BpabDAC | **完成** |
|
||||
| 6 | forms/customer/fmBpja.ascx | gvBPJA | dsBPJAGrid | BPJA | 無→BpjaDAC | **完成** |
|
||||
| 7 | forms/customer/fmBpjb.ascx | gvBPJB | dsBPJBGrid | BPJB | 無→BpjbDAC | **完成** |
|
||||
| 8 | forms/customer/fmBprj.ascx | gvBPRJ | dsBPRJGrid | BPRJ | BprjDAC(+Select) | **完成** |
|
||||
| 9 | forms/customer/fmBprm.ascx | gvBPRM | dsBPRMGrid | BPRM | BprmDAC(+Select) | **完成** |
|
||||
| 10 | forms/customer/fmRasn.ascx | gvRASN_RAENO | dsRASN_RAENO1 | RASN+BPSNView | RasnDAC(+Select) | **完成** |
|
||||
| 11 | forms/customer/fmRasn.ascx | gvRASN_RABRH | dsRASN_RABRH1 | RASN+BCLS | RasnDAC(+Select) | **完成** |
|
||||
| 12 | forms/customer/fmRasn.ascx | RASNGrid | dsRASNGrid | RASN/BPJB/BPSNView | RasnDAC(+Select) | **完成** |
|
||||
| 13 | forms/customer/fmRpfe.ascx | RPFEGrid | dsRPFEGrid | RPFE | 無→RpfeDAC | **完成** |
|
||||
| 14 | forms/flow/fmSign.ascx | gvRPAB2 | dsRPAB2 | RPAB | RpabDAC(+Select) | **完成** |
|
||||
| 15 | forms/flow/fmSign.ascx | gvRPAB | dsRPAB | RPAB | RpabDAC(+Select) | **完成** |
|
||||
| 16 | forms/summary/fmSalaryCalc.ascx | GridView1 | dsSACD | SACD | 無→SacdDAC | **完成** |
|
||||
| 17 | forms/worker/fmBpsn.ascx | GridView1 | dsBPSNGrid | BPSNView | BpsnDAC | **進行中** |
|
||||
| 18 | forms/worker/fmRowk.ascx | gvROWK | dsROWKGrid | ROWK | 無 | **保留**(使用 WUserControlBase 的 SqlDataSource 框架,需另案) |
|
||||
| 19 | forms/worker/fmRpar.ascx | RPARGrid | dsRPARGrid | RPAR | RparDAC(+Select) | **完成** |
|
||||
| 20 | forms/worker/fmRparWorker.ascx | RPABGrid | dsRPAB | RPAB | RpabDAC(+Select) | **完成** |
|
||||
| 21 | forms/worker/fmRparWorker.ascx | RPARGrid | dsRPARGrid | RPAR | RparDAC(+Select) | **完成** |
|
||||
| 22 | forms/worker/fmRsaj.ascx | RSAJGrid | dsRSAJGrid | RSAJ | RsajDAC(+Select) | **完成** |
|
||||
| 23 | forms/worker/fmSendSalaryStrip.ascx | gvSSMS | dsSSMS | SSMS | SsmsDAC(+Select) | **完成** |
|
||||
| 24 | forms/worker/fmSendSalaryStrip.ascx | gvSSMSSum(已註解) | dsSSMSSum | SSMS | SsmsDAC | **完成**(移除 dsSSMSSum,footer 改用 SsmsDAC) |
|
||||
|
||||
> 已為 ObjectDataSource(不列入):`fmBPAP`(dsBPAP)、`fmRparManager`(dsRpad)、`fmSign` 內 dsRPAR未簽/已簽/我的/我的督導、`fmBpsl`、`fmBPSE`、`fmRpir`。
|
||||
|
||||
## 驗證樣板:fmBPSN
|
||||
|
||||
### 現況
|
||||
- `fmBpsn.ascx` GridView1:`DataSourceID="dsBPSNGrid"`、`DataKeyNames="BPENO"`、`AllowPaging="True"`,事件 `OnDataBound / OnPageIndexChanged / OnRowDataBound / OnSelectedIndexChanged`。
|
||||
- `dsBPSNGrid`:`SelectCommand="SELECT * FROM BPSNView WHERE 1=0"`、`OnSelected="dsBPSNGrid_Selected"`。
|
||||
- `fmBpsn.ascx.cs` 的 `Search()` 以 `select`/`from`/`where` 欄位 + `AddSearch(...)` 動態組 SQL 後塞入 `dsBPSNGrid.SelectCommand`。
|
||||
- 篩選條件:BPENO/BPNME/BPENM/BPIDN(LIKE)、BPEDY_TYPE(在職/離職)、BPDPT_TYPE(部門/專案,`PublicVariable.InnerDepartment`)、BPSDY/BPEDY 區間、非管理者排除 `00001/00002/00003`、`!canSearch` 時只查自己。
|
||||
- 另有「依 BPENO 跳到該員工所在頁」邏輯(用 `ROWID - 1` 反查)。
|
||||
|
||||
### 變更內容
|
||||
1. `Web/App_Code/DAC/BpsnDAC.cs`:新增
|
||||
- `SelectPage(int startRowIndex, int maximumRows, string BPENO, string BPNME, string BPENM, string BPIDN, string BPEDY_TYPE, string BPDPT_TYPE, string BPSDY1, string BPSDY2, string BPEDY1, string BPEDY2, bool canSearch, string userId)`
|
||||
- `SelectCount(同上,去掉 startRowIndex/maximumRows)`
|
||||
- `SelectBPENOIndex(string targetBPENO, 同 SelectCount 參數)`(保留自動跳頁)
|
||||
2. `Web/forms/worker/fmBpsn.ascx`:`dsBPSNGrid` 由 SqlDataSource 改為 ObjectDataSource(`TypeName="BpsnDAC"`、`SelectMethod="SelectPage"`、`SelectCountMethod="SelectCount"`、`EnablePaging="true"`)。
|
||||
3. `Web/forms/worker/fmBpsn.ascx.cs`:`Search()` 改設 SelectParameters;`dsBPSNGrid_Selected` 改 `ObjectDataSourceStatusEventArgs`;`OnInit` 移除 ConnectionString 設定;移除不再使用的 `select`/`from`/`where` 欄位。
|
||||
|
||||
### 驗證步驟
|
||||
- `aspnet_compiler -v / -p "D:\VS.NET\Thinkyu\Web"`(或 VS 開站台)確認 App_Code 編譯無誤。
|
||||
- 手動測試:各篩選條件、在職/離職、部門/專案、分頁、SelectedIndex、無資料 NODATA、由 RPIR 帶 BPENO 進入時自動跳頁。
|
||||
- 核對 Grid 回傳欄位與舊 SQL 一致(RAPYN/RAPYNX/RABRH/RABRHX/RAJNO/RAJNOX/RACNO/RACNOX/RPCPY)。
|
||||
|
||||
## 效能比較(fmBPSN:舊 SqlDataSource vs 新 ObjectDataSource)
|
||||
|
||||
### 方法
|
||||
正式資料庫(192.168.1.50:23450)不可達,改用本機 SQL Server LocalDB 建立代表性 schema(`BPSNView` + `RASN/BPAA/BCLS/BPJA/BPJB/RPIR/RPIB` 與相關索引)模擬。基準程式為 C# + `System.Data.SqlClient`,比較:
|
||||
- **舊作法**:SqlDataSource 動態 SQL 全量查詢(GridView 端分頁)。
|
||||
- **新作法**:ObjectDataSource `SelectPage`(`TOP 10`)+ `SelectCount`(`PageSize=10`)。
|
||||
|
||||
取 7 次平均,`SET STATISTICS IO` 統計 logical reads。此為合成環境、**無網路傳輸**,絕對值與正式環境不同,比例可作參考。
|
||||
|
||||
### 結果(Filter=全部)
|
||||
|
||||
| 指標 | N=20,000 舊 | N=20,000 新(首頁) | N=100,000 舊 | N=100,000 新(首頁) |
|
||||
|---|---|---|---|---|
|
||||
| 回傳/繫結列數 | 20,000 | 10 | 100,000 | 10 |
|
||||
| DB 查詢時間 | 758.0 ms | 123.1 ms(count 122.0 + page 1.1) | 4,289.6 ms | 715.3 ms(count 714.0 + page 1.3) |
|
||||
| logical reads | 81,662 | 81,863 | 608,191 | 608,443 |
|
||||
| App 記憶體(DataTable) | ~54.6 MB | ~0 | ~252 MB | ~0 |
|
||||
|
||||
- 首頁 `SelectPage` 極快(1.1~1.3 ms、216~267 reads):可用 `BPENO` 索引提早結束。
|
||||
- DB 成本幾乎全落在 `SelectCount`(與舊全量查詢相同 reads),因為 COUNT 仍需掃描同樣資料。
|
||||
- 真正的效能來源是 **DB→App 的資料量由 N 列降為 10 列**,省下網路傳輸與 DataTable/GridView 繫結;網路越慢、欄位越多,實務改善越大。
|
||||
- **深頁跳轉較差**:`ROWID > @START` 且 START 很大時,無法提早結束,N=100,000 時 page 需 2,351 ms / 2,621,036 reads(約舊作法的 4.3 倍 reads)。此即 fmBPSN「依 BPENO 自動跳頁」可能踩到的情境。
|
||||
|
||||
### 結論
|
||||
- 一般瀏覽(首頁、逐頁):大幅改善(列數 ~10,000×、記憶體趨近 0、DB 時間約 6×)。
|
||||
- 深頁跳轉:DB reads 反而增加;後續可評估限制跳頁深度、或改用 keyset 分頁優化。
|
||||
|
||||
### 分頁 SQL 形式比較(N=100,000、PageSize=10、7 次平均)
|
||||
|
||||
| 形式 | page@0 ms | page@0 reads | page@deep ms | page@deep reads |
|
||||
|---|---|---|---|---|
|
||||
| OLD(全量) | 4,098.0 | 608,191 | 4,053.0 | 608,191 |
|
||||
| `TOP`(現行 SelectPage) | 7.4 | 273 | 2,166.3 | 2,621,045 |
|
||||
| `BETWEEN @START+1 AND @START+@MAX`(兩層查詢) | 3.1 | 268 | 2,192.3 | 2,621,037 |
|
||||
| `KEYSET`:先在窄集合算 ROWID 再 join 明細 | 3.4 | 300 | **48.0** | **6,549** |
|
||||
|
||||
- **`BETWEEN` 與 `TOP` 幾乎相同**:兩者都必須對「過濾後、已 join 的完整集合」計算 `ROW_NUMBER()`;當 offset 很大時仍要處理前面所有資料列,故深頁成本相同。`BETWEEN` 不會改善。
|
||||
- **`KEYSET` 形式**:把 `ROW_NUMBER()` 只算在 `BPSNView`(篩選欄位全部屬於 BPSNView),外層再用 `ROWID BETWEEN` 取出該頁的 10 個 `BPENO`,之後才 join 明細表。深頁由 2,166 ms / 262 萬 reads 降為 **48 ms / 6,549 reads(約 45× 快、400× reads)**。
|
||||
- **限制**:`KEYSET` 假設各明細 join 為 1:1(特別是 `RASN` 的現職派遣),否則原本「以 join 後結果計數」的語意會不同(同一員工可能多列)。已於 1:1 合成資料驗證 `TOP` 與 `KEYSET` 取出的頁面完全相同(差異 0 筆);正式環境需先確認 `RASN` 現職是否唯一。
|
||||
|
||||
### 最終實作(已套用於 BpsnDAC)
|
||||
- `SelectPage` 改為 KEYSET:先在 `BPSNView`(套用篩選)算 `ROW_NUMBER()` 取出該頁 `BPENO`,再 join 明細;`WHERE R.ROWID BETWEEN @STARTROWINDEX+1 AND @STARTROWINDEX+@MAXIMUMROWS`。
|
||||
- `SelectCount` 改為窄集合 `SELECT COUNT(*) FROM BPSNView A WHERE 1=1 {filter}`(與 KEYSET 分頁一致,且不需 join)。
|
||||
- `SelectBPENOIndex` 同步改為窄集合。
|
||||
|
||||
| 指標(N=100,000、PageSize=10) | 舊 SqlDataSource | 新 KEYSET |
|
||||
|---|---|---|
|
||||
| SelectPage 首頁 | 4,098 ms / 608,191 reads(全量) | 3.4 ms / 300 reads |
|
||||
| SelectPage 深頁 | 4,053 ms / 608,191 reads | 48 ms / 6,549 reads |
|
||||
| SelectCount(新增) | — | 110 ms / 6,253 reads |
|
||||
| 首頁總計(count + page) | 4,098 ms / 608,191 reads | ~113 ms / ~6,553 reads |
|
||||
| 回傳/繫結列數 | 100,000 | 10 |
|
||||
| App 記憶體 | ~252 MB | ~0 |
|
||||
|
||||
改善:首頁總計約 **38× 快、93× 少 reads**;深頁約 **45× 快**。原本 count 需 608,176 reads,窄集合後降為 6,253 reads。
|
||||
|
||||
## 待辦清單(Todo)
|
||||
|
||||
- [x] 建立分支 `feature/gridview-to-objectdatasource`
|
||||
- [x] 撰寫本計畫文檔
|
||||
- [x] fmBPSN:BpsnDAC 新增 SelectPage / SelectCount / SelectBPENOIndex
|
||||
- [x] fmBPSN:fmBpsn.ascx 改 dsBPSNGrid 為 ObjectDataSource
|
||||
- [x] fmBPSN:fmBpsn.ascx.cs 調整 Search / Selected / OnInit
|
||||
- [x] fmBPSN:編譯驗證(aspnet_compiler 通過,產出 App_Code.dll)
|
||||
- [ ] fmBPSN:手動功能驗證(各篩選、分頁、跳頁、NODATA)
|
||||
- [x] fmBcus:新增 BcusDAC(SelectPage/SelectCount/SelectBCNUMIndex);dsBCUSGrid 改 ObjectDataSource;Search/Selected/DataBound 調整;編譯通過
|
||||
- [ ] 其餘 22 個 Grid 依樣板陸續轉換(逐檔 commit)
|
||||
|
||||
## 變更紀錄
|
||||
|
||||
| 日期 | 內容 |
|
||||
|---|---|
|
||||
| 2026-09-10 | 建立計畫文檔、盤點清單;開始 fmBPSN 驗證 |
|
||||
| 2026-09-10 | fmBPSN 轉換完成:BpsnDAC 新增 SelectPage/SelectCount/SelectBPENOIndex;fmBpsn.ascx 改 ObjectDataSource;fmBpsn.ascx.cs 調整 Search/Selected/OnInit;aspnet_compiler 編譯通過 |
|
||||
| 2026-09-10 | 修復 BpsnDAC.cs 亂碼註解(原檔為 Big5,編輯後毀損),自 git HEAD 還原中文註解,並將檔案統一改存為 UTF-8 with BOM;重新編譯通過 |
|
||||
| 2026-09-10 | 以 LocalDB 合成資料(2 萬/10 萬筆)基準測試舊 SqlDataSource 與新 ObjectDataSource;結果:首頁列數 ~10,000×、記憶體趨近 0、DB 時間約 6×;深頁跳轉 reads 反而增加 |
|
||||
| 2026-09-10 | 分頁 SQL 形式比較:`BETWEEN` 與 `TOP` 相同(無改善);改採 KEYSET(窄集合算 ROWID 再 join 明細)並將 SelectCount/SelectBPENOIndex 改為窄集合。深頁 2,166ms/262萬 reads → 48ms/6,549 reads;count 714ms/608,176 reads → 110ms/6,253 reads;aspnet_compiler 編譯通過 |
|
||||
| 2026-09-10 | 轉換 fmBcus(BCUS):新增 BcusDAC;dsBCUSGrid 改 ObjectDataSource;跳回選取列改用 SelectBCNUMIndex;aspnet_compiler 編譯通過 |
|
||||
| 2026-09-10 | 轉換 fmBpaa(BPAA):BpaaDAC 新增 SelectPage/SelectCount/SelectBPAAIndex;dsBPAAGrid 改 ObjectDataSource;編譯通過 |
|
||||
| 2026-09-10 | 轉換 fmBpab / fmBpabBig / fmBpabSmall(BPAB):新增 BpabDAC(SelectPage/SelectCount,mode 區分科目/大類/小類);三檔 dsBPABGrid 改 ObjectDataSource;編譯通過 |
|
||||
| 2026-09-10 | 轉換 fmBpja(BPJA):新增 BpjaDAC(SelectPage/SelectCount/SelectBPJAIndex);dsBPJAGrid 改 ObjectDataSource;編譯通過 |
|
||||
| 2026-09-10 | 轉換 fmBpjb(BPJB):新增 BpjbDAC(SelectPage/SelectCount);dsBPJBGrid 改 ObjectDataSource;編譯通過 |
|
||||
| 2026-09-10 | 轉換 fmBprj(BPRJ):BprjDAC 新增 SelectPage/SelectCount/SelectBPRJIndex(含 LAST_YEAR 排序);dsBPRJGrid 改 ObjectDataSource;編譯通過 |
|
||||
| 2026-09-10 | 轉換 fmBprm(BPRM):BprmDAC 新增 SelectPage/SelectCount;dsBPRMGrid 改 ObjectDataSource;dsBPRM_Selected 拆分為 grid/form 兩個事件;編譯通過 |
|
||||
| 2026-09-10 | 轉換 fmRasn(RASN,3 個 Grid):RasnDAC 新增 SelectPage/SelectCount 及 SelectRAENO/SelectRABRH;三個 datasource 改 ObjectDataSource;Search/Selected 調整;編譯通過 |
|
||||
| 2026-09-10 | 轉換 fmRpfe(RPFE):新增 RpfeDAC(SelectPage/SelectCount);dsRPFEGrid 改 ObjectDataSource;編譯通過 |
|
||||
| 2026-09-10 | 轉換 fmSign(RPAB):RpabDAC 新增 SelectRPAB;dsRPAB2/dsRPAB 改 ObjectDataSource;dsRPAB2_Selecting 改 ODS 事件;編譯通過 |
|
||||
| 2026-09-10 | 轉換 fmSalaryCalc(SACD):新增 SacdDAC(SelectByProject);dsSACD 改 ObjectDataSource;編譯通過 |
|
||||
| 2026-09-10 | 轉換 fmRpar(RPAR):RparDAC 新增 SelectPage/SelectCount;dsRPARGrid 改 ObjectDataSource;Search/Selected 調整;編譯通過 |
|
||||
| 2026-09-10 | 轉換 fmRparWorker(RPAR/RPAB):RparDAC 新增 SelectWorkerPage/SelectWorkerCount;RpabDAC 新增 SelectRPABByRPREN;dsRPARGrid/dsRPAB 改 ObjectDataSource;編譯通過 |
|
||||
| 2026-09-10 | 轉換 fmRsaj(RSAJ):RsajDAC 新增 SelectPage/SelectCount;dsRSAJGrid 改 ObjectDataSource;編譯通過 |
|
||||
| 2026-09-10 | 轉換 fmSendSalaryStrip(SSMS):SsmsDAC 新增 SelectSalaryStrip/SelectSalaryStripSum;dsSSMS 改 ObjectDataSource;移除 dsSSMSSum(footer 改用 SsmsDAC);編譯通過 |
|
||||
| 2026-09-10 | fmRowk(ROWK)保留未轉換:其 Grid 綁定使用 WUserControlBase 的 Grid_View/GridView_DataSource(SqlDataSource)框架與 override Search,無法直接改用 ObjectDataSource,需另案重構 |
|
||||
@@ -0,0 +1,110 @@
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Data.Common;
|
||||
using System.Text;
|
||||
using System.ComponentModel;
|
||||
using Wellan.Data;
|
||||
|
||||
/// <summary>
|
||||
/// 客戶資料的資料處理類別
|
||||
/// </summary>
|
||||
[DataObject(true)]
|
||||
public class BcusDAC : Wellan.Data.WDAC
|
||||
{
|
||||
public BcusDAC()
|
||||
{
|
||||
}
|
||||
|
||||
public BcusDAC(string connectionConfig, string connectionConfigName)
|
||||
: this()
|
||||
{
|
||||
this._connectionConfig = connectionConfig;
|
||||
this._connectionConfigName = connectionConfigName;
|
||||
}
|
||||
|
||||
public BcusDAC(WQuery query)
|
||||
{
|
||||
this._query = query;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 客戶資料 Grid 分頁查詢
|
||||
/// </summary>
|
||||
[DataObjectMethod(DataObjectMethodType.Select)]
|
||||
public DataTable SelectPage(int startRowIndex, int maximumRows, string BCNUM, string BCNAM)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
|
||||
StringBuilder filter = new StringBuilder();
|
||||
BuildFilter(filter, cmd, BCNUM, BCNAM);
|
||||
|
||||
cmd.CommandText = String.Format(
|
||||
@"SELECT * FROM
|
||||
(
|
||||
SELECT *, ROW_NUMBER() OVER (ORDER BY BCNUM) AS ROWID
|
||||
FROM BCUS WHERE 1=1 {0}
|
||||
) AS TMP
|
||||
WHERE ROWID BETWEEN @STARTROWINDEX + 1 AND @STARTROWINDEX + @MAXIMUMROWS
|
||||
ORDER BY ROWID",
|
||||
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 SelectCount(string BCNUM, string BCNAM)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
|
||||
StringBuilder filter = new StringBuilder();
|
||||
BuildFilter(filter, cmd, BCNUM, BCNAM);
|
||||
|
||||
cmd.CommandText = String.Format("SELECT COUNT(*) FROM BCUS WHERE 1=1 {0}", filter.ToString());
|
||||
return WDAC.GetInt32Value(Query.ExecuteScalar(cmd));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 取得指定客戶編號在查詢結果中的序號 (0 起算)
|
||||
/// </summary>
|
||||
public int SelectBCNUMIndex(string targetBCNUM, string BCNUM, string BCNAM)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
|
||||
StringBuilder filter = new StringBuilder();
|
||||
BuildFilter(filter, cmd, BCNUM, BCNAM);
|
||||
|
||||
cmd.CommandText = String.Format(
|
||||
@"SELECT ROWID - 1 FROM
|
||||
(
|
||||
SELECT BCNUM, ROW_NUMBER() OVER (ORDER BY BCNUM) AS ROWID
|
||||
FROM BCUS WHERE 1=1 {0}
|
||||
) AS TMP WHERE BCNUM = @TARGET",
|
||||
filter.ToString());
|
||||
cmd.Parameters.Add(Query.NewParameter("TARGET", targetBCNUM));
|
||||
|
||||
object o = Query.ExecuteScalar(cmd);
|
||||
return (o is Int32 || o is Int64) ? WDAC.GetInt32Value(o) : -1;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 組出客戶資料 Grid 的查詢條件 (與舊 AddSearch 行為一致)
|
||||
/// </summary>
|
||||
private void BuildFilter(StringBuilder sb, DbCommand cmd, string BCNUM, string BCNAM)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(BCNUM))
|
||||
{
|
||||
sb.Append(" AND BCNUM LIKE @BCNUM1 ");
|
||||
cmd.Parameters.Add(Query.NewParameter("BCNUM1", BCNUM + "%"));
|
||||
}
|
||||
if (!string.IsNullOrEmpty(BCNAM))
|
||||
{
|
||||
sb.Append(" AND BCNAM LIKE @BCNAM1 ");
|
||||
cmd.Parameters.Add(Query.NewParameter("BCNAM1", BCNAM + "%"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,12 +3,15 @@ using System.Data;
|
||||
using System.Configuration;
|
||||
using System.Data.Common;
|
||||
using System.Collections;
|
||||
using System.ComponentModel;
|
||||
using System.Text;
|
||||
using Wellan.Common;
|
||||
using Wellan.Data;
|
||||
|
||||
/// <summary>
|
||||
/// 取得專案年度接單資料
|
||||
/// </summary>
|
||||
[DataObject(true)]
|
||||
public class BpaaDAC : Wellan.Data.WDAC
|
||||
{
|
||||
public BpaaDAC()
|
||||
@@ -325,4 +328,96 @@ public class BpaaDAC : Wellan.Data.WDAC
|
||||
cmd.Parameters.Add(Query.NewParameter("BPPNM", bppnm));
|
||||
return WDAC.GetStringValue(Query.ExecuteScalar(cmd));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 年度接單 Grid 分頁查詢
|
||||
/// </summary>
|
||||
[DataObjectMethod(DataObjectMethodType.Select)]
|
||||
public DataTable SelectPage(int startRowIndex, int maximumRows, string BPPNM, string BPYER, string BPPYN, string BPPYM)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
|
||||
StringBuilder filter = new StringBuilder();
|
||||
BuildFilter(filter, cmd, BPPNM, BPYER, BPPYN, BPPYM);
|
||||
|
||||
cmd.CommandText = String.Format(
|
||||
@"SELECT * FROM
|
||||
(
|
||||
SELECT *, ROW_NUMBER() OVER (ORDER BY BPPNM, BPYER) AS ROWID
|
||||
FROM BPAA WHERE 1=1 {0}
|
||||
) AS TMP
|
||||
WHERE ROWID BETWEEN @STARTROWINDEX + 1 AND @STARTROWINDEX + @MAXIMUMROWS
|
||||
ORDER BY ROWID",
|
||||
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 SelectCount(string BPPNM, string BPYER, string BPPYN, string BPPYM)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
|
||||
StringBuilder filter = new StringBuilder();
|
||||
BuildFilter(filter, cmd, BPPNM, BPYER, BPPYN, BPPYM);
|
||||
|
||||
cmd.CommandText = String.Format("SELECT COUNT(*) FROM BPAA WHERE 1=1 {0}", filter.ToString());
|
||||
return WDAC.GetInt32Value(Query.ExecuteScalar(cmd));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 取得指定年度接單在查詢結果中的序號 (0 起算)
|
||||
/// </summary>
|
||||
public int SelectBPAAIndex(string targetBPPNM, string targetBPYER, string BPPNM, string BPYER, string BPPYN, string BPPYM)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
|
||||
StringBuilder filter = new StringBuilder();
|
||||
BuildFilter(filter, cmd, BPPNM, BPYER, BPPYN, BPPYM);
|
||||
|
||||
cmd.CommandText = String.Format(
|
||||
@"SELECT ROWID - 1 FROM
|
||||
(
|
||||
SELECT BPPNM, BPYER, ROW_NUMBER() OVER (ORDER BY BPPNM, BPYER) AS ROWID
|
||||
FROM BPAA WHERE 1=1 {0}
|
||||
) AS TMP WHERE BPPNM = @TARGET_BPPNM AND BPYER = @TARGET_BPYER",
|
||||
filter.ToString());
|
||||
cmd.Parameters.Add(Query.NewParameter("TARGET_BPPNM", targetBPPNM));
|
||||
cmd.Parameters.Add(Query.NewParameter("TARGET_BPYER", targetBPYER));
|
||||
|
||||
object o = Query.ExecuteScalar(cmd);
|
||||
return (o is Int32 || o is Int64) ? WDAC.GetInt32Value(o) : -1;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 組出年度接單 Grid 的查詢條件 (與舊 AddSearch 行為一致)
|
||||
/// </summary>
|
||||
private void BuildFilter(StringBuilder sb, DbCommand cmd, string BPPNM, string BPYER, string BPPYN, string BPPYM)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(BPPNM))
|
||||
{
|
||||
sb.Append(" AND BPPNM LIKE @BPPNM1 ");
|
||||
cmd.Parameters.Add(Query.NewParameter("BPPNM1", BPPNM + "%"));
|
||||
}
|
||||
if (!string.IsNullOrEmpty(BPYER))
|
||||
{
|
||||
sb.Append(" AND BPYER LIKE @BPYER1 ");
|
||||
cmd.Parameters.Add(Query.NewParameter("BPYER1", BPYER + "%"));
|
||||
}
|
||||
if (!string.IsNullOrEmpty(BPPYN))
|
||||
{
|
||||
sb.Append(" AND BPPYN LIKE @BPPYN1 ");
|
||||
cmd.Parameters.Add(Query.NewParameter("BPPYN1", BPPYN + "%"));
|
||||
}
|
||||
if (!string.IsNullOrEmpty(BPPYM))
|
||||
{
|
||||
sb.Append(" AND BPPYM LIKE @BPPYM1 ");
|
||||
cmd.Parameters.Add(Query.NewParameter("BPPYM1", BPPYM + "%"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,103 @@
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Data.Common;
|
||||
using System.Text;
|
||||
using System.ComponentModel;
|
||||
using Wellan.Data;
|
||||
|
||||
/// <summary>
|
||||
/// 年度科目設定的資料處理類別
|
||||
/// </summary>
|
||||
[DataObject(true)]
|
||||
public class BpabDAC : Wellan.Data.WDAC
|
||||
{
|
||||
public BpabDAC()
|
||||
{
|
||||
}
|
||||
|
||||
public BpabDAC(string connectionConfig, string connectionConfigName)
|
||||
: this()
|
||||
{
|
||||
this._connectionConfig = connectionConfig;
|
||||
this._connectionConfigName = connectionConfigName;
|
||||
}
|
||||
|
||||
public BpabDAC(WQuery query)
|
||||
{
|
||||
this._query = query;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 年度科目設定 Grid 分頁查詢
|
||||
/// mode: BIG=大類, SMALL=小類, 其他=科目
|
||||
/// </summary>
|
||||
[DataObjectMethod(DataObjectMethodType.Select)]
|
||||
public DataTable SelectPage(int startRowIndex, int maximumRows, string BPPYN, string mode)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
|
||||
StringBuilder filter = new StringBuilder();
|
||||
BuildFilter(filter, cmd, BPPYN, mode);
|
||||
|
||||
cmd.CommandText = String.Format(
|
||||
@"SELECT * FROM
|
||||
(
|
||||
SELECT *, ROW_NUMBER() OVER (ORDER BY {0}) AS ROWID
|
||||
FROM BPAB WHERE 1=1 {1}
|
||||
) AS TMP
|
||||
WHERE ROWID BETWEEN @STARTROWINDEX + 1 AND @STARTROWINDEX + @MAXIMUMROWS
|
||||
ORDER BY ROWID",
|
||||
OrderBy(mode), 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 SelectCount(string BPPYN, string mode)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
|
||||
StringBuilder filter = new StringBuilder();
|
||||
BuildFilter(filter, cmd, BPPYN, mode);
|
||||
|
||||
cmd.CommandText = String.Format("SELECT COUNT(*) FROM BPAB WHERE 1=1 {0}", filter.ToString());
|
||||
return WDAC.GetInt32Value(Query.ExecuteScalar(cmd));
|
||||
}
|
||||
|
||||
private static string OrderBy(string mode)
|
||||
{
|
||||
if (mode == "BIG" || mode == "SMALL")
|
||||
return "BPPYN, BPCLS, BPORD";
|
||||
return "BPPYN, BPCLS";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 組出年度科目設定 Grid 的查詢條件 (與舊 Search 行為一致)
|
||||
/// </summary>
|
||||
private void BuildFilter(StringBuilder sb, DbCommand cmd, string BPPYN, string mode)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(BPPYN))
|
||||
{
|
||||
sb.Append(" AND BPPYN LIKE @BPPYN1 ");
|
||||
cmd.Parameters.Add(Query.NewParameter("BPPYN1", BPPYN + "%"));
|
||||
}
|
||||
|
||||
switch (mode)
|
||||
{
|
||||
case "BIG":
|
||||
sb.Append(" AND SUBSTRING(BPACC,3,4) = '0000' ");
|
||||
break;
|
||||
case "SMALL":
|
||||
sb.Append(" AND SUBSTRING(BPACC,3,2) <> '00' AND SUBSTRING(BPACC,5,2) = '00' ");
|
||||
break;
|
||||
default:
|
||||
sb.Append(" AND SUBSTRING(BPACC,3,2) <> '00' AND SUBSTRING(BPACC,5,2) <> '00' ");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Data.Common;
|
||||
using System.Text;
|
||||
using System.ComponentModel;
|
||||
using Wellan.Data;
|
||||
|
||||
/// <summary>
|
||||
/// 年度職稱設定的資料處理類別
|
||||
/// </summary>
|
||||
[DataObject(true)]
|
||||
public class BpjaDAC : Wellan.Data.WDAC
|
||||
{
|
||||
public BpjaDAC()
|
||||
{
|
||||
}
|
||||
|
||||
public BpjaDAC(string connectionConfig, string connectionConfigName)
|
||||
: this()
|
||||
{
|
||||
this._connectionConfig = connectionConfig;
|
||||
this._connectionConfigName = connectionConfigName;
|
||||
}
|
||||
|
||||
public BpjaDAC(WQuery query)
|
||||
{
|
||||
this._query = query;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 年度職稱設定 Grid 分頁查詢
|
||||
/// </summary>
|
||||
[DataObjectMethod(DataObjectMethodType.Select)]
|
||||
public DataTable SelectPage(int startRowIndex, int maximumRows, string BPPYN)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
|
||||
StringBuilder filter = new StringBuilder();
|
||||
BuildFilter(filter, cmd, BPPYN);
|
||||
|
||||
cmd.CommandText = String.Format(
|
||||
@"SELECT * FROM
|
||||
(
|
||||
SELECT *, ROW_NUMBER() OVER (ORDER BY BPPYN, BPJNO) AS ROWID
|
||||
FROM BPJA WHERE 1=1 {0}
|
||||
) AS TMP
|
||||
WHERE ROWID BETWEEN @STARTROWINDEX + 1 AND @STARTROWINDEX + @MAXIMUMROWS
|
||||
ORDER BY ROWID",
|
||||
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 SelectCount(string BPPYN)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
|
||||
StringBuilder filter = new StringBuilder();
|
||||
BuildFilter(filter, cmd, BPPYN);
|
||||
|
||||
cmd.CommandText = String.Format("SELECT COUNT(*) FROM BPJA WHERE 1=1 {0}", filter.ToString());
|
||||
return WDAC.GetInt32Value(Query.ExecuteScalar(cmd));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 取得指定職稱在查詢結果中的序號 (0 起算)
|
||||
/// </summary>
|
||||
public int SelectBPJAIndex(string targetBPPYN, string targetBPJNO, string BPPYN)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
|
||||
StringBuilder filter = new StringBuilder();
|
||||
BuildFilter(filter, cmd, BPPYN);
|
||||
|
||||
cmd.CommandText = String.Format(
|
||||
@"SELECT ROWID - 1 FROM
|
||||
(
|
||||
SELECT BPPYN, BPJNO, ROW_NUMBER() OVER (ORDER BY BPPYN, BPJNO) AS ROWID
|
||||
FROM BPJA WHERE 1=1 {0}
|
||||
) AS TMP WHERE BPPYN = @TARGET_BPPYN AND BPJNO = @TARGET_BPJNO",
|
||||
filter.ToString());
|
||||
cmd.Parameters.Add(Query.NewParameter("TARGET_BPPYN", targetBPPYN));
|
||||
cmd.Parameters.Add(Query.NewParameter("TARGET_BPJNO", targetBPJNO));
|
||||
|
||||
object o = Query.ExecuteScalar(cmd);
|
||||
return (o is Int32 || o is Int64) ? WDAC.GetInt32Value(o) : -1;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 組出年度職稱設定 Grid 的查詢條件 (與舊 AddSearch 行為一致)
|
||||
/// </summary>
|
||||
private void BuildFilter(StringBuilder sb, DbCommand cmd, string BPPYN)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(BPPYN))
|
||||
{
|
||||
sb.Append(" AND BPPYN LIKE @BPPYN1 ");
|
||||
cmd.Parameters.Add(Query.NewParameter("BPPYN1", BPPYN + "%"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Data.Common;
|
||||
using System.Text;
|
||||
using System.ComponentModel;
|
||||
using Wellan.Data;
|
||||
|
||||
/// <summary>
|
||||
/// 職稱等級設定的資料處理類別
|
||||
/// </summary>
|
||||
[DataObject(true)]
|
||||
public class BpjbDAC : Wellan.Data.WDAC
|
||||
{
|
||||
public BpjbDAC()
|
||||
{
|
||||
}
|
||||
|
||||
public BpjbDAC(string connectionConfig, string connectionConfigName)
|
||||
: this()
|
||||
{
|
||||
this._connectionConfig = connectionConfig;
|
||||
this._connectionConfigName = connectionConfigName;
|
||||
}
|
||||
|
||||
public BpjbDAC(WQuery query)
|
||||
{
|
||||
this._query = query;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 職稱等級設定 Grid 分頁查詢
|
||||
/// </summary>
|
||||
[DataObjectMethod(DataObjectMethodType.Select)]
|
||||
public DataTable SelectPage(int startRowIndex, int maximumRows, string BPPYN, string BPJNO)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
|
||||
StringBuilder filter = new StringBuilder();
|
||||
BuildFilter(filter, cmd, BPPYN, BPJNO);
|
||||
|
||||
cmd.CommandText = String.Format(
|
||||
@"SELECT * FROM
|
||||
(
|
||||
SELECT *, ROW_NUMBER() OVER (ORDER BY BPPYN, BPJNO, BPCNO) AS ROWID
|
||||
FROM BPJB WHERE 1=1 {0}
|
||||
) AS TMP
|
||||
WHERE ROWID BETWEEN @STARTROWINDEX + 1 AND @STARTROWINDEX + @MAXIMUMROWS
|
||||
ORDER BY ROWID",
|
||||
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 SelectCount(string BPPYN, string BPJNO)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
|
||||
StringBuilder filter = new StringBuilder();
|
||||
BuildFilter(filter, cmd, BPPYN, BPJNO);
|
||||
|
||||
cmd.CommandText = String.Format("SELECT COUNT(*) FROM BPJB WHERE 1=1 {0}", filter.ToString());
|
||||
return WDAC.GetInt32Value(Query.ExecuteScalar(cmd));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 組出職稱等級設定 Grid 的查詢條件 (與舊 AddSearch 行為一致)
|
||||
/// </summary>
|
||||
private void BuildFilter(StringBuilder sb, DbCommand cmd, string BPPYN, string BPJNO)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(BPPYN))
|
||||
{
|
||||
sb.Append(" AND BPPYN LIKE @BPPYN1 ");
|
||||
cmd.Parameters.Add(Query.NewParameter("BPPYN1", BPPYN + "%"));
|
||||
}
|
||||
if (!string.IsNullOrEmpty(BPJNO))
|
||||
{
|
||||
sb.Append(" AND BPJNO LIKE @BPJNO1 ");
|
||||
cmd.Parameters.Add(Query.NewParameter("BPJNO1", BPJNO + "%"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,12 +5,15 @@ using System.Configuration;
|
||||
using System.Data.Common;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Text;
|
||||
using Wellan.Data;
|
||||
using Wellan.Common;
|
||||
|
||||
/// <summary>
|
||||
/// BprjDAC 的摘要描述
|
||||
/// </summary>
|
||||
[DataObject(true)]
|
||||
public class BprjDAC : Wellan.Data.WDAC
|
||||
{
|
||||
public BprjDAC()
|
||||
@@ -28,4 +31,100 @@ public class BprjDAC : Wellan.Data.WDAC
|
||||
{
|
||||
this._query = query;
|
||||
}
|
||||
|
||||
private const string LastYearExpr =
|
||||
"(SELECT TOP 1 BPYER FROM BPAA WHERE BPAA.BPPNM = BPRJ.BPPNM ORDER BY BPYER DESC)";
|
||||
|
||||
/// <summary>
|
||||
/// 客戶專案 Grid 分頁查詢
|
||||
/// </summary>
|
||||
[DataObjectMethod(DataObjectMethodType.Select)]
|
||||
public DataTable SelectPage(int startRowIndex, int maximumRows, string BPNUM, string BPPNM, string BPPME)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
|
||||
StringBuilder filter = new StringBuilder();
|
||||
BuildFilter(filter, cmd, BPNUM, BPPNM, BPPME);
|
||||
|
||||
cmd.CommandText = String.Format(
|
||||
@"SELECT * FROM
|
||||
(
|
||||
SELECT X.*, ROW_NUMBER() OVER (ORDER BY LAST_YEAR DESC, BPNUM, BPPNM) AS ROWID
|
||||
FROM
|
||||
(
|
||||
SELECT *, {0} LAST_YEAR FROM BPRJ WHERE 1=1 {1}
|
||||
) X
|
||||
) AS TMP
|
||||
WHERE ROWID BETWEEN @STARTROWINDEX + 1 AND @STARTROWINDEX + @MAXIMUMROWS
|
||||
ORDER BY ROWID",
|
||||
LastYearExpr, 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 SelectCount(string BPNUM, string BPPNM, string BPPME)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
|
||||
StringBuilder filter = new StringBuilder();
|
||||
BuildFilter(filter, cmd, BPNUM, BPPNM, BPPME);
|
||||
|
||||
cmd.CommandText = String.Format("SELECT COUNT(*) FROM BPRJ WHERE 1=1 {0}", filter.ToString());
|
||||
return WDAC.GetInt32Value(Query.ExecuteScalar(cmd));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 取得指定專案在查詢結果中的序號 (0 起算)
|
||||
/// </summary>
|
||||
public int SelectBPRJIndex(string targetBPNUM, string targetBPPNM, string BPNUM, string BPPNM, string BPPME)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
|
||||
StringBuilder filter = new StringBuilder();
|
||||
BuildFilter(filter, cmd, BPNUM, BPPNM, BPPME);
|
||||
|
||||
cmd.CommandText = String.Format(
|
||||
@"SELECT ROWID - 1 FROM
|
||||
(
|
||||
SELECT X.BPNUM, X.BPPNM, ROW_NUMBER() OVER (ORDER BY X.LAST_YEAR DESC, X.BPNUM, X.BPPNM) AS ROWID
|
||||
FROM
|
||||
(
|
||||
SELECT BPNUM, BPPNM, {0} LAST_YEAR FROM BPRJ WHERE 1=1 {1}
|
||||
) X
|
||||
) AS TMP WHERE BPNUM = @TARGET_BPNUM AND BPPNM = @TARGET_BPPNM",
|
||||
LastYearExpr, filter.ToString());
|
||||
cmd.Parameters.Add(Query.NewParameter("TARGET_BPNUM", targetBPNUM));
|
||||
cmd.Parameters.Add(Query.NewParameter("TARGET_BPPNM", targetBPPNM));
|
||||
|
||||
object o = Query.ExecuteScalar(cmd);
|
||||
return (o is Int32 || o is Int64) ? WDAC.GetInt32Value(o) : -1;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 組出客戶專案 Grid 的查詢條件 (與舊 AddSearch 行為一致)
|
||||
/// </summary>
|
||||
private void BuildFilter(StringBuilder sb, DbCommand cmd, string BPNUM, string BPPNM, string BPPME)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(BPNUM))
|
||||
{
|
||||
sb.Append(" AND BPNUM LIKE @BPNUM1 ");
|
||||
cmd.Parameters.Add(Query.NewParameter("BPNUM1", BPNUM + "%"));
|
||||
}
|
||||
if (!string.IsNullOrEmpty(BPPNM))
|
||||
{
|
||||
sb.Append(" AND BPPNM LIKE @BPPNM1 ");
|
||||
cmd.Parameters.Add(Query.NewParameter("BPPNM1", BPPNM + "%"));
|
||||
}
|
||||
if (!string.IsNullOrEmpty(BPPME))
|
||||
{
|
||||
sb.Append(" AND BPPME LIKE @BPPME1 ");
|
||||
cmd.Parameters.Add(Query.NewParameter("BPPME1", "%" + BPPME + "%"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -8,11 +8,14 @@ using System.Web.UI.WebControls;
|
||||
using System.Web.UI.WebControls.WebParts;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using System.Data.Common;
|
||||
using System.ComponentModel;
|
||||
using System.Text;
|
||||
using Wellan.Data;
|
||||
|
||||
/// <summary>
|
||||
/// 用來取得專案處理人員資料的類別
|
||||
/// </summary>
|
||||
[DataObject(true)]
|
||||
public class BprmDAC : Wellan.Data.WDAC
|
||||
{
|
||||
public BprmDAC()
|
||||
@@ -63,4 +66,57 @@ public class BprmDAC : Wellan.Data.WDAC
|
||||
cmd.Parameters.Add(Query.NewParameter("BPPYN", BPPYN));
|
||||
return Query.Select(cmd);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 專案處理人員 Grid 分頁查詢
|
||||
/// </summary>
|
||||
[DataObjectMethod(DataObjectMethodType.Select)]
|
||||
public DataTable SelectPage(int startRowIndex, int maximumRows, string BPPNM)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
|
||||
StringBuilder filter = new StringBuilder();
|
||||
BuildFilter(filter, cmd, BPPNM);
|
||||
|
||||
cmd.CommandText = String.Format(
|
||||
@"SELECT * FROM
|
||||
(
|
||||
SELECT *, ROW_NUMBER() OVER (ORDER BY BPENO) AS ROWID
|
||||
FROM BPRM WHERE 1=1 {0}
|
||||
) AS TMP
|
||||
WHERE ROWID BETWEEN @STARTROWINDEX + 1 AND @STARTROWINDEX + @MAXIMUMROWS
|
||||
ORDER BY ROWID",
|
||||
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 SelectCount(string BPPNM)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
|
||||
StringBuilder filter = new StringBuilder();
|
||||
BuildFilter(filter, cmd, BPPNM);
|
||||
|
||||
cmd.CommandText = String.Format("SELECT COUNT(*) FROM BPRM WHERE 1=1 {0}", filter.ToString());
|
||||
return WDAC.GetInt32Value(Query.ExecuteScalar(cmd));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 組出專案處理人員 Grid 的查詢條件 (與舊 AddSearch 行為一致)
|
||||
/// </summary>
|
||||
private void BuildFilter(StringBuilder sb, DbCommand cmd, string BPPNM)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(BPPNM))
|
||||
{
|
||||
sb.Append(" AND BPPNM LIKE @BPPNM1 ");
|
||||
cmd.Parameters.Add(Query.NewParameter("BPPNM1", BPPNM + "%"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+243
-15
@@ -1,14 +1,16 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Data.Common;
|
||||
using System.Configuration;
|
||||
using System.Text;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using Wellan.Data;
|
||||
|
||||
/// <summary>
|
||||
/// 員工資料的資料處理類別
|
||||
/// 員工資料的資料處理類別
|
||||
/// </summary>
|
||||
[DataObject(true)]
|
||||
public class BpsnDAC : Wellan.Data.BPSN_DAC
|
||||
{
|
||||
private DbCommand cmdSelect;
|
||||
@@ -115,7 +117,7 @@ public class BpsnDAC : Wellan.Data.BPSN_DAC
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 取得人員目前派駐專案
|
||||
/// 取得人員目前派駐專案
|
||||
/// </summary>
|
||||
/// <param name="bpeno"></param>
|
||||
/// <returns></returns>
|
||||
@@ -125,7 +127,7 @@ public class BpsnDAC : Wellan.Data.BPSN_DAC
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 取得人員目前派駐專案
|
||||
/// 取得人員目前派駐專案
|
||||
/// </summary>
|
||||
/// <param name="bpeno"></param>
|
||||
/// <returns></returns>
|
||||
@@ -154,7 +156,7 @@ public class BpsnDAC : Wellan.Data.BPSN_DAC
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 取得人員目前派駐地點
|
||||
/// 取得人員目前派駐地點
|
||||
/// </summary>
|
||||
/// <param name="bpeno"></param>
|
||||
/// <returns></returns>
|
||||
@@ -164,7 +166,7 @@ public class BpsnDAC : Wellan.Data.BPSN_DAC
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 取得人員目前派駐地點
|
||||
/// 取得人員目前派駐地點
|
||||
/// </summary>
|
||||
/// <param name="bpeno"></param>
|
||||
/// <returns></returns>
|
||||
@@ -182,7 +184,7 @@ public class BpsnDAC : Wellan.Data.BPSN_DAC
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 取得人員電子郵件
|
||||
/// 取得人員電子郵件
|
||||
/// </summary>
|
||||
/// <param name="bpeno"></param>
|
||||
/// <returns></returns>
|
||||
@@ -197,7 +199,7 @@ public class BpsnDAC : Wellan.Data.BPSN_DAC
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 取得人員電子郵件2
|
||||
/// 取得人員電子郵件2
|
||||
/// </summary>
|
||||
/// <param name="bpeno"></param>
|
||||
/// <returns></returns>
|
||||
@@ -212,10 +214,10 @@ public class BpsnDAC : Wellan.Data.BPSN_DAC
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 取得某日期人員所屬公司名稱
|
||||
/// 取得某日期人員所屬公司名稱
|
||||
/// </summary>
|
||||
/// <param name="bpeno">員工編號</param>
|
||||
/// <param name="date">日期</param>
|
||||
/// <param name="bpeno">員工編號</param>
|
||||
/// <param name="date">日期</param>
|
||||
/// <returns></returns>
|
||||
public List<string> GetCompanyByDate(string bpeno, DateTime date)
|
||||
{
|
||||
@@ -243,7 +245,7 @@ public class BpsnDAC : Wellan.Data.BPSN_DAC
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 取得人員到職日期
|
||||
/// 取得人員到職日期
|
||||
/// </summary>
|
||||
/// <param name="bpeno"></param>
|
||||
/// <returns></returns>
|
||||
@@ -258,7 +260,7 @@ public class BpsnDAC : Wellan.Data.BPSN_DAC
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 取得人員離職日期
|
||||
/// 取得人員離職日期
|
||||
/// </summary>
|
||||
/// <param name="bpeno"></param>
|
||||
/// <returns></returns>
|
||||
@@ -287,12 +289,238 @@ public class BpsnDAC : Wellan.Data.BPSN_DAC
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 取出某日期在職的員工
|
||||
/// 取出某日期在職的員工
|
||||
/// </summary>
|
||||
/// <param name="date">日期</param>
|
||||
/// <param name="date">日期</param>
|
||||
/// <returns></returns>
|
||||
public DataTable GetOnBoardEmployee(DateTime date)
|
||||
{
|
||||
return Query.Select(Query.NewCommand("SELECT * FROM BPSNView WHERE dbo.EmployeeOnboard(BPENO, @DATE) = 1"));
|
||||
}
|
||||
private const string GridSelectColumns =
|
||||
@" A2.*
|
||||
, B.RAPYN, C.BPPYM RAPYNX, B.RABRH, D.BSSCR RABRHX, B.RAJNO, E.BPJME RAJNOX, B.RACNO
|
||||
, F.BPCME RACNOX, ISNULL(H.RPCPY, G.RPCPY) AS RPCPY ";
|
||||
|
||||
// 只 join 該頁明細用 (明細主表為 A2)
|
||||
private const string GridDetailJoins =
|
||||
@" LEFT OUTER JOIN RASN B ON A2.BPENO=B.RANUM AND (B.RAEDT IS NULL OR (B.RASDT <= @TODAY AND B.RAEDT >= @TODAY))
|
||||
LEFT OUTER JOIN BPAA C ON B.RAPYN=C.BPPYN
|
||||
LEFT OUTER JOIN BCLS D ON D.BSCLS=B.RABRH AND D.BSPAR='BPSNBRH'
|
||||
LEFT OUTER JOIN BPJA E ON E.BPPYN=B.RAPYN AND E.BPJNO=B.RAJNO
|
||||
LEFT OUTER JOIN BPJB F ON F.BPPYN=B.RAPYN AND F.BPJNO=B.RAJNO AND F.BPCNO=B.RACNO
|
||||
LEFT OUTER JOIN RPIR G ON A2.BPENO=G.RPENO AND G.RPREN=(SELECT MAX(RPREN) FROM RPIR WHERE RPENO=A2.BPENO)
|
||||
LEFT OUTER JOIN RPIB H ON G.RPREN=H.RPREN AND H.RPITM=(SELECT MAX(RPITM) FROM RPIB WHERE RPREN=H.RPREN) ";
|
||||
|
||||
/// <summary>
|
||||
/// 人員資料 Grid 分頁查詢
|
||||
/// </summary>
|
||||
[DataObjectMethod(DataObjectMethodType.Select)]
|
||||
public DataTable SelectPage(
|
||||
int startRowIndex,
|
||||
int maximumRows,
|
||||
string BPENO,
|
||||
string BPNME,
|
||||
string BPENM,
|
||||
string BPIDN,
|
||||
string BPEDY_TYPE,
|
||||
string BPDPT_TYPE,
|
||||
string BPSDY1,
|
||||
string BPSDY2,
|
||||
string BPEDY1,
|
||||
string BPEDY2,
|
||||
bool canSearch,
|
||||
string userId)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
|
||||
StringBuilder filter = new StringBuilder();
|
||||
BuildGridFilter(filter, cmd, BPENO, BPNME, BPENM, BPIDN, BPEDY_TYPE, BPDPT_TYPE, BPSDY1, BPSDY2, BPEDY1, BPEDY2, canSearch, userId);
|
||||
|
||||
// 先在窄集合 (BPSNView) 依 BPENO 排序計算 ROWID,取出該頁的 BPENO 後,
|
||||
// 才 join 明細表,避免深頁時對整個 join 結果計算 ROW_NUMBER()。
|
||||
cmd.CommandText = String.Format(
|
||||
@"SELECT {0}
|
||||
FROM
|
||||
(
|
||||
SELECT A.BPENO, ROW_NUMBER() OVER (ORDER BY A.BPENO) AS ROWID
|
||||
FROM BPSNView A WHERE 1=1 {1}
|
||||
) R
|
||||
JOIN BPSNView A2 ON A2.BPENO = R.BPENO
|
||||
{2}
|
||||
WHERE R.ROWID BETWEEN @STARTROWINDEX + 1 AND @STARTROWINDEX + @MAXIMUMROWS
|
||||
ORDER BY R.ROWID",
|
||||
GridSelectColumns, filter.ToString(), GridDetailJoins);
|
||||
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 SelectCount(
|
||||
string BPENO,
|
||||
string BPNME,
|
||||
string BPENM,
|
||||
string BPIDN,
|
||||
string BPEDY_TYPE,
|
||||
string BPDPT_TYPE,
|
||||
string BPSDY1,
|
||||
string BPSDY2,
|
||||
string BPEDY1,
|
||||
string BPEDY2,
|
||||
bool canSearch,
|
||||
string userId)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
|
||||
StringBuilder filter = new StringBuilder();
|
||||
BuildGridFilter(filter, cmd, BPENO, BPNME, BPENM, BPIDN, BPEDY_TYPE, BPDPT_TYPE, BPSDY1, BPSDY2, BPEDY1, BPEDY2, canSearch, userId);
|
||||
|
||||
cmd.CommandText = String.Format("SELECT COUNT(*) FROM BPSNView A WHERE 1=1 {0}", filter.ToString());
|
||||
return WDAC.GetInt32Value(Query.ExecuteScalar(cmd));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 取得指定人員編號在查詢結果中的序號 (0 起算)
|
||||
/// </summary>
|
||||
public int SelectBPENOIndex(
|
||||
string targetBPENO,
|
||||
string BPENO,
|
||||
string BPNME,
|
||||
string BPENM,
|
||||
string BPIDN,
|
||||
string BPEDY_TYPE,
|
||||
string BPDPT_TYPE,
|
||||
string BPSDY1,
|
||||
string BPSDY2,
|
||||
string BPEDY1,
|
||||
string BPEDY2,
|
||||
bool canSearch,
|
||||
string userId)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
|
||||
StringBuilder filter = new StringBuilder();
|
||||
BuildGridFilter(filter, cmd, BPENO, BPNME, BPENM, BPIDN, BPEDY_TYPE, BPDPT_TYPE, BPSDY1, BPSDY2, BPEDY1, BPEDY2, canSearch, userId);
|
||||
|
||||
cmd.CommandText = String.Format(
|
||||
@"SELECT ROWID - 1 FROM
|
||||
(
|
||||
SELECT A.BPENO, ROW_NUMBER() OVER (ORDER BY A.BPENO) AS ROWID
|
||||
FROM BPSNView A WHERE 1=1 {0}
|
||||
) AS TMP WHERE BPENO = @TARGET",
|
||||
filter.ToString());
|
||||
cmd.Parameters.Add(Query.NewParameter("TARGET", targetBPENO));
|
||||
|
||||
object o = Query.ExecuteScalar(cmd);
|
||||
return (o is Int32 || o is Int64) ? WDAC.GetInt32Value(o) : -1;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 組出人員資料 Grid 的查詢條件 (與舊 AddSearch 行為一致)
|
||||
/// </summary>
|
||||
private void BuildGridFilter(
|
||||
StringBuilder sb,
|
||||
DbCommand cmd,
|
||||
string BPENO,
|
||||
string BPNME,
|
||||
string BPENM,
|
||||
string BPIDN,
|
||||
string BPEDY_TYPE,
|
||||
string BPDPT_TYPE,
|
||||
string BPSDY1,
|
||||
string BPSDY2,
|
||||
string BPEDY1,
|
||||
string BPEDY2,
|
||||
bool canSearch,
|
||||
string userId)
|
||||
{
|
||||
cmd.Parameters.Add(Query.NewParameter("TODAY", DateTime.UtcNow.AddHours(8).Date));
|
||||
|
||||
if (!canSearch)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(userId))
|
||||
{
|
||||
sb.Append(" AND BPENO LIKE @BPENO1 ");
|
||||
cmd.Parameters.Add(Query.NewParameter("BPENO1", userId + "%"));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(BPENO))
|
||||
{
|
||||
sb.Append(" AND BPENO LIKE @BPENO1 ");
|
||||
cmd.Parameters.Add(Query.NewParameter("BPENO1", BPENO + "%"));
|
||||
}
|
||||
if (!string.IsNullOrEmpty(BPNME))
|
||||
{
|
||||
sb.Append(" AND BPNME LIKE @BPNME1 ");
|
||||
cmd.Parameters.Add(Query.NewParameter("BPNME1", BPNME + "%"));
|
||||
}
|
||||
if (!string.IsNullOrEmpty(BPENM))
|
||||
{
|
||||
sb.Append(" AND BPENM LIKE @BPENM1 ");
|
||||
cmd.Parameters.Add(Query.NewParameter("BPENM1", BPENM + "%"));
|
||||
}
|
||||
if (!string.IsNullOrEmpty(BPIDN))
|
||||
{
|
||||
sb.Append(" AND BPIDN LIKE @BPIDN1 ");
|
||||
cmd.Parameters.Add(Query.NewParameter("BPIDN1", BPIDN + "%"));
|
||||
}
|
||||
|
||||
switch (BPEDY_TYPE)
|
||||
{
|
||||
case "1":
|
||||
sb.Append(" AND (BPEDY IS NULL OR BPEDY >= @TODAY) ");
|
||||
break;
|
||||
case "2":
|
||||
sb.Append(" AND (BPEDY < @TODAY) ");
|
||||
break;
|
||||
}
|
||||
|
||||
switch (BPDPT_TYPE)
|
||||
{
|
||||
case "1":
|
||||
sb.AppendFormat(" AND BPDPT IN {0} ", PublicVariable.InnerDepartment);
|
||||
break;
|
||||
case "2":
|
||||
sb.AppendFormat(" AND BPDPT NOT IN {0} ", PublicVariable.InnerDepartment);
|
||||
break;
|
||||
}
|
||||
|
||||
AppendRange(sb, cmd, "BPSDY", BPSDY1, BPSDY2);
|
||||
AppendRange(sb, cmd, "BPEDY", BPEDY1, BPEDY2);
|
||||
|
||||
if (!IsManager(userId))
|
||||
{
|
||||
sb.Append(" AND BPENO NOT IN ('00001','00002','00003') ");
|
||||
}
|
||||
}
|
||||
|
||||
private void AppendRange(StringBuilder sb, DbCommand cmd, string field, string value1, string value2)
|
||||
{
|
||||
bool has1 = !string.IsNullOrEmpty(value1);
|
||||
bool has2 = !string.IsNullOrEmpty(value2);
|
||||
|
||||
if (has1 && has2)
|
||||
{
|
||||
sb.AppendFormat(" AND {0} >= @{0}1 AND {0} <= @{0}2 ", field);
|
||||
cmd.Parameters.Add(Query.NewParameter(field + "1", value1));
|
||||
cmd.Parameters.Add(Query.NewParameter(field + "2", value2));
|
||||
}
|
||||
else if (has1)
|
||||
{
|
||||
sb.AppendFormat(" AND {0} LIKE @{0}1 ", field);
|
||||
cmd.Parameters.Add(Query.NewParameter(field + "1", value1 + "%"));
|
||||
}
|
||||
else if (has2)
|
||||
{
|
||||
sb.AppendFormat(" AND {0} LIKE @{0}2 ", field);
|
||||
cmd.Parameters.Add(Query.NewParameter(field + "2", value2 + "%"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ using Wellan.Data;
|
||||
/// <summary>
|
||||
/// 人員派遣資料的資料處理類別
|
||||
/// </summary>
|
||||
[DataObject(true)]
|
||||
public class RasnDAC : Wellan.Data.WDAC
|
||||
{
|
||||
private DbCommand cmdSelectRasnRapyn = null;
|
||||
@@ -582,6 +583,124 @@ public class RasnDAC : Wellan.Data.WDAC
|
||||
}
|
||||
*/
|
||||
|
||||
/// <summary>
|
||||
/// 派遣人員清單 (未結束,供挑選人員用)
|
||||
/// </summary>
|
||||
[DataObjectMethod(DataObjectMethodType.Select)]
|
||||
public DataTable SelectRAENO(string RAPYN)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand(
|
||||
@"SELECT A.RANUM, B.BPNME
|
||||
FROM RASN AS A
|
||||
INNER JOIN BPSNView AS B ON A.RANUM = B.BPENO
|
||||
WHERE (A.RAPYN = @RAPYN) AND A.RAEDT IS NULL");
|
||||
cmd.Parameters.Add(Query.NewParameter("RAPYN", RAPYN));
|
||||
return Query.Select(cmd);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 站別統計 (未結束,供挑選站別用)
|
||||
/// </summary>
|
||||
[DataObjectMethod(DataObjectMethodType.Select)]
|
||||
public DataTable SelectRABRH(string RAPYN)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand(
|
||||
@"SELECT A.RABRH, B.BSSCR, COUNT(1) AS RABRH_COUNT
|
||||
FROM RASN AS A
|
||||
INNER JOIN BCLS AS B ON A.RABRH = B.BSCLS AND B.BSPAR = 'BPSNBRH'
|
||||
WHERE (A.RAPYN = @RAPYN) AND A.RAEDT IS NULL
|
||||
GROUP BY A.RABRH, B.BSSCR");
|
||||
cmd.Parameters.Add(Query.NewParameter("RAPYN", RAPYN));
|
||||
return Query.Select(cmd);
|
||||
}
|
||||
|
||||
private static readonly List<string> HQ_RAPYNS = new List<string>() { "103TYB00001", "103JYB00001" };
|
||||
|
||||
private string BuildRasnGridSql(string RAPYN, string BPENO, string BPNME, int year, StringBuilder filter, DbCommand cmd)
|
||||
{
|
||||
string order1, order2;
|
||||
if (HQ_RAPYNS.IndexOf(RAPYN) < 0)
|
||||
{
|
||||
order1 = "RANUM";
|
||||
order2 = "RAEDT, RANUM";
|
||||
}
|
||||
else
|
||||
{
|
||||
order1 = "RAEDT, RANUM";
|
||||
order2 = "RAEDT, RANUM";
|
||||
}
|
||||
|
||||
if (year > 0 && HQ_RAPYNS.IndexOf(RAPYN) < 0)
|
||||
{
|
||||
filter.AppendFormat(
|
||||
" 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') ) ",
|
||||
year);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(BPENO))
|
||||
{
|
||||
filter.Append(" AND C.BPENO LIKE @BPENO1 ");
|
||||
cmd.Parameters.Add(Query.NewParameter("BPENO1", BPENO + "%"));
|
||||
}
|
||||
if (!string.IsNullOrEmpty(BPNME))
|
||||
{
|
||||
filter.Append(" AND C.BPNME LIKE @BPNME1 ");
|
||||
cmd.Parameters.Add(Query.NewParameter("BPNME1", BPNME + "%"));
|
||||
}
|
||||
|
||||
return 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 {2}", order1, order2, filter.ToString());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 派遣紀錄 Grid 分頁查詢
|
||||
/// </summary>
|
||||
[DataObjectMethod(DataObjectMethodType.Select)]
|
||||
public DataTable SelectPage(int startRowIndex, int maximumRows, string RAPYN, string BPENO, string BPNME, int year)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
|
||||
StringBuilder filter = new StringBuilder();
|
||||
string inner = BuildRasnGridSql(RAPYN, BPENO, BPNME, year, filter, cmd);
|
||||
|
||||
cmd.CommandText = String.Format(
|
||||
@"SELECT * FROM
|
||||
(
|
||||
SELECT Q.*, ROW_NUMBER() OVER (ORDER BY CASE WHEN Q.RAEDT IS NULL THEN 0 ELSE 1 END, Q.ROWNUM) AS ROWID
|
||||
FROM ( {0} ) Q
|
||||
) AS TMP
|
||||
WHERE ROWID BETWEEN @STARTROWINDEX + 1 AND @STARTROWINDEX + @MAXIMUMROWS
|
||||
ORDER BY ROWID", inner);
|
||||
cmd.Parameters.Add(Query.NewParameter("RAPYN", RAPYN));
|
||||
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 SelectCount(string RAPYN, string BPENO, string BPNME, int year)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
|
||||
StringBuilder filter = new StringBuilder();
|
||||
string inner = BuildRasnGridSql(RAPYN, BPENO, BPNME, year, filter, cmd);
|
||||
|
||||
cmd.CommandText = String.Format("SELECT COUNT(*) FROM ( {0} ) Q", inner);
|
||||
cmd.Parameters.Add(Query.NewParameter("RAPYN", RAPYN));
|
||||
return WDAC.GetInt32Value(Query.ExecuteScalar(cmd));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ using System.ComponentModel;
|
||||
/// <summary>
|
||||
/// 人員差勤簽核檔
|
||||
/// </summary>
|
||||
[DataObject(true)]
|
||||
public class RpabDAC : Wellan.Data.WDAC
|
||||
{
|
||||
private string _select =
|
||||
@@ -289,4 +290,32 @@ public class RpabDAC : Wellan.Data.WDAC
|
||||
AddParam(cmd, "OLD_RPREN", RPREN);
|
||||
Query.ExecuteNonQuery(tran.Connection, tran, cmd);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 取得簽核關卡明細 (已簽核)
|
||||
/// </summary>
|
||||
[DataObjectMethod(DataObjectMethodType.Select)]
|
||||
public DataTable SelectRPAB(string RPREN)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand(
|
||||
@"SELECT RPANO, RPAPN, RPENO, RPDAT, RPAPP, RPDOC
|
||||
FROM RPAB
|
||||
WHERE RPREN = @RPREN AND RPDAT IS NOT NULL");
|
||||
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);
|
||||
}
|
||||
}
|
||||
@@ -8,6 +8,7 @@ using Wellan.Data;
|
||||
using Wellan.Common;
|
||||
using System.Transactions;
|
||||
using System.ComponentModel;
|
||||
using System.Text;
|
||||
using System.IO;
|
||||
using System.Web;
|
||||
using System.Linq;
|
||||
@@ -1856,6 +1857,186 @@ public class RparDAC : Wellan.Data.WDAC
|
||||
|
||||
return new 打卡檢查Item();
|
||||
}
|
||||
|
||||
private const string RparGridColumns =
|
||||
@"TRDAT, TRMOD, TRUSR, RPREN, RPNUM, RAITM, RPCNM, RPPYN, RPRDT, RPEDT, RPTYP, FLOOR(RPTCT / 60) AS RPTCT, RPFTR, RPDOC,
|
||||
APPNO, RPAPP, RPAPD, RPAPU, RPADT, RPAPN, RPANO, RPAGT, RPRTM, RPETM, RPUST, RPTC1, RPTC2, RPTC3,
|
||||
RPRSN, RPAGM, ISNULL(RPTCT - FLOOR(RPTCT / 60) * 60, 0) AS RPTMT";
|
||||
|
||||
private const string RparGridWhere = " WHERE ((RPAPN IS NULL) OR ((RPAPN<>'D') AND (RPAPN=RPANO))) ";
|
||||
|
||||
/// <summary>
|
||||
/// 差勤紀錄 Grid 分頁查詢
|
||||
/// </summary>
|
||||
[DataObjectMethod(DataObjectMethodType.Select)]
|
||||
public DataTable SelectPage(int startRowIndex, int maximumRows, string RPPYN, string RPNUM1, string RPNUM2, string RPRDT1, string RPRDT2, string rparType)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
|
||||
StringBuilder filter = new StringBuilder();
|
||||
BuildRparGridFilter(filter, cmd, RPPYN, RPNUM1, RPNUM2, RPRDT1, RPRDT2, rparType);
|
||||
|
||||
cmd.CommandText = String.Format(
|
||||
@"SELECT * FROM
|
||||
(
|
||||
SELECT {0}, ROW_NUMBER() OVER (ORDER BY RPREN) AS ROWID
|
||||
FROM RPAR {1} {2}
|
||||
) AS TMP
|
||||
WHERE ROWID BETWEEN @STARTROWINDEX + 1 AND @STARTROWINDEX + @MAXIMUMROWS
|
||||
ORDER BY ROWID",
|
||||
RparGridColumns, RparGridWhere, 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 SelectCount(string RPPYN, string RPNUM1, string RPNUM2, string RPRDT1, string RPRDT2, string rparType)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
|
||||
StringBuilder filter = new StringBuilder();
|
||||
BuildRparGridFilter(filter, cmd, RPPYN, RPNUM1, RPNUM2, RPRDT1, RPRDT2, rparType);
|
||||
|
||||
cmd.CommandText = String.Format("SELECT COUNT(*) FROM RPAR {0} {1}", RparGridWhere, filter.ToString());
|
||||
return WDAC.GetInt32Value(Query.ExecuteScalar(cmd));
|
||||
}
|
||||
|
||||
private void BuildRparGridFilter(StringBuilder sb, DbCommand cmd, string RPPYN, string RPNUM1, string RPNUM2, string RPRDT1, string RPRDT2, string rparType)
|
||||
{
|
||||
switch (rparType)
|
||||
{
|
||||
case "0":
|
||||
sb.Append(" AND RPTYP LIKE '0%' ");
|
||||
break;
|
||||
case "1":
|
||||
sb.Append(" AND RPTYP LIKE '1%' ");
|
||||
break;
|
||||
case "21":
|
||||
sb.Append(" AND RPTYP = '21' ");
|
||||
break;
|
||||
case "22":
|
||||
sb.Append(" AND RPTYP = '22' ");
|
||||
break;
|
||||
case "3":
|
||||
sb.Append(" AND RPTYP LIKE '3%' ");
|
||||
break;
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(RPPYN))
|
||||
{
|
||||
sb.Append(" AND RPPYN = @RPPYN1 ");
|
||||
cmd.Parameters.Add(Query.NewParameter("RPPYN1", RPPYN));
|
||||
}
|
||||
|
||||
AppendRparRange(sb, cmd, "RPNUM", RPNUM1, RPNUM2, true);
|
||||
AppendRparRange(sb, cmd, "RPRDT", RPRDT1, RPRDT2, false);
|
||||
}
|
||||
|
||||
private void AppendRparRange(StringBuilder sb, DbCommand cmd, string field, string value1, string value2, bool like)
|
||||
{
|
||||
bool has1 = !string.IsNullOrEmpty(value1);
|
||||
bool has2 = !string.IsNullOrEmpty(value2);
|
||||
|
||||
if (has1 && has2)
|
||||
{
|
||||
sb.AppendFormat(" AND {0} >= @{0}1 AND {0} <= @{0}2 ", field);
|
||||
cmd.Parameters.Add(Query.NewParameter(field + "1", value1));
|
||||
cmd.Parameters.Add(Query.NewParameter(field + "2", value2));
|
||||
}
|
||||
else if (has1)
|
||||
{
|
||||
if (like)
|
||||
{
|
||||
sb.AppendFormat(" AND {0} LIKE @{0}1 ", field);
|
||||
cmd.Parameters.Add(Query.NewParameter(field + "1", value1 + "%"));
|
||||
}
|
||||
else
|
||||
{
|
||||
sb.AppendFormat(" AND {0} >= @{0}1 ", field);
|
||||
cmd.Parameters.Add(Query.NewParameter(field + "1", value1));
|
||||
}
|
||||
}
|
||||
else if (has2)
|
||||
{
|
||||
if (like)
|
||||
{
|
||||
sb.AppendFormat(" AND {0} LIKE @{0}2 ", field);
|
||||
cmd.Parameters.Add(Query.NewParameter(field + "2", value2 + "%"));
|
||||
}
|
||||
else
|
||||
{
|
||||
sb.AppendFormat(" AND {0} <= @{0}2 ", field);
|
||||
cmd.Parameters.Add(Query.NewParameter(field + "2", value2));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Data.Common;
|
||||
using System.Text;
|
||||
using System.ComponentModel;
|
||||
using Wellan.Data;
|
||||
|
||||
/// <summary>
|
||||
/// 專案憑證的資料處理類別
|
||||
/// </summary>
|
||||
[DataObject(true)]
|
||||
public class RpfeDAC : Wellan.Data.WDAC
|
||||
{
|
||||
public RpfeDAC()
|
||||
{
|
||||
}
|
||||
|
||||
public RpfeDAC(string connectionConfig, string connectionConfigName)
|
||||
: this()
|
||||
{
|
||||
this._connectionConfig = connectionConfig;
|
||||
this._connectionConfigName = connectionConfigName;
|
||||
}
|
||||
|
||||
public RpfeDAC(WQuery query)
|
||||
{
|
||||
this._query = query;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 專案憑證 Grid 分頁查詢
|
||||
/// </summary>
|
||||
[DataObjectMethod(DataObjectMethodType.Select)]
|
||||
public DataTable SelectPage(int startRowIndex, int maximumRows, string RPPYN)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
|
||||
StringBuilder filter = new StringBuilder();
|
||||
BuildFilter(filter, cmd, RPPYN);
|
||||
|
||||
cmd.CommandText = String.Format(
|
||||
@"SELECT * FROM
|
||||
(
|
||||
SELECT *, ROW_NUMBER() OVER (ORDER BY RPPYN, RPREN) AS ROWID
|
||||
FROM RPFE WHERE 1=1 {0}
|
||||
) AS TMP
|
||||
WHERE ROWID BETWEEN @STARTROWINDEX + 1 AND @STARTROWINDEX + @MAXIMUMROWS
|
||||
ORDER BY ROWID",
|
||||
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 SelectCount(string RPPYN)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
|
||||
StringBuilder filter = new StringBuilder();
|
||||
BuildFilter(filter, cmd, RPPYN);
|
||||
|
||||
cmd.CommandText = String.Format("SELECT COUNT(*) FROM RPFE WHERE 1=1 {0}", filter.ToString());
|
||||
return WDAC.GetInt32Value(Query.ExecuteScalar(cmd));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 組出專案憑證 Grid 的查詢條件 (與舊 AddSearch 行為一致)
|
||||
/// </summary>
|
||||
private void BuildFilter(StringBuilder sb, DbCommand cmd, string RPPYN)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(RPPYN))
|
||||
{
|
||||
sb.Append(" AND RPPYN LIKE @RPPYN1 ");
|
||||
cmd.Parameters.Add(Query.NewParameter("RPPYN1", RPPYN + "%"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,15 @@
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Data.Common;
|
||||
using System.ComponentModel;
|
||||
using System.Text;
|
||||
using Wellan.Data;
|
||||
using Wellan.Common;
|
||||
|
||||
/// <summary>
|
||||
/// 薪資加減項資料處理類別
|
||||
/// </summary>
|
||||
[DataObject(true)]
|
||||
public class RsajDAC : Wellan.Data.WDAC
|
||||
{
|
||||
public RsajDAC()
|
||||
@@ -127,4 +130,62 @@ public class RsajDAC : Wellan.Data.WDAC
|
||||
cmd.Parameters.Add(Query.NewParameter("RSYMM", yymm));
|
||||
return GetStringValue(Query.ExecuteScalar(cmd));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 薪資加減項 Grid 分頁查詢
|
||||
/// </summary>
|
||||
[DataObjectMethod(DataObjectMethodType.Select)]
|
||||
public DataTable SelectPage(int startRowIndex, int maximumRows, string RSENO, string RSPYN)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
|
||||
StringBuilder filter = new StringBuilder();
|
||||
BuildFilter(filter, cmd, RSENO, RSPYN);
|
||||
|
||||
cmd.CommandText = String.Format(
|
||||
@"SELECT * FROM
|
||||
(
|
||||
SELECT *, ROW_NUMBER() OVER (ORDER BY RSYMM DESC, RSREN DESC) AS ROWID
|
||||
FROM RSAJ WHERE 1=1 {0}
|
||||
) AS TMP
|
||||
WHERE ROWID BETWEEN @STARTROWINDEX + 1 AND @STARTROWINDEX + @MAXIMUMROWS
|
||||
ORDER BY ROWID",
|
||||
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 SelectCount(string RSENO, string RSPYN)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand();
|
||||
|
||||
StringBuilder filter = new StringBuilder();
|
||||
BuildFilter(filter, cmd, RSENO, RSPYN);
|
||||
|
||||
cmd.CommandText = String.Format("SELECT COUNT(*) FROM RSAJ WHERE 1=1 {0}", filter.ToString());
|
||||
return WDAC.GetInt32Value(Query.ExecuteScalar(cmd));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 組出薪資加減項 Grid 的查詢條件 (與舊 AddSearch 行為一致)
|
||||
/// </summary>
|
||||
private void BuildFilter(StringBuilder sb, DbCommand cmd, string RSENO, string RSPYN)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(RSENO))
|
||||
{
|
||||
sb.Append(" AND RSENO LIKE @RSENO1 ");
|
||||
cmd.Parameters.Add(Query.NewParameter("RSENO1", RSENO + "%"));
|
||||
}
|
||||
if (!string.IsNullOrEmpty(RSPYN))
|
||||
{
|
||||
sb.Append(" AND RSPYN LIKE @RSPYN1 ");
|
||||
cmd.Parameters.Add(Query.NewParameter("RSPYN1", RSPYN + "%"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,13 @@
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Data.Common;
|
||||
using System.ComponentModel;
|
||||
using System.Text;
|
||||
using Wellan.Data;
|
||||
using Wellan.Common;
|
||||
using System.Data.SqlClient;
|
||||
|
||||
[DataObject(true)]
|
||||
public class SsmsDAC : Wellan.Data.WDAC
|
||||
{
|
||||
private DbCommand cmdSelectSSMS;
|
||||
@@ -629,6 +632,95 @@ public class SsmsDAC : Wellan.Data.WDAC
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private const string SelectSalaryStripSql =
|
||||
@"SELECT A.*,
|
||||
SSP06 + SSP07 + SSP08 + SSP13 + SSP14 OVERWORK,
|
||||
SSP09 + SSP10 + SSP12 OUTGOING,
|
||||
SSP00 + SSP01 + SSP02 + SSP03 + SSP04 + SSP05 + SSP06 + SSP07 + SSP08 + SSP09 + SSP10 + SSP11 + SSP12 + SSP13 + SSP14 + SSP15 + SSP99 SSPLUS,
|
||||
SSS01 + SSS02 + SSS09 LEAVING,
|
||||
SST01 + SST02 + SST03 + SST21 + SST22 OVERWORKTIME,
|
||||
(SSP00 + SSP01 + SSP02 + SSP03 + SSP04 + SSP05 + SSP06 + SSP07 + SSP08 + SSP09 + SSP10 + SSP11 + SSP12 + SSP13 + SSP14 + SSP15 + SSP99)
|
||||
- (SSS01 + SSS02 + SSS03 + SSS04 + SSS05 + SSS06 + SSS07 + SSS08 + SSS09 + SSS10 + SSS11 + SSS12 + SSS13 + SSS14 + SSS15 + SSS99) SSTOTAL,
|
||||
SSS01 + SSS02 + SSS04 + SSS05 + SSS06 + SSS07 + SSS08 + SSS09 + SSS10 + SSS11 + SSS12 + SSS13 + SSS14 + SSS15 + SSS99 SSMINUS,
|
||||
SSP01 + SSP02 + SSP03 + SSP04 + SSP05 + SSP06 + SSP07 + SSP08 + SSP09 + SSP10 + SSP11 + SSP12 + SSP13 + SSP14 + SSP15 + SSP99 TOTALPLUS,
|
||||
SSH01 + SSH02 + SSH03 EMPLOYER,
|
||||
ISNULL(B.BPNME, '') BPNME,
|
||||
ISNULL(C.BPPYM, '') BPPYM,
|
||||
ISNULL(B.BPSWY, '') BPSWY,
|
||||
ISNULL(D.BCNAM, '') BCNAM,
|
||||
ISNULL(B.BPACC, '') BPACC,
|
||||
ISNULL(B.BPEML, '') BPEML,
|
||||
ISNULL(B.BPEM2, '') BPEM2,
|
||||
(SELECT SUM(SSS06) FROM {0} E WHERE A.SSENO=E.SSENO AND E.SSYMM <= @SSYMM) SSS06SUM,
|
||||
(SELECT SUM(SSH06) FROM {0} F WHERE A.SSENO=F.SSENO AND F.SSYMM <= @SSYMM) SSH06SUM,
|
||||
SSC01, SSC03, SSC03, SSC04, SSC05, SSC06, SSC07, SSC08, SSC09, SSC10
|
||||
FROM {0} A
|
||||
LEFT OUTER JOIN BPSNView B ON A.SSENO=B.BPENO
|
||||
LEFT OUTER JOIN BPAA C ON A.SSPYN=C.BPPYN
|
||||
LEFT OUTER JOIN BRML D ON B.BPBNK=D.BCNUM";
|
||||
|
||||
private const string SelectSalaryStripSumSql =
|
||||
@"SELECT ISNULL(SUM(SSD01), 0) SSD01, ISNULL(SUM(SSD02), 0) SSD02, ISNULL(SUM(SSSRD), 0) SSSRD, ISNULL(SUM(SSP00), 0) SSP00,
|
||||
ISNULL(SUM(SSP01), 0) SSP01, ISNULL(SUM(SSP02), 0) SSP02, ISNULL(SUM(SSP03), 0) SSP03, ISNULL(SUM(SSP04), 0) SSP04,
|
||||
ISNULL(SUM(SSP05), 0) SSP05, ISNULL(SUM(SSP06), 0) SSP06, ISNULL(SUM(SSP07), 0) SSP07, ISNULL(SUM(SSP08), 0) SSP08,
|
||||
ISNULL(SUM(SSP09), 0) SSP09, ISNULL(SUM(SSP10), 0) SSP10, ISNULL(SUM(SSP11), 0) SSP11, ISNULL(SUM(SSP12), 0) SSP12,
|
||||
ISNULL(SUM(SSP13), 0) SSP13, ISNULL(SUM(SSP14), 0) SSP14, ISNULL(SUM(SSP15), 0) SSP15, ISNULL(SUM(SSP99), 0) SSP99,
|
||||
ISNULL(SUM(SSS01), 0) SSS01, ISNULL(SUM(SSS02), 0) SSS02, ISNULL(SUM(SSS03), 0) SSS03, ISNULL(SUM(SSS04), 0) SSS04,
|
||||
ISNULL(SUM(SSS05), 0) SSS05, ISNULL(SUM(SSS06), 0) SSS06, ISNULL(SUM(SSS07), 0) SSS07, ISNULL(SUM(SSS08), 0) SSS08,
|
||||
ISNULL(SUM(SSS09), 0) SSS09, ISNULL(SUM(SSS10), 0) SSS10, ISNULL(SUM(SSS11), 0) SSS11, ISNULL(SUM(SSS12), 0) SSS12,
|
||||
ISNULL(SUM(SSS13), 0) SSS13, ISNULL(SUM(SSS14), 0) SSS14, ISNULL(SUM(SSS15), 0) SSS15, ISNULL(SUM(SSS99), 0) SSS99,
|
||||
ISNULL(SUM(SSH01), 0) SSH01, ISNULL(SUM(SSH02), 0) SSH02, ISNULL(SUM(SSH03), 0) SSH03, ISNULL(SUM(SSH04), 0) SSH04,
|
||||
ISNULL(SUM(SSH05), 0) SSH05, ISNULL(SUM(SSH06), 0) SSH06, ISNULL(SUM(SSH07), 0) SSH07, ISNULL(SUM(SSH08), 0) SSH08,
|
||||
ISNULL(SUM(SSH09), 0) SSH09, ISNULL(SUM(SSH10), 0) SSH10, ISNULL(SUM(SST01), 0) SST01, ISNULL(SUM(SST02), 0) SST02,
|
||||
ISNULL(SUM(SST03), 0) SST03, ISNULL(SUM(SST04), 0) SST04, ISNULL(SUM(SST05), 0) SST05, ISNULL(SUM(SST06), 0) SST06,
|
||||
ISNULL(SUM(SST07), 0) SST07, ISNULL(SUM(SST08), 0) SST08, ISNULL(SUM(SST09), 0) SST09, ISNULL(SUM(SST10), 0) SST10,
|
||||
ISNULL(SUM(SST11), 0) SST11, ISNULL(SUM(SST12), 0) SST12, ISNULL(SUM(SST13), 0) SST13, ISNULL(SUM(SST14), 0) SST14,
|
||||
ISNULL(SUM(SST15), 0) SST15, ISNULL(SUM(SST16), 0) SST16, ISNULL(SUM(SST17), 0) SST17, ISNULL(SUM(SST18), 0) SST18,
|
||||
ISNULL(SUM(SST19), 0) SST19, ISNULL(SUM(SST20), 0) SST20, ISNULL(SUM(SST21), 0) SST21, ISNULL(SUM(SST22), 0) SST22,
|
||||
ISNULL(SUM(SST23), 0) SST23, ISNULL(SUM(SST24), 0) SST24, ISNULL(SUM(SST25), 0) SST25, ISNULL(SUM(SSL01), 0) SSL01,
|
||||
ISNULL(SUM(SSL02), 0) SSL02, ISNULL(SUM(SSL03), 0) SSL03, ISNULL(SUM(SSL04), 0) SSL04, ISNULL(SUM(SSL05), 0) SSL05,
|
||||
ISNULL(SUM(SSP06 + SSP07 + SSP08 + SSP13 + SSP14), 0) OVERWORK,
|
||||
ISNULL(SUM(SSP09 + SSP10 + SSP12), 0) OUTGOING,
|
||||
ISNULL(SUM(SSP00 + SSP01 + SSP02 + SSP03 + SSP04 + SSP05 + SSP06 + SSP07 + SSP08 + SSP09 + SSP10 + SSP11 + SSP12 +
|
||||
SSP13 + SSP14 + SSP15 + SSP99), 0) SSPLUS,
|
||||
ISNULL(SUM(SSS01 + SSS02 + SSS09), 0) LEAVING,
|
||||
ISNULL(SUM(SST01 + SST02 + SST03 + SST21 + SST22), 0) OVERWORKTIME,
|
||||
ISNULL(SUM((SSP00 + SSP01 + SSP02 + SSP03 + SSP04 + SSP05 + SSP06 + SSP07 + SSP08 + SSP09 + SSP10 + SSP11 + SSP12 +
|
||||
SSP13 + SSP14 + SSP15 + SSP99)
|
||||
- (SSS01 + SSS02 + SSS03 + SSS04 + SSS05 + SSS06 + SSS07 + SSS08 + SSS09 + SSS10 + SSS11 + SSS12 + SSS13 +
|
||||
SSS14 + SSS15 + SSS99)), 0) SSTOTAL,
|
||||
ISNULL(SUM(SSS01 + SSS02 + SSS04 + SSS05 + SSS06 + SSS07 + SSS08 + SSS09 + SSS10 + SSS11 + SSS12 + SSS13 + SSS14 +
|
||||
SSS15 + SSS99), 0) SSMINUS,
|
||||
ISNULL(SUM(SSP01 + SSP02 + SSP03 + SSP04 + SSP05 + SSP06 + SSP07 + SSP08 + SSP09 + SSP10 + SSP11 + SSP12 + SSP13 +
|
||||
SSP14 + SSP15 + SSP99), 0) TOTALPLUS,
|
||||
ISNULL(SUM(SSH01 + SSH02 + SSH03), 0) EMPLOYER
|
||||
FROM {0} A WHERE SSYMM=@SSYMM AND SSPYN=@SSPYN";
|
||||
|
||||
/// <summary>
|
||||
/// 薪資條發放 Grid 查詢
|
||||
/// </summary>
|
||||
[DataObjectMethod(DataObjectMethodType.Select)]
|
||||
public DataTable SelectSalaryStrip(string tableName, DateTime SSYMM, string SSPYN)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand(
|
||||
String.Format(SelectSalaryStripSql, tableName) + " WHERE SSYMM=@SSYMM AND SSPYN=@SSPYN ORDER BY SSENO ");
|
||||
cmd.Parameters.Add(Query.NewParameter("SSYMM", SSYMM));
|
||||
cmd.Parameters.Add(Query.NewParameter("SSPYN", SSPYN));
|
||||
return Query.Select(cmd);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 薪資條發放 Grid 合計查詢
|
||||
/// </summary>
|
||||
[DataObjectMethod(DataObjectMethodType.Select)]
|
||||
public DataTable SelectSalaryStripSum(string tableName, DateTime SSYMM, string SSPYN)
|
||||
{
|
||||
DbCommand cmd = Query.NewCommand(String.Format(SelectSalaryStripSumSql, tableName));
|
||||
cmd.Parameters.Add(Query.NewParameter("SSYMM", SSYMM));
|
||||
cmd.Parameters.Add(Query.NewParameter("SSPYN", SSPYN));
|
||||
return Query.Select(cmd);
|
||||
}
|
||||
}
|
||||
|
||||
public class SsmsRecord
|
||||
|
||||
@@ -43,11 +43,14 @@
|
||||
</table>
|
||||
</asp:View>
|
||||
<asp:View ID="EditView" runat="server">
|
||||
<asp:SqlDataSource ID="dsBCUSGrid" runat="server"
|
||||
ConflictDetection="CompareAllValues" SelectCommand="SELECT * FROM BCUS WHERE 1=0"
|
||||
ConnectionString="Data Source=SRYANG-2K3;Initial Catalog=THINKYU_WEB;Persist Security Info=True;User ID=sa"
|
||||
ProviderName="System.Data.SqlClient" OnSelected="dsBCUSGrid_Selected">
|
||||
</asp:SqlDataSource>
|
||||
<asp:ObjectDataSource ID="dsBCUSGrid" runat="server"
|
||||
TypeName="BcusDAC" SelectMethod="SelectPage" SelectCountMethod="SelectCount"
|
||||
EnablePaging="true" OnSelected="dsBCUSGrid_Selected">
|
||||
<SelectParameters>
|
||||
<asp:Parameter Name="BCNUM" Type="String" />
|
||||
<asp:Parameter Name="BCNAM" Type="String" />
|
||||
</SelectParameters>
|
||||
</asp:ObjectDataSource>
|
||||
<asp:SqlDataSource ID="dsBCUSForm" runat="server"
|
||||
ConflictDetection="CompareAllValues" SelectCommand="SELECT * FROM BCUS WHERE BCNUM=@BCNUM"
|
||||
DeleteCommand="DELETE BCUS WHERE BCNUM = @OLD_BCNUM AND APPNO = @OLD_APPNO"
|
||||
|
||||
@@ -20,10 +20,6 @@ public partial class forms_customer_fmBcus : Wellan.Web.UI.WUserControlBase
|
||||
private string _BCNUM = "";
|
||||
private string _BCNAM = "";
|
||||
private string _OLD_BCNUM = "";
|
||||
private string select = "SELECT * ";
|
||||
private string from = " FROM BCUS ";
|
||||
private string where = " WHERE 1=1 ";
|
||||
private string order = " ORDER BY BCNUM";
|
||||
private string _bcusCls = "";
|
||||
private string _bcusZon = "";
|
||||
|
||||
@@ -40,7 +36,6 @@ public partial class forms_customer_fmBcus : Wellan.Web.UI.WUserControlBase
|
||||
{
|
||||
base.OnInit(e);
|
||||
dsBCUSForm.ConnectionString = ConnectionString;
|
||||
dsBCUSGrid.ConnectionString = ConnectionString;
|
||||
|
||||
GetGridViewRowColor(gvBCUS);
|
||||
|
||||
@@ -95,15 +90,23 @@ public partial class forms_customer_fmBcus : Wellan.Web.UI.WUserControlBase
|
||||
// 查詢動作
|
||||
private new void Search()
|
||||
{
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.Append(select);
|
||||
sql.Append(from);
|
||||
sql.Append(where);
|
||||
dsBCUSGrid.SelectParameters.Clear();
|
||||
AddSearch(sql, dsBCUSGrid, "BCNUM", _BCNUM, "", true);
|
||||
AddSearch(sql, dsBCUSGrid, "BCNAM", _BCNAM, "", true);
|
||||
sql.Append(order);
|
||||
dsBCUSGrid.SelectCommand = sql.ToString();
|
||||
dsBCUSGrid.SelectParameters["BCNUM"].DefaultValue = _BCNUM;
|
||||
dsBCUSGrid.SelectParameters["BCNAM"].DefaultValue = _BCNAM;
|
||||
|
||||
// 返回時,回到之前選擇的那一筆
|
||||
if (ParamList != null && ParamList.ContainsKey("BCNUM"))
|
||||
{
|
||||
string bcnum = WDAC.GetStringValue(ParamList["BCNUM"]);
|
||||
|
||||
int rowIndex = new BcusDAC(Query).SelectBCNUMIndex(bcnum, _BCNUM, _BCNAM);
|
||||
if (rowIndex >= 0)
|
||||
{
|
||||
gvBCUS.PageIndex = rowIndex / gvBCUS.PageSize;
|
||||
gvBCUS.SelectedIndex = rowIndex - gvBCUS.PageIndex * gvBCUS.PageSize;
|
||||
}
|
||||
|
||||
ParamList.Remove("BCNUM");
|
||||
}
|
||||
}
|
||||
|
||||
private new void CalcFields(SqlDataSourceCommandEventArgs e)
|
||||
@@ -130,23 +133,6 @@ public partial class forms_customer_fmBcus : Wellan.Web.UI.WUserControlBase
|
||||
if (gvBCUS.SelectedIndex == -1)
|
||||
gvBCUS.SelectedIndex = 0;
|
||||
|
||||
// 返回時,回到之前選擇的那一筆
|
||||
if (ParamList.ContainsKey("BCNUM"))
|
||||
{
|
||||
string bcnum = WDAC.GetStringValue(ParamList["BCNUM"]);
|
||||
|
||||
DataView dv = dsBCUSGrid.Select(new DataSourceSelectArguments()) as DataView;
|
||||
dv.RowFilter = String.Format("BCNUM='{0}'", bcnum);
|
||||
if (dv.Count > 0)
|
||||
{
|
||||
int rowIndex = dv.Table.Rows.IndexOf(dv[0].Row);
|
||||
gvBCUS.PageIndex = (rowIndex / gvBCUS.PageSize);
|
||||
gvBCUS.SelectedIndex = rowIndex - gvBCUS.PageIndex * gvBCUS.PageSize;
|
||||
}
|
||||
|
||||
ParamList.Remove("BCNUM");
|
||||
}
|
||||
|
||||
fvBCUS.DataBind();
|
||||
}
|
||||
|
||||
@@ -157,9 +143,9 @@ public partial class forms_customer_fmBcus : Wellan.Web.UI.WUserControlBase
|
||||
gvBCUS.DataBind();
|
||||
}
|
||||
|
||||
protected void dsBCUSGrid_Selected(object sender, SqlDataSourceStatusEventArgs e)
|
||||
protected void dsBCUSGrid_Selected(object sender, ObjectDataSourceStatusEventArgs e)
|
||||
{
|
||||
if (e.AffectedRows == 0)
|
||||
if (e.ReturnValue is Int32 && WDAC.GetInt32Value(e.ReturnValue) == 0)
|
||||
{
|
||||
if (MultiView1.ActiveViewIndex == 0)
|
||||
{
|
||||
|
||||
@@ -66,10 +66,16 @@
|
||||
TextMessageId="" Visible="False"></cc1:WLabel>
|
||||
</asp:View>
|
||||
<asp:View ID="EditView" runat="server">
|
||||
<asp:SqlDataSource ID="dsBPAAGrid" runat="server"
|
||||
ConflictDetection="CompareAllValues" SelectCommand="SELECT * FROM BPAA WHERE 1=0"
|
||||
ConnectionString="Data Source=(local);Initial Catalog=THINKYU_WEB;Persist Security Info=True;User ID=sa"
|
||||
ProviderName="System.Data.SqlClient" OnSelected="dsBPAAGrid_Selected"></asp:SqlDataSource>
|
||||
<asp:ObjectDataSource ID="dsBPAAGrid" runat="server"
|
||||
TypeName="BpaaDAC" SelectMethod="SelectPage" SelectCountMethod="SelectCount"
|
||||
EnablePaging="true" OnSelected="dsBPAAGrid_Selected">
|
||||
<SelectParameters>
|
||||
<asp:Parameter Name="BPPNM" Type="String" />
|
||||
<asp:Parameter Name="BPYER" Type="String" />
|
||||
<asp:Parameter Name="BPPYN" Type="String" />
|
||||
<asp:Parameter Name="BPPYM" Type="String" />
|
||||
</SelectParameters>
|
||||
</asp:ObjectDataSource>
|
||||
<asp:SqlDataSource ID="dsBPAAForm" runat="server"
|
||||
InsertCommand="INSERT INTO BPAA
|
||||
(BPPNM, BPYER, BPPYN, BPPYM, BPBGT, BPFED, BPSAL, BPOTT, BPOTD, BPALT, APPNO, TRDAT, TRMOD,
|
||||
|
||||
@@ -27,10 +27,6 @@ public partial class forms_customer_fmBpaa : Wellan.Web.UI.WUserControlBase
|
||||
private string _BPPYM = "";
|
||||
//private int _OLD_BPYER = 0;
|
||||
//private string _OLD_BPPYN = "";
|
||||
private string select = "SELECT * ";
|
||||
private string from = " FROM BPAA ";
|
||||
private string where = " WHERE 1=1 ";
|
||||
private string order = " ORDER BY BPPNM, BPYER";
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
@@ -42,7 +38,6 @@ public partial class forms_customer_fmBpaa : Wellan.Web.UI.WUserControlBase
|
||||
{
|
||||
base.OnInit(e);
|
||||
dsBPAAForm.ConnectionString = ConnectionString;
|
||||
dsBPAAGrid.ConnectionString = ConnectionString;
|
||||
|
||||
//_BPPNM = ViewState["BPPNM"] != null ? ViewState["BPPNM"].ToString() : "";
|
||||
//_BPYER = ViewState["BPYER"] != null ? ViewState["BPYER"].ToString() : "";
|
||||
@@ -113,17 +108,27 @@ public partial class forms_customer_fmBpaa : Wellan.Web.UI.WUserControlBase
|
||||
// 查詢動作
|
||||
private new void Search()
|
||||
{
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.Append(select);
|
||||
sql.Append(from);
|
||||
sql.Append(where);
|
||||
dsBPAAGrid.SelectParameters.Clear();
|
||||
AddSearch(sql, dsBPAAGrid, "BPPNM", _BPPNM, "", true);
|
||||
AddSearch(sql, dsBPAAGrid, "BPYER", _BPYER, "", true);
|
||||
AddSearch(sql, dsBPAAGrid, "BPPYN", _BPPYN, "", true);
|
||||
AddSearch(sql, dsBPAAGrid, "BPPYM", _BPPYM, "", true);
|
||||
sql.Append(order);
|
||||
dsBPAAGrid.SelectCommand = sql.ToString();
|
||||
dsBPAAGrid.SelectParameters["BPPNM"].DefaultValue = _BPPNM;
|
||||
dsBPAAGrid.SelectParameters["BPYER"].DefaultValue = _BPYER;
|
||||
dsBPAAGrid.SelectParameters["BPPYN"].DefaultValue = _BPPYN;
|
||||
dsBPAAGrid.SelectParameters["BPPYM"].DefaultValue = _BPPYM;
|
||||
|
||||
// 返回時,回到之前選擇的那一筆
|
||||
if (ParamList != null && ParamList.ContainsKey("BPPNM") && ParamList.ContainsKey("BPYER"))
|
||||
{
|
||||
int rowIndex = new BpaaDAC(Query).SelectBPAAIndex(
|
||||
WDAC.GetStringValue(ParamList["BPPNM"]),
|
||||
WDAC.GetStringValue(ParamList["BPYER"]),
|
||||
_BPPNM, _BPYER, _BPPYN, _BPPYM);
|
||||
|
||||
if (rowIndex >= 0)
|
||||
{
|
||||
gvBPAA.PageIndex = rowIndex / gvBPAA.PageSize;
|
||||
gvBPAA.SelectedIndex = rowIndex - gvBPAA.PageIndex * gvBPAA.PageSize;
|
||||
}
|
||||
|
||||
ParamList.Remove("BPYER");
|
||||
}
|
||||
}
|
||||
|
||||
private void CalcFields(System.Collections.Specialized.IOrderedDictionary values)
|
||||
@@ -155,22 +160,6 @@ public partial class forms_customer_fmBpaa : Wellan.Web.UI.WUserControlBase
|
||||
if (gvBPAA.SelectedIndex == -1)
|
||||
gvBPAA.SelectedIndex = 0;
|
||||
|
||||
// 返回時,回到之前選擇的那一筆
|
||||
if (ParamList.ContainsKey("BPPNM") && ParamList.ContainsKey("BPYER"))
|
||||
{
|
||||
DataView dv = dsBPAAGrid.Select(new DataSourceSelectArguments()) as DataView;
|
||||
dv.RowFilter = String.Format("BPPNM='{0}' and BPYER={1}", ParamList["BPPNM"], ParamList["BPYER"]);
|
||||
if (dv.Count > 0)
|
||||
{
|
||||
int rowIndex = dv.Table.Rows.IndexOf(dv[0].Row);
|
||||
gvBPAA.PageIndex = (rowIndex / gvBPAA.PageSize);
|
||||
gvBPAA.SelectedIndex = rowIndex - gvBPAA.PageIndex * gvBPAA.PageSize;
|
||||
}
|
||||
|
||||
// ParamList.Remove("BPPNM");
|
||||
ParamList.Remove("BPYER");
|
||||
}
|
||||
|
||||
fvBPAA.DataBind();
|
||||
}
|
||||
}
|
||||
@@ -182,9 +171,9 @@ public partial class forms_customer_fmBpaa : Wellan.Web.UI.WUserControlBase
|
||||
gvBPAA.DataBind();
|
||||
}
|
||||
|
||||
protected void dsBPAAGrid_Selected(object sender, SqlDataSourceStatusEventArgs e)
|
||||
protected void dsBPAAGrid_Selected(object sender, ObjectDataSourceStatusEventArgs e)
|
||||
{
|
||||
if (e.AffectedRows == 0)
|
||||
if (e.ReturnValue is Int32 && WDAC.GetInt32Value(e.ReturnValue) == 0)
|
||||
{
|
||||
fvBPAA.ChangeMode(FormViewMode.Insert);
|
||||
fvBPAA_ModeChanged(sender, e);
|
||||
|
||||
@@ -72,10 +72,14 @@
|
||||
</table>
|
||||
</asp:View>
|
||||
<asp:View ID="EditView" runat="server">
|
||||
<asp:SqlDataSource ID="dsBPABGrid" runat="server" ConflictDetection="CompareAllValues"
|
||||
SelectCommand="SELECT * FROM BPAB WHERE 1=0" ConnectionString="Data Source=(local);Initial Catalog=THINKYU_WEB;Persist Security Info=True;User ID=sa"
|
||||
ProviderName="System.Data.SqlClient" OnSelected="dsBPABGrid_Selected">
|
||||
</asp:SqlDataSource>
|
||||
<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="ALL" />
|
||||
</SelectParameters>
|
||||
</asp:ObjectDataSource>
|
||||
<asp:SqlDataSource ID="dsBPABForm" runat="server" InsertCommand="INSERT INTO BPAB
|
||||
(BPPYN, BPACC, BPAME, BPBGT, BPCLS, BPORD,
|
||||
APPNO, TRDAT, TRMOD, TRUSR)
|
||||
|
||||
@@ -23,10 +23,6 @@ public partial class forms_customer_fmBpab : Wellan.Web.UI.WUserControlBase
|
||||
protected string _BPNUM = "";
|
||||
protected string _BPPYN = "";
|
||||
private string _OLD_BPACC = "";
|
||||
private string select = "SELECT * ";
|
||||
private string from = " FROM BPAB ";
|
||||
private string where = " WHERE 1=1 ";
|
||||
private string order = " ORDER BY BPPYN, BPCLS";
|
||||
private DbCommand cmdTree;
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
@@ -42,7 +38,6 @@ public partial class forms_customer_fmBpab : Wellan.Web.UI.WUserControlBase
|
||||
Page.ClientScript.RegisterStartupScript(Page.GetType(), "RestoreDivPosition", "RestoreDivPosition();", true);
|
||||
|
||||
dsBPABForm.ConnectionString = ConnectionString;
|
||||
dsBPABGrid.ConnectionString = ConnectionString;
|
||||
dsBPABBig.ConnectionString = ConnectionString;
|
||||
dsBPABSmall.ConnectionString = ConnectionString;
|
||||
|
||||
@@ -60,16 +55,7 @@ public partial class forms_customer_fmBpab : Wellan.Web.UI.WUserControlBase
|
||||
// 查詢動作
|
||||
private new void Search()
|
||||
{
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.Append(select);
|
||||
sql.Append(from);
|
||||
sql.Append(where);
|
||||
|
||||
dsBPABGrid.SelectParameters.Clear();
|
||||
AddSearch(sql, dsBPABGrid, "BPPYN", _BPPYN, "", true);
|
||||
sql.Append(" AND SUBSTRING(BPACC,3,2) <> '00' AND SUBSTRING(BPACC,5,2) <> '00' ");
|
||||
sql.Append(order);
|
||||
dsBPABGrid.SelectCommand = sql.ToString();
|
||||
dsBPABGrid.SelectParameters["BPPYN"].DefaultValue = _BPPYN;
|
||||
}
|
||||
|
||||
private new void CalcFields(SqlDataSourceCommandEventArgs e)
|
||||
@@ -129,9 +115,9 @@ public partial class forms_customer_fmBpab : Wellan.Web.UI.WUserControlBase
|
||||
gv.DataBind();
|
||||
}
|
||||
|
||||
protected void dsBPABGrid_Selected(object sender, SqlDataSourceStatusEventArgs e)
|
||||
protected void dsBPABGrid_Selected(object sender, ObjectDataSourceStatusEventArgs e)
|
||||
{
|
||||
if (e.AffectedRows == 0)
|
||||
if (e.ReturnValue is Int32 && WDAC.GetInt32Value(e.ReturnValue) == 0)
|
||||
{
|
||||
gvBPAB.Visible = false;
|
||||
fvBPAB.ChangeMode(FormViewMode.Insert);
|
||||
|
||||
@@ -10,13 +10,14 @@
|
||||
<asp:MultiView ID="MultiView1"
|
||||
runat="server" ActiveViewIndex="0">
|
||||
<asp:View ID="BigClassView" runat="server">
|
||||
<asp:SqlDataSource ID="dsBPABGrid"
|
||||
runat="server" ConflictDetection="CompareAllValues"
|
||||
SelectCommand="SELECT TRDAT, TRMOD, TRUSR, BPPYN, BPACC, BPAME, BPBGT, BPCLS, BPORD, APPNO FROM BPAB WHERE (1 = 0)"
|
||||
ConnectionString="Data Source=(local);Initial Catalog=THINKYU_WEB;Persist Security Info=True;User ID=sa"
|
||||
ProviderName="System.Data.SqlClient"
|
||||
OnSelected="dsBPABGrid_Selected">
|
||||
</asp:SqlDataSource>
|
||||
<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 (BPPYN, BPACC, BPAME, BPBGT, BPCLS, BPORD, APPNO, TRDAT, TRMOD, TRUSR) VALUES (@BPPYN, @BPACC, @BPAME, @BPBGT, @BPCLS, @BPORD, 1, GETDATE(), 'INSERT', @TRUSR)"
|
||||
UpdateCommand="UPDATE BPAB SET BPACC = @BPACC, BPAME = @BPAME, BPBGT = @BPBGT, BPCLS = @BPCLS, BPORD = @BPORD, APPNO = APPNO + 1, TRDAT = GETDATE(), TRMOD = 'UPDATE', TRUSR = @TRUSR WHERE BPPYN = @OLD_BPPYN AND BPACC = @OLD_BPACC AND APPNO = @OLD_APPNO"
|
||||
|
||||
@@ -22,10 +22,6 @@ public partial class forms_customer_fmBpabBig : Wellan.Web.UI.WUserControlBase
|
||||
{
|
||||
protected string _BPNUM = "";
|
||||
protected string _BPPYN = "";
|
||||
private string select = "SELECT * ";
|
||||
private string from = " FROM BPAB ";
|
||||
private string where = " WHERE 1=1 ";
|
||||
private string order = " ORDER BY BPPYN, BPCLS, BPORD";
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
@@ -37,7 +33,6 @@ public partial class forms_customer_fmBpabBig : Wellan.Web.UI.WUserControlBase
|
||||
{
|
||||
base.OnInit(e);
|
||||
dsBPABForm.ConnectionString = ConnectionString;
|
||||
dsBPABGrid.ConnectionString = ConnectionString;
|
||||
|
||||
_BPNUM = GetStringParam("BPNUM");
|
||||
_BPPYN = GetStringParam("BPPYN");
|
||||
@@ -50,16 +45,7 @@ public partial class forms_customer_fmBpabBig : Wellan.Web.UI.WUserControlBase
|
||||
// 查詢動作
|
||||
private new void Search()
|
||||
{
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.Append(select);
|
||||
sql.Append(from);
|
||||
sql.Append(where);
|
||||
|
||||
dsBPABGrid.SelectParameters.Clear();
|
||||
AddSearch(sql, dsBPABGrid, "BPPYN", _BPPYN, "", true);
|
||||
sql.Append(" AND SUBSTRING(BPACC,3,4) = '0000' ");
|
||||
sql.Append(order);
|
||||
dsBPABGrid.SelectCommand = sql.ToString();
|
||||
dsBPABGrid.SelectParameters["BPPYN"].DefaultValue = _BPPYN;
|
||||
}
|
||||
|
||||
private new void CalcFields(SqlDataSourceCommandEventArgs e)
|
||||
@@ -139,9 +125,9 @@ public partial class forms_customer_fmBpabBig : Wellan.Web.UI.WUserControlBase
|
||||
gvBPAB.DataBind();
|
||||
}
|
||||
|
||||
protected void dsBPABGrid_Selected(object sender, SqlDataSourceStatusEventArgs e)
|
||||
protected void dsBPABGrid_Selected(object sender, ObjectDataSourceStatusEventArgs e)
|
||||
{
|
||||
if (e.AffectedRows == 0)
|
||||
if (e.ReturnValue is Int32 && WDAC.GetInt32Value(e.ReturnValue) == 0)
|
||||
{
|
||||
gvBPAB.Visible = false;
|
||||
fvBPAB.ChangeMode(FormViewMode.Insert);
|
||||
|
||||
@@ -9,13 +9,14 @@
|
||||
<asp:MultiView ID="MultiView1"
|
||||
runat="server" ActiveViewIndex="0">
|
||||
<asp:View ID="BigClassView" runat="server">
|
||||
<asp:SqlDataSource ID="dsBPABGrid"
|
||||
runat="server" ConflictDetection="CompareAllValues"
|
||||
SelectCommand="SELECT * FROM BPAB WHERE 1=0"
|
||||
ConnectionString="Data Source=(local);Initial Catalog=THINKYU_WEB;Persist Security Info=True;User ID=sa"
|
||||
ProviderName="System.Data.SqlClient"
|
||||
OnSelected="dsBPABGrid_Selected">
|
||||
</asp:SqlDataSource>
|
||||
<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="SMALL" />
|
||||
</SelectParameters>
|
||||
</asp:ObjectDataSource>
|
||||
<asp:SqlDataSource ID="dsBPABForm"
|
||||
runat="server" InsertCommand="INSERT INTO BPAB
|
||||
(BPPYN, BPACC, BPAME, BPBGT, BPCLS, BPORD,
|
||||
|
||||
@@ -23,10 +23,6 @@ public partial class forms_customer_fmBpabSmall : Wellan.Web.UI.WUserControlBase
|
||||
protected string _BPNUM = "";
|
||||
protected string _BPPYN = "";
|
||||
private string _OLD_BPACC = "";
|
||||
private string select = "SELECT * ";
|
||||
private string from = " FROM BPAB ";
|
||||
private string where = " WHERE 1=1 ";
|
||||
private string order = " ORDER BY BPPYN, BPCLS, BPORD";
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
@@ -38,7 +34,6 @@ public partial class forms_customer_fmBpabSmall : Wellan.Web.UI.WUserControlBase
|
||||
{
|
||||
base.OnInit(e);
|
||||
dsBPABForm.ConnectionString = ConnectionString;
|
||||
dsBPABGrid.ConnectionString = ConnectionString;
|
||||
dsBPABBig.ConnectionString = ConnectionString;
|
||||
|
||||
_BPNUM = GetStringParam("BPNUM");
|
||||
@@ -54,16 +49,7 @@ public partial class forms_customer_fmBpabSmall : Wellan.Web.UI.WUserControlBase
|
||||
// 查詢動作
|
||||
private new void Search()
|
||||
{
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.Append(select);
|
||||
sql.Append(from);
|
||||
sql.Append(where);
|
||||
|
||||
dsBPABGrid.SelectParameters.Clear();
|
||||
AddSearch(sql, dsBPABGrid, "BPPYN", _BPPYN, "", true);
|
||||
sql.Append(" AND SUBSTRING(BPACC,3,2) <> '00' AND SUBSTRING(BPACC,5,2) = '00' ");
|
||||
sql.Append(order);
|
||||
dsBPABGrid.SelectCommand = sql.ToString();
|
||||
dsBPABGrid.SelectParameters["BPPYN"].DefaultValue = _BPPYN;
|
||||
}
|
||||
|
||||
private new void CalcFields(SqlDataSourceCommandEventArgs e)
|
||||
@@ -194,9 +180,9 @@ public partial class forms_customer_fmBpabSmall : Wellan.Web.UI.WUserControlBase
|
||||
gvBPAB.DataBind();
|
||||
}
|
||||
|
||||
protected void dsBPABGrid_Selected(object sender, SqlDataSourceStatusEventArgs e)
|
||||
protected void dsBPABGrid_Selected(object sender, ObjectDataSourceStatusEventArgs e)
|
||||
{
|
||||
if (e.AffectedRows == 0)
|
||||
if (e.ReturnValue is Int32 && WDAC.GetInt32Value(e.ReturnValue) == 0)
|
||||
{
|
||||
gvBPAB.Visible = false;
|
||||
fvBPAB.ChangeMode(FormViewMode.Insert);
|
||||
|
||||
@@ -9,10 +9,14 @@
|
||||
<asp:MultiView ID="MultiView1"
|
||||
runat="server" ActiveViewIndex="0">
|
||||
<asp:View ID="EditView" runat="server">
|
||||
<asp:SqlDataSource ID="dsBPJAGrid"
|
||||
runat="server" ConflictDetection="CompareAllValues"
|
||||
SelectCommand="SELECT * FROM BPJA WHERE (1 = 0)"
|
||||
OnSelected="dsBPJAGrid_Selected"></asp:SqlDataSource>
|
||||
<asp:ObjectDataSource ID="dsBPJAGrid"
|
||||
runat="server" TypeName="BpjaDAC"
|
||||
SelectMethod="SelectPage" SelectCountMethod="SelectCount"
|
||||
EnablePaging="true" OnSelected="dsBPJAGrid_Selected">
|
||||
<SelectParameters>
|
||||
<asp:Parameter Name="BPPYN" Type="String" />
|
||||
</SelectParameters>
|
||||
</asp:ObjectDataSource>
|
||||
<asp:SqlDataSource ID="dsBPJAForm"
|
||||
runat="server" InsertCommand="INSERT INTO dbo.BPJA
|
||||
(BPPYN, BPJNO, BPJME, BPQTY, BPCLS, APPNO, TRDAT, TRMOD, TRUSR)
|
||||
|
||||
@@ -22,10 +22,6 @@ public partial class forms_customer_fmBpja : Wellan.Web.UI.WUserControlBase
|
||||
{
|
||||
protected string _BPNUM = "";
|
||||
protected string _BPPYN = "";
|
||||
private string select = "SELECT * ";
|
||||
private string from = " FROM BPJA ";
|
||||
private string where = " WHERE 1=1 ";
|
||||
private string order = " ORDER BY BPPYN, BPJNO";
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
@@ -37,7 +33,6 @@ public partial class forms_customer_fmBpja : Wellan.Web.UI.WUserControlBase
|
||||
{
|
||||
base.OnInit(e);
|
||||
dsBPJAForm.ConnectionString = ConnectionString;
|
||||
dsBPJAGrid.ConnectionString = ConnectionString;
|
||||
|
||||
_BPPYN = GetStringParam("BPPYN");
|
||||
_BPNUM = GetStringParam("BPNUM");
|
||||
@@ -50,14 +45,24 @@ public partial class forms_customer_fmBpja : Wellan.Web.UI.WUserControlBase
|
||||
// 查詢動作
|
||||
private new void Search()
|
||||
{
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.Append(select);
|
||||
sql.Append(from);
|
||||
sql.Append(where);
|
||||
dsBPJAGrid.SelectParameters.Clear();
|
||||
AddSearch(sql, dsBPJAGrid, "BPPYN", _BPPYN, "", true);
|
||||
sql.Append(order);
|
||||
dsBPJAGrid.SelectCommand = sql.ToString();
|
||||
dsBPJAGrid.SelectParameters["BPPYN"].DefaultValue = _BPPYN;
|
||||
|
||||
// 返回時,回到之前選擇的那一筆
|
||||
if (ParamList != null && ParamList.ContainsKey("BPPYN") && ParamList.ContainsKey("BPJNO"))
|
||||
{
|
||||
int rowIndex = new BpjaDAC(Query).SelectBPJAIndex(
|
||||
WDAC.GetStringValue(ParamList["BPPYN"]),
|
||||
WDAC.GetStringValue(ParamList["BPJNO"]),
|
||||
_BPPYN);
|
||||
|
||||
if (rowIndex >= 0)
|
||||
{
|
||||
gvBPJA.PageIndex = rowIndex / gvBPJA.PageSize;
|
||||
gvBPJA.SelectedIndex = rowIndex - gvBPJA.PageIndex * gvBPJA.PageSize;
|
||||
}
|
||||
|
||||
ParamList.Remove("BPJNO");
|
||||
}
|
||||
}
|
||||
|
||||
private new void CalcFields(SqlDataSourceCommandEventArgs e)
|
||||
@@ -84,23 +89,6 @@ public partial class forms_customer_fmBpja : Wellan.Web.UI.WUserControlBase
|
||||
if (gvBPJA.SelectedIndex == -1)
|
||||
gvBPJA.SelectedIndex = 0;
|
||||
|
||||
// 返回時,回到之前選擇的那一筆
|
||||
// BPPYN,BPJNO
|
||||
if (ParamList.ContainsKey("BPPYN") && ParamList.ContainsKey("BPJNO"))
|
||||
{
|
||||
DataView dv = dsBPJAGrid.Select(new DataSourceSelectArguments()) as DataView;
|
||||
dv.RowFilter = String.Format("BPPYN='{0}' and BPJNO='{1}'", ParamList["BPPYN"], ParamList["BPJNO"]);
|
||||
if (dv.Count > 0)
|
||||
{
|
||||
int rowIndex = dv.Table.Rows.IndexOf(dv[0].Row);
|
||||
gvBPJA.PageIndex = (rowIndex / gvBPJA.PageSize);
|
||||
gvBPJA.SelectedIndex = rowIndex - gvBPJA.PageIndex * gvBPJA.PageSize;
|
||||
}
|
||||
|
||||
// ParamList.Remove("BPPYN");
|
||||
ParamList.Remove("BPJNO");
|
||||
}
|
||||
|
||||
fvBPJA.DataBind();
|
||||
}
|
||||
}
|
||||
@@ -112,9 +100,9 @@ public partial class forms_customer_fmBpja : Wellan.Web.UI.WUserControlBase
|
||||
gvBPJA.DataBind();
|
||||
}
|
||||
|
||||
protected void dsBPJAGrid_Selected(object sender, SqlDataSourceStatusEventArgs e)
|
||||
protected void dsBPJAGrid_Selected(object sender, ObjectDataSourceStatusEventArgs e)
|
||||
{
|
||||
if (e.AffectedRows == 0)
|
||||
if (e.ReturnValue is Int32 && WDAC.GetInt32Value(e.ReturnValue) == 0)
|
||||
{
|
||||
fvBPJA.ChangeMode(FormViewMode.Insert);
|
||||
fvBPJA_ModeChanged(sender, e);
|
||||
|
||||
@@ -9,13 +9,15 @@
|
||||
<asp:MultiView ID="MultiView1"
|
||||
runat="server" ActiveViewIndex="0">
|
||||
<asp:View ID="EditView" runat="server">
|
||||
<asp:SqlDataSource ID="dsBPJBGrid"
|
||||
runat="server" ConflictDetection="CompareAllValues"
|
||||
SelectCommand="SELECT * FROM BPJB WHERE (1 = 0)"
|
||||
ConnectionString="Data Source=(local);Initial Catalog=THINKYU_WEB;Persist Security Info=True;User ID=sa"
|
||||
ProviderName="System.Data.SqlClient"
|
||||
OnSelected="dsBPJBGrid_Selected">
|
||||
</asp:SqlDataSource>
|
||||
<asp:ObjectDataSource ID="dsBPJBGrid"
|
||||
runat="server" TypeName="BpjbDAC"
|
||||
SelectMethod="SelectPage" SelectCountMethod="SelectCount"
|
||||
EnablePaging="true" OnSelected="dsBPJBGrid_Selected">
|
||||
<SelectParameters>
|
||||
<asp:Parameter Name="BPPYN" Type="String" />
|
||||
<asp:Parameter Name="BPJNO" Type="String" />
|
||||
</SelectParameters>
|
||||
</asp:ObjectDataSource>
|
||||
<asp:SqlDataSource ID="dsBPJBForm"
|
||||
runat="server" InsertCommand="INSERT INTO BPJB
|
||||
(BPPYN, BPJNO, BPCNO, BPCME, BPSRM, BPSRD, BPP01, BPP02, BPP03, BPP04, BPP05, APPNO, TRDAT, TRMOD, TRUSR)
|
||||
|
||||
@@ -24,10 +24,6 @@ public partial class forms_customer_fmBpjb : Wellan.Web.UI.WUserControlBase
|
||||
protected string _BPPYN = "";
|
||||
protected string _BPJNO = "";
|
||||
protected string _BPJME = "";
|
||||
private string select = "SELECT * ";
|
||||
private string from = " FROM BPJB ";
|
||||
private string where = " WHERE 1=1 ";
|
||||
private string order = " ORDER BY BPPYN, BPJNO, BPCNO";
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
@@ -39,7 +35,6 @@ public partial class forms_customer_fmBpjb : Wellan.Web.UI.WUserControlBase
|
||||
{
|
||||
base.OnInit(e);
|
||||
dsBPJBForm.ConnectionString = ConnectionString;
|
||||
dsBPJBGrid.ConnectionString = ConnectionString;
|
||||
|
||||
_BPNUM = GetStringParam("BPNUM");
|
||||
_BPPYN = GetStringParam("BPPYN");
|
||||
@@ -54,15 +49,8 @@ public partial class forms_customer_fmBpjb : Wellan.Web.UI.WUserControlBase
|
||||
// 查詢動作
|
||||
private new void Search()
|
||||
{
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.Append(select);
|
||||
sql.Append(from);
|
||||
sql.Append(where);
|
||||
dsBPJBGrid.SelectParameters.Clear();
|
||||
AddSearch(sql, dsBPJBGrid, "BPPYN", _BPPYN, "", true);
|
||||
AddSearch(sql, dsBPJBGrid, "BPJNO", _BPJNO, "", true);
|
||||
sql.Append(order);
|
||||
dsBPJBGrid.SelectCommand = sql.ToString();
|
||||
dsBPJBGrid.SelectParameters["BPPYN"].DefaultValue = _BPPYN;
|
||||
dsBPJBGrid.SelectParameters["BPJNO"].DefaultValue = _BPJNO;
|
||||
}
|
||||
|
||||
private new void CalcFields(SqlDataSourceCommandEventArgs e)
|
||||
@@ -115,9 +103,9 @@ public partial class forms_customer_fmBpjb : Wellan.Web.UI.WUserControlBase
|
||||
gvBPJB.DataBind();
|
||||
}
|
||||
|
||||
protected void dsBPJBGrid_Selected(object sender, SqlDataSourceStatusEventArgs e)
|
||||
protected void dsBPJBGrid_Selected(object sender, ObjectDataSourceStatusEventArgs e)
|
||||
{
|
||||
if (e.AffectedRows == 0)
|
||||
if (e.ReturnValue is Int32 && WDAC.GetInt32Value(e.ReturnValue) == 0)
|
||||
{
|
||||
fvBPJB.ChangeMode(FormViewMode.Insert);
|
||||
fvBPJB_ModeChanged(sender, e);
|
||||
|
||||
@@ -57,10 +57,15 @@
|
||||
</table>
|
||||
</asp:View>
|
||||
<asp:View ID="EditView" runat="server">
|
||||
<asp:SqlDataSource ID="dsBPRJGrid" runat="server"
|
||||
ConflictDetection="CompareAllValues" SelectCommand="SELECT * FROM BPRJ WHERE 1=0"
|
||||
ConnectionString="Data Source=SRYANG-2K3;Initial Catalog=THINKYU_WEB;Persist Security Info=True;User ID=sa"
|
||||
ProviderName="System.Data.SqlClient" OnSelected="dsBPRJGrid_Selected"></asp:SqlDataSource>
|
||||
<asp:ObjectDataSource ID="dsBPRJGrid" runat="server"
|
||||
TypeName="BprjDAC" SelectMethod="SelectPage" SelectCountMethod="SelectCount"
|
||||
EnablePaging="true" OnSelected="dsBPRJGrid_Selected">
|
||||
<SelectParameters>
|
||||
<asp:Parameter Name="BPNUM" Type="String" />
|
||||
<asp:Parameter Name="BPPNM" Type="String" />
|
||||
<asp:Parameter Name="BPPME" Type="String" />
|
||||
</SelectParameters>
|
||||
</asp:ObjectDataSource>
|
||||
<asp:SqlDataSource ID="dsBPRJForm" runat="server"
|
||||
ConflictDetection="CompareAllValues" SelectCommand="SELECT * FROM BPRJ WHERE BPNUM=@BPNUM AND BPPNM=@BPPNM"
|
||||
DeleteCommand="DELETE BPRJ
|
||||
|
||||
@@ -32,10 +32,6 @@ public partial class forms_customer_fmBprj : Wellan.Web.UI.WUserControlBase
|
||||
private string _BPPME = "";
|
||||
//private string _CurrentBPNUM = "";
|
||||
//private string _CurrentBPPNM = "";
|
||||
private string select = "SELECT *, (SELECT TOP 1 BPYER FROM BPAA WHERE BPAA.BPPNM = BPRJ.BPPNM ORDER BY BPYER DESC) LAST_YEAR ";
|
||||
private string from = " FROM BPRJ ";
|
||||
private string where = " WHERE 1=1 ";
|
||||
private string order = " ORDER BY LAST_YEAR DESC";
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
@@ -52,7 +48,6 @@ public partial class forms_customer_fmBprj : Wellan.Web.UI.WUserControlBase
|
||||
{
|
||||
base.OnInit(e);
|
||||
dsBPRJForm.ConnectionString = ConnectionString;
|
||||
dsBPRJGrid.ConnectionString = ConnectionString;
|
||||
|
||||
_BPNUM = ForwardSource != "" ? GetStringParam("BCNUM") : _BPNUM;
|
||||
|
||||
@@ -127,16 +122,27 @@ public partial class forms_customer_fmBprj : Wellan.Web.UI.WUserControlBase
|
||||
// 查詢動作
|
||||
private new void Search()
|
||||
{
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.Append(select);
|
||||
sql.Append(from);
|
||||
sql.Append(where);
|
||||
dsBPRJGrid.SelectParameters.Clear();
|
||||
AddSearch(sql, dsBPRJGrid, "BPNUM", _BPNUM, "", true);
|
||||
AddSearch(sql, dsBPRJGrid, "BPPNM", _BPPNM, "", true);
|
||||
AddSearch(sql, dsBPRJGrid, "BPPME", "%" + _BPPME, "", true);
|
||||
sql.Append(order);
|
||||
dsBPRJGrid.SelectCommand = sql.ToString();
|
||||
dsBPRJGrid.SelectParameters["BPNUM"].DefaultValue = _BPNUM;
|
||||
dsBPRJGrid.SelectParameters["BPPNM"].DefaultValue = _BPPNM;
|
||||
dsBPRJGrid.SelectParameters["BPPME"].DefaultValue = _BPPME;
|
||||
|
||||
// 返回時,回到之前選擇的那一筆
|
||||
if (ParamList != null && ParamList.ContainsKey("BPNUM") && ParamList.ContainsKey("BPPNM"))
|
||||
{
|
||||
int rowIndex = new BprjDAC(Query).SelectBPRJIndex(
|
||||
WDAC.GetStringValue(ParamList["BPNUM"]),
|
||||
WDAC.GetStringValue(ParamList["BPPNM"]),
|
||||
_BPNUM, _BPPNM, _BPPME);
|
||||
|
||||
if (rowIndex >= 0)
|
||||
{
|
||||
gvBPRJ.PageIndex = rowIndex / gvBPRJ.PageSize;
|
||||
gvBPRJ.SelectedIndex = rowIndex - gvBPRJ.PageIndex * gvBPRJ.PageSize;
|
||||
}
|
||||
|
||||
ParamList.Remove("BPNUM");
|
||||
ParamList.Remove("BPPNM");
|
||||
}
|
||||
}
|
||||
|
||||
protected string GetBtmeName(object bptme)
|
||||
@@ -155,25 +161,6 @@ public partial class forms_customer_fmBprj : Wellan.Web.UI.WUserControlBase
|
||||
if (gvBPRJ.SelectedIndex == -1)
|
||||
gvBPRJ.SelectedIndex = 0;
|
||||
|
||||
// 返回時,回到之前選擇的那一筆
|
||||
if (ParamList.ContainsKey("BPNUM") && ParamList.ContainsKey("BPPNM"))
|
||||
{
|
||||
string bpnum = WDAC.GetStringValue(ParamList["BPNUM"]);
|
||||
string bppnm = WDAC.GetStringValue(ParamList["BPPNM"]);
|
||||
|
||||
DataView dv = dsBPRJGrid.Select(new DataSourceSelectArguments()) as DataView;
|
||||
dv.RowFilter = String.Format("BPNUM='{0}' and BPPNM='{1}'", bpnum, bppnm);
|
||||
if (dv.Count > 0)
|
||||
{
|
||||
int rowIndex = dv.Table.Rows.IndexOf(dv[0].Row);
|
||||
gvBPRJ.PageIndex = (rowIndex / gvBPRJ.PageSize);
|
||||
gvBPRJ.SelectedIndex = rowIndex - gvBPRJ.PageIndex * gvBPRJ.PageSize;
|
||||
}
|
||||
|
||||
ParamList.Remove("BPNUM");
|
||||
ParamList.Remove("BPPNM");
|
||||
}
|
||||
|
||||
fvBPRJ.DataBind();
|
||||
}
|
||||
|
||||
@@ -185,10 +172,10 @@ public partial class forms_customer_fmBprj : Wellan.Web.UI.WUserControlBase
|
||||
}
|
||||
|
||||
// 資料擷取完後的事件
|
||||
protected void dsBPRJGrid_Selected(object sender, SqlDataSourceStatusEventArgs e)
|
||||
protected void dsBPRJGrid_Selected(object sender, ObjectDataSourceStatusEventArgs e)
|
||||
{
|
||||
// 沒有資料,回到查詢畫面
|
||||
if (e.AffectedRows == 0)
|
||||
if (e.ReturnValue is Int32 && WDAC.GetInt32Value(e.ReturnValue) == 0)
|
||||
{
|
||||
if (MultiView1.ActiveViewIndex != 0)
|
||||
MultiView1.ActiveViewIndex = 0;
|
||||
|
||||
@@ -80,12 +80,13 @@
|
||||
</table>
|
||||
</asp:View>
|
||||
<asp:View ID="View3" runat="server">
|
||||
<asp:SqlDataSource ID="dsBPRMGrid" runat="server"
|
||||
ConflictDetection="CompareAllValues"
|
||||
ConnectionString="Data Source=(local);Initial Catalog=THINKYU_WEB;Persist Security Info=True;User ID=sa"
|
||||
OnSelected="dsBPRM_Selected"
|
||||
ProviderName="System.Data.SqlClient"
|
||||
SelectCommand="SELECT * FROM BPRM"></asp:SqlDataSource>
|
||||
<asp:ObjectDataSource ID="dsBPRMGrid" runat="server"
|
||||
TypeName="BprmDAC" SelectMethod="SelectPage" SelectCountMethod="SelectCount"
|
||||
EnablePaging="true" OnSelected="dsBPRMGrid_Selected">
|
||||
<SelectParameters>
|
||||
<asp:Parameter Name="BPPNM" Type="String" />
|
||||
</SelectParameters>
|
||||
</asp:ObjectDataSource>
|
||||
<asp:SqlDataSource ID="dsBPRMForm" runat="server"
|
||||
ConflictDetection="CompareAllValues"
|
||||
ConnectionString="Data Source=(local);Initial Catalog=THINKYU_WEB;Persist Security Info=True;User ID=sa" DeleteCommand="DELETE FROM BPRM
|
||||
|
||||
@@ -19,10 +19,6 @@ using System.Data.Common;
|
||||
public partial class forms_customer_fmBprm : Wellan.Web.UI.WUserControlBase
|
||||
{
|
||||
protected string _BPPNM = "";
|
||||
private string select = "SELECT * ";
|
||||
private string from = " FROM BPRM ";
|
||||
private string where = " WHERE 1=1 ";
|
||||
private string order = " ORDER BY BPENO";
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
@@ -181,14 +177,15 @@ public partial class forms_customer_fmBprm : Wellan.Web.UI.WUserControlBase
|
||||
// 查詢動作
|
||||
private new void Search()
|
||||
{
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.Append(select);
|
||||
sql.Append(from);
|
||||
sql.Append(where);
|
||||
dsBPRMGrid.SelectParameters.Clear();
|
||||
AddSearch(sql, dsBPRMGrid, "BPPNM", _BPPNM, "", true);
|
||||
sql.Append(order);
|
||||
dsBPRMGrid.SelectCommand = sql.ToString();
|
||||
dsBPRMGrid.SelectParameters["BPPNM"].DefaultValue = _BPPNM;
|
||||
}
|
||||
|
||||
protected void dsBPRMGrid_Selected(object sender, ObjectDataSourceStatusEventArgs e)
|
||||
{
|
||||
if (e.ReturnValue is Int32 && WDAC.GetInt32Value(e.ReturnValue) == 0)
|
||||
{
|
||||
fvBPRM.ChangeMode(FormViewMode.Insert);
|
||||
}
|
||||
}
|
||||
|
||||
protected void dsBPRM_Selected(object sender, SqlDataSourceStatusEventArgs e)
|
||||
|
||||
@@ -53,28 +53,19 @@
|
||||
</SelectParameters>
|
||||
</asp:SqlDataSource>
|
||||
|
||||
<asp:SqlDataSource ID="dsRASN_RAENO1" runat="server"
|
||||
ProviderName="System.Data.SqlClient"
|
||||
SelectCommand="SELECT A.RANUM, B.BPNME
|
||||
FROM RASN AS A
|
||||
INNER JOIN BPSNView AS B ON A.RANUM = B.BPENO
|
||||
WHERE (A.RAPYN = @RAPYN) AND A.RAEDT IS NULL">
|
||||
<asp:ObjectDataSource ID="dsRASN_RAENO1" runat="server"
|
||||
TypeName="RasnDAC" SelectMethod="SelectRAENO">
|
||||
<SelectParameters>
|
||||
<asp:Parameter Name="RAPYN" />
|
||||
<asp:Parameter Name="RAPYN" Type="String" />
|
||||
</SelectParameters>
|
||||
</asp:SqlDataSource>
|
||||
</asp:ObjectDataSource>
|
||||
|
||||
<asp:SqlDataSource ID="dsRASN_RABRH1" runat="server"
|
||||
ProviderName="System.Data.SqlClient"
|
||||
SelectCommand="SELECT A.RABRH, B.BSSCR, COUNT(1) AS RABRH_COUNT
|
||||
FROM RASN AS A
|
||||
INNER JOIN BCLS AS B ON A.RABRH = B.BSCLS AND B.BSPAR = 'BPSNBRH'
|
||||
WHERE (A.RAPYN = @RAPYN) AND A.RAEDT IS NULL
|
||||
GROUP BY A.RABRH, B.BSSCR">
|
||||
<asp:ObjectDataSource ID="dsRASN_RABRH1" runat="server"
|
||||
TypeName="RasnDAC" SelectMethod="SelectRABRH">
|
||||
<SelectParameters>
|
||||
<asp:Parameter Name="RAPYN" />
|
||||
<asp:Parameter Name="RAPYN" Type="String" />
|
||||
</SelectParameters>
|
||||
</asp:SqlDataSource>
|
||||
</asp:ObjectDataSource>
|
||||
|
||||
<asp:SqlDataSource ID="dsRASN_RAWTZ" runat="server"
|
||||
ProviderName="System.Data.SqlClient"
|
||||
@@ -282,17 +273,16 @@
|
||||
</InsertParameters>
|
||||
</asp:SqlDataSource>
|
||||
|
||||
<asp:SqlDataSource ID="dsRASNGrid" runat="server"
|
||||
ConflictDetection="CompareAllValues"
|
||||
SelectCommand="SELECT A.*, B.BPSRM, B.BPSRD, B.BPP01, B.BPP02, B.BPP03, B.BPP04, B.BPP05
|
||||
FROM RASN 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=0"
|
||||
ConnectionString="Data Source=(local);Initial Catalog=THINKYU_WEB;Persist Security Info=True;User ID=sa"
|
||||
ProviderName="System.Data.SqlClient"
|
||||
OnSelected="dsRASNGrid_Selected">
|
||||
</asp:SqlDataSource>
|
||||
<asp:ObjectDataSource ID="dsRASNGrid" runat="server"
|
||||
TypeName="RasnDAC" SelectMethod="SelectPage" SelectCountMethod="SelectCount"
|
||||
EnablePaging="true" OnSelected="dsRASNGrid_Selected">
|
||||
<SelectParameters>
|
||||
<asp:Parameter Name="RAPYN" Type="String" />
|
||||
<asp:Parameter Name="BPENO" Type="String" />
|
||||
<asp:Parameter Name="BPNME" Type="String" />
|
||||
<asp:Parameter Name="year" Type="Int32" DefaultValue="0" />
|
||||
</SelectParameters>
|
||||
</asp:ObjectDataSource>
|
||||
|
||||
<asp:FormView ID="RASNForm" runat="server"
|
||||
DataSourceID="dsRASNForm"
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -6,11 +6,13 @@
|
||||
TextMessageId="FMRPFE.NAME"></cc1:WLabel>
|
||||
<asp:CustomValidator ID="cvMessage" runat="server"
|
||||
Display="None"></asp:CustomValidator>
|
||||
<asp:SqlDataSource ID="dsRPFEGrid" runat="server"
|
||||
ConflictDetection="CompareAllValues" SelectCommand="SELECT * FROM RPFE WHERE (1 = 0)"
|
||||
ConnectionString="Data Source=(local);Initial Catalog=THINKYU_WEB;Persist Security Info=True;User ID=sa"
|
||||
ProviderName="System.Data.SqlClient" OnSelected="dsRPFEGrid_Selected">
|
||||
</asp:SqlDataSource>
|
||||
<asp:ObjectDataSource ID="dsRPFEGrid" runat="server"
|
||||
TypeName="RpfeDAC" SelectMethod="SelectPage" SelectCountMethod="SelectCount"
|
||||
EnablePaging="true" OnSelected="dsRPFEGrid_Selected">
|
||||
<SelectParameters>
|
||||
<asp:Parameter Name="RPPYN" Type="String" />
|
||||
</SelectParameters>
|
||||
</asp:ObjectDataSource>
|
||||
<asp:SqlDataSource ID="dsRPFEForm" runat="server"
|
||||
UpdateCommand="UPDATE RPFE SET RPENO = @RPENO, RPDAT = @RPDAT, RPACC = @RPACC, RPAMT = @RPAMT, RPDOC = @RPDOC, APPNO = APPNO + 1, TRDAT = GETDATE(), TRMOD = 'UPDATE', TRUSR = @TRUSR WHERE RPREN = @OLD_RPREN AND APPNO = @OLD_APPNO"
|
||||
DeleteCommand="DELETE FROM RPFE WHERE RPREN = @OLD_RPREN AND APPNO = @OLD_APPNO"
|
||||
|
||||
@@ -23,10 +23,6 @@ public partial class forms_customer_fmRpfe : Wellan.Web.UI.WUserControlBase
|
||||
{
|
||||
private string _RPPYN = "";
|
||||
private int _YY = 0;
|
||||
private string select = "SELECT * ";
|
||||
private string from = " FROM RPFE ";
|
||||
private string where = " WHERE 1=1 ";
|
||||
private string order = " ORDER BY RPPYN, RPREN";
|
||||
private TextBox[] RPDATs = new TextBox[10];
|
||||
private DropDownList[] RPACCs = new DropDownList[10];
|
||||
private TextBox[] RPAMTs = new TextBox[10];
|
||||
@@ -47,7 +43,6 @@ public partial class forms_customer_fmRpfe : Wellan.Web.UI.WUserControlBase
|
||||
{
|
||||
base.OnInit(e);
|
||||
dsRPFEForm.ConnectionString = ConnectionString;
|
||||
dsRPFEGrid.ConnectionString = ConnectionString;
|
||||
dsRPFE_RPACC.ConnectionString = ConnectionString;
|
||||
dsRPFE_RPENO.ConnectionString = ConnectionString;
|
||||
|
||||
@@ -152,14 +147,7 @@ public partial class forms_customer_fmRpfe : Wellan.Web.UI.WUserControlBase
|
||||
// 查詢動作
|
||||
private new void Search()
|
||||
{
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.Append(select);
|
||||
sql.Append(from);
|
||||
sql.Append(where);
|
||||
dsRPFEGrid.SelectParameters.Clear();
|
||||
AddSearch(sql, dsRPFEGrid, "RPPYN", _RPPYN, "", true);
|
||||
sql.Append(order);
|
||||
dsRPFEGrid.SelectCommand = sql.ToString();
|
||||
dsRPFEGrid.SelectParameters["RPPYN"].DefaultValue = _RPPYN;
|
||||
}
|
||||
|
||||
private int CheckInsertInput(int index)
|
||||
@@ -229,9 +217,9 @@ public partial class forms_customer_fmRpfe : Wellan.Web.UI.WUserControlBase
|
||||
RPFEGrid.DataBind();
|
||||
}
|
||||
|
||||
protected void dsRPFEGrid_Selected(object sender, SqlDataSourceStatusEventArgs e)
|
||||
protected void dsRPFEGrid_Selected(object sender, ObjectDataSourceStatusEventArgs e)
|
||||
{
|
||||
if (e.AffectedRows == 0)
|
||||
if (e.ReturnValue is Int32 && WDAC.GetInt32Value(e.ReturnValue) == 0)
|
||||
{
|
||||
//RPFEForm.ChangeMode(FormViewMode.Insert);
|
||||
//RPFEForm_ModeChanged(sender, e);
|
||||
|
||||
@@ -690,13 +690,13 @@
|
||||
</EmptyDataTemplate>
|
||||
</asp:GridView>
|
||||
|
||||
<asp:SqlDataSource ID="dsRPAB2" 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) AND ([RPDAT] IS NOT NULL))"
|
||||
<asp:ObjectDataSource ID="dsRPAB2" runat="server"
|
||||
TypeName="RpabDAC" SelectMethod="SelectRPAB"
|
||||
OnSelecting="dsRPAB2_Selecting">
|
||||
<SelectParameters>
|
||||
<asp:Parameter Name="RPREN" Type="String" />
|
||||
</SelectParameters>
|
||||
</asp:SqlDataSource>
|
||||
</asp:ObjectDataSource>
|
||||
</div>
|
||||
</asp:View>
|
||||
<asp:View ID="View5" runat="server">
|
||||
@@ -2589,13 +2589,13 @@
|
||||
</EmptyDataTemplate>
|
||||
</asp:GridView>
|
||||
|
||||
<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) AND ([RPDAT] IS NOT NULL))">
|
||||
<asp:ObjectDataSource ID="dsRPAB" runat="server"
|
||||
TypeName="RpabDAC" SelectMethod="SelectRPAB">
|
||||
<SelectParameters>
|
||||
<asp:ControlParameter ControlID="RPARGrid" Name="RPREN" PropertyName="SelectedValue"
|
||||
Type="String" />
|
||||
</SelectParameters>
|
||||
</asp:SqlDataSource>
|
||||
</asp:ObjectDataSource>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@@ -86,10 +86,8 @@ public partial class forms_flow_fmSign : Wellan.Web.UI.WUserControlBase
|
||||
protected override void OnInit(EventArgs e)
|
||||
{
|
||||
base.OnInit(e);
|
||||
dsRPAB.ConnectionString = ConnectionString;
|
||||
dsRPARForm.ConnectionString = ConnectionString;
|
||||
dsRPAR_RPTYP.ConnectionString = ConnectionString;
|
||||
dsRPAB2.ConnectionString = ConnectionString;
|
||||
rparDao = new RparDAC(Query);
|
||||
rpabDao = new RpabDAC(Query);
|
||||
bsgpDao = new BsgpDAC(Query);
|
||||
@@ -1746,11 +1744,10 @@ public partial class forms_flow_fmSign : Wellan.Web.UI.WUserControlBase
|
||||
RPARGrid2.DataBind();
|
||||
}
|
||||
|
||||
protected void dsRPAB2_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
|
||||
protected void dsRPAB2_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
|
||||
{
|
||||
if (RPARGrid2.SelectedValue != null)
|
||||
e.Command.Parameters["@RPREN"].Value = RPARGrid2.SelectedValue;
|
||||
//(sender as SqlDataSource).SelectParameters["RPREN"].DefaultValue = WDAC.GetStringValue(RPARGrid2.SelectedValue);
|
||||
e.InputParameters["RPREN"] = RPARGrid2.SelectedValue;
|
||||
}
|
||||
|
||||
protected string GetAttachLink(string RPREN)
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -215,12 +215,25 @@
|
||||
TextMessageId="" Visible="False"></cc1:WLabel>
|
||||
</asp:View>
|
||||
<asp:View ID="EditView" runat="server">
|
||||
<asp:SqlDataSource ID="dsBPSNGrid"
|
||||
runat="server" ConflictDetection="CompareAllValues"
|
||||
SelectCommand="SELECT * FROM BPSNView WHERE 1=0"
|
||||
ConnectionString="Data Source=(local);Initial Catalog=THINKYU_WEB;Persist Security Info=True;User ID=sa"
|
||||
ProviderName="System.Data.SqlClient"
|
||||
OnSelected="dsBPSNGrid_Selected"></asp:SqlDataSource>
|
||||
<asp:ObjectDataSource ID="dsBPSNGrid"
|
||||
runat="server" TypeName="BpsnDAC"
|
||||
SelectMethod="SelectPage" SelectCountMethod="SelectCount"
|
||||
EnablePaging="true" OnSelected="dsBPSNGrid_Selected">
|
||||
<SelectParameters>
|
||||
<asp:Parameter Name="BPENO" Type="String" />
|
||||
<asp:Parameter Name="BPNME" Type="String" />
|
||||
<asp:Parameter Name="BPENM" Type="String" />
|
||||
<asp:Parameter Name="BPIDN" Type="String" />
|
||||
<asp:Parameter Name="BPEDY_TYPE" Type="String" />
|
||||
<asp:Parameter Name="BPDPT_TYPE" Type="String" />
|
||||
<asp:Parameter Name="BPSDY1" Type="String" />
|
||||
<asp:Parameter Name="BPSDY2" Type="String" />
|
||||
<asp:Parameter Name="BPEDY1" Type="String" />
|
||||
<asp:Parameter Name="BPEDY2" Type="String" />
|
||||
<asp:Parameter Name="canSearch" Type="Boolean" />
|
||||
<asp:Parameter Name="userId" Type="String" />
|
||||
</SelectParameters>
|
||||
</asp:ObjectDataSource>
|
||||
<asp:SqlDataSource ID="dsBPSNForm"
|
||||
runat="server"
|
||||
ConflictDetection="CompareAllValues"
|
||||
|
||||
@@ -24,23 +24,6 @@ public partial class forms_worker_fmBpsn : Wellan.Web.UI.WUserControlBase
|
||||
private string _BPEDY1 = "";
|
||||
private string _BPEDY2 = "";
|
||||
|
||||
private string select =
|
||||
@" SELECT
|
||||
A.*
|
||||
, B.RAPYN, C.BPPYM RAPYNX, B.RABRH, D.BSSCR RABRHX, B.RAJNO, E.BPJME RAJNOX, B.RACNO
|
||||
, F.BPCME RACNOX, ISNULL(H.RPCPY, G.RPCPY) AS RPCPY
|
||||
, ROW_NUMBER() OVER (ORDER BY A.BPENO) ROWID ";
|
||||
private string from =
|
||||
@" FROM BPSNView A
|
||||
LEFT OUTER JOIN RASN B ON A.BPENO=B.RANUM AND (B.RAEDT IS NULL OR (B.RASDT <= @TODAY AND B.RAEDT >= @TODAY))
|
||||
LEFT OUTER JOIN BPAA C ON B.RAPYN=C.BPPYN
|
||||
LEFT OUTER JOIN BCLS D ON D.BSCLS=B.RABRH AND D.BSPAR='BPSNBRH'
|
||||
LEFT OUTER JOIN BPJA E ON E.BPPYN=B.RAPYN AND E.BPJNO=B.RAJNO
|
||||
LEFT OUTER JOIN BPJB F ON F.BPPYN=B.RAPYN AND F.BPJNO=B.RAJNO AND F.BPCNO=B.RACNO
|
||||
LEFT OUTER JOIN RPIR G ON A.BPENO=G.RPENO AND G.RPREN=(SELECT MAX(RPREN) FROM RPIR WHERE RPENO=A.BPENO)
|
||||
LEFT OUTER JOIN RPIB H ON G.RPREN=H.RPREN AND H.RPITM=(SELECT MAX(RPITM) FROM RPIB WHERE RPREN=H.RPREN) ";
|
||||
private string where = " WHERE 1=1 ";
|
||||
// private string order = " ORDER BY BPENO ";
|
||||
private bool fileOK = false;
|
||||
|
||||
internal BprmDAC bprmDAC;
|
||||
@@ -163,7 +146,6 @@ public partial class forms_worker_fmBpsn : Wellan.Web.UI.WUserControlBase
|
||||
dsBPSNForm.DeleteCommand = @"DELETE BPSN WHERE BPENO = @OLD_BPENO AND APPNO = @OLD_APPNO";
|
||||
|
||||
dsBPSNForm.ConnectionString = ConnectionString;
|
||||
dsBPSNGrid.ConnectionString = ConnectionString;
|
||||
dsBPSN_BPTYP.ConnectionString = ConnectionString;
|
||||
dsBPSN_BPGNR.ConnectionString = ConnectionString;
|
||||
dsBPSN_BPSGR.ConnectionString = ConnectionString;
|
||||
@@ -298,70 +280,27 @@ public partial class forms_worker_fmBpsn : Wellan.Web.UI.WUserControlBase
|
||||
_BPEDY_TYPE = ddlBPEDY.SelectedValue;
|
||||
_BPDPT_TYPE = ddlBPDPT.SelectedValue;
|
||||
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.Append(select);
|
||||
sql.Append(from);
|
||||
sql.Append(where);
|
||||
dsBPSNGrid.SelectParameters.Clear();
|
||||
dsBPSNGrid.SelectParameters.Add("TODAY", String.Format(WGuard1.InvariantCulture, "{0:yyyy-MM-dd}", DateTime.UtcNow.AddHours(8).Date));
|
||||
if (canSearch)
|
||||
{
|
||||
AddSearch(sql, dsBPSNGrid, "BPENO", _BPENO, "", true);
|
||||
AddSearch(sql, dsBPSNGrid, "BPNME", _BPNME, "", true);
|
||||
AddSearch(sql, dsBPSNGrid, "BPENM", _BPENM, "", true);
|
||||
AddSearch(sql, dsBPSNGrid, "BPIDN", _BPIDN, "", true);
|
||||
switch (_BPEDY_TYPE)
|
||||
{
|
||||
case "1":
|
||||
sql.Append(" AND (BPEDY IS NULL OR BPEDY >= @TODAY) ");
|
||||
break;
|
||||
case "2":
|
||||
sql.Append(" AND (BPEDY < @TODAY)");
|
||||
break;
|
||||
}
|
||||
switch (_BPDPT_TYPE)
|
||||
{
|
||||
case "1":
|
||||
sql.Append(String.Format(" AND BPDPT IN {0} ", PublicVariable.InnerDepartment));
|
||||
break;
|
||||
case "2":
|
||||
sql.Append(String.Format(" AND BPDPT NOT IN {0} ", PublicVariable.InnerDepartment));
|
||||
break;
|
||||
}
|
||||
AddSearch(sql, dsBPSNGrid, "BPSDY", _BPSDY1, _BPSDY2, true);
|
||||
AddSearch(sql, dsBPSNGrid, "BPEDY", _BPEDY1, _BPEDY2, true);
|
||||
|
||||
if (!BpsnDAC.IsManager(UserId))
|
||||
{
|
||||
sql.Append(" AND BPENO NOT IN ('00001','00002','00003') ");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
AddSearch(sql, dsBPSNGrid, "BPENO", UserId, "", true);
|
||||
}
|
||||
// sql.Append(order);
|
||||
dsBPSNGrid.SelectCommand = sql.ToString();
|
||||
dsBPSNGrid.SelectParameters["BPENO"].DefaultValue = _BPENO;
|
||||
dsBPSNGrid.SelectParameters["BPNME"].DefaultValue = _BPNME;
|
||||
dsBPSNGrid.SelectParameters["BPENM"].DefaultValue = _BPENM;
|
||||
dsBPSNGrid.SelectParameters["BPIDN"].DefaultValue = _BPIDN;
|
||||
dsBPSNGrid.SelectParameters["BPEDY_TYPE"].DefaultValue = _BPEDY_TYPE;
|
||||
dsBPSNGrid.SelectParameters["BPDPT_TYPE"].DefaultValue = _BPDPT_TYPE;
|
||||
dsBPSNGrid.SelectParameters["BPSDY1"].DefaultValue = _BPSDY1;
|
||||
dsBPSNGrid.SelectParameters["BPSDY2"].DefaultValue = _BPSDY2;
|
||||
dsBPSNGrid.SelectParameters["BPEDY1"].DefaultValue = _BPEDY1;
|
||||
dsBPSNGrid.SelectParameters["BPEDY2"].DefaultValue = _BPEDY2;
|
||||
dsBPSNGrid.SelectParameters["canSearch"].DefaultValue = canSearch.ToString();
|
||||
dsBPSNGrid.SelectParameters["userId"].DefaultValue = UserId;
|
||||
|
||||
if (!string.IsNullOrEmpty(GetStringParam("BPENO")) || !string.IsNullOrEmpty(WDAC.GetStringValue(ViewState["RPENO"])))
|
||||
{
|
||||
string bpeno = "";
|
||||
if (!string.IsNullOrEmpty(GetStringParam("BPENO"))) bpeno = GetStringParam("BPENO");
|
||||
if (!string.IsNullOrEmpty(WDAC.GetStringValue(ViewState["RPENO"]))) bpeno = WDAC.GetStringValue(ViewState["RPENO"]);
|
||||
var cmdIndex = Query.NewCommand();
|
||||
cmdIndex.CommandText = string.Format("SELECT ROWID - 1 FROM ( {0} ) T WHERE BPENO = @TARGET", dsBPSNGrid.SelectCommand);
|
||||
Query.AddParam(cmdIndex, "TODAY", DateTime.UtcNow.AddHours(8).Date);
|
||||
Query.AddParam(cmdIndex, "BPENO1", _BPENO);
|
||||
Query.AddParam(cmdIndex, "BPNME1", _BPNME);
|
||||
Query.AddParam(cmdIndex, "BPENM1", _BPENM);
|
||||
Query.AddParam(cmdIndex, "BPIDN1", _BPIDN);
|
||||
Query.AddParam(cmdIndex, "BPSDY1", _BPSDY1);
|
||||
Query.AddParam(cmdIndex, "BPSDY2", _BPSDY2);
|
||||
Query.AddParam(cmdIndex, "BPEDY1", _BPEDY1);
|
||||
Query.AddParam(cmdIndex, "BPEDY2", _BPEDY2);
|
||||
Query.AddParam(cmdIndex, "TARGET", bpeno);
|
||||
var o = Query.ExecuteScalar(cmdIndex);
|
||||
int idx = (o is Int32 || o is Int64) ? WDAC.GetInt32Value(o) : -1;
|
||||
|
||||
int idx = new BpsnDAC(Query).SelectBPENOIndex(
|
||||
bpeno, _BPENO, _BPNME, _BPENM, _BPIDN, _BPEDY_TYPE, _BPDPT_TYPE, _BPSDY1, _BPSDY2, _BPEDY1, _BPEDY2, canSearch, UserId);
|
||||
|
||||
if (idx >= 0)
|
||||
{
|
||||
@@ -455,9 +394,9 @@ public partial class forms_worker_fmBpsn : Wellan.Web.UI.WUserControlBase
|
||||
GridView1.DataBind();
|
||||
}
|
||||
|
||||
protected void dsBPSNGrid_Selected(object sender, SqlDataSourceStatusEventArgs e)
|
||||
protected void dsBPSNGrid_Selected(object sender, ObjectDataSourceStatusEventArgs e)
|
||||
{
|
||||
if (e.AffectedRows == 0)
|
||||
if (e.ReturnValue is Int32 && WDAC.GetInt32Value(e.ReturnValue) == 0)
|
||||
{
|
||||
if (MultiView1.ActiveViewIndex == 0)
|
||||
{
|
||||
|
||||
@@ -6,12 +6,19 @@
|
||||
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="SelectPage" SelectCountMethod="SelectCount"
|
||||
EnablePaging="true" OnSelected="dsRPARGrid_Selected">
|
||||
<SelectParameters>
|
||||
<asp:Parameter Name="RPPYN" Type="String" />
|
||||
<asp:Parameter Name="RPNUM1" Type="String" />
|
||||
<asp:Parameter Name="RPNUM2" 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, RPTYP, RPTCT,
|
||||
|
||||
@@ -37,7 +37,6 @@ public partial class forms_worker_fmRpar : Wellan.Web.UI.WUserControlBase
|
||||
RPRSN, RPAGM, ISNULL(RPTCT - FLOOR(RPTCT / 60) * 60, 0) AS RPTMT";
|
||||
private string from = " FROM RPAR ";
|
||||
private string where = " WHERE 1=1 ";
|
||||
private string order = " ORDER BY RPREN";
|
||||
private FormView RPARForm;
|
||||
private Panel RPARPanel;
|
||||
protected string rparType;
|
||||
@@ -71,7 +70,6 @@ public partial class forms_worker_fmRpar : Wellan.Web.UI.WUserControlBase
|
||||
{
|
||||
base.OnInit(e);
|
||||
dsRPARForm.ConnectionString = ConnectionString;
|
||||
dsRPARGrid.ConnectionString = ConnectionString;
|
||||
dsRPAR_RPTYP.ConnectionString = ConnectionString;
|
||||
|
||||
rparDao = new RparDAC(Query);
|
||||
@@ -282,21 +280,16 @@ public partial class forms_worker_fmRpar : Wellan.Web.UI.WUserControlBase
|
||||
// RPARForm.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, "RPPYN", _RPPYN, "", false);
|
||||
AddSearch(sql, dsRPARGrid, "RPNUM", _RPNUM1, _RPNUM2, true);
|
||||
AddSearch(sql, dsRPARGrid, "RPRDT", RPRDT1, RPRDT2, true);
|
||||
sql.Append(order);
|
||||
dsRPARGrid.SelectCommand = sql.ToString();
|
||||
dsRPARGrid.SelectParameters["RPPYN"].DefaultValue = _RPPYN;
|
||||
dsRPARGrid.SelectParameters["RPNUM1"].DefaultValue = _RPNUM1;
|
||||
dsRPARGrid.SelectParameters["RPNUM2"].DefaultValue = _RPNUM2;
|
||||
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 ";
|
||||
}
|
||||
@@ -625,9 +618,9 @@ public partial class forms_worker_fmRpar : Wellan.Web.UI.WUserControlBase
|
||||
RPARGrid.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)
|
||||
{
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -6,10 +6,14 @@
|
||||
TextMessageId="FMRSAJ.NAME"></cc1:WLabel>
|
||||
<asp:CustomValidator ID="cvMessage" runat="server"
|
||||
Display="None"></asp:CustomValidator>
|
||||
<asp:SqlDataSource ID="dsRSAJGrid" runat="server"
|
||||
ConflictDetection="CompareAllValues" SelectCommand="SELECT * FROM RSAJ WHERE (1 = 0)"
|
||||
ConnectionString="Data Source=(local);Initial Catalog=THINKYU_WEB;Persist Security Info=True;User ID=sa"
|
||||
ProviderName="System.Data.SqlClient" OnSelected="dsRSAJGrid_Selected"></asp:SqlDataSource>
|
||||
<asp:ObjectDataSource ID="dsRSAJGrid" runat="server"
|
||||
TypeName="RsajDAC" SelectMethod="SelectPage" SelectCountMethod="SelectCount"
|
||||
EnablePaging="true" OnSelected="dsRSAJGrid_Selected">
|
||||
<SelectParameters>
|
||||
<asp:Parameter Name="RSENO" Type="String" />
|
||||
<asp:Parameter Name="RSPYN" Type="String" />
|
||||
</SelectParameters>
|
||||
</asp:ObjectDataSource>
|
||||
<asp:SqlDataSource ID="dsRSAJForm" runat="server"
|
||||
ConflictDetection="CompareAllValues" SelectCommand="SELECT * FROM RSAJ WHERE RSREN = @RSREN"
|
||||
DeleteCommand="DELETE RSAJ WHERE RSREN = @OLD_RSREN AND APPNO = @OLD_APPNO"
|
||||
|
||||
@@ -23,11 +23,6 @@ public partial class forms_worker_fmRsaj : Wellan.Web.UI.WUserControlBase
|
||||
protected DateTime _YYMM;
|
||||
protected string _RSENO = "";
|
||||
protected string _RSPYN = "";
|
||||
private string select = "SELECT * ";
|
||||
private string from = " FROM RSAJ ";
|
||||
private string where = " WHERE 1=1 ";
|
||||
// private string order = " ORDER BY RSPYN, RSREN";
|
||||
private string order = " ORDER BY RSYMM DESC, RSREN DESC";
|
||||
private TextBox[] RSYMMs = new TextBox[10];
|
||||
private DropDownList[] RSENOs = new DropDownList[10];
|
||||
private TextBox[] RSAMTs = new TextBox[10];
|
||||
@@ -48,7 +43,6 @@ public partial class forms_worker_fmRsaj : Wellan.Web.UI.WUserControlBase
|
||||
{
|
||||
base.OnInit(e);
|
||||
dsRSAJForm.ConnectionString = ConnectionString;
|
||||
dsRSAJGrid.ConnectionString = ConnectionString;
|
||||
dsRSAJ_RSENO.ConnectionString = ConnectionString;
|
||||
dsRSAJ_RSENO.SelectCommand =
|
||||
@"IF @RSPYN = '-ALL-'
|
||||
@@ -201,15 +195,8 @@ public partial class forms_worker_fmRsaj : Wellan.Web.UI.WUserControlBase
|
||||
// 查詢動作
|
||||
private new void Search()
|
||||
{
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.Append(select);
|
||||
sql.Append(from);
|
||||
sql.Append(where);
|
||||
dsRSAJGrid.SelectParameters.Clear();
|
||||
AddSearch(sql, dsRSAJGrid, "RSENO", _RSENO, "", true);
|
||||
AddSearch(sql, dsRSAJGrid, "RSPYN", _RSPYN, "", true);
|
||||
sql.Append(order);
|
||||
dsRSAJGrid.SelectCommand = sql.ToString();
|
||||
dsRSAJGrid.SelectParameters["RSENO"].DefaultValue = _RSENO;
|
||||
dsRSAJGrid.SelectParameters["RSPYN"].DefaultValue = _RSPYN;
|
||||
}
|
||||
|
||||
// 存檔前的計算動作
|
||||
@@ -254,9 +241,9 @@ public partial class forms_worker_fmRsaj : Wellan.Web.UI.WUserControlBase
|
||||
RSAJGrid.DataBind();
|
||||
}
|
||||
|
||||
protected void dsRSAJGrid_Selected(object sender, SqlDataSourceStatusEventArgs e)
|
||||
protected void dsRSAJGrid_Selected(object sender, ObjectDataSourceStatusEventArgs e)
|
||||
{
|
||||
if (e.AffectedRows == 0)
|
||||
if (e.ReturnValue is Int32 && WDAC.GetInt32Value(e.ReturnValue) == 0)
|
||||
{
|
||||
/*
|
||||
if (ForwardSource != "")
|
||||
|
||||
@@ -69,12 +69,14 @@
|
||||
OnClick="btnSSPYN_Click"></cc1:WButton></td>
|
||||
</tr>
|
||||
</table>
|
||||
<asp:SqlDataSource ID="dsSSMS" runat="server"
|
||||
ConnectionString="Data Source=(local);Initial Catalog=THINKYU_WEB;Persist Security Info=True;User ID=sa"
|
||||
ProviderName="System.Data.SqlClient"></asp:SqlDataSource>
|
||||
<asp:SqlDataSource ID="dsSSMSSum" runat="server"
|
||||
ConnectionString="Data Source=(local);Initial Catalog=THINKYU_WEB;Persist Security Info=True;User ID=sa"
|
||||
ProviderName="System.Data.SqlClient"></asp:SqlDataSource>
|
||||
<asp:ObjectDataSource ID="dsSSMS" runat="server"
|
||||
TypeName="SsmsDAC" SelectMethod="SelectSalaryStrip">
|
||||
<SelectParameters>
|
||||
<asp:Parameter Name="tableName" Type="String" />
|
||||
<asp:Parameter Name="SSYMM" Type="DateTime" />
|
||||
<asp:Parameter Name="SSPYN" Type="String" />
|
||||
</SelectParameters>
|
||||
</asp:ObjectDataSource>
|
||||
<asp:Button ID="btnSend" runat="server" OnClick="btnSend_Click"
|
||||
Text="S.發送" CssClass="button" AccessKey="S"
|
||||
OnClientClick='if (confirm("是否確定發送薪資單郵件?")) {ShowProcessing(2000); return true;} else return false;' />
|
||||
|
||||
@@ -50,42 +50,6 @@ public partial class forms_worker_fmSendSalaryStrip : Wellan.Web.UI.WUserControl
|
||||
LEFT OUTER JOIN BPSNView B ON A.SSENO=B.BPENO
|
||||
LEFT OUTER JOIN BPAA C ON A.SSPYN=C.BPPYN
|
||||
LEFT OUTER JOIN BRML D ON B.BPBNK=D.BCNUM";
|
||||
private string selectSum =
|
||||
@"SELECT ISNULL(SUM(SSD01), 0) SSD01, ISNULL(SUM(SSD02), 0) SSD02, ISNULL(SUM(SSSRD), 0) SSSRD, ISNULL(SUM(SSP00), 0) SSP00,
|
||||
ISNULL(SUM(SSP01), 0) SSP01, ISNULL(SUM(SSP02), 0) SSP02, ISNULL(SUM(SSP03), 0) SSP03, ISNULL(SUM(SSP04), 0) SSP04,
|
||||
ISNULL(SUM(SSP05), 0) SSP05, ISNULL(SUM(SSP06), 0) SSP06, ISNULL(SUM(SSP07), 0) SSP07, ISNULL(SUM(SSP08), 0) SSP08,
|
||||
ISNULL(SUM(SSP09), 0) SSP09, ISNULL(SUM(SSP10), 0) SSP10, ISNULL(SUM(SSP11), 0) SSP11, ISNULL(SUM(SSP12), 0) SSP12,
|
||||
ISNULL(SUM(SSP13), 0) SSP13, ISNULL(SUM(SSP14), 0) SSP14, ISNULL(SUM(SSP15), 0) SSP15, ISNULL(SUM(SSP99), 0) SSP99,
|
||||
ISNULL(SUM(SSS01), 0) SSS01, ISNULL(SUM(SSS02), 0) SSS02, ISNULL(SUM(SSS03), 0) SSS03, ISNULL(SUM(SSS04), 0) SSS04,
|
||||
ISNULL(SUM(SSS05), 0) SSS05, ISNULL(SUM(SSS06), 0) SSS06, ISNULL(SUM(SSS07), 0) SSS07, ISNULL(SUM(SSS08), 0) SSS08,
|
||||
ISNULL(SUM(SSS09), 0) SSS09, ISNULL(SUM(SSS10), 0) SSS10, ISNULL(SUM(SSS11), 0) SSS11, ISNULL(SUM(SSS12), 0) SSS12,
|
||||
ISNULL(SUM(SSS13), 0) SSS13, ISNULL(SUM(SSS14), 0) SSS14, ISNULL(SUM(SSS15), 0) SSS15, ISNULL(SUM(SSS99), 0) SSS99,
|
||||
ISNULL(SUM(SSH01), 0) SSH01, ISNULL(SUM(SSH02), 0) SSH02, ISNULL(SUM(SSH03), 0) SSH03, ISNULL(SUM(SSH04), 0) SSH04,
|
||||
ISNULL(SUM(SSH05), 0) SSH05, ISNULL(SUM(SSH06), 0) SSH06, ISNULL(SUM(SSH07), 0) SSH07, ISNULL(SUM(SSH08), 0) SSH08,
|
||||
ISNULL(SUM(SSH09), 0) SSH09, ISNULL(SUM(SSH10), 0) SSH10, ISNULL(SUM(SST01), 0) SST01, ISNULL(SUM(SST02), 0) SST02,
|
||||
ISNULL(SUM(SST03), 0) SST03, ISNULL(SUM(SST04), 0) SST04, ISNULL(SUM(SST05), 0) SST05, ISNULL(SUM(SST06), 0) SST06,
|
||||
ISNULL(SUM(SST07), 0) SST07, ISNULL(SUM(SST08), 0) SST08, ISNULL(SUM(SST09), 0) SST09, ISNULL(SUM(SST10), 0) SST10,
|
||||
ISNULL(SUM(SST11), 0) SST11, ISNULL(SUM(SST12), 0) SST12, ISNULL(SUM(SST13), 0) SST13, ISNULL(SUM(SST14), 0) SST14,
|
||||
ISNULL(SUM(SST15), 0) SST15, ISNULL(SUM(SST16), 0) SST16, ISNULL(SUM(SST17), 0) SST17, ISNULL(SUM(SST18), 0) SST18,
|
||||
ISNULL(SUM(SST19), 0) SST19, ISNULL(SUM(SST20), 0) SST20, ISNULL(SUM(SST21), 0) SST21, ISNULL(SUM(SST22), 0) SST22,
|
||||
ISNULL(SUM(SST23), 0) SST23, ISNULL(SUM(SST24), 0) SST24, ISNULL(SUM(SST25), 0) SST25, ISNULL(SUM(SSL01), 0) SSL01,
|
||||
ISNULL(SUM(SSL02), 0) SSL02, ISNULL(SUM(SSL03), 0) SSL03, ISNULL(SUM(SSL04), 0) SSL04, ISNULL(SUM(SSL05), 0) SSL05,
|
||||
ISNULL(SUM(SSP06 + SSP07 + SSP08 + SSP13 + SSP14), 0) OVERWORK,
|
||||
ISNULL(SUM(SSP09 + SSP10 + SSP12), 0) OUTGOING,
|
||||
ISNULL(SUM(SSP00 + SSP01 + SSP02 + SSP03 + SSP04 + SSP05 + SSP06 + SSP07 + SSP08 + SSP09 + SSP10 + SSP11 + SSP12 +
|
||||
SSP13 + SSP14 + SSP15 + SSP99), 0) SSPLUS,
|
||||
ISNULL(SUM(SSS01 + SSS02 + SSS09), 0) LEAVING,
|
||||
ISNULL(SUM(SST01 + SST02 + SST03 + SST21 + SST22), 0) OVERWORKTIME,
|
||||
ISNULL(SUM((SSP00 + SSP01 + SSP02 + SSP03 + SSP04 + SSP05 + SSP06 + SSP07 + SSP08 + SSP09 + SSP10 + SSP11 + SSP12 +
|
||||
SSP13 + SSP14 + SSP15 + SSP99)
|
||||
- (SSS01 + SSS02 + SSS03 + SSS04 + SSS05 + SSS06 + SSS07 + SSS08 + SSS09 + SSS10 + SSS11 + SSS12 + SSS13 +
|
||||
SSS14 + SSS15 + SSS99)), 0) SSTOTAL,
|
||||
ISNULL(SUM(SSS01 + SSS02 + SSS04 + SSS05 + SSS06 + SSS07 + SSS08 + SSS09 + SSS10 + SSS11 + SSS12 + SSS13 + SSS14 +
|
||||
SSS15 + SSS99), 0) SSMINUS,
|
||||
ISNULL(SUM(SSP01 + SSP02 + SSP03 + SSP04 + SSP05 + SSP06 + SSP07 + SSP08 + SSP09 + SSP10 + SSP11 + SSP12 + SSP13 +
|
||||
SSP14 + SSP15 + SSP99), 0) TOTALPLUS,
|
||||
ISNULL(SUM(SSH01 + SSH02 + SSH03), 0) EMPLOYER
|
||||
FROM {0} A WHERE SSYMM=@SSYMM AND SSPYN=@SSPYN";
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
@@ -102,11 +66,6 @@ public partial class forms_worker_fmSendSalaryStrip : Wellan.Web.UI.WUserControl
|
||||
if (_BonusTimes == "")
|
||||
_BonusTimes = "0";
|
||||
|
||||
dsSSMS.ConnectionString = ConnectionString;
|
||||
dsSSMSSum.ConnectionString = ConnectionString;
|
||||
dsSSMS.SelectCommand = String.Format(select, _tableName) + " WHERE SSYMM=@SSYMM AND SSPYN=@SSPYN ORDER BY SSENO ";
|
||||
dsSSMSSum.SelectCommand = String.Format(selectSum, _tableName);
|
||||
|
||||
if (ForwardSource != "")
|
||||
{
|
||||
MultiView1.ActiveViewIndex = 1;
|
||||
@@ -140,10 +99,9 @@ public partial class forms_worker_fmSendSalaryStrip : Wellan.Web.UI.WUserControl
|
||||
_SSYMM = _SSYMM.AddDays(i);
|
||||
s = _SSYMM.ToString(WGuard1.InvariantCulture);
|
||||
|
||||
dsSSMS.SelectParameters.Add("SSYMM", s);
|
||||
dsSSMS.SelectParameters.Add("SSPYN", ddlSSPYN.SelectedValue);
|
||||
dsSSMSSum.SelectParameters.Add("SSYMM", s);
|
||||
dsSSMSSum.SelectParameters.Add("SSPYN", ddlSSPYN.SelectedValue);
|
||||
dsSSMS.SelectParameters["tableName"].DefaultValue = _tableName;
|
||||
dsSSMS.SelectParameters["SSYMM"].DefaultValue = s;
|
||||
dsSSMS.SelectParameters["SSPYN"].DefaultValue = ddlSSPYN.SelectedValue;
|
||||
|
||||
if (_BonusTimes == "0")
|
||||
{
|
||||
@@ -582,42 +540,42 @@ public partial class forms_worker_fmSendSalaryStrip : Wellan.Web.UI.WUserControl
|
||||
|
||||
if (e.Row.RowType == DataControlRowType.Footer)
|
||||
{
|
||||
var param = new DataSourceSelectArguments();
|
||||
var a = dsSSMSSum.Select(param) as DataView;
|
||||
DataTable a = new SsmsDAC(Query).SelectSalaryStripSum(_tableName, _SSYMM, ddlSSPYN.SelectedValue);
|
||||
DataRow ar = a.Rows[0];
|
||||
|
||||
e.Row.Cells[1].Text = "合計";
|
||||
e.Row.Cells[1].HorizontalAlign = HorizontalAlign.Center;
|
||||
e.Row.Cells[2].Text = string.Format("{0:###,###,##0}", a[0]["SSP00"]); // 本薪
|
||||
e.Row.Cells[2].Text = string.Format("{0:###,###,##0}", ar["SSP00"]); // 本薪
|
||||
e.Row.Cells[2].HorizontalAlign = HorizontalAlign.Center;
|
||||
e.Row.Cells[3].Text = string.Format("{0:###,###,##0}", a[0]["SSP01"]); // 全勤獎金
|
||||
e.Row.Cells[3].Text = string.Format("{0:###,###,##0}", ar["SSP01"]); // 全勤獎金
|
||||
e.Row.Cells[3].HorizontalAlign = HorizontalAlign.Center;
|
||||
e.Row.Cells[4].Text = string.Format("{0:###,###,##0}", a[0]["OVERWORK"]);
|
||||
e.Row.Cells[4].Text = string.Format("{0:###,###,##0}", ar["OVERWORK"]);
|
||||
e.Row.Cells[4].HorizontalAlign = HorizontalAlign.Center;
|
||||
e.Row.Cells[5].Text = string.Format("{0:###,###,##0}", a[0]["OUTGOING"]);
|
||||
e.Row.Cells[5].Text = string.Format("{0:###,###,##0}", ar["OUTGOING"]);
|
||||
e.Row.Cells[5].HorizontalAlign = HorizontalAlign.Center;
|
||||
e.Row.Cells[6].Text = string.Format("{0:###,###,##0}", a[0]["SSP11"]);
|
||||
e.Row.Cells[6].Text = string.Format("{0:###,###,##0}", ar["SSP11"]);
|
||||
e.Row.Cells[6].HorizontalAlign = HorizontalAlign.Center;
|
||||
e.Row.Cells[7].Text = string.Format("{0:###,###,##0}", a[0]["SSP02"]);
|
||||
e.Row.Cells[7].Text = string.Format("{0:###,###,##0}", ar["SSP02"]);
|
||||
e.Row.Cells[7].HorizontalAlign = HorizontalAlign.Center;
|
||||
e.Row.Cells[8].Text = string.Format("{0:###,###,##0}", a[0]["SSP99"]);
|
||||
e.Row.Cells[8].Text = string.Format("{0:###,###,##0}", ar["SSP99"]);
|
||||
e.Row.Cells[8].HorizontalAlign = HorizontalAlign.Center;
|
||||
e.Row.Cells[9].Text = string.Format("{0:###,###,##0}", a[0]["SSP03"]);
|
||||
e.Row.Cells[9].Text = string.Format("{0:###,###,##0}", ar["SSP03"]);
|
||||
e.Row.Cells[9].HorizontalAlign = HorizontalAlign.Center;
|
||||
e.Row.Cells[10].Text = string.Format("{0:###,###,##0}", a[0]["SSP05"]);
|
||||
e.Row.Cells[10].Text = string.Format("{0:###,###,##0}", ar["SSP05"]);
|
||||
e.Row.Cells[10].HorizontalAlign = HorizontalAlign.Center;
|
||||
e.Row.Cells[12].Text = string.Format("{0:###,###,##0}", a[0]["SSPLUS"]);
|
||||
e.Row.Cells[12].Text = string.Format("{0:###,###,##0}", ar["SSPLUS"]);
|
||||
e.Row.Cells[12].HorizontalAlign = HorizontalAlign.Center;
|
||||
e.Row.Cells[13].Text = string.Format("{0:###,###,##0}", a[0]["LEAVING"]);
|
||||
e.Row.Cells[13].Text = string.Format("{0:###,###,##0}", ar["LEAVING"]);
|
||||
e.Row.Cells[13].HorizontalAlign = HorizontalAlign.Center;
|
||||
e.Row.Cells[14].Text = string.Format("{0:###,###,##0}", a[0]["SSS05"]);
|
||||
e.Row.Cells[14].Text = string.Format("{0:###,###,##0}", ar["SSS05"]);
|
||||
e.Row.Cells[14].HorizontalAlign = HorizontalAlign.Center;
|
||||
e.Row.Cells[15].Text = string.Format("{0:###,###,##0}", a[0]["SSS04"]);
|
||||
e.Row.Cells[15].Text = string.Format("{0:###,###,##0}", ar["SSS04"]);
|
||||
e.Row.Cells[15].HorizontalAlign = HorizontalAlign.Center;
|
||||
e.Row.Cells[16].Text = string.Format("{0:###,###,##0}", a[0]["SSS07"]);
|
||||
e.Row.Cells[16].Text = string.Format("{0:###,###,##0}", ar["SSS07"]);
|
||||
e.Row.Cells[16].HorizontalAlign = HorizontalAlign.Center;
|
||||
e.Row.Cells[17].Text = string.Format("{0:###,###,##0}", a[0]["SSS06"]);
|
||||
e.Row.Cells[17].Text = string.Format("{0:###,###,##0}", ar["SSS06"]);
|
||||
e.Row.Cells[17].HorizontalAlign = HorizontalAlign.Center;
|
||||
e.Row.Cells[18].Text = string.Format("{0:###,###,##0}", a[0]["SSS99"]);
|
||||
e.Row.Cells[18].Text = string.Format("{0:###,###,##0}", ar["SSS99"]);
|
||||
e.Row.Cells[18].HorizontalAlign = HorizontalAlign.Center;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user