491 lines
20 KiB
C#
491 lines
20 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
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 DSWeb.EntityDA;
|
|
using DSWeb.Models;
|
|
using JsonHelper;
|
|
using System.Xml;
|
|
using System.IO;
|
|
using System.Text;
|
|
using System.Text.RegularExpressions;
|
|
using DSWeb.Authority;
|
|
|
|
namespace DSWeb.CRM
|
|
{
|
|
public partial class SaleProfitReport : System.Web.UI.Page
|
|
{
|
|
T_ALL_DA T_ALL_DA = new T_ALL_DA();
|
|
|
|
//grid
|
|
private string strColumnVal;
|
|
public string strUserID;//"04eaeac5-f271-45d1-b17b-ad4ccbab63d0";
|
|
private string strType = "17";//Grid模块号
|
|
//gridEnd
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
if (Session["USERID"] != null)
|
|
{
|
|
strUserID = Session["USERID"].ToString().Trim();
|
|
this.h_uid.Value = strUserID;//记录用户ID前端JS调用 LWP 2012-9-28
|
|
}
|
|
else
|
|
{
|
|
Server.Transfer("~/Error/FriendError.aspx");
|
|
return;
|
|
//strUserID = "";
|
|
}
|
|
//
|
|
//grid
|
|
if (!IsPostBack)
|
|
{
|
|
this.hdUserID.Value = strUserID.Trim();
|
|
this.hid_userid.Value = strUserID.Trim();
|
|
//
|
|
string strCrmCsDataName = System.Configuration.ConfigurationSettings.AppSettings["crmCsDataName"].ToString();
|
|
string sSQL = "SELECT 业务类型 FROM [" + strCrmCsDataName + "].[dbo].[v_op_bscard] group by 业务类型 order by 业务类型";
|
|
DataSet ds = T_ALL_DA.GetAllSQL(sSQL);
|
|
if (ds != null)
|
|
{
|
|
ddlBSTYPE.Items.Clear();
|
|
ddlBSTYPE.Items.Add(new ListItem("all","all"));
|
|
foreach (DataTable myTable in ds.Tables)
|
|
{
|
|
foreach (DataRow myRow in myTable.Rows)//遍历表
|
|
{
|
|
ddlBSTYPE.Items.Add(new ListItem(myRow["业务类型"].ToString().Trim(), myRow["业务类型"].ToString().Trim()));
|
|
}
|
|
}
|
|
ddlBSTYPE.SelectedValue = "all";
|
|
}
|
|
//
|
|
}
|
|
//
|
|
if (hid_setting.Value.Trim() != "")
|
|
{
|
|
strColumnVal = hid_setting.Value.Trim();
|
|
SaveColumnSetting(strColumnVal);
|
|
hid_setting.Value = "";
|
|
}
|
|
if (hid_header.Value.Trim() != "")
|
|
{
|
|
strColumnVal = hid_header.Value.Trim();
|
|
SaveColumnSetting(strColumnVal);
|
|
hid_header.Value = "";
|
|
}
|
|
//gridEnd
|
|
}
|
|
|
|
protected void ibExcel_Click(object sender, EventArgs e)
|
|
{
|
|
//setExcelReport();
|
|
setExcelReport2();
|
|
}
|
|
|
|
protected void setExcelReport2()
|
|
{
|
|
if (this.hdSQL.Value.Trim() != "")
|
|
{
|
|
T_ALL_DA T_ALL_DA = new T_ALL_DA();
|
|
DataSet DS = T_ALL_DA.GetAllSQL(this.hdSQL.Value.Trim());
|
|
if (DS != null)
|
|
{
|
|
ExcelDA ExcelDA = new EntityDA.ExcelDA();
|
|
MemoryStream ms = ExcelDA.RenderToExcel(DS.Tables[0], this.hdNAMES.Value.Trim());
|
|
ExcelDA.RenderToBrowser(ms, Context, "report.xls");
|
|
}
|
|
}
|
|
}
|
|
|
|
protected void setExcelReport()
|
|
{
|
|
StringWriter sw = new StringWriter();
|
|
string sSQL = "";
|
|
//sw.WriteLine("结算单位\t委托编号\t主提单号\t分提单号\t船名\t航次\tETD\t目的港\t揽货人\t应收RMB\t实收RMB\t应收USD\t实收USD\t余额");
|
|
sw.WriteLine(this.hdNAMES.Value.Trim());
|
|
T_ALL_DA T_ALL_DA = new T_ALL_DA();
|
|
DataSet DS = T_ALL_DA.GetAllSQL(this.hdSQL.Value.Trim());
|
|
if (DS != null)
|
|
{
|
|
foreach (DataTable myTable in DS.Tables)
|
|
{
|
|
foreach (DataRow myRow in myTable.Rows)//遍历表
|
|
{
|
|
sSQL = "";
|
|
for (int i = 0; i < myTable.Columns.Count; i++)
|
|
{
|
|
if (sSQL.Trim() != "")
|
|
{
|
|
sSQL += "\t";
|
|
}
|
|
if (myRow[i].ToString() == null || myRow[i].ToString() == "")
|
|
{
|
|
sSQL += "";
|
|
if (sSQL.Trim() == "")
|
|
{
|
|
sSQL += "\t";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
sSQL += myRow[i].ToString().Trim();
|
|
}
|
|
}
|
|
sw.WriteLine(sSQL);
|
|
}
|
|
}
|
|
//
|
|
sw.Close();
|
|
switch ("MUEXCEL")
|
|
{
|
|
case "MUEXCEL":
|
|
Response.AddHeader("Content-Disposition", "attachment; filename=report.xls");
|
|
Response.ContentType = "application/ms-excel";
|
|
break;
|
|
case "MUTEXT":
|
|
Response.AddHeader("Content-Disposition", "attachment; filename=report.txt");
|
|
Response.ContentType = "application/txt";
|
|
break;
|
|
case "MUWORD":
|
|
Response.AddHeader("Content-Disposition", "attachment; filename=report.doc");
|
|
Response.ContentType = "application/ms-word";
|
|
break;
|
|
case "MUPDF":
|
|
Response.AddHeader("Content-Disposition", "attachment; filename=report.pdf");
|
|
Response.ContentType = "application/pdf";
|
|
break;
|
|
case "MUXML":
|
|
Response.AddHeader("Content-Disposition", "attachment; filename=report.xml");
|
|
Response.ContentType = "application/xml";
|
|
break;
|
|
}
|
|
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
|
|
Response.Write(sw);
|
|
Response.End();
|
|
}
|
|
}
|
|
|
|
#region Grid参数
|
|
private void SaveColumnSetting(string tempColumnVal)
|
|
{
|
|
|
|
JsonColumnGroupEntity jsonColumnGroupEntity = GetPostEntity(tempColumnVal);
|
|
List<JsonColumnEntity> jsonColumnEntities = new List<JsonColumnEntity>();
|
|
|
|
UserSettingDA userSettingDA = new UserSettingDA();
|
|
|
|
UserSettingEntity userSettingEntity = userSettingDA.GetUserSettingByUserIDType(strUserID, strType);
|
|
|
|
if (userSettingEntity.GID != null)
|
|
{
|
|
userSettingEntity.ModifiedUser = strUserID;
|
|
|
|
GridEntity gridEntity = null;
|
|
|
|
|
|
List<GridColumnEntity> gridColumnEntities = new List<GridColumnEntity>();
|
|
gridEntity = GetSettingXml(userSettingEntity.Xml);
|
|
gridEntity.PagePreCount = jsonColumnGroupEntity.ShowCount;
|
|
|
|
foreach (JsonColumnEntity jColumn in jsonColumnGroupEntity.JsonColumnEntities)
|
|
{
|
|
foreach (GridColumnEntity gColumn in gridEntity.Columns)
|
|
{
|
|
if (gColumn.Description.Equals(jColumn.col3))
|
|
{
|
|
gColumn.Description = jColumn.col3;
|
|
gColumn.Width = jColumn.col5;
|
|
gColumn.Index = jColumn.col4;
|
|
if (jColumn.col6 != -1)
|
|
{
|
|
gColumn.VisibleState = jColumn.col6;
|
|
}
|
|
//gridColumnEntities.Add(gColumn);
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
//Columns
|
|
//gridEntity.Columns = gridColumnEntities;
|
|
|
|
userSettingEntity.Xml = SaveUserSetting(gridEntity).OuterXml;
|
|
int iResult = userSettingDA.UpdateUserSetting(userSettingEntity);
|
|
|
|
}
|
|
else
|
|
{
|
|
if (jsonColumnGroupEntity != null)
|
|
{
|
|
userSettingEntity = new UserSettingEntity();
|
|
|
|
userSettingEntity.GID = Guid.NewGuid().ToString();
|
|
userSettingEntity.Name = "ProfitReportGridSetting";
|
|
userSettingEntity.Description = "利润报表Grid设置";
|
|
userSettingEntity.UserID = strUserID;
|
|
userSettingEntity.Type = 5;//type值为1表示Grid
|
|
string strRequestUrl = Request.Url.ToString();
|
|
string strUrl = strRequestUrl.Substring(0, strRequestUrl.LastIndexOf("/"));
|
|
string strPage = strRequestUrl.Substring(strRequestUrl.LastIndexOf("/") + 1, strRequestUrl.Length - strRequestUrl.LastIndexOf("/") - 1);
|
|
|
|
userSettingEntity.Url = strUrl;
|
|
userSettingEntity.Page = strPage;
|
|
userSettingEntity.CreateUser = strUserID;
|
|
|
|
GridEntity gridEntity = new GridEntity();
|
|
gridEntity.GID = userSettingEntity.GID;
|
|
gridEntity.UserID = strUserID;
|
|
gridEntity.GroupBy = "";
|
|
gridEntity.DefaultPrePageCount = 15;
|
|
gridEntity.PagePreCount = jsonColumnGroupEntity.ShowCount;
|
|
|
|
List<GridColumnEntity> gridColumnEntities = new List<GridColumnEntity>();
|
|
|
|
foreach (JsonColumnEntity column in jsonColumnGroupEntity.JsonColumnEntities)
|
|
{
|
|
GridColumnEntity gridColumnEntity = new GridColumnEntity();
|
|
|
|
if (column.col6 != -1)
|
|
{
|
|
gridColumnEntity.Name = column.col2;
|
|
gridColumnEntity.VisibleState = column.col6;
|
|
}
|
|
else
|
|
{
|
|
switch (column.col3.Trim())
|
|
{
|
|
case "委托单位":
|
|
gridColumnEntity.Name = "CUSTOMERNAME";
|
|
break;
|
|
case "委托编号":
|
|
gridColumnEntity.Name = "CUSTNO";
|
|
break;
|
|
case "主提单号":
|
|
gridColumnEntity.Name = "MBLNO";
|
|
break;
|
|
case "分提单号":
|
|
gridColumnEntity.Name = "HBLNO";
|
|
break;
|
|
case "船名":
|
|
gridColumnEntity.Name = "VESSEL";
|
|
break;
|
|
case "航次":
|
|
gridColumnEntity.Name = "VOYNO";
|
|
break;
|
|
case "ETD":
|
|
gridColumnEntity.Name = "ETD";
|
|
break;
|
|
case "目的港":
|
|
gridColumnEntity.Name = "PORTDISCHARGE";
|
|
break;
|
|
case "揽货人":
|
|
gridColumnEntity.Name = "SALE";
|
|
break;
|
|
case "应收RMB":
|
|
gridColumnEntity.Name = "RMBDR";
|
|
break;
|
|
case "应收USD":
|
|
gridColumnEntity.Name = "USDDR";
|
|
break;
|
|
case "应付RMB":
|
|
gridColumnEntity.Name = "RMBCR";
|
|
break;
|
|
case "应付USD":
|
|
gridColumnEntity.Name = "USDCR";
|
|
break;
|
|
case "应收合计":
|
|
gridColumnEntity.Name = "DRTTL";
|
|
break;
|
|
case "应付合计":
|
|
gridColumnEntity.Name = "CRTTL";
|
|
break;
|
|
case "RMB利润":
|
|
gridColumnEntity.Name = "RMBPROFIT";
|
|
break;
|
|
case "USD利润":
|
|
gridColumnEntity.Name = "USDPROFIT";
|
|
break;
|
|
}
|
|
gridColumnEntity.VisibleState = 0;
|
|
}
|
|
|
|
gridColumnEntity.Description = column.col3;
|
|
gridColumnEntity.Index = column.col4;
|
|
gridColumnEntity.Width = column.col5;
|
|
|
|
gridColumnEntities.Add(gridColumnEntity);
|
|
}
|
|
//Columns
|
|
gridEntity.Columns = gridColumnEntities;
|
|
|
|
userSettingEntity.Xml = SaveUserSetting(gridEntity).OuterXml;
|
|
|
|
int iResult = userSettingDA.InsertUserSetting(userSettingEntity);
|
|
|
|
dvSaveState.InnerHtml = iResult.ToString();
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
#region 获取列信息
|
|
/// <summary>
|
|
/// 获取列信息
|
|
/// </summary>
|
|
/// <param name="tempValue"></param>
|
|
/// <returns></returns>
|
|
private JsonColumnGroupEntity GetPostEntity(string tempValue)
|
|
{
|
|
JsonColumnGroupEntity tempColumnGroupEntity = new JsonColumnGroupEntity();
|
|
try
|
|
{
|
|
tempColumnGroupEntity = (JsonColumnGroupEntity)JSON.Instance.ToObject(tempValue);
|
|
}
|
|
catch (Exception error)
|
|
{
|
|
throw error;
|
|
}
|
|
return tempColumnGroupEntity;
|
|
}
|
|
#endregion
|
|
|
|
private XmlDocument SaveUserSetting(GridEntity gridEntity)
|
|
{
|
|
|
|
XmlDocument xmlDoc = new XmlDocument();
|
|
XmlElement root = xmlDoc.CreateElement("user-settings");
|
|
|
|
//xmlDoc.AppendChild(root);
|
|
|
|
XmlElement xGid = xmlDoc.CreateElement("gid");
|
|
xGid.InnerText = gridEntity.GID;
|
|
root.AppendChild(xGid);
|
|
|
|
XmlElement xUserID = xmlDoc.CreateElement("userid");
|
|
xUserID.InnerText = gridEntity.UserID;
|
|
root.AppendChild(xUserID);
|
|
|
|
XmlElement xCreateTime = xmlDoc.CreateElement("create-time");
|
|
xCreateTime.InnerText = gridEntity.CreateTime.ToString();
|
|
root.AppendChild(xCreateTime);
|
|
|
|
XmlElement xColumns = xmlDoc.CreateElement("columns");
|
|
|
|
foreach (GridColumnEntity column in gridEntity.Columns)
|
|
{
|
|
XmlElement xColumn = xmlDoc.CreateElement("column");
|
|
XmlElement nName = xmlDoc.CreateElement("name");
|
|
nName.InnerText = column.Name;
|
|
|
|
xColumn.AppendChild(nName);
|
|
|
|
XmlElement nDescription = xmlDoc.CreateElement("description");
|
|
nDescription.InnerText = column.Description;
|
|
|
|
xColumn.AppendChild(nDescription);
|
|
|
|
XmlElement nIndex = xmlDoc.CreateElement("index");
|
|
nIndex.InnerText = column.Index.ToString();
|
|
|
|
xColumn.AppendChild(nIndex);
|
|
|
|
XmlElement nWidth = xmlDoc.CreateElement("width");
|
|
nWidth.InnerText = column.Width.ToString();
|
|
|
|
xColumn.AppendChild(nWidth);
|
|
|
|
XmlElement nVisible = xmlDoc.CreateElement("visible");
|
|
nVisible.InnerText = column.VisibleState.ToString();
|
|
|
|
xColumn.AppendChild(nVisible);
|
|
|
|
xColumns.AppendChild(xColumn);
|
|
}
|
|
|
|
root.AppendChild(xColumns);
|
|
|
|
XmlElement xGroupBy = xmlDoc.CreateElement("group-by");
|
|
xGroupBy.InnerText = gridEntity.GroupBy;
|
|
|
|
root.AppendChild(xGroupBy);
|
|
|
|
XmlElement xPage = xmlDoc.CreateElement("page");
|
|
|
|
XmlElement nPageDefault = xmlDoc.CreateElement("page-default");
|
|
nPageDefault.InnerText = gridEntity.DefaultPrePageCount.ToString();
|
|
xPage.AppendChild(nPageDefault);
|
|
|
|
XmlElement nPagePre = xmlDoc.CreateElement("page-pre");
|
|
nPagePre.InnerText = gridEntity.PagePreCount.ToString();
|
|
xPage.AppendChild(nPagePre);
|
|
|
|
root.AppendChild(xPage);
|
|
|
|
xmlDoc.AppendChild(root);
|
|
return xmlDoc;
|
|
}
|
|
|
|
private GridEntity GetSettingXml(string strXml)
|
|
{
|
|
XmlDocument xmlSettingDoc = new XmlDocument();
|
|
GridEntity gridEntity = new GridEntity();
|
|
try
|
|
{
|
|
xmlSettingDoc.LoadXml(strXml);
|
|
|
|
gridEntity.GID = xmlSettingDoc.ChildNodes[0].ChildNodes[0].InnerText.Trim();
|
|
gridEntity.UserID = xmlSettingDoc.ChildNodes[0].ChildNodes[1].InnerText.Trim();
|
|
gridEntity.CreateTime = DateTime.Parse(xmlSettingDoc.ChildNodes[0].ChildNodes[2].InnerText.Trim());
|
|
|
|
IList<GridColumnEntity> columnsEntities = new List<GridColumnEntity>();
|
|
|
|
int iColCount = xmlSettingDoc.ChildNodes[0].ChildNodes[3].ChildNodes.Count;
|
|
|
|
for (int i = 0; i < iColCount; i++)
|
|
{
|
|
GridColumnEntity columnEntity = new GridColumnEntity();
|
|
//columnEntity.GID = xmlSettingDoc.ChildNodes[0].ChildNodes[3].ChildNodes[0].ToString();
|
|
columnEntity.Name = xmlSettingDoc.ChildNodes[0].ChildNodes[3].ChildNodes[i].ChildNodes[0].InnerText.Trim();
|
|
columnEntity.Description = xmlSettingDoc.ChildNodes[0].ChildNodes[3].ChildNodes[i].ChildNodes[1].InnerText.Trim();
|
|
columnEntity.Index = int.Parse(xmlSettingDoc.ChildNodes[0].ChildNodes[3].ChildNodes[i].ChildNodes[2].InnerText.Trim());
|
|
columnEntity.Width = int.Parse(xmlSettingDoc.ChildNodes[0].ChildNodes[3].ChildNodes[i].ChildNodes[3].InnerText.Trim());
|
|
|
|
columnsEntities.Add(columnEntity);
|
|
}
|
|
|
|
gridEntity.Columns = columnsEntities;
|
|
gridEntity.GroupBy = xmlSettingDoc.ChildNodes[0].ChildNodes[4].InnerText.Trim();
|
|
gridEntity.DefaultPrePageCount = int.Parse(xmlSettingDoc.ChildNodes[0].ChildNodes[5].ChildNodes[0].InnerText.Trim());
|
|
gridEntity.PagePreCount = int.Parse(xmlSettingDoc.ChildNodes[0].ChildNodes[5].ChildNodes[1].InnerText.Trim());
|
|
}
|
|
catch (Exception error)
|
|
{
|
|
throw (error);
|
|
}
|
|
|
|
return gridEntity;
|
|
}
|
|
|
|
public enum SqlName
|
|
{
|
|
NAME = 0,
|
|
LOGTYPE = 1,
|
|
LOGTIME = 2,
|
|
LOGCONTENT = 3,
|
|
USERNAME = 4
|
|
}
|
|
#endregion
|
|
}
|
|
}
|