using System;
using CoreSavingLibrary;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
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.Xml.Linq;
using DataLibrary;
using CoreSavingLibrary.WcfNCommon;
namespace Saving.Criteria
{
public partial class u_cri_criteria_all : PageWebSheet, WebSheet
{
protected String app;
protected String gid;
protected String rid;
protected String pdf;
protected String runProcess;
protected String exportexcel;
protected String previewReport;
protected String popupReport;
public String outputProcess;
private DwThDate tdw_criteria;
private n_commonClient commonService;
string report_name = "";
string dwobjectpreview_name = "";
string report_id = "";
string dwobject_name = "";
int count_dwfil = 0;
int count_dwdatefil = 0;
int count_dwretrievefil = 0;
int usedate_flag = 0;
int useretrieve_flag = 0;
string colume_name = "";
string colume_type = "";
string colume_defualt = "";
string columedateeng_name = "";
string columedatethai_name = "";
string columedate_defualt = "";
Sdt dt = new Sdt();
Sdt dt1 = new Sdt();
Sdt dt2 = new Sdt();
Sdt dt3 = new Sdt();
Sdt dt4 = new Sdt();
Sdt dt5 = new Sdt();
Sdt dt6 = new Sdt();
Sdt dt7 = new Sdt();
Sdt dt8 = new Sdt();
string addarg_string = "";
decimal addarg_decimal = 0;
string addarg_datetime;
#region WebSheet Members
public void InitJsPostBack()
{
tdw_criteria = new DwThDate(dw_criteria, this);
HdOpenIFrame.Value = "False";
runProcess = WebUtil.JsPostBack(this, "runProcess");
exportexcel = WebUtil.JsPostBack(this, "exportexcel");
previewReport = WebUtil.JsPostBack(this, "previewReport");
if (usedate_flag == 1)
{
tdw_criteria = new DwThDate(dw_criteria, this);
for (int k = 0; k < count_dwdatefil; k++)
{
columedateeng_name = dt5.Rows[k]["dwcoldateeng_name"].ToString();
columedatethai_name = dt5.Rows[k]["dwcoldatethai_name"].ToString();
tdw_criteria.Add(columedateeng_name, columedatethai_name);
}
}
}
//protected void Page_Load(object sender, EventArgs e)
public void WebSheetLoadBegin()
{
this.ConnectSQLCA();
dw_preview.SetTransaction(sqlca);
//--- Page Arguments
try
{
app = Request["app"].ToString();
}
catch { }
if (app == null || app == "")
{
app = state.SsApplication;
}
try
{
gid = Request["gid"].ToString();
}
catch { }
try
{
rid = Request["rid"].ToString();
}
catch { }
Sta ta = new Sta(state.SsConnectionString);
string sql = "";
sql = @"SELECT REPORT_NAME,REPORT_ID
FROM WEBREPORTDETAIL
WHERE ( GROUP_ID = '" + gid + @"' ) AND ( REPORT_ID = '" + rid + @"' )";
dt = ta.Query(sql);
dt.Next();
report_name = dt.GetString("REPORT_NAME");
report_id = dt.GetString("REPORT_ID");
string sql1 = @"select dwobject_name,dwobjectpreview_name from crireportid where report_id ='" + report_id + "'";
dt1 = ta.Query(sql1);
dt1.Next();
dwobject_name = dt1.GetString("dwobject_name");
dwobjectpreview_name = dt1.GetString("dwobjectpreview_name");
//หาชื่อ datawindows
string sql2 = "";
sql2 = @"select usedate_flag,useretrieve_flag from cridwobjectall where dwobject_name ='" + dwobject_name + "'";
dt2 = ta.Query(sql2);
dt2.Next();
usedate_flag = dt2.GetInt32("usedate_flag");
useretrieve_flag = dt2.GetInt32("useretrieve_flag");
dw_criteria.DataWindowObject = dwobject_name;
//หาจำนวนฟิลส์ datawindows
string sql3 = @"select count(dwobject_name)as count_dwfil from cricolumedetail where dwobject_name ='" + dwobject_name + "'";
dt3 = ta.Query(sql3);
dt3.Next();
count_dwfil = dt3.GetInt32("count_dwfil");
string sql4 = @"select seq_no ,dwcol_name,dwcol_type,dwcol_default from cricolumedetail where dwobject_name ='" + dwobject_name + "' order by seq_no";
dt4 = ta.Query(sql4);
dt4.Next();
if (usedate_flag == 1)
{
string sql5 = @"select seq_no ,dwcoldateeng_name,dwcoldatethai_name,dwcoldate_default from cricoldate where dwobject_name ='" + dwobject_name + "' order by seq_no";
dt5 = ta.Query(sql5);
dt5.Next();
string sql6 = @"select count(dwobject_name)as count_dwobject_name from cricoldate where dwobject_name ='" + dwobject_name + "'";
dt6 = ta.Query(sql6);
dt6.Next();
count_dwdatefil = dt6.GetInt32("count_dwobject_name");
}
if (useretrieve_flag == 1)
{
string sql7 = @"select seq_no ,dwcolretrieve_name,dwcolretrieve_path from criretrievedddw where dwobject_name ='" + dwobject_name + "' order by seq_no";
dt7 = ta.Query(sql7);
dt7.Next();
string sql8 = @"select count(dwobject_name)as count_dwobject_name from criretrievedddw where dwobject_name ='" + dwobject_name + "'";
dt8 = ta.Query(sql8);
dt8.Next();
count_dwretrievefil = dt8.GetInt32("count_dwobject_name");
for (int l = 0; l < count_dwretrievefil; l++)
{
DwUtil.RetrieveDDDW(dw_criteria, dt7.Rows[l]["dwcolretrieve_name"].ToString(), dt7.Rows[l]["dwcolretrieve_path"].ToString(), null);
}
}
InitJsPostBack();
commonService = wcf.NCommon;
if (IsPostBack)
{
this.RestoreContextDw(dw_criteria);
this.RestoreContextDw(dw_preview);
//dw_criteria.RestoreContext();
}
else
{
//default values.
dw_criteria.InsertRow(0);
if (usedate_flag == 1)
{
for (int k = 0; k < count_dwdatefil; k++)
{
columedateeng_name = dt5.Rows[k]["dwcoldateeng_name"].ToString();
columedate_defualt = dt5.Rows[k]["dwcoldate_default"].ToString();
dw_criteria.SetItemDateTime(1, columedateeng_name, state.SsWorkDate);
}
}
for (int i = 0; i < count_dwfil; i++)
{
colume_name = dt4.Rows[i]["dwcol_name"].ToString();
colume_type = dt4.Rows[i]["dwcol_type"].ToString();
colume_defualt = dt4.Rows[i]["dwcol_default"].ToString();
if (colume_type == "string")
{
dw_criteria.SetItemString(1, colume_name, colume_defualt);
}
if (colume_type == "decimal")
{
dw_criteria.SetItemDecimal(1, colume_name, Convert.ToDecimal(colume_defualt));
}
if (colume_type == "datetime")
{
dw_criteria.SetItemString(1, colume_name, colume_defualt);
}
}
tdw_criteria.Eng2ThaiAllRow();
}
//Report Name.
try
{
ReportName.Text = report_name;
}
catch
{
ReportName.Text = "[" + rid + "]";
}
ta.Close();
//Link back to the report menu.
LinkBack.PostBackUrl = String.Format("~/ReportDefault.aspx?app={0}&gid={1}", app, gid);
}
public void CheckJsPostBack(string eventArg)
{
if (eventArg == "runProcess")
{
RunProcess();
}
else if (eventArg == "popupReport")
{
PopupReport();
}
else if (eventArg == "exportexcel")
{
Exportexcel();
}
else if (eventArg == "previewReport")
{
PreviewReport();
}
}
private void Exportexcel()
{
try
{
string[] argexcel_value =new string[20];
String filename = "report" + dwobjectpreview_name + ".xls";
str_rptexcel astr_rptexcel = new str_rptexcel();
astr_rptexcel.as_path = WebUtil.PhysicalPath + "Saving//filecommon//" + filename;
astr_rptexcel.as_dwobject = dwobjectpreview_name;
// String agm = "astr_rptexcel.as_argument0";
String c_type = "";
for (int i = 0; i < count_dwfil; i++)
{
colume_name = dt4.Rows[i]["dwcol_name"].ToString();
colume_type = dt4.Rows[i]["dwcol_type"].ToString();
// agm = agm + i.ToString();
if (colume_type == "string")
{
c_type = "S";
addarg_string = dw_criteria.GetItemString(1, colume_name);
argexcel_value[i] = c_type + addarg_string;
}
if (colume_type == "decimal")
{
c_type = "I";
addarg_decimal = dw_criteria.GetItemDecimal(1, colume_name);
argexcel_value[i] = c_type + addarg_decimal.ToString();
}
if (colume_type == "datetime")
{
c_type = "D";
addarg_datetime = WebUtil.ConvertDateThaiToEng(dw_criteria, colume_name, null);
argexcel_value[i] = c_type + addarg_datetime;
}
}
if (count_dwfil == 1)
{
astr_rptexcel.as_argument01 = argexcel_value[0];
}
if (count_dwfil == 2)
{
astr_rptexcel.as_argument01 = argexcel_value[0];
astr_rptexcel.as_argument02 = argexcel_value[1];
}
if (count_dwfil == 3)
{
astr_rptexcel.as_argument01 = argexcel_value[0];
astr_rptexcel.as_argument02 = argexcel_value[1];
astr_rptexcel.as_argument03 = argexcel_value[2];
}
if (count_dwfil == 4)
{
astr_rptexcel.as_argument01 = argexcel_value[0];
astr_rptexcel.as_argument02 = argexcel_value[1];
astr_rptexcel.as_argument03 = argexcel_value[2];
astr_rptexcel.as_argument04 = argexcel_value[3];
}
if (count_dwfil == 5)
{
astr_rptexcel.as_argument01 = argexcel_value[0];
astr_rptexcel.as_argument02 = argexcel_value[1];
astr_rptexcel.as_argument03 = argexcel_value[2];
astr_rptexcel.as_argument04 = argexcel_value[3];
astr_rptexcel.as_argument05 = argexcel_value[4];
}
if (count_dwfil == 6)
{
astr_rptexcel.as_argument01 = argexcel_value[0];
astr_rptexcel.as_argument02 = argexcel_value[1];
astr_rptexcel.as_argument03 = argexcel_value[2];
astr_rptexcel.as_argument04 = argexcel_value[3];
astr_rptexcel.as_argument05 = argexcel_value[4];
astr_rptexcel.as_argument06 = argexcel_value[5];
}
if (count_dwfil == 7)
{
astr_rptexcel.as_argument01 = argexcel_value[0];
astr_rptexcel.as_argument02 = argexcel_value[1];
astr_rptexcel.as_argument03 = argexcel_value[2];
astr_rptexcel.as_argument04 = argexcel_value[3];
astr_rptexcel.as_argument05 = argexcel_value[4];
astr_rptexcel.as_argument06 = argexcel_value[5];
astr_rptexcel.as_argument07 = argexcel_value[6];
}
if (count_dwfil == 8)
{
astr_rptexcel.as_argument01 = argexcel_value[0];
astr_rptexcel.as_argument02 = argexcel_value[1];
astr_rptexcel.as_argument03 = argexcel_value[2];
astr_rptexcel.as_argument04 = argexcel_value[3];
astr_rptexcel.as_argument05 = argexcel_value[4];
astr_rptexcel.as_argument06 = argexcel_value[5];
astr_rptexcel.as_argument07 = argexcel_value[6];
astr_rptexcel.as_argument08 = argexcel_value[7];
}
int result = commonService.of_dwexportexcel_rpt(state.SsWsPass,ref astr_rptexcel);
LtServerMessage.Text = WebUtil.CompleteMessage("ออกรายงานในรูปแบบ Excel คุณสามารถดาวน์โหลดไฟล์ได้ที่นี่ " + filename + "");
}
catch (Exception ex)
{
LtServerMessage.Text = WebUtil.ErrorMessage(ex);
return;
}
}
private void PreviewReport()
{
dw_preview.DataWindowObject = dwobjectpreview_name;
dw_preview.SetTransaction(sqlca);
object[] arg_retrieve = new object[10];
for (int j = 0; j < count_dwfil; j++)
{
colume_name = dt4.Rows[j]["dwcol_name"].ToString();
colume_type = dt4.Rows[j]["dwcol_type"].ToString();
colume_defualt = dt4.Rows[j]["dwcol_default"].ToString();
if (colume_type == "string")
{
addarg_string = dw_criteria.GetItemString(1, colume_name);
arg_retrieve[j] = addarg_string;
}
if (colume_type == "decimal")
{
addarg_decimal = dw_criteria.GetItemDecimal(1, colume_name);
arg_retrieve[j] = addarg_decimal;
}
if (colume_type == "datetime")
{
// addarg_datetime = dw_criteria.GetItemString(1, colume_name);
// addarg_datetime = WebUtil.ConvertDateThaiToEng(dw_criteria, colume_name, null);
string tdate = dw_criteria.GetItemString(1, colume_name);
DateTime reqdate;
reqdate = DateTime.ParseExact(tdate, "ddMMyyyy", WebUtil.TH);
arg_retrieve[j] = reqdate;
}
}
if (count_dwfil == 1)
{
dw_preview.Retrieve(arg_retrieve[0]);
}
if (count_dwfil == 2)
{
dw_preview.Retrieve(arg_retrieve[0], arg_retrieve[1]);
}
if (count_dwfil == 3)
{
dw_preview.Retrieve(arg_retrieve[0], arg_retrieve[1], arg_retrieve[2]);
}
if (count_dwfil == 4)
{
dw_preview.Retrieve(arg_retrieve[0], arg_retrieve[1], arg_retrieve[2], arg_retrieve[3]);
}
if (count_dwfil == 5)
{
dw_preview.Retrieve(arg_retrieve[0], arg_retrieve[1], arg_retrieve[2], arg_retrieve[3],arg_retrieve[4]);
}
if (count_dwfil == 6)
{
dw_preview.Retrieve(arg_retrieve[0], arg_retrieve[1], arg_retrieve[2], arg_retrieve[3],arg_retrieve[4], arg_retrieve[5]);
}
if (count_dwfil == 7)
{
dw_preview.Retrieve(arg_retrieve[0], arg_retrieve[1], arg_retrieve[2], arg_retrieve[3],arg_retrieve[4], arg_retrieve[5],arg_retrieve[6]);
}
if (count_dwfil == 8)
{
dw_preview.Retrieve(arg_retrieve[0], arg_retrieve[1], arg_retrieve[2], arg_retrieve[3],arg_retrieve[4], arg_retrieve[5],arg_retrieve[6], arg_retrieve[7]);
}
}
public void SaveWebSheet()
{
}
public void WebSheetLoadEnd()
{
dw_criteria.SaveDataCache();
dw_preview.SaveDataCache();
}
#endregion
#region Report Process
private void RunProcess()
{
//อ่านค่าจากหน้าจอใส่ตัวแปรรอไว้ก่อน. //แปลง Criteria ให้อยู่ในรูปแบบมาตรฐาน.
ReportHelper lnv_helper = new ReportHelper();
for (int j = 0; j < count_dwfil; j++)
{
colume_name = dt4.Rows[j]["dwcol_name"].ToString();
colume_type = dt4.Rows[j]["dwcol_type"].ToString();
colume_defualt = dt4.Rows[j]["dwcol_default"].ToString();
if (colume_type == "string")
{
addarg_string = dw_criteria.GetItemString(1, colume_name);
lnv_helper.AddArgument(addarg_string, ArgumentType.String);
}
if (colume_type == "decimal")
{
addarg_decimal = dw_criteria.GetItemDecimal(1, colume_name);
lnv_helper.AddArgument(addarg_decimal.ToString(), ArgumentType.Number);
}
if (colume_type == "datetime")
{
addarg_datetime = WebUtil.ConvertDateThaiToEng(dw_criteria, colume_name, null);
lnv_helper.AddArgument(addarg_datetime, ArgumentType.DateTime);
}
}
//ชื่อไฟล์ PDF = YYYYMMDDHHMMSS__.PDF
String pdfFileName = DateTime.Now.ToString("yyyyMMddHHmmss", WebUtil.EN);
pdfFileName += "_" + gid + "_" + rid + ".pdf";
pdfFileName = pdfFileName.Trim();
//ส่งให้ ReportService สร้าง PDF ให้ {โดยปกติจะอยู่ใน C:\GCOOP\Saving\PDF\}.
try
{
//CoreSavingLibrary.WcfReport.ReportClient lws_report = wcf.Report;
//String criteriaXML = lnv_helper.PopArgumentsXML();
//this.pdf = lws_report.GetPDFURL(state.SsWsPass) + pdfFileName;
//String li_return = lws_report.RunWithID(state.SsWsPass, app, gid, rid, state.SsUsername, criteriaXML, pdfFileName);
//if (li_return == "true")
//{
// HdOpenIFrame.Value = "True";
//}
String criteriaXML = lnv_helper.PopArgumentsXML();
string printer = dw_criteria.GetItemString(1, "printer");
outputProcess = WebUtil.runProcessingReport(state, app, gid, rid, criteriaXML, pdfFileName, printer);
}
catch (Exception ex)
{
LtServerMessage.Text = WebUtil.ErrorMessage(ex);
return;
}
}
public void PopupReport()
{
//เด้ง Popup ออกรายงานเป็น PDF.
String pop = "Gcoop.OpenPopup('" + pdf + "')";
ClientScript.RegisterClientScriptBlock(this.GetType(), "DsReport", pop, true);
}
#endregion
}
}