489 lines
19 KiB
C#
489 lines
19 KiB
C#
using System;
|
|
using System.Data;
|
|
using System.Configuration;
|
|
using System.Collections;
|
|
using System.Web;
|
|
using System.Web.Security;
|
|
using System.Web.UI;
|
|
using System.Web.UI.WebControls;
|
|
using System.Web.UI.WebControls.WebParts;
|
|
using System.Web.UI.HtmlControls;
|
|
using System.Text;
|
|
using System.Data.Common;
|
|
using Wellan.Data;
|
|
using Wellan.Common;
|
|
using System.IO;
|
|
using CRAX;
|
|
|
|
/// <summary>
|
|
/// 管理報表
|
|
/// </summary>
|
|
public partial class forms_report_fmMgmtReport : Wellan.Web.UI.WUserControlBase
|
|
{
|
|
private DateTime Date1;
|
|
private DateTime Date2;
|
|
private DateTime EmpDate;
|
|
private ReportParameter rp = new ReportParameter();
|
|
private string reportName = "";
|
|
private string dataFileName = "";
|
|
private string reportTitle = "";
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
// 輸出 onclick 事件
|
|
foreach (ListItem item in rblReport.Items)
|
|
{
|
|
item.Attributes.Add("onclick", "inputControl(\"" + item.Value + "\");");
|
|
}
|
|
RegisterCalendarEvent(this, "btnDATE1_DATE", "txtDATE1");
|
|
RegisterCalendarEvent(this, "btnDATE2_DATE", "txtDATE2");
|
|
RegisterCalendarEvent(this, "btnEMPDATE_DATE", "txtEMPDATE");
|
|
}
|
|
|
|
protected override void OnInit(EventArgs e)
|
|
{
|
|
base.OnInit(e);
|
|
ddlBPPNM.DataSource = new BpaaDAC().GetBpaaWithTYPlusNone();
|
|
ddlBPPNM.DataBind();
|
|
}
|
|
|
|
private bool CheckInput()
|
|
{
|
|
cvMessage.ErrorMessage = "";
|
|
cvMessage.IsValid = true;
|
|
bool result = true;
|
|
|
|
if (rblReport.SelectedIndex == -1)
|
|
{
|
|
cvMessage.ErrorMessage += "請選擇報表";
|
|
result = false;
|
|
}
|
|
|
|
string[] tmp = rblReport.SelectedValue.Split(',');
|
|
if (tmp.Length > 2)
|
|
{
|
|
reportName = tmp[0];
|
|
dataFileName = tmp[1];
|
|
reportTitle = tmp[2];
|
|
}
|
|
|
|
switch (reportName)
|
|
{
|
|
case "BPSN_01":
|
|
if (!cbbBPEDY.Checked &&
|
|
!cbbBPPNM.Checked &&
|
|
!cbbBPSDY_PERIOD.Checked &&
|
|
!cbbBPEDY_PERIOD.Checked &&
|
|
!cbbBPBDY_PERIOD.Checked &&
|
|
!cbbBPENO.Checked &&
|
|
!cbbEMPDATE.Checked)
|
|
{
|
|
cvMessage.ErrorMessage += "請選擇篩選類型";
|
|
result = false;
|
|
}
|
|
break;
|
|
case "BPSN_02":
|
|
if (!cbbBPEDY.Checked &&
|
|
!cbbBPPNM.Checked &&
|
|
!cbbBPSDY_PERIOD.Checked &&
|
|
!cbbBPEDY_PERIOD.Checked &&
|
|
!cbbBPBDY_PERIOD.Checked &&
|
|
!cbbEMPDATE.Checked)
|
|
{
|
|
cvMessage.ErrorMessage += "請選擇篩選類型";
|
|
result = false;
|
|
}
|
|
break;
|
|
|
|
case "RPAR_ALL_1":
|
|
if (!cbbBPPNM.Checked &&
|
|
!cbbPRESENT_PERIOD.Checked)
|
|
{
|
|
cvMessage.ErrorMessage += "請選擇篩選類型";
|
|
result = false;
|
|
}
|
|
break;
|
|
|
|
case "RPAR_01":
|
|
if (!cbbBPEDY.Checked &&
|
|
!cbbBPPNM.Checked)
|
|
{
|
|
cvMessage.ErrorMessage += "請選擇篩選類型";
|
|
result = false;
|
|
}
|
|
break;
|
|
}
|
|
|
|
if (cbbBPSDY_PERIOD.Checked ||
|
|
cbbBPEDY_PERIOD.Checked ||
|
|
cbbPRESENT_PERIOD.Checked)
|
|
{
|
|
Date1 = CheckDate(txtDATE1.Text, "期間起始日期請輸入正確的日期", ref result, cvMessage);
|
|
Date2 = CheckDate(txtDATE2.Text, "期間結束日期請輸入正確的日期", ref result, cvMessage);
|
|
}
|
|
|
|
if (cbbEMPDATE.Checked)
|
|
{
|
|
EmpDate = CheckDate(txtEMPDATE.Text, "在職日期請輸入正確的日期", ref result, cvMessage);
|
|
}
|
|
|
|
cvMessage.IsValid = result;
|
|
|
|
RegisterStartupScript("INPUT CONTROL", "inputControl(\"" + rblReport.SelectedValue + "\");");
|
|
|
|
ProcessCustomValidatorMessage(cvMessage);
|
|
return result;
|
|
}
|
|
|
|
protected void btnOk_Click(object sender, EventArgs e)
|
|
{
|
|
if (!CheckInput())
|
|
return;
|
|
|
|
DataTable reportData;
|
|
if (!GetData(out reportData))
|
|
{
|
|
cvMessage.ErrorMessage = "無符合條件的資料";
|
|
cvMessage.IsValid = false;
|
|
return;
|
|
}
|
|
|
|
// 將資料輸出成 MDB 檔案
|
|
WTableTr tableTr = new WTableTr();
|
|
string realFileName = tableTr.ExportToMDB(reportData, ReportDataPath + dataFileName + ".mdb", dataFileName, true, true, false);
|
|
realFileName = "reportData/" + Path.GetFileName(realFileName);
|
|
reportData.Dispose();
|
|
tableTr = null;
|
|
|
|
// 將參數輸出成 RPP 檔案
|
|
string realParamFileName = "reportData/" + Path.GetFileName(rp.Save(ReportDataPath + reportName + ".rpp", true));
|
|
|
|
RegisterStartupScript("REPORT_JS",
|
|
CRAXHelper.GetReportScriptJSONP(Context,
|
|
GetWebRootUrl() + "CRAX/",
|
|
"../report/" + reportName + ".rpt",
|
|
"../" + realFileName,
|
|
"../" + realParamFileName,
|
|
"",
|
|
reportName + ".rpt",
|
|
dataFileName + ".mdb",
|
|
reportName + ".rpp",
|
|
"",
|
|
"",
|
|
"",
|
|
"",
|
|
"",
|
|
0,
|
|
0));
|
|
}
|
|
|
|
private bool GetData(out DataTable Result)
|
|
{
|
|
GetData gd = new GetData();
|
|
gd.Query = Query;
|
|
|
|
switch (dataFileName)
|
|
{
|
|
case "BPSN_01":
|
|
return GetDataBPSN_01(out Result);
|
|
case "RPIR_01":
|
|
return GetDataRPIR_01(out Result);
|
|
default:
|
|
Result = new DataTable();
|
|
return false;
|
|
}
|
|
}
|
|
|
|
private bool GetDataRPIR_01(out DataTable Result)
|
|
{
|
|
StringBuilder sql = new StringBuilder();
|
|
rp.Clear();
|
|
rp.Add("公司名稱", GetString("COMPANY.NAME"));
|
|
rp.Add("報表名稱", reportTitle);
|
|
|
|
DbCommand cmd = Query.NewCommand();
|
|
sql.Append(
|
|
@"SELECT * FROM
|
|
(
|
|
SELECT A.RPREN, 0 AS RPITM, '1899/12/31' AS RPBDT, A.RPENO, A.RPSDT, A.RPEDT, A.RPSLY, A.RPAMT, A.RPFMY, A.RPFM1, A.RPFM2,
|
|
A.RPFM3, A.RPSLA, A.RPDIS, A.RPDIH, A.RPOLD, A.RPNAT, A.RPPTP, A.RPLIS, A.RPHIS, A.RPDOC,
|
|
B.BPNME, B.BPSDY, B.BPEDY, C.RAPYN, D.BPPYM RAPYNX, A.TRDAT, B.BPIDN
|
|
FROM RPIR A
|
|
LEFT OUTER JOIN BPSNView B ON A.RPENO=B.BPENO
|
|
LEFT OUTER JOIN RASN C ON A.RPENO=C.RANUM AND C.RAEDT IS NULL
|
|
LEFT OUTER JOIN BPAA D ON C.RAPYN=D.BPPYN
|
|
UNION
|
|
SELECT A.RPREN, A.RPITM, A.RPBDT, A.RPENO, A.RPSDT, A.RPEDT, A.RPSLY, A.RPAMT, A.RPFMY, A.RPFM1, A.RPFM2,
|
|
A.RPFM3, A.RPSLA, A.RPDIS, A.RPDIH, A.RPOLD, A.RPNAT, A.RPPTP, A.RPLIS, A.RPHIS, A.RPDOC,
|
|
B.BPNME, B.BPSDY, B.BPEDY, C.RAPYN, D.BPPYM RAPYNX, A.TRDAT, B.BPIDN
|
|
FROM RPIB A
|
|
LEFT OUTER JOIN BPSNView B ON A.RPENO=B.BPENO
|
|
LEFT OUTER JOIN RASN C ON A.RPENO=C.RANUM AND C.RAEDT IS NULL
|
|
LEFT OUTER JOIN BPAA D ON C.RAPYN=D.BPPYN
|
|
) TMP
|
|
WHERE 1=1 ");
|
|
|
|
string reportFilter = "";
|
|
|
|
// 在職狀況
|
|
//if (RadioButton1.Checked)
|
|
if (cbbBPEDY.Checked)
|
|
{
|
|
switch (ddlBPEDY.SelectedValue)
|
|
{
|
|
case "0":
|
|
//rp.Add("報表條件", "全部員工");
|
|
reportFilter = "在職狀況:全部";
|
|
break;
|
|
case "1":
|
|
sql.Append(" AND (BPEDY IS NULL OR BPEDY >= @TODAY)");
|
|
//rp.Add("報表條件", "在職員工");
|
|
reportFilter = "在職狀況:在職";
|
|
break;
|
|
case "2":
|
|
sql.Append(" AND (BPEDY < @TODAY)");
|
|
//rp.Add("報表條件", "離職員工");
|
|
reportFilter = "在職狀況:離職";
|
|
break;
|
|
}
|
|
cmd.Parameters.Add(Query.NewParameter("TODAY", String.Format(WGuard1.InvariantCulture, "{0:yyyy-MM-dd}", DateTime.UtcNow.AddHours(8).Date)));
|
|
}
|
|
// 專案名稱
|
|
//else if (RadioButton2.Checked)
|
|
if (cbbBPPNM.Checked)
|
|
{
|
|
if (ddlBPPNM.SelectedValue != "")
|
|
{
|
|
if (ddlBPPNM.SelectedValue != "000000001")
|
|
{
|
|
sql.Append(" AND RAPYN=@RAPYN");
|
|
cmd.Parameters.Add(Query.NewParameter("RAPYN", ddlBPPNM.SelectedValue));
|
|
//rp.Add("報表條件", ddlBPPNM.SelectedItem.Text);
|
|
reportFilter += (reportFilter.Length > 0 ? "/" : "") + "專案名稱:" + ddlBPPNM.SelectedItem.Text;
|
|
}
|
|
else
|
|
{
|
|
sql.Append(" AND RAPYN IS NULL");
|
|
//rp.Add("報表條件", ddlBPPNM.SelectedItem.Text);
|
|
reportFilter += (reportFilter.Length > 0 ? "/" : "") + "專案名稱:" + ddlBPPNM.SelectedItem.Text;
|
|
}
|
|
}
|
|
else
|
|
//rp.Add("報表條件", "全部專案");
|
|
reportFilter += (reportFilter.Length > 0 ? "/" : "") + "專案名稱:全部專案";
|
|
}
|
|
|
|
rp.Add("報表條件", reportFilter);
|
|
|
|
switch (rblORDER.SelectedIndex)
|
|
{
|
|
case 0:
|
|
sql.Append(" ORDER BY RPENO, RPREN, RPITM");
|
|
rp.Add("排序方式", "員工編號順序");
|
|
reportName += "_01";
|
|
break;
|
|
case 1:
|
|
sql.Append(" ORDER BY RAPYN, RPENO, RPREN, RPITM");
|
|
rp.Add("排序方式", "專案順序");
|
|
reportName += "_02";
|
|
break;
|
|
}
|
|
|
|
cmd.CommandText = sql.ToString();
|
|
DbDataAdapter da = Query.NewDataAdapter(cmd);
|
|
DbConnection conn = Query.NewConnection();
|
|
cmd.Connection = conn;
|
|
Result = new DataTable();
|
|
da.FillSchema(Result, SchemaType.Mapped);
|
|
da.Fill(Result);
|
|
|
|
return Result.Rows.Count > 0;
|
|
}
|
|
|
|
private bool GetDataBPSN_01(out DataTable Result)
|
|
{
|
|
StringBuilder sql = new StringBuilder();
|
|
rp.Clear();
|
|
rp.Add("公司名稱", GetString("COMPANY.NAME"));
|
|
rp.Add("報表名稱", reportTitle);
|
|
|
|
DbCommand cmd = Query.NewCommand();
|
|
|
|
// SQL command 第 6 行的換行是故意的,這樣資料中才會有換行符號
|
|
sql.Append(
|
|
string.Format(@"SELECT A.*, B.RAPYN, C.BPPYM RAPYNX, B.RABRH, D.BSRMK RABRHX, B.RAJNO, E.BPJME RAJNOX, B.RACNO, F.BPCME RACNOX,
|
|
CASE WHEN B.RAPYN IS NOT NULL THEN F.BPSRM ELSE (SELECT TOP 1 BPSRM FROM (SELECT '1899/12/31' BPBDT, BPSRM FROM BPSL WHERE BPENO=A.BPENO UNION SELECT RPBDT AS BPBDT, RPSRM AS BPSRM FROM RPSL WHERE RPENO=A.BPENO) X ORDER BY BPBDT DESC) END AS BPSRM,
|
|
CASE WHEN B.RAPYN IS NOT NULL THEN F.BPP02 ELSE (SELECT TOP 1 BPP02 FROM (SELECT '1899/12/31' BPBDT, BPP02 FROM BPSL WHERE BPENO=A.BPENO UNION SELECT RPBDT AS BPBDT, RPP02 AS BPSRM FROM RPSL WHERE RPENO=A.BPENO) Y ORDER BY BPBDT DESC) END AS BPP02,
|
|
G.BCNAM AS BCBNKX,
|
|
'【' + (SELECT TOP 1 BSSCR FROM BCLS WHERE BSPAR='BCUSZON' AND BSCLS=SUBSTRING(C.BPPYN,4,1)) + '】
|
|
' + C.BPPYM RAPYNX1, ISNULL(I.RPCPY, H.RPCPY) AS RPCPY
|
|
FROM BPSNView A
|
|
LEFT OUTER JOIN RASN B ON A.BPENO=B.RANUM AND B.RAEDT IS NULL AND B.RASDT <= '{0}'
|
|
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 BRML G ON A.BPBNK=G.BCNUM
|
|
LEFT OUTER JOIN RPIR H ON A.BPENO=H.RPENO AND H.RPREN=(SELECT MAX(RPREN) FROM RPIR WHERE RPENO=A.BPENO)
|
|
LEFT OUTER JOIN RPIB I ON H.RPREN=I.RPREN AND I.RPITM=(SELECT MAX(RPITM) FROM RPIB WHERE RPREN=I.RPREN)
|
|
WHERE 1=1 ", DateTime.UtcNow.AddHours(8).ToString("yyyy-MM-dd", WGuard1.InvariantCulture) ));
|
|
|
|
string reportFilter = "";
|
|
|
|
// 員工學歷統計表 與 員工年齡統計表要抓在職員工
|
|
if (reportName == "BPSN_03" || reportName == "BPSN_04")
|
|
{
|
|
sql.Append(" AND A.BPEDY IS NULL");
|
|
}
|
|
|
|
// 員工編號
|
|
if (cbbBPENO.Checked)
|
|
{
|
|
if (txtBPENO1.Text.Length > 0 && txtBPENO2.Text.Length > 0)
|
|
{
|
|
sql.Append(" AND A.BPENO BETWEEN @BPENO1 AND @BPENO2 ");
|
|
Query.AddParam(cmd, "BPENO1", txtBPENO1.Text);
|
|
Query.AddParam(cmd, "BPENO2", txtBPENO2.Text);
|
|
reportFilter += (reportFilter.Length > 0 ? "/" : "") + String.Format("員工編號:{0}至{1}", txtBPENO1.Text, txtBPENO2.Text);
|
|
}
|
|
if (txtBPENO1.Text.Length > 0 && txtBPENO2.Text.Length == 0)
|
|
{
|
|
sql.Append(" AND A.BPENO >= @BPENO1 ");
|
|
Query.AddParam(cmd, "BPENO1", txtBPENO1.Text);
|
|
reportFilter += (reportFilter.Length > 0 ? "/" : "") + String.Format("員工編號:{0}之後", txtBPENO1.Text);
|
|
}
|
|
if (txtBPENO1.Text.Length == 0 && txtBPENO2.Text.Length > 0)
|
|
{
|
|
sql.Append(" AND A.BPENO <= @BPENO2 ");
|
|
Query.AddParam(cmd, "BPENO2", txtBPENO2.Text);
|
|
reportFilter += (reportFilter.Length > 0 ? "/" : "") + String.Format("員工編號:{0}之前", txtBPENO2.Text);
|
|
}
|
|
}
|
|
|
|
// 在職狀況
|
|
if (cbbBPEDY.Checked)
|
|
{
|
|
switch (ddlBPEDY.SelectedValue)
|
|
{
|
|
case "0":
|
|
//rp.Add("報表條件", "全部員工");
|
|
reportFilter += (reportFilter.Length > 0 ? "/" : "") + "在職狀況:全部";
|
|
break;
|
|
case "1":
|
|
sql.Append(" AND (A.BPEDY IS NULL OR A.BPEDY >= @TODAY)");
|
|
//rp.Add("報表條件", "在職員工");
|
|
reportFilter += (reportFilter.Length > 0 ? "/" : "") + "在職狀況:在職";
|
|
break;
|
|
case "2":
|
|
sql.Append(" AND (A.BPEDY < @TODAY)");
|
|
//rp.Add("報表條件", "離職員工");
|
|
reportFilter += (reportFilter.Length > 0 ? "/" : "") + "在職狀況:離職";
|
|
break;
|
|
}
|
|
cmd.Parameters.Add(Query.NewParameter("TODAY", String.Format(WGuard1.InvariantCulture, "{0:yyyy-MM-dd}", DateTime.UtcNow.AddHours(8).Date)));
|
|
}
|
|
|
|
// 專案名稱
|
|
if (cbbBPPNM.Checked)
|
|
{
|
|
if (ddlBPPNM.SelectedValue != "")
|
|
{
|
|
if (ddlBPPNM.SelectedValue != "000000001")
|
|
{
|
|
sql.Append(" AND B.RAPYN=@RAPYN");
|
|
Query.AddParam(cmd, "RAPYN", ddlBPPNM.SelectedValue);
|
|
reportFilter += (reportFilter.Length > 0 ? "/" : "") + "專案名稱:" + ddlBPPNM.SelectedItem.Text;
|
|
}
|
|
else
|
|
{
|
|
sql.Append(" AND B.RAPYN IS NULL");
|
|
reportFilter += (reportFilter.Length > 0 ? "/" : "") + "專案名稱:" + ddlBPPNM.SelectedItem.Text;
|
|
}
|
|
}
|
|
else
|
|
reportFilter += (reportFilter.Length > 0 ? "/" : "") + "專案名稱:全部專案";
|
|
|
|
}
|
|
|
|
// 到職期間
|
|
if (cbbBPSDY_PERIOD.Checked)
|
|
{
|
|
reportFilter += (reportFilter.Length > 0 ? "/" : "") + "到職期間:" + PreparePeriod("A.BPSDY", sql, cmd);
|
|
}
|
|
|
|
// 離職期間
|
|
if (cbbBPEDY_PERIOD.Checked)
|
|
{
|
|
reportFilter += (reportFilter.Length > 0 ? "/" : "") + "離職期間:" + PreparePeriod("A.BPEDY", sql, cmd);
|
|
}
|
|
|
|
// 生日期間
|
|
if (cbbBPBDY_PERIOD.Checked)
|
|
{
|
|
sql.Append(" AND (RIGHT(CONVERT(VARCHAR(8), A.BPBDY, 112), 4)>=@DATE1 AND RIGHT(CONVERT(VARCHAR(8), A.BPBDY, 112), 4)<=@DATE2) ");
|
|
Query.AddParam(cmd, "DATE1", ddlDATE1.SelectedValue);
|
|
Query.AddParam(cmd, "DATE2", ddlDATE2.SelectedValue);
|
|
|
|
if (ddlDATE1.SelectedIndex != ddlDATE2.SelectedIndex)
|
|
{
|
|
reportFilter += (reportFilter.Length > 0 ? "/" : "") + "生日月份:" + String.Format("{0} 至 {1}", ddlDATE1.SelectedItem.Text, ddlDATE2.SelectedItem.Text);
|
|
}
|
|
else
|
|
{
|
|
reportFilter += (reportFilter.Length > 0 ? "/" : "") + "生日月份:" + String.Format("{0}", ddlDATE1.SelectedItem.Text);
|
|
}
|
|
}
|
|
|
|
// 在職日期
|
|
if (cbbEMPDATE.Checked)
|
|
{
|
|
sql.Append(" AND (A.BPSDY <= @EMPDATE AND (A.BPEDY > @EMPDATE OR A.BPEDY IS NULL))");
|
|
Query.AddParam(cmd, "EMPDATE", EmpDate);
|
|
reportFilter += (reportFilter.Length > 0 ? "/" : "") + "在職日期:" + string.Format("{0:yyyy}年{0:MM}月{0:dd}日", EmpDate);
|
|
}
|
|
|
|
rp.Add("報表條件", reportFilter);
|
|
|
|
sql.Append(String.Format(" ORDER BY {0}", rblORDER.SelectedValue));
|
|
|
|
switch (rblORDER.SelectedIndex)
|
|
{
|
|
case 0:
|
|
rp.Add("排序方式", "員工編號順序");
|
|
break;
|
|
case 1:
|
|
rp.Add("排序方式", "專案順序");
|
|
break;
|
|
}
|
|
|
|
cmd.CommandText = sql.ToString();
|
|
Result = Query.Select(cmd);
|
|
return Result.Rows.Count > 0;
|
|
}
|
|
|
|
private string PreparePeriod(string fieldName, StringBuilder sql, DbCommand cmd)
|
|
{
|
|
if (Date1.Ticks > 0 && Date2.Ticks > 0)
|
|
{
|
|
sql.Append(" AND (" + fieldName + " > @DATE1 AND " + fieldName + " < @DATE2) ");
|
|
cmd.Parameters.Add(Query.NewParameter("DATE1", Date1.AddDays(-1)));
|
|
cmd.Parameters.Add(Query.NewParameter("DATE2", Date2.AddDays(1)));
|
|
return String.Format("{0:yyyy}年{0:MM}月{0:dd}日 至 {1:yyyy}年{1:MM}月{1:dd}日 ", Date1, Date2);
|
|
}
|
|
else if (Date1.Ticks > 0 && Date2.Ticks == 0)
|
|
{
|
|
sql.Append(" AND (" + fieldName + " > @DATE1) ");
|
|
cmd.Parameters.Add(Query.NewParameter("DATE1", Date1.AddDays(-1)));
|
|
return String.Format("{0:yyyy}年{0:MM}月{0:dd}日後 ", Date1);
|
|
}
|
|
else if (Date1.Ticks == 0 && Date2.Ticks > 0)
|
|
{
|
|
sql.Append(" AND (" + fieldName + " < @DATE2) ");
|
|
cmd.Parameters.Add(Query.NewParameter("DATE2", Date2.AddDays(1)));
|
|
return String.Format("{0:yyyy}年{0:MM}月{0:dd}日前 ", Date2);
|
|
}
|
|
else
|
|
return "所有日期";
|
|
}
|
|
}
|