|
|
|
|
using System;
|
|
|
|
|
using System.Collections;
|
|
|
|
|
using System.Configuration;
|
|
|
|
|
using System.Data;
|
|
|
|
|
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.IO;
|
|
|
|
|
using DSWeb.Models;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Text.RegularExpressions;
|
|
|
|
|
|
|
|
|
|
namespace DSWeb.UserSettings
|
|
|
|
|
{
|
|
|
|
|
public partial class ReportGridEdit : System.Web.UI.Page
|
|
|
|
|
{
|
|
|
|
|
private string strUserID;
|
|
|
|
|
private string strHandle;
|
|
|
|
|
private string strTemplateType;
|
|
|
|
|
|
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (Session["USERID"] != null)
|
|
|
|
|
{
|
|
|
|
|
strUserID = Session["USERID"].ToString();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (Request.QueryString["handle"] != null)
|
|
|
|
|
{
|
|
|
|
|
strHandle = Request.QueryString["handle"].ToString().Trim().ToLower();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (Request.QueryString["templatetype"] != null)
|
|
|
|
|
{
|
|
|
|
|
strTemplateType = Request.QueryString["templatetype"].ToString().Trim();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//this.btn_save.Attributes.Add("onclick", "cacheAction();");
|
|
|
|
|
|
|
|
|
|
this.h_scirptsource.Value = "{sources:[";
|
|
|
|
|
if (IsExistFile("report" + strTemplateType + ".js", "UserGridSource", strUserID))
|
|
|
|
|
{
|
|
|
|
|
this.h_scirptsource.Value += "{id:\"my_" + strTemplateType + "\",charset:\"utf-8\",src:\"UserGridSource/" + strUserID + "report" + strTemplateType + ".js\"},";
|
|
|
|
|
}
|
|
|
|
|
this.h_scirptsource.Value += "{id:\"my_" + strTemplateType + "\",charset:\"utf-8\",src:\"UserGridSource/report" + strTemplateType + "grid.js\"},";
|
|
|
|
|
this.h_scirptsource.Value += "{id:\"defaultsource\",charset:\"utf-8\",src:\"../js/DefaultSource.js\"}]}";
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected void btn_save_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
SaveUserClientGridInfo(strTemplateType);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void SaveUserClientGridInfo(string tempTemplateType)
|
|
|
|
|
{
|
|
|
|
|
int tempUserGridResult = 0;
|
|
|
|
|
string result = "";
|
|
|
|
|
if (h_cachegrid.Value.Trim() != "")
|
|
|
|
|
{
|
|
|
|
|
result = h_cachegrid.Value.Trim();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
tempUserGridResult = CreateUserGridArgs(strUserID, "UserGridSource", "report" + tempTemplateType + ".js", result);
|
|
|
|
|
|
|
|
|
|
if (tempUserGridResult == 1)
|
|
|
|
|
{
|
|
|
|
|
Page.ClientScript.RegisterStartupScript(this.GetType(), "key1", "<script>refresh();</script>");//alert('设置保存成功');
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
Page.ClientScript.RegisterStartupScript(this.GetType(), "key2", "<script>refresh();</script>");//alert('设置保存失败');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private string GetOrigGridInfo()
|
|
|
|
|
{
|
|
|
|
|
string strResult = "";
|
|
|
|
|
if (h_origcache.Value.Trim() != "")
|
|
|
|
|
{
|
|
|
|
|
StringBuilder headerBuilder = new StringBuilder();
|
|
|
|
|
StringBuilder widthBuilder = new StringBuilder();
|
|
|
|
|
StringBuilder colAlignBuilder = new StringBuilder();
|
|
|
|
|
StringBuilder colSortBuilder = new StringBuilder();
|
|
|
|
|
StringBuilder colTypeBuilder = new StringBuilder();
|
|
|
|
|
|
|
|
|
|
string gridInfo = "";
|
|
|
|
|
string gridCache = h_origcache.Value.Trim();
|
|
|
|
|
gridInfo = gridCache.Substring(gridCache.IndexOf("[") + 1, gridCache.IndexOf("]") - gridCache.IndexOf("[") - 1);
|
|
|
|
|
|
|
|
|
|
IList<TemplateGridEntity> templateGridEntities = new List<TemplateGridEntity>();
|
|
|
|
|
|
|
|
|
|
string[] items = gridInfo.Split(new string[] { "},{" }, System.StringSplitOptions.RemoveEmptyEntries);
|
|
|
|
|
|
|
|
|
|
if (items.Length > 0)
|
|
|
|
|
{
|
|
|
|
|
for (int i = 0; i < items.Length; i++)
|
|
|
|
|
{
|
|
|
|
|
items[i] = items[i].ToString().Replace("{", "");
|
|
|
|
|
items[i] = items[i].ToString().Replace("}", "");
|
|
|
|
|
string[] strCell = items[i].Split(new char[] { ',' });
|
|
|
|
|
|
|
|
|
|
if (strCell.Length > 0)
|
|
|
|
|
{
|
|
|
|
|
TemplateGridEntity templateGridEntity = new TemplateGridEntity();
|
|
|
|
|
|
|
|
|
|
for (int j = 0; j < strCell.Length; j++)
|
|
|
|
|
{
|
|
|
|
|
string[] strArg = strCell[j].Split(new char[] { ':' });
|
|
|
|
|
|
|
|
|
|
switch (strArg[0].Replace("\"", ""))
|
|
|
|
|
{
|
|
|
|
|
case "title":
|
|
|
|
|
templateGridEntity.Title = UnicodeToGB(strArg[1].ToString().Replace("\"", "").Trim());
|
|
|
|
|
break;
|
|
|
|
|
case "name":
|
|
|
|
|
templateGridEntity.Name = strArg[1].ToString().Replace("\"", "").Trim();
|
|
|
|
|
break;
|
|
|
|
|
case "index":
|
|
|
|
|
templateGridEntity.Index = int.Parse(strArg[1].ToString().Replace("\"", "").Trim());
|
|
|
|
|
break;
|
|
|
|
|
case "type":
|
|
|
|
|
templateGridEntity.Type = strArg[1].ToString().Replace("\"", "").Trim();
|
|
|
|
|
break;
|
|
|
|
|
case "width":
|
|
|
|
|
templateGridEntity.Width = int.Parse(strArg[1].ToString().Replace("\"", "").Trim());
|
|
|
|
|
break;
|
|
|
|
|
case "sort":
|
|
|
|
|
templateGridEntity.Sort = strArg[1].ToString().Replace("\"", "").Trim();
|
|
|
|
|
break;
|
|
|
|
|
case "remark":
|
|
|
|
|
templateGridEntity.Remark = strArg[1].ToString().Replace("\"", "").Trim();
|
|
|
|
|
break;
|
|
|
|
|
case "gtype":
|
|
|
|
|
templateGridEntity.GType = strArg[1].ToString().Replace("\"", "").Trim();
|
|
|
|
|
break;
|
|
|
|
|
case "align":
|
|
|
|
|
templateGridEntity.Align = strArg[1].ToString().Replace("\"", "").Trim();
|
|
|
|
|
break;
|
|
|
|
|
case "pk":
|
|
|
|
|
templateGridEntity.PK = int.Parse(strArg[1].ToString().Replace("\"", "").Trim());
|
|
|
|
|
break;
|
|
|
|
|
case "close":
|
|
|
|
|
templateGridEntity.Closed = int.Parse(strArg[1].ToString().Replace("\"", "").Trim());
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
templateGridEntities.Add(templateGridEntity);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
headerBuilder.Append("var headerArgs_orderlist = new Array(");
|
|
|
|
|
widthBuilder.Append("var widthArgs_orderlist = new Array(");
|
|
|
|
|
colAlignBuilder.Append("var colAlignArgs_orderlist = new Array(");
|
|
|
|
|
colSortBuilder.Append("var colSortArgs_orderlist = new Array(");
|
|
|
|
|
colTypeBuilder.Append("var colTypeArgs_orderlist = new Array(");
|
|
|
|
|
|
|
|
|
|
int iCount = 0;
|
|
|
|
|
for (int j = 0; j < templateGridEntities.Count; j++)
|
|
|
|
|
{
|
|
|
|
|
if (templateGridEntities[j].PK == 0 && templateGridEntities[j].Closed == 0)
|
|
|
|
|
{
|
|
|
|
|
if (j == (templateGridEntities.Count - 1))
|
|
|
|
|
{
|
|
|
|
|
headerBuilder.Append("\"" + templateGridEntities[j].Title + "\"");
|
|
|
|
|
widthBuilder.Append("\"" + templateGridEntities[j].Width + "\"");
|
|
|
|
|
colAlignBuilder.Append("\"" + templateGridEntities[j].Align + "\"");
|
|
|
|
|
colSortBuilder.Append("\"" + templateGridEntities[j].Sort + "\"");
|
|
|
|
|
colTypeBuilder.Append("\"" + templateGridEntities[j].GType + "\"");
|
|
|
|
|
iCount++;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
headerBuilder.Append("\"" + templateGridEntities[j].Title + "\",");
|
|
|
|
|
widthBuilder.Append("\"" + templateGridEntities[j].Width + "\",");
|
|
|
|
|
colAlignBuilder.Append("\"" + templateGridEntities[j].Align + "\",");
|
|
|
|
|
colSortBuilder.Append("\"" + templateGridEntities[j].Sort + "\",");
|
|
|
|
|
colTypeBuilder.Append("\"" + templateGridEntities[j].GType + "\",");
|
|
|
|
|
iCount++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
string headerResult = headerBuilder.ToString().Trim();
|
|
|
|
|
string widthResult = widthBuilder.ToString().Trim();
|
|
|
|
|
string colAlignResult = colAlignBuilder.ToString().Trim();
|
|
|
|
|
string colSortResult = colSortBuilder.ToString().Trim();
|
|
|
|
|
string colTypeResult = colTypeBuilder.ToString().Trim();
|
|
|
|
|
|
|
|
|
|
headerResult = (headerResult.EndsWith(",") ? headerResult.Substring(0, headerResult.Length - 1) : headerResult) + ");";
|
|
|
|
|
widthResult = (widthResult.EndsWith(",") ? widthResult.Substring(0, widthBuilder.Length - 1) : widthResult) + ");";
|
|
|
|
|
colAlignResult = (colAlignResult.EndsWith(",") ? colAlignResult.Substring(0, colAlignResult.Length - 1) : colAlignResult) + ");";
|
|
|
|
|
colSortResult = (colSortResult.EndsWith(",") ? colSortResult.Substring(0, colSortResult.Length - 1) : colSortResult) + ");";
|
|
|
|
|
colTypeResult = (colTypeResult.EndsWith(",") ? colTypeResult.Substring(0, colTypeResult.Length - 1) : colTypeResult) + ");";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (iCount > 0)
|
|
|
|
|
{
|
|
|
|
|
strResult = headerResult + widthResult + colAlignResult + colSortResult + colTypeResult;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return strResult;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#region 生成用户自定义Grid配置信息
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 生成用户自定义Grid配置信息
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="tempUserID">用户GID</param>
|
|
|
|
|
/// <param name="tempUrl">保存路径</param>
|
|
|
|
|
/// <param name="tempFileName">文件名</param>
|
|
|
|
|
/// <param name="tempWriteContent">文件内容</param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
private int CreateUserGridArgs(string tempUserID, string tempUrl, string tempFileName, string tempWriteContent)
|
|
|
|
|
{
|
|
|
|
|
int iResult = 0;
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
string filePath = Server.MapPath(tempUrl);
|
|
|
|
|
|
|
|
|
|
if (!Directory.Exists(filePath))
|
|
|
|
|
{
|
|
|
|
|
// Create the directory it does not exist.
|
|
|
|
|
Directory.CreateDirectory(filePath);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
string targetUrl = @"" + filePath + "\\" + strUserID + tempFileName;
|
|
|
|
|
FileInfo fileInfo = new FileInfo(targetUrl);
|
|
|
|
|
|
|
|
|
|
if (fileInfo.Exists)
|
|
|
|
|
{
|
|
|
|
|
fileInfo.Delete();
|
|
|
|
|
FileStream fs = fileInfo.Create();
|
|
|
|
|
|
|
|
|
|
StreamWriter swFromFileStream = new StreamWriter(fs);
|
|
|
|
|
swFromFileStream.Write(tempWriteContent);
|
|
|
|
|
swFromFileStream.Flush();
|
|
|
|
|
swFromFileStream.Close();
|
|
|
|
|
|
|
|
|
|
fs.Close();
|
|
|
|
|
iResult = 1;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
FileStream fs = fileInfo.Create();
|
|
|
|
|
|
|
|
|
|
StreamWriter swFromFileStream = new StreamWriter(fs);
|
|
|
|
|
swFromFileStream.Write(tempWriteContent);
|
|
|
|
|
swFromFileStream.Flush();
|
|
|
|
|
swFromFileStream.Close();
|
|
|
|
|
|
|
|
|
|
fs.Close();
|
|
|
|
|
iResult = 1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception)
|
|
|
|
|
{
|
|
|
|
|
iResult = -1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return iResult;
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 生成标准Grid配置信息
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 生成标准Grid配置信息
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="tempUrl">保存路径</param>
|
|
|
|
|
/// <param name="tempFileName">文件名称</param>
|
|
|
|
|
/// <param name="tempWriteContent">文件内容</param>
|
|
|
|
|
/// <returns>值1表示生成成功 值不等于1表示生成失败</returns>
|
|
|
|
|
private int CreateTemplateGridArgs(string tempUrl, string tempFileName, string tempWriteContent)
|
|
|
|
|
{
|
|
|
|
|
int iResult = 0;
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
string filePath = Server.MapPath(tempUrl);
|
|
|
|
|
|
|
|
|
|
if (!Directory.Exists(filePath))
|
|
|
|
|
{
|
|
|
|
|
// Create the directory it does not exist.
|
|
|
|
|
Directory.CreateDirectory(filePath);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
string targetUrl = @"" + filePath + "\\" + tempFileName;
|
|
|
|
|
FileInfo fileInfo = new FileInfo(targetUrl);
|
|
|
|
|
|
|
|
|
|
if (fileInfo.Exists)
|
|
|
|
|
{
|
|
|
|
|
FileStream fs = fileInfo.Create();
|
|
|
|
|
|
|
|
|
|
StreamWriter swFromFileStream = new StreamWriter(fs);
|
|
|
|
|
swFromFileStream.Write(tempWriteContent);
|
|
|
|
|
swFromFileStream.Flush();
|
|
|
|
|
swFromFileStream.Close();
|
|
|
|
|
|
|
|
|
|
fs.Close();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
FileStream fs = fileInfo.Create();
|
|
|
|
|
|
|
|
|
|
StreamWriter swFromFileStream = new StreamWriter(fs);
|
|
|
|
|
swFromFileStream.Write(tempWriteContent);
|
|
|
|
|
swFromFileStream.Flush();
|
|
|
|
|
swFromFileStream.Close();
|
|
|
|
|
|
|
|
|
|
fs.Close();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception)
|
|
|
|
|
{
|
|
|
|
|
iResult = -1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return iResult;
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region Unicode转GB编码
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Unicode转GB编码
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="text">UnicodeText</param>
|
|
|
|
|
/// <returns>返回字符串</returns>
|
|
|
|
|
public string UnicodeToGB(string text)
|
|
|
|
|
{
|
|
|
|
|
MatchCollection mc = Regex.Matches(text, "([\\w]+)|(\\\\u([\\w]{4}))");
|
|
|
|
|
if (mc != null && mc.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
|
|
foreach (Match m2 in mc)
|
|
|
|
|
{
|
|
|
|
|
string v = m2.Value;
|
|
|
|
|
if (v.IndexOf("\\") >= 0)
|
|
|
|
|
{
|
|
|
|
|
string word = v.Substring(2);
|
|
|
|
|
byte[] codes = new byte[2];
|
|
|
|
|
int code = Convert.ToInt32(word.Substring(0, 2), 16);
|
|
|
|
|
int code2 = Convert.ToInt32(word.Substring(2), 16);
|
|
|
|
|
codes[0] = (byte)code2;
|
|
|
|
|
codes[1] = (byte)code;
|
|
|
|
|
sb.Append(Encoding.Unicode.GetString(codes));
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
sb.Append(v);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return sb.ToString();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
return text;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 请求文件是否存在
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="tempFileName">文件名称</param>
|
|
|
|
|
/// <param name="tempFileUrl">文件夹名称</param>
|
|
|
|
|
/// <param name="tempUserID">用户GID</param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
private bool IsExistFile(string tempFileName, string tempFileUrl, string tempUserID)
|
|
|
|
|
{
|
|
|
|
|
bool bResult = false;
|
|
|
|
|
|
|
|
|
|
string filePath = Server.MapPath(tempFileUrl);
|
|
|
|
|
|
|
|
|
|
if (!Directory.Exists(filePath))
|
|
|
|
|
{
|
|
|
|
|
// Create the directory it does not exist.
|
|
|
|
|
Directory.CreateDirectory(filePath);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
string targetUrl = @"" + filePath + "\\" + tempUserID + tempFileName;
|
|
|
|
|
FileInfo fileInfo = new FileInfo(targetUrl);
|
|
|
|
|
|
|
|
|
|
bResult = fileInfo.Exists;
|
|
|
|
|
|
|
|
|
|
return bResult;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|