You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
626 lines
16 KiB
626 lines
16 KiB
using NFine.Application;
|
|
using NFine.Application.SystemManage;
|
|
using NFine.Code;
|
|
using NFine.Domain.Entity.SystemManage;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Web;
|
|
using System.Web.Mvc;
|
|
|
|
|
|
namespace NFine.Web.Areas.SystemManage.Controllers
|
|
{
|
|
public class CommonReportController : ControllerBase
|
|
{
|
|
private CommonReportApp App = new CommonReportApp();
|
|
|
|
|
|
[HttpGet]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult GetGridJson(Pagination pagination, string sqlTxt, string DBName, string TempName)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
try
|
|
{
|
|
dt = App.GetGridJson(sqlTxt, DBName, TempName, ref pagination);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
dt = null;
|
|
return Error(ex.ToString());
|
|
}
|
|
var data = new
|
|
{
|
|
rows = dt,
|
|
total = pagination.total,
|
|
page = pagination.page,
|
|
records = pagination.records
|
|
};
|
|
return Content(data.ToJson());
|
|
|
|
}
|
|
[HttpGet]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult GetGridJsonNew(Pagination pagination, string MenuID, string sqlTxt_Condition, string DBName, string TempName)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
try
|
|
{
|
|
dt = App.GetGridJsonNew(MenuID, sqlTxt_Condition, DBName, TempName, ref pagination);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
dt = null;
|
|
return Error(ex.ToString());
|
|
}
|
|
var data = new
|
|
{
|
|
rows = dt,
|
|
total = pagination.total,
|
|
page = pagination.page,
|
|
records = pagination.records
|
|
};
|
|
return Content(data.ToJson());
|
|
|
|
}
|
|
|
|
|
|
//导出
|
|
[HttpPost]
|
|
public void ExportAll(string sqlTxt, string DBName, string TempName, string MenuID)
|
|
{
|
|
sqlTxt = HttpUtility.UrlDecode(sqlTxt);
|
|
|
|
DataTable data = App.ExportAll(sqlTxt, DBName, TempName, MenuID);
|
|
if (data != null && data.Rows.Count > 0)
|
|
{
|
|
AsposeCell.Export(data);
|
|
}
|
|
|
|
}
|
|
|
|
//导出
|
|
[HttpPost]
|
|
public void ExportAllNew(string sqlTxt, string DBName, string TempName, string MenuID, string XCol)
|
|
{
|
|
sqlTxt = HttpUtility.UrlDecode(sqlTxt);
|
|
|
|
DataTable data = App.ExportAllNew(sqlTxt, DBName, TempName, MenuID, XCol);
|
|
if (data != null && data.Rows.Count > 0)
|
|
{
|
|
AsposeCell.Export(data);
|
|
}
|
|
|
|
}
|
|
|
|
//获取数据源DB
|
|
[HttpGet]
|
|
public ActionResult GetAllDataBase()
|
|
{
|
|
try
|
|
{
|
|
DataTable data = App.GetAllDataBase();
|
|
return Content(data.ToJson());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return Error(ex.ToString());
|
|
}
|
|
}
|
|
|
|
//获取菜单Name
|
|
[HttpGet]
|
|
public ActionResult GetMenuID(string MenuTag)
|
|
{
|
|
try
|
|
{
|
|
DataTable data = App.GetMenuID(MenuTag);
|
|
return Content(data.ToJson());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return Content(ex.ToString());
|
|
}
|
|
}
|
|
|
|
|
|
//获取数据源DB
|
|
[HttpGet]
|
|
public ActionResult GetMenu(string MenuID)
|
|
{
|
|
try
|
|
{
|
|
DataTable Menu = App.GetMenuSQL(MenuID);
|
|
|
|
if (Menu != null && Menu.Rows.Count > 0)
|
|
{
|
|
string MenuCols = App.GetMenuColsNew(Menu.Rows[0]["SourceID"].ToString());
|
|
DataTable formatcols = App.Getformatcols(Menu.Rows[0]["SourceID"].ToString());
|
|
string UnVisiblecols = App.UnVisiblecols(Menu.Rows[0]["SourceID"].ToString());
|
|
String[] Mergercols = { };
|
|
if (!string.IsNullOrEmpty(Menu.Rows[0]["Mergercols"].ToString()))
|
|
{
|
|
Mergercols = Menu.Rows[0]["Mergercols"].ToString().Split(',').ToArray();
|
|
}
|
|
String[] footercols = { };
|
|
if (!string.IsNullOrEmpty(Menu.Rows[0]["footercols"].ToString()))
|
|
{
|
|
footercols = Menu.Rows[0]["footercols"].ToString().Split(',').ToArray();
|
|
}
|
|
var data = new
|
|
{
|
|
sqlTxt = Menu.Rows[0]["sqlTxt"].ToString(),
|
|
MenuID = Menu.Rows[0]["MenuID"].ToString(),
|
|
Cols = MenuCols,
|
|
HiddenCols = UnVisiblecols,
|
|
ReportName = Menu.Rows[0]["ReportName"].ToString(),
|
|
Mergercols = Mergercols,
|
|
XCol = Menu.Rows[0]["XCol"].ToString(),
|
|
footercols = footercols,
|
|
TempName = Menu.Rows[0]["TempName"].ToString(),
|
|
formatcols = formatcols,
|
|
footerrow = Menu.Rows[0]["footerrow"].ToString().ToBool(),
|
|
IsExistsDataSource = Menu.Rows[0]["IsExistsDataSource"].ToString(),
|
|
DBName = Menu.Rows[0]["DBName"].ToString(),
|
|
SourceID = Menu.Rows[0]["SourceID"].ToString(),
|
|
};
|
|
return Content(data.ToJson());
|
|
}
|
|
else
|
|
{
|
|
return Content("无菜单数据");
|
|
}
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return Content(ex.ToString());
|
|
}
|
|
}
|
|
|
|
|
|
//获取栏位的栏位筛选信息
|
|
[HttpGet]
|
|
public ActionResult GetColsSelectGrid(string SourceID, string ColsName, string InputKey)
|
|
{
|
|
try
|
|
{
|
|
DataTable dt = App.GetColsSelectData(SourceID, ColsName, InputKey);
|
|
|
|
if (dt != null && dt.Rows.Count > 0)
|
|
{
|
|
string Cols = App.GetColsSelectCols(dt);
|
|
var data = new
|
|
{
|
|
cols = Cols,
|
|
gridData = dt,
|
|
|
|
};
|
|
return Content(data.ToJson());
|
|
}
|
|
else
|
|
{
|
|
return Content("无菜单数据");
|
|
}
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return Content(ex.ToString());
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//获取数据源sql等数据
|
|
[HttpGet]
|
|
public ActionResult GetMenuSQL(string MenuID)
|
|
{
|
|
try
|
|
{
|
|
DataTable data = App.GetMenuSQL(MenuID);
|
|
return Content(data.ToJson());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return Error(ex.ToString());
|
|
}
|
|
}
|
|
|
|
|
|
//提交数据源信息
|
|
[HttpPost]
|
|
public ActionResult SetDataSource(string SysDataSourceFlag, string FormatSql, string DbId, string MenuID, string DbParameters, string SourceID, string TempName, string XCol)
|
|
{
|
|
try
|
|
{
|
|
App.SetDataSource(SysDataSourceFlag, FormatSql, DbId, MenuID, DbParameters, SourceID, TempName, XCol);
|
|
return Content("操作成功");
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return Content(ex.ToString());
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
[HttpPost]
|
|
public ActionResult SetDataSourceText(string SysDataSourceFlag, string FormatSql, string DbId, string DbParameters, string TempName, string XCol)
|
|
{
|
|
try
|
|
{
|
|
App.SetDataSourceText(SysDataSourceFlag, FormatSql, DbId, DbParameters, TempName, XCol);
|
|
return Content("OK");
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return Content(ex.ToString());
|
|
}
|
|
|
|
}
|
|
|
|
//获取过滤数据
|
|
[HttpGet]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult GetFilter(Pagination pagination, string SourceID)
|
|
{
|
|
|
|
DataTable data = App.GetFilter(SourceID);
|
|
var JsonData = new
|
|
{
|
|
total = pagination.total,
|
|
page = pagination.page,
|
|
records = pagination.records,
|
|
rows = data
|
|
};
|
|
return Content(JsonData.ToJson());
|
|
}
|
|
|
|
|
|
|
|
//获取过滤条件详情
|
|
[HttpGet]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult GetCondition(Pagination pagination, string SourceID)
|
|
{
|
|
|
|
DataTable data = App.GetCondition(SourceID);
|
|
var JsonData = new
|
|
{
|
|
total = pagination.total,
|
|
page = pagination.page,
|
|
records = pagination.records,
|
|
rows = data
|
|
};
|
|
return Content(JsonData.ToJson());
|
|
}
|
|
|
|
//设置过滤条件
|
|
[HttpPost]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult SetCondition(string SourceID, string List_Condition)
|
|
{
|
|
try
|
|
{
|
|
App.SetCondition(SourceID, List_Condition);
|
|
return Content("操作成功。");
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return Content(ex.ToString());
|
|
}
|
|
|
|
}
|
|
|
|
//记录账号的过滤条件
|
|
[HttpPost]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult SetDefaultRecord(string SourceID, string List_Record)
|
|
{
|
|
try
|
|
{
|
|
App.SetDefaultRecord(SourceID, List_Record);
|
|
return Content("操作成功。");
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return Content(ex.ToString());
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取列设置信息
|
|
[HttpGet]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult GetCols(Pagination pagination, string SourceID)
|
|
{
|
|
|
|
DataTable data = App.GetCols(SourceID);
|
|
var JsonData = new
|
|
{
|
|
total = pagination.total,
|
|
page = pagination.page,
|
|
records = pagination.records,
|
|
rows = data
|
|
};
|
|
return Content(JsonData.ToJson());
|
|
}
|
|
|
|
//获取个性化信息
|
|
[HttpGet]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult GetGridFormat(Pagination pagination, string ColId)
|
|
{
|
|
|
|
DataTable data = App.GetGridFormat(ColId);
|
|
var JsonData = new
|
|
{
|
|
total = pagination.total,
|
|
page = pagination.page,
|
|
records = pagination.records,
|
|
rows = data
|
|
};
|
|
return Content(JsonData.ToJson());
|
|
}
|
|
//保存个性化设置
|
|
[HttpPost]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult SetGridFormat(string ColId, string List_GridFormat)
|
|
{
|
|
try
|
|
{
|
|
App.SetGridFormat(ColId, List_GridFormat);
|
|
return Content("保存成功。");
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return Content(ex.ToString());
|
|
}
|
|
|
|
}
|
|
|
|
|
|
[HttpPost]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult ClearAll(string MenuID)
|
|
{
|
|
try
|
|
{
|
|
App.ClearAll(MenuID);
|
|
return Content("清空成功");
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return Content(ex.ToString());
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//重置列
|
|
|
|
[HttpPost]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult ReSetCols(string MenuID)
|
|
{
|
|
try
|
|
{
|
|
App.ReSetCols(MenuID);
|
|
return Content("操作成功。");
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return Content(ex.ToString());
|
|
}
|
|
|
|
}
|
|
|
|
|
|
//保存列设置
|
|
|
|
[HttpPost]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult SetCols(string SourceID, string List_Cols)
|
|
{
|
|
try
|
|
{
|
|
App.SetCols(SourceID, List_Cols);
|
|
return Content("操作成功。");
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return Content(ex.ToString());
|
|
}
|
|
|
|
}
|
|
|
|
|
|
[HttpGet]
|
|
public ActionResult GetColsVisible(Pagination pagination, string MenuID, string Roles, string Cols)
|
|
{
|
|
try
|
|
{
|
|
DataTable dt = App.GetColsVisible(MenuID, Roles, Cols, ref pagination);
|
|
|
|
|
|
var data = new
|
|
{
|
|
rows = dt,
|
|
total = pagination.total,
|
|
page = pagination.page,
|
|
records = pagination.records
|
|
};
|
|
return Content(data.ToJson());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return Error(ex.ToString());
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
[HttpGet]
|
|
public ActionResult GetRoles()
|
|
{
|
|
try
|
|
{
|
|
DataTable data = App.GetRoles();
|
|
return Content(data.ToJson());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return Error(ex.ToString());
|
|
}
|
|
|
|
}
|
|
|
|
|
|
[HttpGet]
|
|
public ActionResult GetColsFiledName(string MenuID)
|
|
{
|
|
try
|
|
{
|
|
DataTable data = App.GetColsFiledName(MenuID);
|
|
return Content(data.ToJson());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return Error(ex.ToString());
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
[HttpPost]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult SetColsVisibleALL(string Cols, string IsCommon, string MenuID)
|
|
{
|
|
try
|
|
{
|
|
App.SetColsVisibleALL(Cols, IsCommon, MenuID);
|
|
return Content("操作成功。");
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return Content(ex.ToString());
|
|
}
|
|
|
|
}
|
|
|
|
|
|
[HttpPost]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult SetColsVisibleAdd(string Cols, string Roles, string MenuID)
|
|
{
|
|
try
|
|
{
|
|
App.SetColsVisibleAdd(Cols, Roles, MenuID);
|
|
return Content("操作成功。");
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return Content(ex.ToString());
|
|
}
|
|
|
|
}
|
|
|
|
|
|
[HttpPost]
|
|
[HandlerAjaxOnly]
|
|
public ActionResult SetColsVisibleDel(string MenuID, string IDList)
|
|
{
|
|
try
|
|
{
|
|
App.SetColsVisibleDel(MenuID, IDList);
|
|
return Content("操作成功。");
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return Content(ex.ToString());
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
[HttpGet]
|
|
public ActionResult GetHiddenCols(string MenuID, string Cols)
|
|
{
|
|
try
|
|
{
|
|
DataTable data = App.GetHiddenCols(MenuID, Cols);
|
|
return Content(data.ToJson());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return Error(ex.ToString());
|
|
}
|
|
|
|
}
|
|
|
|
[HttpGet]
|
|
public ActionResult Filter()
|
|
{
|
|
return View();
|
|
}
|
|
|
|
[HttpGet]
|
|
public ActionResult DataSource()
|
|
{
|
|
return View();
|
|
}
|
|
|
|
[HttpGet]
|
|
public ActionResult Cols()
|
|
{
|
|
return View();
|
|
}
|
|
|
|
|
|
[HttpGet]
|
|
public ActionResult Condition()
|
|
{
|
|
return View();
|
|
}
|
|
|
|
[HttpGet]
|
|
public ActionResult ColsSelect()
|
|
{
|
|
return View();
|
|
}
|
|
[HttpGet]
|
|
public ActionResult GridHeader()
|
|
{
|
|
return View();
|
|
}
|
|
[HttpGet]
|
|
public ActionResult GridFormat()
|
|
{
|
|
return View();
|
|
}
|
|
[HttpGet]
|
|
public ActionResult WatchPanel()
|
|
{
|
|
return View();
|
|
}
|
|
[HttpGet]
|
|
public ActionResult ColsVisible()
|
|
{
|
|
return View();
|
|
}
|
|
|
|
|
|
}
|
|
}
|