1045 lines
40 KiB
C#
1045 lines
40 KiB
C#
using System;
|
|
using System.Data;
|
|
using System.Web.UI.WebControls;
|
|
using Wellan.Data;
|
|
using Wellan.Common;
|
|
using System.Text;
|
|
using System.IO;
|
|
using NPOI.HSSF.UserModel;
|
|
using System.Collections.Generic;
|
|
|
|
/// <summary>
|
|
/// 人員資料處理
|
|
/// </summary>
|
|
public partial class forms_worker_fmBpsn : Wellan.Web.UI.WUserControlBase
|
|
{
|
|
private string _BPENO = "";
|
|
private string _BPNME = "";
|
|
private string _BPENM = "";
|
|
private string _BPIDN = "";
|
|
private string _BPEDY_TYPE = "";
|
|
private string _BPDPT_TYPE = "";
|
|
private string _BPSDY1 = "";
|
|
private string _BPSDY2 = "";
|
|
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;
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
_BPENO = ViewState["BPSN_BPENO"] != null ? ViewState["BPSN_BPENO"].ToString() : "";
|
|
_BPNME = ViewState["BPSN_BPNME"] != null ? ViewState["BPSN_BPNME"].ToString() : "";
|
|
_BPENM = ViewState["BPSN_BPENM"] != null ? ViewState["BPSN_BPENM"].ToString() : "";
|
|
_BPIDN = ViewState["BPSN_BPIDN"] != null ? ViewState["BPSN_BPIDN"].ToString() : "";
|
|
_BPEDY_TYPE = ViewState["BPSN_BPEDY_TYPE"] != null ? ViewState["BPSN_BPEDY_TYPE"].ToString() : "0";
|
|
_BPDPT_TYPE = ViewState["BPSN_BPDPT_TYPE"] != null ? ViewState["BPSN_BPDPT_TYPE"].ToString() : "0";
|
|
_BPSDY1 = ViewState["BPSN_BPSDY1"] != null ? ViewState["BPSN_BPSDY1"].ToString() : "";
|
|
_BPSDY2 = ViewState["BPSN_BPSDY2"] != null ? ViewState["BPSN_BPSDY2"].ToString() : "";
|
|
_BPEDY1 = ViewState["BPSN_BPEDY1"] != null ? ViewState["BPSN_BPEDY1"].ToString() : "";
|
|
_BPEDY2 = ViewState["BPSN_BPEDY2"] != null ? ViewState["BPSN_BPEDY2"].ToString() : "";
|
|
|
|
//if (GetStringParam("BPENO") != null)
|
|
//{
|
|
// txtBPNUM.Text = GetStringParam("BPENO");
|
|
// ParamList.Clear();
|
|
// Search();
|
|
//}
|
|
|
|
if (!IsPostBack)
|
|
{
|
|
ddlBPEDY.SelectedValue = "1";
|
|
GridView1.DataBind();
|
|
}
|
|
}
|
|
|
|
protected override void OnInit(EventArgs e)
|
|
{
|
|
base.OnInit(e);
|
|
|
|
dsBPSNForm.SelectCommand = @"
|
|
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
|
|
FROM BPSNView A
|
|
LEFT OUTER JOIN RASN B ON A.BPENO=B.RANUM AND B.RASDT <= @TODAY AND (B.RAEDT IS NULL OR 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)
|
|
WHERE A.BPENO=@BPENO
|
|
";
|
|
dsBPSNForm.InsertCommand = @"
|
|
INSERT INTO BPSN
|
|
(BPENO, BPNME, BPENM, BPGNR, BPBDY, BPIDN, BPAMY, BPAED, BPMRY, BPCHN, BPHGT, BPWGT, BPDIS,
|
|
BPAZC, BPACT, BPACY, BPASA, BPLZC, BPLCT, BPLCY, BPLSA, BPEML, BPHTL, BPOTL, BPOTX, BPWTC,
|
|
BPMB1, BPMB2, BPCTT, BPIDT, BPSTP, BPSCH, BPSUB, BPSGR, BPST2, BPSC2, BPSU2, BPSG2, BPPIC,
|
|
BPTYP, BPSDY, BPEDY, BPAWD, BPDPT, BPSWY, BPBNK, BPACC, BPDOC, BPEM2,
|
|
TRDAT, TRMOD, TRUSR, APPNO)
|
|
VALUES
|
|
(@BPENO, @BPNME, @BPENM, @BPGNR, @BPBDY, @BPIDN, @BPAMY, @BPAED, @BPMRY, @BPCHN, @BPHGT, @BPWGT, @BPDIS,
|
|
@BPAZC, @BPACT, @BPACY, @BPASA, @BPLZC, @BPLCT, @BPLCY, @BPLSA, @BPEML, @BPHTL, @BPOTL, @BPOTX, @BPWTC,
|
|
@BPMB1, @BPMB2, @BPCTT, @BPIDT, @BPSTP, @BPSCH, @BPSUB, @BPSGR, @BPST2, @BPSC2, @BPSU2, @BPSG2, @BPPIC,
|
|
@BPTYP, @BPSDY, @BPEDY, @BPAWD, @BPDPT, @BPSWY, @BPBNK, @BPACC, @BPDOC, @BPEM2,
|
|
GETDATE(), 'INSERT', @TRUSR, 1)";
|
|
dsBPSNForm.UpdateCommand = @"
|
|
UPDATE dbo.BPSN SET
|
|
BPENO = @BPENO,
|
|
BPNME = @BPNME,
|
|
BPENM = @BPENM,
|
|
BPGNR = @BPGNR,
|
|
BPBDY = @BPBDY,
|
|
BPIDN = @BPIDN,
|
|
BPAMY = @BPAMY,
|
|
BPAED = @BPAED,
|
|
BPMRY = @BPMRY,
|
|
BPCHN = @BPCHN,
|
|
BPHGT = @BPHGT,
|
|
BPWGT = @BPWGT,
|
|
BPDIS = @BPDIS,
|
|
BPAZC = @BPAZC,
|
|
BPACT = @BPACT,
|
|
BPACY = @BPACY,
|
|
BPASA = @BPASA,
|
|
BPLZC = @BPLZC,
|
|
BPLCT = @BPLCT,
|
|
BPLCY = @BPLCY,
|
|
BPLSA = @BPLSA,
|
|
BPEML = @BPEML,
|
|
BPHTL = @BPHTL,
|
|
BPOTL = @BPOTL,
|
|
BPOTX = @BPOTX,
|
|
BPWTC = @BPWTC,
|
|
BPMB1 = @BPMB1,
|
|
BPMB2 = @BPMB2,
|
|
BPCTT = @BPCTT,
|
|
BPIDT = @BPIDT,
|
|
BPSTP = @BPSTP,
|
|
BPSCH = @BPSCH,
|
|
BPSUB = @BPSUB,
|
|
BPSGR = @BPSGR,
|
|
BPST2 = @BPST2,
|
|
BPSC2 = @BPSC2,
|
|
BPSU2 = @BPSU2,
|
|
BPSG2 = @BPSG2,
|
|
BPPIC = @BPPIC,
|
|
BPTYP = @BPTYP,
|
|
BPDPT = @BPDPT,
|
|
BPSWY = @BPSWY,
|
|
BPBNK = @BPBNK,
|
|
BPACC = @BPACC,
|
|
BPDOC = @BPDOC,
|
|
BPEM2 = @BPEM2,
|
|
TRDAT = GETDATE(),
|
|
TRMOD = 'UPDATE',
|
|
TRUSR = @TRUSR,
|
|
APPNO = APPNO + 1
|
|
WHERE BPENO = @OLD_BPENO
|
|
AND APPNO = @OLD_APPNO";
|
|
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;
|
|
dsBPSN_BPMRY.ConnectionString = ConnectionString;
|
|
dsBPSN_BPAMY.ConnectionString = ConnectionString;
|
|
dsBPSN_BPIDT.ConnectionString = ConnectionString;
|
|
dsBPSN_BPDIS.ConnectionString = ConnectionString;
|
|
dsBPSN_BPDPT.ConnectionString = ConnectionString;
|
|
dsBPSN_BPSWY.ConnectionString = ConnectionString;
|
|
|
|
dsBPSN_BPTYP.SelectCommand = GetListSql("BCLS", "BSPAR = 'BPSNTYP'");
|
|
dsBPSN_BPGNR.SelectCommand = GetListSql("BCLS", "BSPAR = 'BPSNGNR'");
|
|
dsBPSN_BPSGR.SelectCommand = "SELECT '' BSCLS, '' BSSCR UNION " + GetListSql("BCLS", "BSPAR = 'BPSNSGR'");
|
|
dsBPSN_BPMRY.SelectCommand = GetListSql("BCLS", "BSPAR = 'BPSNMRY'");
|
|
dsBPSN_BPAMY.SelectCommand = GetListSql("BCLS", "BSPAR = 'BPSNAMY'");
|
|
dsBPSN_BPIDT.SelectCommand = GetListSql("BCLS", "BSPAR = 'BPSNIDT'");
|
|
dsBPSN_BPDIS.SelectCommand = GetListSql("BCLS", "BSPAR = 'BPSNDIS'");
|
|
dsBPSN_BPDPT.SelectCommand = "SELECT BDNUM, BDNAM FROM BDPT ORDER BY BDNUM";
|
|
dsBPSN_BPSWY.SelectCommand = GetListSql("BCLS", "BSPAR = 'BPSNSWY'");
|
|
|
|
GetGridViewRowColor(GridView1);
|
|
|
|
RegisterCalendarEvent(this, "btnBPSN_BPSDY1_DATE", "txtBPSN_BPSDY1");
|
|
RegisterCalendarEvent(this, "btnBPSN_BPSDY2_DATE", "txtBPSN_BPSDY2");
|
|
RegisterCalendarEvent(this, "btnBPSN_BPEDY1_DATE", "txtBPSN_BPEDY1");
|
|
RegisterCalendarEvent(this, "btnBPSN_BPEDY2_DATE", "txtBPSN_BPEDY2");
|
|
RegisterCalendarEvent(this, "btnExportDate1Date", "txtExportDate1");
|
|
RegisterCalendarEvent(this, "btnExportDate2Date", "txtExportDate2");
|
|
|
|
SetClientFocus(txtBPNUM);
|
|
|
|
bprmDAC = new BprmDAC(Query);
|
|
|
|
switch (MultiView1.ActiveViewIndex)
|
|
{
|
|
case 0:
|
|
{
|
|
break;
|
|
}
|
|
case 1:
|
|
{
|
|
Search();
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
// 查詢按鈕
|
|
protected void btnSearch_Click(object sender, EventArgs e)
|
|
{
|
|
cvMessage.ErrorMessage = "";
|
|
cvMessage.IsValid = true;
|
|
bool result = true;
|
|
|
|
// 檢查輸入的日期
|
|
DateTime aDateTime;
|
|
if (txtBPSN_BPSDY1.Text != "")
|
|
{
|
|
aDateTime = CheckDate(txtBPSN_BPSDY1.Text, "到職日開始日期不合理", ref result, cvMessage);
|
|
if (aDateTime.Ticks > 0)
|
|
_BPSDY1 = aDateTime.ToString(WGuard1.InvariantCulture);
|
|
else
|
|
_BPSDY1 = "";
|
|
}
|
|
if (txtBPSN_BPSDY2.Text != "")
|
|
{
|
|
aDateTime = CheckDate(txtBPSN_BPSDY2.Text, "到職日結束日期不合理", ref result, cvMessage);
|
|
if (aDateTime.Ticks > 0)
|
|
_BPSDY2 = aDateTime.ToString(WGuard1.InvariantCulture);
|
|
else
|
|
_BPSDY2 = "";
|
|
}
|
|
if (txtBPSN_BPEDY1.Text != "")
|
|
{
|
|
aDateTime = CheckDate(txtBPSN_BPEDY1.Text, "離職日開始日期不合理", ref result, cvMessage);
|
|
if (aDateTime.Ticks > 0)
|
|
_BPEDY1 = aDateTime.ToString(WGuard1.InvariantCulture);
|
|
else
|
|
_BPEDY1 = "";
|
|
}
|
|
if (txtBPSN_BPEDY2.Text != "")
|
|
{
|
|
aDateTime = CheckDate(txtBPSN_BPEDY2.Text, "離職日結束日期不合理", ref result, cvMessage);
|
|
if (aDateTime.Ticks > 0)
|
|
_BPEDY2 = aDateTime.ToString(WGuard1.InvariantCulture);
|
|
else
|
|
_BPEDY2 = "";
|
|
}
|
|
|
|
if (result)
|
|
{
|
|
MultiView1.ActiveViewIndex = 1;
|
|
|
|
Search();
|
|
|
|
GridView1.PageIndex = 0;
|
|
GridView1.SelectedIndex = 0;
|
|
GridView1.DataBind();
|
|
|
|
// 查詢有資料時,才將查詢條件紀錄在 ViewState 中
|
|
if (GridView1.Rows.Count > 0)
|
|
{
|
|
ViewState["BPSN_BPENO"] = _BPENO;
|
|
ViewState["BPSN_BPNME"] = _BPNME;
|
|
ViewState["BPSN_BPENM"] = _BPENM;
|
|
ViewState["BPSN_BPIDN"] = _BPIDN;
|
|
ViewState["BPSN_BPEDY_TYPE"] = _BPEDY_TYPE;
|
|
ViewState["BPSN_BPDPT_TYPE"] = _BPDPT_TYPE;
|
|
ViewState["BPSN_BPSDY1"] = _BPSDY1;
|
|
ViewState["BPSN_BPSDY2"] = _BPSDY2;
|
|
ViewState["BPSN_BPEDY1"] = _BPEDY1;
|
|
ViewState["BPSN_BPEDY2"] = _BPEDY2;
|
|
}
|
|
}
|
|
}
|
|
|
|
// 取消查詢按鈕
|
|
protected void btnCancel_Click(object sender, EventArgs e)
|
|
{
|
|
Search();
|
|
GridView1.DataBind();
|
|
MultiView1.ActiveViewIndex = 1;
|
|
}
|
|
|
|
// 查詢動作
|
|
private new void Search()
|
|
{
|
|
_BPENO = txtBPNUM.Text;
|
|
_BPNME = txtBPNAM.Text;
|
|
_BPENM = txtBPENM.Text;
|
|
_BPIDN = txtBPIDN.Text;
|
|
_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();
|
|
|
|
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;
|
|
|
|
if (idx >= 0)
|
|
{
|
|
GridView1.PageIndex = idx / GridView1.PageSize;
|
|
GridView1.SelectedIndex = idx % GridView1.PageSize;
|
|
}
|
|
|
|
ParamList.Clear();
|
|
ViewState.Remove("RPENO");
|
|
}
|
|
}
|
|
|
|
// 存檔前的計算動作
|
|
private new void CalcFields(SqlDataSourceCommandEventArgs e)
|
|
{
|
|
// e.Command.Parameters["@BPWTC"].Value = (fvBpsn.FindControl("cbBPSN_BPWTC") as CheckBox).Checked ? "Y" : "N";
|
|
|
|
if (fileOK)
|
|
{
|
|
try
|
|
{
|
|
FileUpload fu = fvBpsn.FindControl("fuBPSN_BPPIC") as FileUpload;
|
|
string ext = Path.GetExtension(fu.FileName).ToLower();
|
|
string bpeno = e.Command.Parameters["@BPENO"].Value.ToString();
|
|
string fileName = bpeno + ext;
|
|
|
|
// 儲存原圖
|
|
//fu.PostedFile.SaveAs(RootPath + "/UploadedPicture/" + fileName);
|
|
e.Command.Parameters["@BPPIC"].Value = fileName;
|
|
|
|
string tFullName = RootPath + "/UploadedPicture/" + "T_" + bpeno + ".jpg"; // 縮圖的存檔路徑
|
|
MemoryStream 縮圖 = WGuard1.縮圖(fu.PostedFile.InputStream, 300, 350);
|
|
File.WriteAllBytes(tFullName, 縮圖.ToArray());
|
|
}
|
|
catch
|
|
{
|
|
throw;
|
|
}
|
|
}
|
|
}
|
|
|
|
protected void dsBPSNForm_Inserting(object sender, SqlDataSourceCommandEventArgs e)
|
|
{
|
|
e.Command.Parameters["@BPAWD"].Value = "\u007f\u007f\u007f\u007f";
|
|
|
|
// 工讀生用其他規則編號
|
|
string newBPENO = WGuard1.WNextRen(
|
|
DateTime.UtcNow.AddHours(8)
|
|
, "BPSN"
|
|
, "BPENO"
|
|
, string.Format("{0}", e.Command.Parameters["@BPTYP"].Value) == "5" ? "\"T\"<9999>" : "<99999>"
|
|
, "");
|
|
|
|
e.Command.Parameters["@BPENO"].Value = newBPENO;
|
|
ViewState["RPENO"] = newBPENO;
|
|
CalcFields(e);
|
|
}
|
|
|
|
protected void dsBPSNForm_Updating(object sender, SqlDataSourceCommandEventArgs e)
|
|
{
|
|
CalcFields(e);
|
|
}
|
|
|
|
protected void GridView1_DataBound(object sender, EventArgs e)
|
|
{
|
|
GridView_DataBound(sender, e);
|
|
if (GridView1.Rows.Count > 0)
|
|
{
|
|
if (GridView1.SelectedIndex < 0)
|
|
{
|
|
GridView1.SelectedIndex = 0;
|
|
}
|
|
else if (GridView1.SelectedIndex > GridView1.Rows.Count - 1)
|
|
{
|
|
GridView1.SelectedIndex = GridView1.Rows.Count - 1;
|
|
}
|
|
}
|
|
else if (GridView1.Rows.Count == 0 && GridView1.PageIndex > 0)
|
|
{
|
|
GridView1.PageIndex--;
|
|
GridView1.SelectedIndex = 9999;
|
|
GridView1.DataBind();
|
|
}
|
|
fvBpsn.DataBind();
|
|
}
|
|
|
|
protected void GridView1_PageIndexChanged(object sender, EventArgs e)
|
|
{
|
|
Search();
|
|
GridView1.SelectedIndex = 0;
|
|
GridView1.DataBind();
|
|
}
|
|
|
|
protected void dsBPSNGrid_Selected(object sender, SqlDataSourceStatusEventArgs e)
|
|
{
|
|
if (e.AffectedRows == 0)
|
|
{
|
|
if (MultiView1.ActiveViewIndex == 0)
|
|
{
|
|
lbMessage.Text = GetString("NODATA");
|
|
lbMessage.Visible = true;
|
|
}
|
|
|
|
MultiView1.ActiveViewIndex = 0;
|
|
lbMessage.Text = GetString("NODATA");
|
|
lbMessage.Visible = true;
|
|
}
|
|
}
|
|
|
|
protected void fvBpsn_ItemCommand(object sender, FormViewCommandEventArgs e)
|
|
{
|
|
switch (e.CommandName)
|
|
{
|
|
case "Search":
|
|
MultiView1.ActiveViewIndex = 0;
|
|
txtBPNUM.Text = "";
|
|
txtBPNAM.Text = "";
|
|
txtBPENM.Text = "";
|
|
txtBPIDN.Text = "";
|
|
break;
|
|
case "Cancel":
|
|
Search();
|
|
fvBpsn.ChangeMode(FormViewMode.ReadOnly);
|
|
fvBpsn_ModeChanged(sender, e);
|
|
break;
|
|
case "Export":
|
|
MultiView1.ActiveViewIndex = 2;
|
|
txtExportDate1.Text = "";
|
|
txtExportDate2.Text = "";
|
|
txtExportBPENO1.Text = "";
|
|
txtExportBPENO2.Text = "";
|
|
for (int i = 0; i < rblEmploymentStatus.Items.Count; i++)
|
|
{
|
|
rblEmploymentStatus.Items[i].Selected = false;
|
|
}
|
|
for (int i = 0; i < rblWhereType.Items.Count; i++)
|
|
{
|
|
rblWhereType.Items[i].Selected = false;
|
|
}
|
|
for (int i = 0; i < cblExportColumns.Items.Count; i++)
|
|
{
|
|
cblExportColumns.Items[i].Selected = true;
|
|
}
|
|
rblEmploymentStatus.Items[0].Selected = true;
|
|
rblWhereType.Items[0].Selected = true;
|
|
cblExportProjects.Items.Clear();
|
|
break;
|
|
case "RPIR":
|
|
ParamList["mode"] = "BPSN";
|
|
ParamList["BPENO"] = fvBpsn.DataKey.Values["BPENO"];
|
|
DoAfterCommand("RPIR");
|
|
break;
|
|
case "RPSN":
|
|
ViewState["RPENO"] = fvBpsn.DataKey.Values["BPENO"];
|
|
ViewState["RPNME"] = GetLookup("BPSN", fvBpsn.DataKey.Values["BPENO"].ToString(), "BPNME");
|
|
MultiView1.ActiveViewIndex = 3;
|
|
break;
|
|
}
|
|
}
|
|
|
|
protected void fvBpsn_ItemDeleted(object sender, FormViewDeletedEventArgs e)
|
|
{
|
|
Search();
|
|
GridView1.DataBind();
|
|
fvBpsn.DataBind();
|
|
}
|
|
|
|
protected void fvBpsn_ItemInserted(object sender, FormViewInsertedEventArgs e)
|
|
{
|
|
Search();
|
|
}
|
|
|
|
protected void fvBpsn_ItemUpdated(object sender, FormViewUpdatedEventArgs e)
|
|
{
|
|
Search();
|
|
}
|
|
|
|
protected void fvBpsn_ModeChanged(object sender, EventArgs e)
|
|
{
|
|
if (fvBpsn.CurrentMode == FormViewMode.ReadOnly)
|
|
{
|
|
GridView1.Visible = true;
|
|
GridView1.DataBind();
|
|
if (GridView1.Rows.Count > 0 && GridView1.SelectedIndex == -1)
|
|
{
|
|
GridView1.SelectedIndex = 0;
|
|
}
|
|
|
|
fvBpsn.DataBind();
|
|
}
|
|
else
|
|
{
|
|
GridView1.Visible = false;
|
|
}
|
|
}
|
|
|
|
protected void fvBpsn_ModeChanging(object sender, FormViewModeEventArgs e)
|
|
{
|
|
OldMode = (sender as FormView).CurrentMode;
|
|
}
|
|
|
|
protected void fvBpsn_DataBound(object sender, EventArgs e)
|
|
{
|
|
if (fvBpsn.CurrentMode == FormViewMode.Insert || fvBpsn.CurrentMode == FormViewMode.Edit)
|
|
{
|
|
RegisterCalendarEvent(fvBpsn, "btnBPSN_BPBDY_DATE", "txtBPSN_BPBDY");
|
|
RegisterCalendarEvent(fvBpsn, "btnBPSN_BPAED_DATE", "txtBPSN_BPAED");
|
|
RegisterCalendarEvent(fvBpsn, "btnBPSN_BPSDY_DATE", "txtBPSN_BPSDY");
|
|
RegisterCalendarEvent(fvBpsn, "btnBPSN_BPEDY_DATE", "txtBPSN_BPEDY");
|
|
RegisterLookupEvent(fvBpsn, "btnBPSN_BPBNK_WQRY", "txtBPSN_BPBNK", "txtBPSN_BPBNK,lbBPSN_BPBNKX", "BRML");
|
|
|
|
if (fvBpsn.CurrentMode == FormViewMode.Insert)
|
|
{
|
|
//(fvBpsn.FindControl("ddlBPSN_BPTYP") as RadioButtonList).SelectedIndex = 0;
|
|
(fvBpsn.FindControl("rbBPSN_BPGNR") as RadioButtonList).SelectedIndex = 0;
|
|
//(fvBpsn.FindControl("rbBPSN_BPDIS") as RadioButtonList).SelectedIndex = 0;
|
|
}
|
|
}
|
|
|
|
switch (fvBpsn.CurrentMode)
|
|
{
|
|
case FormViewMode.Insert:
|
|
SetControlFocus(fvBpsn, "txtBPSN_BPNME");
|
|
break;
|
|
|
|
case FormViewMode.Edit:
|
|
SetControlFocus(fvBpsn, "txtBPSN_BPNME");
|
|
break;
|
|
|
|
case FormViewMode.ReadOnly:
|
|
if (fvBpsn.DataItem != null)
|
|
ViewState["OLD_BPENO"] = (fvBpsn.DataItem as DataRowView)["BPENO"];
|
|
SetControlVisible(fvBpsn, "pnlBank", canUpdate);
|
|
SetControlEnabled(fvBpsn, "btnInsert", canInsert);
|
|
SetControlEnabled(fvBpsn, "btnEdit", canUpdate);
|
|
SetControlEnabled(fvBpsn, "btnDelete", canDelete);
|
|
SetControlEnabled(fvBpsn, "btnSearch", canSearch);
|
|
break;
|
|
}
|
|
}
|
|
|
|
protected void BPPICValidator_ServerValidate(object source, ServerValidateEventArgs args)
|
|
{
|
|
args.IsValid = true;
|
|
|
|
// 處理上傳照片
|
|
string ext = "";
|
|
FileUpload fu = fvBpsn.FindControl("fuBPSN_BPPIC") as FileUpload;
|
|
if (fu.HasFile && fu.PostedFile.ContentType.ToLower().IndexOf("image") >= 0)
|
|
{
|
|
// 檢查副檔名
|
|
ext = Path.GetExtension(fu.FileName).ToLower();
|
|
String[] allowedExt = { ".gif", ".jpeg", ".jpg" };
|
|
for (int i = 0; i < allowedExt.Length; i++)
|
|
{
|
|
if (ext == allowedExt[i])
|
|
{
|
|
fileOK = true;
|
|
}
|
|
}
|
|
|
|
// 檢查檔案大小
|
|
if (fileOK && fu.PostedFile.ContentLength < 204800)
|
|
fileOK = true;
|
|
else
|
|
fileOK = false;
|
|
|
|
if (!fileOK)
|
|
{
|
|
args.IsValid = false;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
args.IsValid = false;
|
|
}
|
|
}
|
|
|
|
protected void dsBPSNForm_Deleted(object sender, SqlDataSourceStatusEventArgs e)
|
|
{
|
|
// 資料刪除之後,要刪除圖檔
|
|
string bpeno = e.Command.Parameters["@OLD_BPENO"].Value.ToString();
|
|
string[] pictures = Directory.GetFiles(RootPath + "/UploadedPicture", bpeno + ".*");
|
|
foreach (string picture in pictures)
|
|
File.Delete(picture);
|
|
if (File.Exists(RootPath + "/UploadedPicture/T_" + bpeno + ".jpg"))
|
|
File.Delete(RootPath + "/UploadedPicture/T_" + bpeno + ".jpg");
|
|
}
|
|
|
|
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
|
|
{
|
|
SetGridViewMouseBehavier(GridView1, e.Row);
|
|
// GridView_RowDataBound_Shrink_ViewState(sender, e);
|
|
}
|
|
|
|
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
foreach (GridViewRow row in GridView1.Rows)
|
|
SetGridViewMouseBehavier(GridView1, row);
|
|
}
|
|
|
|
protected void fvBpsn_ItemDeleting(object sender, FormViewDeleteEventArgs e)
|
|
{
|
|
// 刪除前檢查
|
|
// 1. 檢查是否有派遣紀錄
|
|
// 2. 檢查是否有任職紀錄
|
|
}
|
|
|
|
protected new bool CheckInput(System.Collections.Specialized.IOrderedDictionary values)
|
|
{
|
|
cvMessage.ErrorMessage = "";
|
|
cvMessage.IsValid = true;
|
|
|
|
bool result = true;
|
|
if (values["BPBDY"].ToString() != "")
|
|
values["BPBDY"] = CheckDate(values["BPBDY"], "請輸入正確的出生年月日", ref result, cvMessage);
|
|
if (values["BPAED"].ToString() != "")
|
|
values["BPAED"] = CheckDate(values["BPAED"], "請輸入正確的退伍日期", ref result, cvMessage);
|
|
if (values["BPSDY"] != null && values["BPSDY"].ToString() != "")
|
|
values["BPSDY"] = CheckDate(values["BPSDY"], "請輸入正確的到職日期", ref result, cvMessage);
|
|
if (values["BPEDY"] != null && values["BPEDY"].ToString() != "")
|
|
values["BPEDY"] = CheckDate(values["BPEDY"], "請輸入正確的離職日期", ref result, cvMessage);
|
|
if (values["BPEML"].ToString() != "")
|
|
CheckEmail(values["BPEML"], "電子郵件格式不正確", ref result, cvMessage);
|
|
if (values["BPEM2"].ToString() != "")
|
|
CheckEmail(values["BPEM2"], "電子郵件(薪資單)格式不正確", ref result, cvMessage);
|
|
|
|
ProcessCustomValidatorMessage(cvMessage);
|
|
return result;
|
|
}
|
|
|
|
protected void fvBpsn_ItemInserting(object sender, FormViewInsertEventArgs e)
|
|
{
|
|
e.Cancel = !CheckInput(e.Values);
|
|
var bptyp = WQuery.GetStringValue(e.Values["BPTYP"]);
|
|
|
|
int bpidnCount = WQuery.GetInt32Value(
|
|
Query.ExecuteScalar(
|
|
String.Format("SELECT COUNT(1) FROM BPSNView WHERE BPIDN='{0}' AND BPTYP IN ({1})"
|
|
, e.Values["BPIDN"]
|
|
, bptyp == "5" ? "5" : "1,2,3,4")
|
|
)
|
|
);
|
|
if (bpidnCount > 0)
|
|
{
|
|
e.Cancel = true;
|
|
cvMessage.IsValid = false;
|
|
cvMessage.ErrorMessage += "身份證字號已存在<br/>";
|
|
ProcessCustomValidatorMessage(cvMessage);
|
|
}
|
|
}
|
|
|
|
protected void fvBpsn_ItemUpdating(object sender, FormViewUpdateEventArgs e)
|
|
{
|
|
e.Cancel = !CheckInput(e.NewValues);
|
|
}
|
|
|
|
protected void dsBPSNForm_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
|
|
{
|
|
e.Command.Parameters["@TODAY"].Value = String.Format(WGuard1.InvariantCulture, "{0:yyyy-MM-dd}", DateTime.UtcNow.AddHours(8).Date);
|
|
}
|
|
|
|
protected void btnDoExport_Click(object sender, EventArgs e)
|
|
{
|
|
DateTime date1, date2;
|
|
if (!WGuard1.CheckDate(txtExportDate1.Text, out date1))
|
|
{
|
|
cvMessage.IsValid = false;
|
|
cvMessage.ErrorMessage = "起始日期不正確";
|
|
return;
|
|
}
|
|
if (!WGuard1.CheckDate(txtExportDate2.Text, out date2))
|
|
{
|
|
cvMessage.IsValid = false;
|
|
cvMessage.ErrorMessage = "結束日期不正確";
|
|
return;
|
|
}
|
|
|
|
StringBuilder sql = new StringBuilder();
|
|
|
|
sql.Append(@"
|
|
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 -- 公司別
|
|
, I.BDNAM BPDPTX -- 部門名稱
|
|
, GNR.BSSCR BPGNRX -- 性別名稱
|
|
, TYP.BSSCR BPTYPX -- 人員類別名稱
|
|
, STP.BSSCR BPSTPX -- 最高學歷名稱
|
|
, SGR.BSSCR BPSGRX -- 畢肄業名稱
|
|
, IDT.BSSCR BPIDTX -- 身份類別名稱
|
|
-- , BNK.BCNAM BPBNKX -- 銀行名稱
|
|
, CONCAT((SELECT BNKB.BCNAM FROM BRML BNKB WHERE BNKB.BCNUM=SUBSTRING(A.BPBNK, 1, 3)), BNK.BCNAM) BPBNKX -- 銀行名稱
|
|
FROM BPSNView A
|
|
LEFT OUTER JOIN RASN B ON A.BPENO = B.RANUM
|
|
AND (B.RASDT <= @DATE2 AND (B.RAEDT IS NULL OR B.RAEDT >= @DATE2) OR B.RAEDT BETWEEN @DATE1 AND @DATE2)
|
|
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)
|
|
LEFT OUTER JOIN BDPT I ON A.BPDPT = I.BDNUM
|
|
LEFT OUTER JOIN BCLS GNR ON A.BPGNR = GNR.BSCLS AND GNR.BSPAR = 'BPSNGNR'
|
|
LEFT OUTER JOIN BCLS TYP ON A.BPTYP = TYP.BSCLS AND TYP.BSPAR = 'BPSNTYP'
|
|
LEFT OUTER JOIN BCLS STP ON A.BPSTP = STP.BSCLS AND STP.BSPAR = 'BPSNSTP'
|
|
LEFT OUTER JOIN BCLS SGR ON A.BPSGR = SGR.BSCLS AND SGR.BSPAR = 'BPSNSGR'
|
|
LEFT OUTER JOIN BCLS IDT ON A.BPIDT = IDT.BSCLS AND IDT.BSPAR = 'BPSNIDT'
|
|
-- LEFT OUTER JOIN BRMLView BNK ON A.BPBNK = BNK.BCNUM
|
|
LEFT OUTER JOIN BRML BNK ON A.BPBNK = BNK.BCNUM
|
|
WHERE 1=1 ");
|
|
|
|
var cmd = Query.NewCommand();
|
|
Query.AddParam(cmd, "DATE1", date1);
|
|
Query.AddParam(cmd, "DATE2", date2);
|
|
Query.AddParam(cmd, "MMDD1", string.Format("{0:MMdd}", date1));
|
|
Query.AddParam(cmd, "MMDD2", string.Format("{0:MMdd}", date2));
|
|
|
|
if (!string.IsNullOrEmpty(txtExportBPENO1.Text) && !string.IsNullOrEmpty(txtExportBPENO2.Text))
|
|
{
|
|
sql.Append(" AND BPENO BETWEEN @BPENO1 AND @BPENO2 ");
|
|
}
|
|
else if (!string.IsNullOrEmpty(txtExportBPENO1.Text) && string.IsNullOrEmpty(txtExportBPENO2.Text))
|
|
{
|
|
sql.Append(" AND BPENO >= @BPENO1");
|
|
}
|
|
else if (string.IsNullOrEmpty(txtExportBPENO1.Text) && !string.IsNullOrEmpty(txtExportBPENO2.Text))
|
|
{
|
|
sql.Append(" AND BPENO <= @BPENO2");
|
|
}
|
|
Query.AddParam(cmd, "BPENO1", txtExportBPENO1.Text);
|
|
Query.AddParam(cmd, "BPENO2", txtExportBPENO2.Text);
|
|
|
|
List<string> rapyns = new List<string>();
|
|
List<string> rapynNames = new List<string>();
|
|
for (int i = 0; i < cblExportProjects.Items.Count; i++)
|
|
{
|
|
if (cblExportProjects.Items[i].Selected && cblExportProjects.Items[i].Value != "")
|
|
{
|
|
rapyns.Add(string.Format("@RAPYN{0}", i));
|
|
rapynNames.Add(cblExportProjects.Items[i].Text);
|
|
Query.AddParam(cmd, string.Format("RAPYN{0}", i), cblExportProjects.Items[i].Value);
|
|
}
|
|
}
|
|
if (rapyns.Count > 0)
|
|
{
|
|
sql.Append(string.Format(" AND B.RAPYN IN ({0}) ", string.Join(", ", rapyns.ToArray())));
|
|
}
|
|
else
|
|
{
|
|
rapynNames.Add("【全部】");
|
|
}
|
|
|
|
switch (rblEmploymentStatus.SelectedValue)
|
|
{
|
|
case "STAFF":
|
|
sql.Append(" AND (BPSDY <= @DATE2 AND (BPEDY IS NULL OR BPEDY >= @DATE2) OR BPEDY BETWEEN @DATE1 AND @DATE2) ");
|
|
// sql.Append(" AND BPEDY IS NULL ");
|
|
break;
|
|
case "QUIT":
|
|
// sql.Append(" AND NOT (BPSDY <= @DATE2 AND (BPEDY IS NULL OR BPEDY >= @DATE2) OR BPEDY BETWEEN @DATE1 AND @DATE2) ");
|
|
sql.Append(" AND BPEDY IS NOT NULL ");
|
|
break;
|
|
}
|
|
switch (rblWhereType.SelectedValue)
|
|
{
|
|
case "BPSDY":
|
|
sql.Append(" AND BPSDY BETWEEN @DATE1 AND @DATE2 ");
|
|
break;
|
|
case "BPEDY":
|
|
sql.Append(" AND BPEDY BETWEEN @DATE1 AND @DATE2 ");
|
|
break;
|
|
case "BPBDY":
|
|
sql.Append(" AND SUBSTRING(CONVERT(varchar, BPBDY, 112), 5, 4) BETWEEN @MMDD1 AND @MMDD2 ");
|
|
break;
|
|
}
|
|
|
|
sql.Append(" ORDER BY BPENO ");
|
|
cmd.CommandText = sql.ToString();
|
|
DataTable t = Query.Select(cmd);
|
|
|
|
if (t.Rows.Count == 0)
|
|
{
|
|
cvMessage.IsValid = false;
|
|
cvMessage.ErrorMessage = "沒有符合條件的資料";
|
|
return;
|
|
}
|
|
|
|
HSSFWorkbook workbook = new HSSFWorkbook();
|
|
HSSFSheet sheet = workbook.CreateSheet("報表") as HSSFSheet;
|
|
sheet.ForceFormulaRecalculation = true;
|
|
Excel excel = new Excel();
|
|
excel.WorkBook = workbook;
|
|
excel.Sheet = sheet;
|
|
int row = 0;
|
|
int col = 0;
|
|
|
|
// 抬頭
|
|
excel.MergeCell(row, 0, row, 6);
|
|
excel.SetCellValue(row, 0, "人員資料匯出");
|
|
row++;
|
|
excel.MergeCell(row, 1, row, 5);
|
|
excel.SetCellValue(row, 0, "日期期間:");
|
|
excel.SetCellValue(row, 1, string.Format("{0} ~ {1}", txtExportDate1.Text, txtExportDate2.Text));
|
|
row++;
|
|
excel.SetCellValue(row, 0, "專案:");
|
|
excel.MergeCell(row, 1, row, 10);
|
|
excel.SetCellValue(row, 1, string.Join("/", rapynNames.ToArray()));
|
|
row++;
|
|
excel.SetCellValue(row, 0, "員工編號:");
|
|
excel.MergeCell(row, 1, row, 5);
|
|
if (string.IsNullOrEmpty(txtExportBPENO1.Text) && string.IsNullOrEmpty(txtExportBPENO2.Text))
|
|
excel.SetCellValue(row, 1, "全部");
|
|
if (string.IsNullOrEmpty(txtExportBPENO1.Text) && !string.IsNullOrEmpty(txtExportBPENO2.Text))
|
|
excel.SetCellValue(row, 1, string.Format("{0} ~", txtExportBPENO1.Text));
|
|
if (!string.IsNullOrEmpty(txtExportBPENO1.Text) && string.IsNullOrEmpty(txtExportBPENO2.Text))
|
|
excel.SetCellValue(row, 1, string.Format("~ {0}", txtExportBPENO2.Text));
|
|
row++;
|
|
excel.SetCellValue(row, 0, "在職狀況:");
|
|
excel.SetCellValue(row, 1, string.Format("{0}", rblEmploymentStatus.SelectedItem.Text));
|
|
row++;
|
|
excel.SetCellValue(row, 0, "匯出類型:");
|
|
excel.SetCellValue(row, 1, string.Format("{0}", rblWhereType.SelectedItem.Text));
|
|
row += 2;
|
|
|
|
// 標題
|
|
for (int x = 0; x < cblExportColumns.Items.Count; x++)
|
|
{
|
|
if (cblExportColumns.Items[x].Selected)
|
|
{
|
|
if (cblExportColumns.Items[x].Value == "BPMBL")
|
|
{
|
|
excel.SetCellValue(row, col++, "手機一");
|
|
excel.SetCellValue(row, col++, "手機二");
|
|
continue;
|
|
}
|
|
excel.SetCellValue(row, col++, cblExportColumns.Items[x].Text);
|
|
}
|
|
}
|
|
row++;
|
|
|
|
// 內容
|
|
foreach (DataRow r in t.Rows)
|
|
{
|
|
// BPENO 人員編號
|
|
// BPNME 人員姓名
|
|
// BOGNRX 性別
|
|
// BPIDN 身份證字號
|
|
// BPBDY 出生年月日
|
|
// BPAAA 戶籍地 BPAZC BPACT BPACY BPASA
|
|
// BPLLL 現住地 BPLZC BPLCT BPLCY BPLSA
|
|
// BPHTL 住家電話
|
|
// BPMBL 手機
|
|
// BPEML 電子郵件
|
|
// BPEM2 電子郵件(薪資單)
|
|
// BPSTPX 最高學歷
|
|
// BPSCH 最高學歷學校
|
|
// BPSUB 最高學歷科系
|
|
// BPIDTX 身份類別
|
|
// BPSDY 到職日期
|
|
// BPEDY 離職日期
|
|
// BPBNKX 銀行
|
|
// BPBNK 分行代碼
|
|
// BPACC 帳號
|
|
// RAPYNX 派駐專案
|
|
// RABRHX 站別
|
|
// RAJNOX 職稱
|
|
col = 0;
|
|
for (int x = 0; x < cblExportColumns.Items.Count; x++)
|
|
{
|
|
if (cblExportColumns.Items[x].Selected)
|
|
{
|
|
if (cblExportColumns.Items[x].Value == "BPAAA")
|
|
{
|
|
excel.SetCellValue(row, col++, string.Format("{0} {1}{2}{3}", r["BPAZC"], r["BPACT"], r["BPACY"], r["BPASA"]));
|
|
continue;
|
|
}
|
|
if (cblExportColumns.Items[x].Value == "BPLLL")
|
|
{
|
|
excel.SetCellValue(row, col++, string.Format("{0} {1}{2}{3}", r["BPLZC"], r["BPLCT"], r["BPLCY"], r["BPLSA"]));
|
|
continue;
|
|
}
|
|
if (cblExportColumns.Items[x].Value == "BPMBL")
|
|
{
|
|
excel.SetCellValue(row, col++, string.Format("{0}", r["BPMB1"]));
|
|
excel.SetCellValue(row, col++, string.Format("{0}", r["BPMB2"]));
|
|
continue;
|
|
}
|
|
if (r[cblExportColumns.Items[x].Value] is System.DateTime)
|
|
{
|
|
excel.SetCellValue(row, col++, string.Format(WGuard1.InvariantCulture, "{0:yyyy/MM/dd}", r[cblExportColumns.Items[x].Value]));
|
|
continue;
|
|
}
|
|
excel.SetCellValue(row, col++, string.Format("{0}", r[cblExportColumns.Items[x].Value]));
|
|
}
|
|
}
|
|
row++;
|
|
}
|
|
|
|
MemoryStream ms = new MemoryStream();
|
|
workbook.Write(ms);
|
|
ResponseWriteFile(ms, String.Format("人員資料匯出_{0:yyyyMMddHHmmss}.xls", DateTime.UtcNow.AddHours(8)));
|
|
}
|
|
|
|
protected void btnCancelExport_Click(object sender, EventArgs e)
|
|
{
|
|
Search();
|
|
GridView1.DataBind();
|
|
MultiView1.ActiveViewIndex = 1;
|
|
}
|
|
|
|
protected void btnExportSearchProject_Click(object sender, EventArgs e)
|
|
{
|
|
DateTime date1, date2;
|
|
if (!WGuard1.CheckDate(txtExportDate1.Text, out date1))
|
|
{
|
|
cvMessage.IsValid = false;
|
|
cvMessage.ErrorMessage = "起始日期不正確";
|
|
return;
|
|
}
|
|
if (!WGuard1.CheckDate(txtExportDate2.Text, out date2))
|
|
{
|
|
cvMessage.IsValid = false;
|
|
cvMessage.ErrorMessage = "結束日期不正確";
|
|
return;
|
|
}
|
|
|
|
cblExportProjects.DataSource = new BpaaDAC().GetBpaaWithTYPlusNoneNotCheckYear(date1.Year, date2.Year);
|
|
cblExportProjects.DataTextField = "BPPYM";
|
|
cblExportProjects.DataValueField = "BPPYN";
|
|
cblExportProjects.DataBind();
|
|
}
|
|
|
|
protected string GetBDPTList()
|
|
{
|
|
var r = new List<object>();
|
|
foreach (DataRow row in GetListData("BDPT", "").Rows)
|
|
{
|
|
r.Add(new { BDNUM = row["BDNUM"], BDNAM = row["BDNAM"] });
|
|
}
|
|
return Newtonsoft.Json.JsonConvert.SerializeObject(r);
|
|
}
|
|
|
|
protected void btnBack_Click(object sender, EventArgs e)
|
|
{
|
|
// txtBPNUM.Text = WDAC.GetStringValue(ViewState["RPENO"]);
|
|
ddlBPEDY.SelectedValue = "0";
|
|
Search();
|
|
GridView1.DataBind();
|
|
MultiView1.ActiveViewIndex = 1;
|
|
}
|
|
|
|
protected void dsBPSNForm_Inserted(object sender, SqlDataSourceStatusEventArgs e)
|
|
{
|
|
//
|
|
}
|
|
|
|
protected void btnExportColumnsSelectAll_Click(object sender, EventArgs e)
|
|
{
|
|
foreach (ListItem item in cblExportColumns.Items)
|
|
{
|
|
item.Selected = true;
|
|
}
|
|
}
|
|
|
|
protected void btnExportColumnsSelectNone_Click(object sender, EventArgs e)
|
|
{
|
|
foreach (ListItem item in cblExportColumns.Items)
|
|
{
|
|
item.Selected = false;
|
|
}
|
|
}
|
|
}
|