<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WeekReport.aspx.cs" Inherits="IWOMTrends.WeekReport" EnableViewState="false" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>報告詳情</title>
<link rel="Stylesheet" type="text/css" href="css/Report.css" />
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load('visualization', '1', { packages: ['corechart']});
</script>
<script type="text/javascript">
function drawChart(){
var bid=document.getElementById("<%=HidBrand.ClientID %>");
if(bid.value!='30007'){
drawColumn('ZChart',['負面','中立','正面'],'一週信息量比較',['#C0504D' ,'#4F81BD' , '#9BBB59'],[<%=WeekXValue %>],[<%=WeekValueArr %>],500);
drawColumn('divPositive',['正面'],'一週正面信息量比較',['#9BBB59'],[<%=WeekXValue %>],[<%=Positive %>],330);
drawColumn('divNegative',['負面'],'一週負面信息量比較',['#C0504D'],[<%=WeekXValue %>],[<%=Negative %>],330);
drawColumn1('divNegService',[<%=NegServiceY %>],'負面媒體類型構成',['#4572A7','#AA4643','#89A54E','#71588F','#4198AF','#DB843D'],[<%=NegServiceX %>],[<%=NegServiceVal %>],550);
drawColumn1('divPostService',[<%=PostServiceY %>],'正面媒體類型構成',['#4572A7','#AA4643','#89A54E','#71588F','#4198AF','#DB843D'],[<%=PostServiceX %>],[<%=PostServiceVal %>],550);
drawColumn('divNegTopic1',['信息量'],'WSE負面信息地理分佈',['#C0504D'],[<%=NegAreaX %>],[<%=NegAreaVal %>],600);
drawPie('divNegTopic2',[<%=NegTopicX %>],[<%=NegTopicVal %>],'負面話題構成',['#4f81bd','#9bbb59','#8064a2','#c0504d','#f2dddc','#c5d9f1','#e4bf19','#ccc0da','#4bacc6']);
drawPie('divIndustryTopic',[<%=IndustryX %>],[<%=IndustryVal %>],'行業信息內容構成',['#9bbb59','#4f81bd','#c0504d','#8064a2','#e4bf19']);
drawPie('divDeal',[<%=DealDataX %>],[<%=DealDataVal %>],'維護信息的內容情況',['#823331','#933b39','#a1423f','#ae4845','#ba4d4a','#c56765','#ce8a89','#d6a3a2','#dfb9b8','#e7cccc']);
}
}
function drawColumn(divId,areaName,titleValue,colorName,Xvalue,Vvalue,KuanD) {
//var areaName = ['負面','中立','正面'];
var xLables = Xvalue;
var areaValue = Vvalue;
var data = new google.visualization.DataTable();
data.addColumn('string', '品牌');
for (var i = 0; i < areaName.length; ++i) {
data.addColumn('number', areaName[i]);
}
data.addRows(xLables.length);
for (var i = 0; i < xLables.length; ++i) {
data.setCell(i, 0, xLables[i]);
}
for (var i = 0; i < areaName.length; ++i) {
var country = areaValue[i];
for (var x = 0; x < xLables.length; ++x) {
data.setCell(x, i + 1, country[x]);
}
}
var ac = new google.visualization.ColumnChart(document.getElementById(divId));
ac.draw(data, {
title: titleValue,
titleTextStyle: { fontSize: 16, fontName: '宋體' },
legend: 'top',
chartArea: { width: '70%', height: '60%' },
fontSize: 12,
colors: colorName,
backgroundColor:'#FFFFFF',
isStacked: true,
width: KuanD,
height: 300
});
}
function drawColumn1(divId,areaName,titleValue,colorName,Xvalue,Vvalue,KuanD) {
//var areaName = ['負面','中立','正面'];
var xLables = Xvalue;
var areaValue = Vvalue;
var data = new google.visualization.DataTable();
data.addColumn('string', '品牌');
for (var i = 0; i < areaName.length; ++i) {
data.addColumn('number', areaName[i]);
}
data.addRows(xLables.length);
for (var i = 0; i < xLables.length; ++i) {
data.setCell(i, 0, xLables[i]);
}
for (var i = 0; i < areaName.length; ++i) {
var country = areaValue[i];
for (var x = 0; x < xLables.length; ++x) {
data.setCell(x, i + 1, country[x]);
}
}
var format = new google.visualization.NumberFormat({ fractionDigits:0, suffix:'%' });
var ac = new google.visualization.ColumnChart(document.getElementById(divId));
ac.draw(data, {
title: titleValue,
titleTextStyle: { fontSize: 16, fontName: '宋體' },
legend: 'left',
fontSize: 12,
colors: colorName,
backgroundColor:'#FFFFFF',
isStacked: true,
vAxis: { maxValue: 100,logScale:false},
width: KuanD,
height: 300
});
}
function drawPie(id,valueName,valueText,titleText,colorText) {
var areaName = valueName;
var areaValue = valueText;
var data = new google.visualization.DataTable();
data.addColumn('string', '態度');
data.addColumn('number', "帖子數");
data.addRows(areaName.length);
for (var i = 0; i < areaName.length; ++i) {
data.setCell(i, 0, areaName[i]);
data.setCell(i, 1, areaValue[i]);
}
var ac = new google.visualization.PieChart(document.getElementById(id));
ac.draw(data, {
title: titleText,
titleTextStyle: { fontSize: 16, fontName: '微軟雅黑' },
fontSize: 10,
legend: 'top',
colors: colorText,
backgroundColor:'#FFFFFF',
fontName:'微軟雅黑',
width: 260,
height: 260
});
}
google.setOnLoadCallback(drawChart);
</script>
</head>
<body style="background-color:White;">
<form id="form1" runat="server">
<div id="divDown" runat="server" style="text-align:right; width:100%; margin-top:20px;" class="style1">
<asp:ImageButton ID="lbn_down" runat="server" οnclick="lbn_down_Click" ImageUrl="~/images/b-zhoubao.jpg"/> </div>
<div style="margin-top:15px; width:100%;" runat="server" id="baogao">
<div style="font-size: 20px; text-align: center; font-weight: bold;color: #6192A1">
<%=rTitle %></div>
<div style="font-size: 14px; font-family:Arial; padding-top: 5px; text-align: center; color: #525556; line-height: 150%;">
<%=rContent %></div>
</div>
<div runat="server" style="font-size: 14px; padding-top: 20px; padding-left:30px; color: #525556; line-height: 150%;" id="Div1">
</div>
<div runat="server" style="font-size: 14px; padding-left:30px; color: #525556; line-height: 150%;" id="div_img">
<div id="ZChart" style="width:652px;"></div>
</div>
<div runat="server" style="font-size: 14px; padding-left:30px; color: #525556; " id="tongji"></div>
<div runat="server" style="font-size: 14px; padding-left:10px; padding-top:20px; color: #525556; line-height: 150%;" id="div3">
<div id="divPositive" style="width:332px; float:left;"></div>
<div id="divNegative" style="width:332px; float:left;"></div>
</div>
<div runat="server" style="font-size: 14px; padding-left:10px; color: #525556; line-height: 150%;" id="div4">
<div id="divNegService" style="width:652px;"></div>
</div>
<div runat="server" style="font-size: 14px; padding-top: 20px; padding-left:30px; color: #525556; line-height: 150%;" id="fumiantongji"></div>
<div runat="server" style="font-size: 14px; padding-left:10px; color: #525556; line-height: 150%;" id="div6">
<div id="divPostService" style="width:652px;"></div>
</div>
<div runat="server" style="font-size: 14px; padding-top: 20px; padding-left:30px; color: #525556; line-height: 150%;" id="prodAttitdeHTML"></div>
<div runat="server" style="font-size: 14px; padding-left:10px; padding-top:20px; color: #525556; line-height: 150%;" id="div5">
<div id="divNegTopic1" style="width:652px;"></div>
</div>
<div runat="server" style="font-size: 14px; padding-top: 20px; padding-left:30px; color: #525556; line-height: 150%;" id="tongji2"></div>
<div runat="server" style="font-size: 14px; padding-left:10px; padding-top:20px; color: #525556; line-height: 150%;" id="div7">
<div id="divNegTopic2" style="width:332px; float:left;"></div>
<div id="divIndustryTopic" style="width:332px; float:left;"></div>
</div>
<div runat="server" style="font-size: 14px; padding-top: 20px; padding-left:30px; color: #525556; line-height: 150%;" id="fumiantongji2"></div>
<div runat="server" style="font-size: 14px; padding-top: 20px; padding-left:30px; color: #525556; line-height: 150%;" id="fumiantongji3"></div>
<div runat="server" style="font-size: 14px; padding-top: 20px; padding-left:30px; color: #525556; line-height: 150%;" id="IndustryHtml"></div>
<div runat="server" style="font-size: 14px; padding-left:10px; padding-top:20px; color: #525556; line-height: 150%;" id="div2">
<div id="divDeal" style="width:652px;"></div>
</div>
<div runat="server" style="font-size: 14px; padding-top: 20px; padding-left:30px; color: #525556; line-height: 150%;" id="DealDataHTML"></div>
<div runat="server" style="font-size: 14px; padding-top: 20px; padding-left:30px; color: #525556; line-height: 150%;" id="DealDataHTML1"></div>
<div runat="server" style="font-size: 14px; padding-top: 20px; padding-left:30px; color: #525556; line-height: 150%;" id="MediaHtml"></div>
<input type="hidden" id="downValue" runat="server" />
<input type="hidden" id="HidBrand" runat="server" />
</form>
</body>
</html>
using System;
using System.Data;
using System.Web.UI;
using System.Text;
using IWOMTrackerDBLayer.IWOMTrackerBLL;
using IWOMTrends.Common;
using IWOMTrackerDBLayer.Common;
using IWOMTrackerDBLayer.IWOMTrackerModel;
namespace IWOMTrends
{
public partial class WeekReport : System.Web.UI.Page
{
public LoginUserModel loginUser;
public string rContent;
public string rTitle;
public int brandID = 0;
//圖表參數
public string WeekXValue = "";
public string WeekValueArr = "";
public string Positive = "";
public string Negative = "";
public string NegServiceX = "";
public string NegServiceVal = "";
public string NegServiceY = "";
public string PostServiceX = "";
public string PostServiceVal = "";
public string PostServiceY = "";
public string NegAreaX = "";
public string NegAreaVal = "";
public string NegTopicX = "";
public string NegTopicVal = "";
public string IndustryX = "";
public string IndustryVal = "";
public string DealDataX = "";
public string DealDataVal = "";
public string cookievalue = System.Configuration.ConfigurationManager.AppSettings["BrandCookie"].ToString();
protected void Page_Load(object sender, EventArgs e)
{
if (Request["Refere"] != null && Request["Refere"] != "")
{ brandID = 20002; }
else
{
loginUser = LoginUserManager.GetLoginUser(true);
//判斷權限
if (!CommonFunction.CheckUserQX(loginUser, Request.Cookies[cookievalue]))
Response.Redirect("~/Login.aspx", true);
brandID = int.Parse(Request.Cookies[cookievalue].Value);
}
this.HidBrand.Value = brandID.ToString();
if (!IsPostBack)
{
GetWeekReport();
}
}
private void GetWeekReport()
{
if (Request.QueryString["zhou"] != null && Request.QueryString["zhou"].ToString() == "week")
{
IWT_Brand brandObj = BrandBLL.GetModel(brandID);
rTitle = brandObj.Brand_Name + "網絡口碑監測週報";
this.divDown.Visible = true;
tongji.Visible = true;
string number = Request["value"].ToString().Substring(0, 1);
string StrDate = Request["value"].ToString().Substring(5, Request["value"].ToString().Substring(5).LastIndexOf("-"));
DateTime dt1 = DateTime.Now;
DateTime dt2 = DateTime.Now;
int index = 0;
DateTime[] Arr_dt = new DateTime[5];
DateTime startdt = Convert.ToDateTime(StrDate + "-1");
DateTime enddt = startdt.AddMonths(1).AddDays(-1);
for (DateTime i = startdt; i <= enddt; i = i.AddDays(1))
{
if (Convert.ToInt32(i.DayOfWeek) == 1)
{
Arr_dt[index] = i;
index++;
}
}
if (number == "1")
{
dt2 = Arr_dt[0];
dt1 = dt2.AddDays(6);
}
else if (number == "2")
{
dt2 = Arr_dt[1];
dt1 = dt2.AddDays(6);
}
else if (number == "3")
{
dt2 = Arr_dt[2];
dt1 = dt2.AddDays(6);
}
else if (number == "4")
{
dt2 = Arr_dt[3];
dt1 = dt2.AddDays(6);
}
else if (number == "5")
{
dt2 = Arr_dt[4];
dt1 = dt2.AddDays(6);
}
if(dt1 > DateTime.Now)
{
dt1 = DateTime.Now;
}
rContent = dt2.ToShortDateString() + "至" + dt1.ToShortDateString();
if (brandID == 30001)
{
FirstAllTable(dt2, dt1);
SecondNegServiceData(dt2, dt1);
GetNegAreaData(dt2, dt1);
FourNegTopicData(dt2, dt1);
FourNegTopicData1(dt2, dt1);
FiveIndustryTopic(dt2, dt1);
SixDealData(dt2, dt1);
SixDealData1(dt2, dt1);
SevenMediaData(dt2, dt1);
}
}
}
//第一個表格
private void FirstAllTable(DateTime dt2, DateTime dt1)
{
DataTable dtt = DailyWeeklyBLL.GetAllDataByWeely(brandID, dt2, dt1, ref WeekXValue, ref WeekValueArr, ref Positive, ref Negative, false);
tongji.InnerHtml = CommonFunction.ExportHTML(dtt, "90%", "tblCSS");
}
//第二個表格
private void SecondNegServiceData(DateTime dt2, DateTime dt1)
{
DataTable dtable = DailyWeeklyBLL.GetServiceByWeely(brandID, dt2, dt1, true, ref NegServiceX, ref NegServiceY, ref NegServiceVal, false);
StringBuilder strB = new StringBuilder();
strB.Append(CommonFunction.ExportHTML(dtable, "80%", "tblCSS"));
this.fumiantongji.InnerHtml = strB.ToString();
dtable = DailyWeeklyBLL.GetServiceByWeely(brandID, dt2, dt1, false, ref PostServiceX, ref PostServiceY, ref PostServiceVal, false);
strB = new StringBuilder();
strB.Append(CommonFunction.ExportHTML(dtable, "80%", "tblCSS"));
this.prodAttitdeHTML.InnerHtml = strB.ToString();
}
//第三個表格
private void GetNegAreaData(DateTime dt2, DateTime dt1)
{
DataTable dtable = DailyWeeklyBLL.GetNegAreaData(brandID, dt2, dt1, ref NegAreaX, ref NegAreaVal, false);
StringBuilder strB = new StringBuilder();
strB.Append(CommonFunction.ExportHTML(dtable, "80%", "tblCSS"));
this.tongji2.InnerHtml = strB.ToString();
}
//第四個表格
private void FourNegTopicData(DateTime dt2, DateTime dt1)
{
DataTable dtable = DailyWeeklyBLL.GetNegAreaData1(brandID, dt2, dt1, ref NegTopicX, ref NegTopicVal, false);
StringBuilder strB = new StringBuilder();
strB.Append(CommonFunction.ExportHTML(dtable, "99%", "tblCSS"));
this.fumiantongji2.InnerHtml = strB.ToString();
}
private void FourNegTopicData1(DateTime dt2, DateTime dt1)
{
DataTable dtable = DailyWeeklyBLL.GetNegAreaData11(brandID, dt2, dt1, ref NegTopicX, ref NegTopicVal, false);
StringBuilder strB = new StringBuilder();
strB.Append(CommonFunction.ExportHTML(dtable, "99%", "tblCSS"));
this.fumiantongji3.InnerHtml = strB.ToString();
}
//第五個表格
private void FiveIndustryTopic(DateTime dt2, DateTime dt1)
{
DataTable dtable = DailyWeeklyBLL.GetIndustryData(30006, dt2, dt1, ref IndustryX, ref IndustryVal, false);
StringBuilder strB = new StringBuilder();
strB.Append(CommonFunction.ExportHTML(dtable, "80%", "tblCSS"));
this.IndustryHtml.InnerHtml = strB.ToString();
}
//第六個表格
private void SixDealData(DateTime dt2, DateTime dt1)
{
DataTable dtable = DailyWeeklyBLL.GetDealData(brandID, dt2, dt1, ref DealDataX, ref DealDataVal, false);
StringBuilder strB = new StringBuilder();
strB.Append(CommonFunction.ExportHTML(dtable, "99%", "tblCSS"));
this.DealDataHTML.InnerHtml = strB.ToString();
}
private void SixDealData1(DateTime dt2, DateTime dt1)
{
DataTable dtable = DailyWeeklyBLL.GetDealData1(brandID, dt2, dt1, ref DealDataX, ref DealDataVal, false);
StringBuilder strB = new StringBuilder();
strB.Append(CommonFunction.ExportHTML(dtable, "99%", "tblCSS"));
this.DealDataHTML1.InnerHtml = strB.ToString();
}
//第七個表格
private void SevenMediaData(DateTime dt2, DateTime dt1)
{
DataTable dtable = DailyWeeklyBLL.GetMediaData(brandID, dt2, dt1, false);
StringBuilder strB = new StringBuilder();
strB.Append(CommonFunction.ExportHTML(dtable, "60%", "tblCSS"));
this.MediaHtml.InnerHtml = strB.ToString();
}
//導出
protected void lbn_down_Click(object sender, ImageClickEventArgs e)
{
if (Request.QueryString["zhou"] != null && Request.QueryString["zhou"].ToString() == "week")
{
IWT_Brand brandObj = BrandBLL.GetModel(brandID);
#region 計算日期
this.divDown.Visible = true;
tongji.Visible = true;
string number = Request["value"].ToString().Substring(0, 1);
string StrDate = Request["value"].ToString().Substring(5, Request["value"].ToString().Substring(5).LastIndexOf("-"));
DateTime dt1 = DateTime.Now;
DateTime dt2 = DateTime.Now;
int index = 0;
DateTime[] Arr_dt = new DateTime[5];
DateTime startdt = Convert.ToDateTime(StrDate + "-1");
DateTime enddt = startdt.AddMonths(1).AddDays(-1);
for (DateTime i = startdt; i <= enddt; i = i.AddDays(1))
{
if (Convert.ToInt32(i.DayOfWeek) == 1)
{
Arr_dt[index] = i;
index++;
}
}
if (number == "1")
{
dt2 = Arr_dt[0];
dt1 = dt2.AddDays(6);
}
else if (number == "2")
{
dt2 = Arr_dt[1];
dt1 = dt2.AddDays(6);
}
else if (number == "3")
{
dt2 = Arr_dt[2];
dt1 = dt2.AddDays(6);
}
else if (number == "4")
{
dt2 = Arr_dt[3];
dt1 = dt2.AddDays(6);
}
else if (number == "5")
{
dt2 = Arr_dt[4];
dt1 = dt2.AddDays(6);
}
#endregion
DataTable dt = new DataTable();
dt.Columns.Add(" ");
dt.Columns.Add(" ");
dt.Columns.Add(" ");
dt.Columns.Add(" ");
dt.Columns.Add(" ");
dt.Columns.Add(" ");
dt.Columns.Add(" ");
dt.Columns.Add(" ");
dt.Columns.Add(" ");
dt.Columns.Add(" ");
dt.Columns.Add(" ");
rTitle = brandObj.Brand_Name + "網絡口碑監測週報";
rContent = dt2.ToShortDateString() + "至" + dt1.ToShortDateString();
DataRow row = dt.NewRow();
row[0] = rContent + " " + rTitle;
for (int i = 1; i < 11; i++)
{
row[i] = "";
}
dt.Rows.Add(row);
row = dt.NewRow();
for (int i = 0; i < 11; i++)
{
row[i] = "";
}
dt.Rows.Add(row);
if (brandID == 30001)
{
string[] titleArr = new string[10] { "一週信息量", "負面媒體類型構成", "正面媒體類型構成", "WSE負面信息地理分佈", "WSE負面話題構成", "", "行業信息內容構成", "維護信息的內容情況", "", "維護信息的媒體" };
DataTable[] dtArr = new DataTable[10];
dtArr[0] = DailyWeeklyBLL.GetAllDataByWeely(brandID, dt2, dt1, ref WeekXValue, ref WeekValueArr, ref Positive, ref Negative, false);
dtArr[1] = DailyWeeklyBLL.GetServiceByWeely(brandID, dt2, dt1, true, ref NegServiceX, ref NegServiceY, ref NegServiceVal, false);
dtArr[2] = DailyWeeklyBLL.GetServiceByWeely(brandID, dt2, dt1, false, ref PostServiceX, ref PostServiceY, ref PostServiceVal, false);
dtArr[3] = DailyWeeklyBLL.GetNegAreaData(brandID, dt2, dt1, ref NegAreaX, ref NegAreaVal, false);
dtArr[4] = DailyWeeklyBLL.GetNegAreaData1(brandID, dt2, dt1, ref NegTopicX, ref NegTopicVal, false);
dtArr[5] = DailyWeeklyBLL.GetNegAreaData11(brandID, dt2, dt1, ref NegTopicX, ref NegTopicVal, false);
dtArr[6] = DailyWeeklyBLL.GetIndustryData(30006, dt2, dt1, ref IndustryX, ref IndustryVal, false);
dtArr[7] = DailyWeeklyBLL.GetDealData(brandID, dt2, dt1, ref DealDataX, ref DealDataVal, false);
dtArr[8] = DailyWeeklyBLL.GetDealData1(brandID, dt2, dt1, ref DealDataX, ref DealDataVal, false);
dtArr[9] = DailyWeeklyBLL.GetMediaData(brandID, dt2, dt1, false);
DataRow drow;
for (int k = 0; k < dtArr.Length; k++)
{
if (dtArr[k] != null && dtArr[k].Rows.Count > 0)
{
row = dt.NewRow();
row[0] = titleArr[k];
for (int i = 1; i < 11; i++)
{
row[i] = "";
}
dt.Rows.Add(row);
foreach (DataRow dr in dtArr[k].Rows)
{
drow = dt.NewRow();
for (int i = 0; i < 11; i++)
{
if (i < dr.ItemArray.Length)
drow[i] = dr[i].ToString();
}
dt.Rows.Add(drow);
}
row = dt.NewRow();
for (int i = 0; i < 11; i++)
{
row[i] = "";
}
dt.Rows.Add(row);
}
}
string FileName = brandObj.Brand_Name + "_" + System.DateTime.Parse(Convert.ToString(System.DateTime.Now)).ToString("yyyy-MM-dd");
DataSet dsett = new DataSet();
dsett.Tables.Add(dt);
IWOMTrends.Common.CommonFunction.ExportCSV(dt, Page.Response, FileName, true);
}
}
}
}
}