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.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections.Generic;
using System.Globalization;
using DataLibrary;
namespace Saving
{
public partial class Report : System.Web.UI.MasterPage
{
public String HM9ColorFilter { set; get; }
private String titlePage;
public String TitlePage
{
get { return titlePage; }
}
private String jsIncl;
public String JsIncl
{
get { return jsIncl; }
}
protected WebStateFactory state;
private String application;
private String username;
protected String siteLogo;
protected String siteTName;
protected String siteEName;
protected String siteLinkName;
protected String siteArgument;
private String currentPage = null;
private String app;
private String gid;
protected String backUrl = "";
protected String PostRunReportOption;
private WcfCalling wcf;
private XmlConfigService xmlconfig;
private bool IsWebSheet = true;
private PageWeb pageWebReport;
protected string urlSaving = "";
protected string urlSavingCurrent = "";
protected string urlSavingExtend = "";
protected string winParameter = "";
public String updateFunctionListAug
{
get
{
return "?c=1&d=" + HttpUtility.UrlEncode(WebUtil.Encrypt(state.SsConnectionString, state.SsCoopId)) + "&coopid=" + state.SsCoopId + "&appid=" + state.SsApplication + "&gid=" + Request["gid"] + "&rid=" + Request["rid"] + "&uid=" + state.SsUsername + "&pid=";
}
}
public String updateDBListAug
{
get
{
return "?d=" + HttpUtility.UrlEncode(WebUtil.Encrypt(state.SsConnectionString, state.SsCoopId)) + "&coopid=" + state.SsCoopId + "&appid=" + state.SsApplication + "&gid=" + Request["gid"] + "&rid=" + Request["rid"] + "&uid=" + state.SsUsername + "&pid=";
}
}
protected void Page_Load(object sender, EventArgs e)
{
string restartIreport = Request["r"];
try
{
if (restartIreport != null && restartIreport == "1")
{
WebUtil.StartIreportBuilder(true);
}
else
{
WebUtil.StartIreportBuilder(false);
}
}
catch { }
PnRetrieveReport.Visible = false;
// ประกาศ xmlconfig
xmlconfig = new XmlConfigService(WebUtil.GetGcoopPath());
// ประกาศตัวแปร PageWebReport ถ้าเป็นค่าว่างให้หยุดการทำงาน
try
{
pageWebReport = (PageWeb)ContentPlace.Page;
pageWebReport.xmlconfig = xmlconfig;
if (pageWebReport == null) return;
}
catch
{
pageWebReport = null;
return;
}
// ประกาศใช้ WebState หากมีข้อผิดผลาดให้แจ้ง error และหยุดการทำงาน
try
{
state = new WebStateFactory(pageWebReport, PageWebType.Report);
}
catch (Exception ex)
{
LtServerMessageFrame.Text = WebUtil.ErrorMessage(ex);
ContentPlace.Page.Visible = false;
return;
}
// ประกาศ wcf service
wcf = new WcfCalling(xmlconfig);
titlePage ="รายงาน "+ state.SsApplicationName;
//--- Page Arguments
try
{
app = Request["app"].ToString();
}
catch
{
app = "";
}
if (app == null || app == "")
{
app = state.SsApplication;
}
try
{
gid = Request["gid"].ToString();
}
catch
{
gid = "";
}
//--- ตั้งค่า Javascript
try
{
HApplication.Value = app;
HUrl.Value = state.SsUrl;
HCurrentPage.Value = state.CurrentPage;
}
catch { }
String savingPath = state.SsUrl;
jsIncl = "\n";
jsIncl += "\n";
jsIncl += "\n";
jsIncl += "\n";
jsIncl += "\n";
// set ตัวแปร url path Saving ของโปรแกรม
try
{
urlSaving = WebUtil.GetSavingUrlCore();
urlSavingCurrent = WebUtil.GetSavingUrlCurrent();
urlSavingExtend = WebUtil.GetSavingUrl();
}
catch
{
urlSaving = "";
urlSavingCurrent = "";
urlSavingExtend = "";
}
// หา winParameter
String uri = Request.Url.AbsoluteUri;
int indexOfUriApplications = uri.ToLower().IndexOf("/applications/");
if (indexOfUriApplications >= 0)
{
String tmp = uri.Substring(uri.IndexOf("/Applications/") + 14);
tmp = tmp.Substring(0, tmp.IndexOf("/"));
winParameter = tmp;
}
if (String.IsNullOrEmpty(winParameter))
{
winParameter = state.SsApplication;
}
if (!IsPostBack && state.SsUsername != "")
{
MenuReport menu = new MenuReport();
List list = menu.GetMenuReport(pageWebReport.oracleTA, state.SsApplication, state.SsUsername,state.SsCoopId);
RepeaterMenuReport.DataSource = list;
RepeaterMenuReport.DataBind();
}
//--- Create Report Group Menus
if (state.SsUsername != "")
{
setCurrentMenu(app, gid);
setPageLabel();
}
// ตั้งค่า sitename sitelogo //
//ImgSiteLogo.ImageUrl = state.SiteLogo;
//ImgSiteLogo.ImageUrl = state.CoopLogo;//aek
siteTName = state.SsCoopName;
siteEName = state.SsCoopNameEng;
if (string.IsNullOrEmpty(siteEName))
{
siteEName = siteTName;
}
siteLinkName = "";
//SETWEBSHEET w_sheet..........
IsWebSheet = SetWebSheetBegin();
if (!IsWebSheet)
{
SetWebReportBegin();
}
try
{
// logo
string logo = state.SsCoopLogo;
if (string.IsNullOrEmpty(logo))
{
logo = "Image/band_black.jpg";
}
//ถ้าเป็นหน้าปกติให้เปลี่ยน Logo
ImgSiteLogo.ImageUrl = savingPath + "" + logo + "?ddmmyyyy=" + DateTime.Today.ToString("ddMMyyyy");
}
catch { }
}
protected void Page_LoadComplete()
{
if (pageWebReport == null) return;
try
{
string savingUrl = state.SsUrl;
string strq = "?qdt=" + DateTime.Today.ToString("yyyyMMdd");
string jsCss = @"
";
jsCss = jsCss.Replace("'", "\"");
jsCss = string.Format(jsCss, savingUrl, strq);
LtJsCss.Text = jsCss;
SetWebSheetEnd();
if (!IsWebSheet)
{
SetWebReportEnd();
}
}
catch { }
try
{
backUrl = String.Format(WebUtil.GetSavingUrl() + "ReportDefault.aspx?app={0}&setApp={0}&gid={1}", state.SsApplication, Request["gid"]);
}
catch { }
try
{
wcf.Close();
}
catch { }
try
{
pageWebReport.PrepareResponse(true);
}
catch { }
try
{
pageWebReport.oracleTA.Close();
}
catch { }
HM9ColorFilter = xmlconfig.HM9ColorFilter;
}
private void setPageLabel()
{
username = state.SsUsername;
application = state.SsApplication;
if (String.IsNullOrEmpty(state.CurrentPageName))
{
ltr_headmainpage.Text = state.SsApplicationName;
}
else
{
ltr_headmainpage.Text = state.SsApplicationName + " - " + state.CurrentPageName + "";
}
LbAppName.Text = "รายงาน " + state.SsApplicationName;
LbWorkDateLoginBy.Text = "วันทำการ : " + state.SsWorkDate.ToString("dd/MM/yyyy", new CultureInfo("th-TH")) + " [ " + username + " ]";
}
private void setCurrentMenu(String app, String curr)
{
List menu = new MenuReport().GetMenuReport(pageWebReport.oracleTA, app, state.SsUsername, state.SsCoopId);
for (int i = 0; i < menu.Count; i++)
{
if (menu[i].GroupID.Equals(curr))
{
currentPage = menu[i].GroupName;
ltr_headmainpage.Text += currentPage;
}
}
}
private bool SetWebSheetBegin()
{
//if (DdDatabaseTmp.Text != DdDatabase.SelectedValue.Trim()) {
try
{
string sql = "select printer_name from cmprinter where printer_name not in ('PDF','XLS') order by printer_name asc";
DataTable dt = WebUtil.Query(sql);
DpPrinter.DataTextField = "printer_name";
DpPrinter.DataValueField = "printer_name";
DpPrinter.DataSource = dt;
DpPrinter.DataBind();
DpPrinter.SelectedValue = this.HdReportPrinter.Value;
}
catch { }
WebSheet wSheet = null;
PageWebSheet pwSheet = null;
siteArgument = "";
bool isWebSheet = false;
try
{
wSheet = (WebSheet)ContentPlace.Page;
isWebSheet = true;
pwSheet = (PageWebSheet)ContentPlace.Page;
pwSheet.wcf = this.wcf;
if (pwSheet.WebSheetType != "Saving.PageWebSheet") return false;
pwSheet.state = this.state;
try
{
Literal lt = ((Literal)ContentPlace.FindControl("LtServerMessage"));
if (lt == null) throw new Exception();
pwSheet.LtServerMessage = lt;
pwSheet.LtServerMessage.Text = "";
}
catch
{
pwSheet.LtServerMessage = LtServerMessageFrame;
pwSheet.LtServerMessage.Text = "";
}
//---------------------------------------------------------------------------
try
{
pwSheet.GenerateJsPostBack();
wSheet.InitJsPostBack();
}
catch { }
try
{
wSheet.WebSheetLoadBegin();
}
catch { }
String eventArg = "";
try { eventArg = Request["__EVENTARGUMENT"]; }
catch { }
if (eventArg == "SaveWebSheet")
{
//เตรียมเช็คสิทธิ์เซฟบรรทัดนี้อีกรอบ --------------------------------------------------------
if (!state.IsWritable)
{
pwSheet.LtServerMessage.Text = WebUtil.PermissionDeny(PermissType.WriteDeny);
return isWebSheet;
}
try
{
wSheet.SaveWebSheet();
}
catch { }
}
else
{
//เช็ค Event JsPostBack
try { if (IsPostBack) wSheet.CheckJsPostBack(eventArg); }
catch { }
}
}
catch { }
return isWebSheet;
}
private void SetWebSheetEnd()
{
if (!IsWebSheet) return;
WebSheet wSheet = null;
PageWebSheet pwSheet = null;
try
{
wSheet = (WebSheet)ContentPlace.Page;
pwSheet = (PageWebSheet)ContentPlace.Page;
if (pwSheet.WebSheetType != "Saving.PageWebSheet") return;
try
{
wSheet.WebSheetLoadEnd();
}
catch { }
}
catch { }
try
{
for (int i = 0; i < pwSheet.binder.Count; i++)
{
pwSheet.binder[i].HtmlJsControlBuild();
}
}
catch { }
try
{
pwSheet.DisConnectSQLCA();
}
catch { }
try
{
LtDwThDateJavaScript.Text = pwSheet.SetDwThDateJavaScriptEvent();
}
catch { }
try
{
pwSheet.SetOnLoadedScript();
}
catch { }
}
private void SetWebReportBegin()
{
WebReport wSheet = null;
PageWebReport pwSheet = null;
siteArgument = "";
try
{
wSheet = (WebReport)ContentPlace.Page;
pwSheet = (PageWebReport)ContentPlace.Page;
pwSheet.wcf = this.wcf;
pwSheet.state = this.state;
PnRetrieveReport.Visible = true;
iReportBuider.printerName = this.HdReportPrinter.Value;
PostRunReportOption = WebUtil.JsPostBack(pwSheet, "PostRunReportOption");
try
{
Literal lt = ((Literal)ContentPlace.FindControl("LtServerMessage"));
if (lt == null) throw new Exception();
pwSheet.LtServerMessage = lt;
pwSheet.LtServerMessage.Text = "";
}
catch
{
pwSheet.LtServerMessage = LtServerMessageFrame;
pwSheet.LtServerMessage.Text = "";
}
//---------------------------------------------------------------------------
try
{
pwSheet.GenerateJsPostBack();
wSheet.InitJsPostBack();
}
catch { }
try
{
wSheet.WebSheetLoadBegin();
}
catch { }
String eventArg = "";
try { eventArg = Request["__EVENTARGUMENT"]; }
catch { }
if (eventArg == "PostRunReportOption")
{
try
{
pwSheet.LabelName = Request["rid"];
string sql = "select * from webreportdetail where group_id='" + gid + "' and report_id='" + pwSheet.LabelName + "'";
DataTable dt = WebUtil.Query(sql);
pwSheet.ReportId = dt.Rows[0]["report_dwobject"].ToString();
pwSheet.ReportName = dt.Rows[0]["report_name"].ToString();
pwSheet.ReportType = (ReportType)Enum.Parse(typeof(ReportType), HdReportOption.Value);
try
{
wSheet.RunReport();
}
catch { }
}
catch (Exception ex)
{
LtServerMessageFrame.Text = WebUtil.ErrorMessage(ex);
}
}
else
{
try { if (IsPostBack) wSheet.CheckJsPostBack(eventArg); }
catch { }
}
}
catch { }
return;
}
private void SetWebReportEnd()
{
WebReport wSheet = null;
PageWebReport pwSheet = null;
try
{
wSheet = (WebReport)ContentPlace.Page;
pwSheet = (PageWebReport)ContentPlace.Page;
if (pwSheet.WebSheetType != "Saving.PageWebSheet") return;
try
{
wSheet.WebSheetLoadEnd();
}
catch { }
}
catch { }
try
{
for (int i = 0; i < pwSheet.binder.Count; i++)
{
pwSheet.binder[i].HtmlJsControlBuild();
}
}
catch { }
try
{
pwSheet.DisConnectSQLCA();
}
catch { }
try
{
LtDwThDateJavaScript.Text = pwSheet.SetDwThDateJavaScriptEvent();
}
catch { }
try
{
pwSheet.SetOnLoadedScript();
}
catch { }
}
}
}