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.
569 lines
32 KiB
569 lines
32 KiB
using KGIS.Framework.DBOperator; |
|
using KGIS.Framework.Maps; |
|
using KGIS.Framework.Platform; |
|
using KGIS.Framework.Platform.Helper; |
|
using KGIS.Framework.Utils; |
|
using KGIS.Framework.Utils.Helper; |
|
using kingo.Plugin.BGResultManager.Interface; |
|
using Kingo.Plugin.BGResultManager.Model; |
|
using Kingo.PluginServiceInterface; |
|
using System; |
|
using System.Collections.Generic; |
|
using System.Data; |
|
using System.IO; |
|
using System.Linq; |
|
|
|
namespace Kingo.Plugin.BGResultManager.Utility |
|
{ |
|
public class ExportHelper : IStatisticExport |
|
{ |
|
public List<ReportEntityClass> GetReportEntityClassList() |
|
{ |
|
List<ReportEntityClass> result = new List<ReportEntityClass>(); |
|
|
|
result = new List<ReportEntityClass>(); |
|
|
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.TDLYXZYJFLMJHZB, Name = "土地利用现状一级分类面积汇总表", TempalateFileName = "土地利用现状一级分类面积汇总表" }); |
|
//result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.LDTDLYXZYJFLMJHZB, Name = "土地利用现状一级分类面积汇总表", TempalateFileName = "土地利用现状一级分类面积汇总表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.HDTDLYXZYJFLMJHZB, Name = "海岛土地利用现状一级分类面积汇总表", TempalateFileName = "海岛土地利用现状一级分类面积汇总表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.FRDTDLYXZYJFLMJHZB, Name = "飞入地土地利用现状一级分类面积汇总表", TempalateFileName = "飞入地土地利用现状一级分类面积汇总表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.TDLYXZEJFLMJHZB, Name = "土地利用现状分类面积汇总表", TempalateFileName = "土地利用现状分类面积汇总表" }); |
|
//result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.LDTDLYXZEJFLMJHZB, Name = "土地利用现状分类面积汇总表", TempalateFileName = "土地利用现状分类面积汇总表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.HDTDLYXZEJFLMJHZB, Name = "海岛土地利用现状分类面积汇总表", TempalateFileName = "海岛土地利用现状分类面积汇总表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.FRDTDLYXZEJFLMJHZB, Name = "飞入地土地利用现状分类面积汇总表", TempalateFileName = "飞入地土地利用现状分类面积汇总表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.TDLYXZYJFLMJAQSXZHZB, Name = "土地利用现状一级分类面积按权属性质汇总表", TempalateFileName = "土地利用现状一级分类面积按权属性质汇总表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.FRDTDLYXZYJFLMJAQSXZHZB, Name = "飞入地土地利用现状一级分类面积按权属性质汇总表", TempalateFileName = "飞入地土地利用现状一级分类面积按权属性质汇总表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.CZCJGKYDMJHZB, Name = "城镇村及工矿用地面积汇总表", TempalateFileName = "城镇村及工矿用地面积汇总表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.FRDCZCJGKYDMJHZB, Name = "飞入地城镇村及工矿用地面积汇总表", TempalateFileName = "飞入地城镇村及工矿用地面积汇总表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.GDPDFJMJHZB, Name = "耕地坡度分级面积汇总表", TempalateFileName = "耕地坡度分级面积汇总表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.GDZZLXMJTJB, Name = "耕地种植类型面积统计表", TempalateFileName = "耕地种植类型面积统计表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.LXFWNYDHZTJB, Name = "林区范围内种植园用地汇总统计表", TempalateFileName = "林区范围内种植园用地汇总统计表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.GCCDXSCDHZQKTJB, Name = "灌丛草地汇总情况统计表", TempalateFileName = "灌丛草地汇总情况统计表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.GYYDALXHZTJB, Name = "工业用地按类型汇总统计表", TempalateFileName = "工业用地按类型汇总统计表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.KTZDLMJHZB, Name = "可调整地类面积汇总表", TempalateFileName = "可调整地类面积汇总表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.BFXHDLMJHZB, Name = "部分细化地类面积汇总表", TempalateFileName = "部分细化地类面积汇总表" }); |
|
//result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.SDDCMJTJB, Name = "湿地调查面积统计表", TempalateFileName = "湿地调查面积统计表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.GDXHDCQKTJB, Name = "耕地细化调查情况统计表", TempalateFileName = "耕地细化调查情况统计表" }); |
|
|
|
|
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.PZWJSDJSYDYTQKTJB, Name = "批准未建设的建设用地用途情况统计表", TempalateFileName = "批准未建设的建设用地用途情况统计表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.PZWJSDJSYDXZQKTJB, Name = "批准未建设的建设用地现状情况统计表", TempalateFileName = "批准未建设的建设用地现状情况统计表" }); |
|
|
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.DSCGTDCYGQKTJB, Name = "第三次全国国土调查有关情况统计表(生空模板)", TempalateFileName = "第三次全国国土调查有关情况统计表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.QSDWDMB, Name = "权属单位代码表", TempalateFileName = "权属单位代码表" }); |
|
//result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.TDDCJLB, Name = "土地调查记录表(生空模板)", TempalateFileName = "土地调查记录表" }); |
|
//result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.YFTKXSCSB, Name = "样方田坎系数测算表(生空模板)", TempalateFileName = "样方田坎系数测算表" }); |
|
//result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.KCXS, Name = "田坎系数(生空模板)", TempalateFileName = "田坎系数" }); |
|
//白明雅 2018-12-03 |
|
|
|
// 王靖 2019-01-24 |
|
//result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.YFTKXSCS, Name = "样方田坎系数测算表", TempalateFileName = "样方田坎系数测算表" }); |
|
//result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.TKXS, Name = "田坎系数", TempalateFileName = "田坎系数" }); |
|
//----------------------------------- |
|
|
|
//霍岩 2019-02-22 添加永久基本农田现状情况统计表 |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.YJJBNTXZQKTJB, Name = "永久基本农田现状情况统计表", TempalateFileName = "永久基本农田现状情况统计表" }); |
|
//霍岩 2019-04-02 添加无居民海岛统计表 |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.WJMHDTJB, Name = "无居民海岛现状调查分类面积汇总表", TempalateFileName = "无居民海岛现状调查分类面积汇总表" }); |
|
//霍岩 2019-04-03 添加即可恢复与工程恢复种植属性汇总统计表 |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.JKHFGCHFZZTJB, Name = "即可恢复与工程恢复种植属性汇总统计表", TempalateFileName = "即可恢复与工程恢复种植属性汇总统计表" }); |
|
//霍岩 2019-04-03 添加废弃细化标注汇总统计表 |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.FQXHBZTJB, Name = "废弃与垃圾填埋细化标注汇总统计表", TempalateFileName = "废弃与垃圾填埋细化标注汇总统计表" }); |
|
return result; |
|
} |
|
/// <summary> |
|
/// 文字输出报表列 |
|
/// </summary> |
|
/// <returns></returns> |
|
/// 白明雅 2018-12-03 |
|
public List<ReportEntityClass> GetReportlanguageOutEntityClassList() |
|
{ |
|
List<ReportEntityClass> result = new List<ReportEntityClass>(); |
|
|
|
result = new List<ReportEntityClass>(); |
|
|
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.GTDCGZBG, Name = "第三次国土调查工作报告", TempalateFileName = "第三次国土调查工作报告" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.GTDCJSBG, Name = "第三次国土调查技术报告", TempalateFileName = "第三次国土调查技术报告" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.GTDCSJKJSBG, Name = "第三次国土调查数据库建设报告", TempalateFileName = "第三次国土调查数据库建设报告" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.GTDCCGFXBG, Name = "第三次国土调查成果分析报告", TempalateFileName = "第三次国土调查成果分析报告" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.CZCZTDLYXZFXBG, Name = "城镇村庄土地利用状况分析报告", TempalateFileName = "城镇村庄土地利用状况分析报告" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.TDDCSJKZLJCBG, Name = "第三次国土调查数据库质量检查报告", TempalateFileName = "第三次国土调查数据库质量检查报告" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.ZXDCCGBG, Name = "专项调查成果报告", TempalateFileName = "专项调查成果报告" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.HDDCCGBG, Name = "海岛调查成果报告", TempalateFileName = "海岛调查成果报告" }); |
|
|
|
return result; |
|
} |
|
/// <summary> |
|
/// 增量管理导出列表 王欢 2018-12-03 |
|
/// </summary> |
|
/// <returns></returns> |
|
public List<ReportEntityClass> GetReportEntityZLGLClassList() |
|
{ |
|
List<ReportEntityClass> result = new List<ReportEntityClass>(); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.土地变更一览表, Name = "土地变更一览表", TempalateFileName = "土地变更一览表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.土地利用现状变更表, Name = "土地利用现状变更表", TempalateFileName = "土地利用现状变更表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.土地利用现状一级分类面积按权属性质变化统计表, Name = "土地利用现状一级分类面积按权属性质变化统计表", TempalateFileName = "土地利用现状一级分类面积按权属性质变化统计表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.土地利用现状二级分类面积按权属性质变化统计表, Name = "土地利用现状二级分类面积按权属性质变化统计表", TempalateFileName = "土地利用现状二级分类面积按权属性质变化统计表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.城镇村及工矿用地面积变化统计表, Name = "城镇村及工矿用地面积变化统计表", TempalateFileName = "城镇村及工矿用地面积变化统计表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.城市内部土地利用变化统计表, Name = "城市内部土地利用变化统计表", TempalateFileName = "城市内部土地利用变化统计表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.建制镇内部土地利用变化统计表, Name = "建制镇内部土地利用现状表", TempalateFileName = "建制镇内部土地利用现状表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.村庄内部土地利用变化统计表, Name = "村庄内部土地利用变化统计表", TempalateFileName = "村庄内部土地利用变化统计表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.工矿用地内部土地利用变化统计表, Name = "工矿用地内部土地利用变化统计表", TempalateFileName = "工矿用地内部土地利用变化统计表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.特殊用地内部土地利用变化统计表, Name = "特殊用地内部土地利用变化统计表", TempalateFileName = "特殊用地内部土地利用变化统计表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.耕地坡度分级面积变化统计表, Name = "耕地坡度分级面积变化统计表", TempalateFileName = "耕地坡度分级面积变化统计表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.耕地种植类型面积变化统计表, Name = "耕地种植类型面积变化统计表", TempalateFileName = "耕地种植类型面积变化统计表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.林区范围内园地变化统计表, Name = "林区范围内园地变化统计表", TempalateFileName = "林区范围内园地变化统计表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.灌丛草地汇总情况变化统计表, Name = "灌丛草地汇总情况变化统计表", TempalateFileName = "灌丛草地汇总情况变化统计表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.工业用地按类型汇总变化统计表, Name = "工业用地按类型汇总变化统计表", TempalateFileName = "工业用地按类型汇总变化统计表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.可调整地类面积变化统计表, Name = "可调整地类面积变化统计表", TempalateFileName = "可调整地类面积变化统计表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.部分细化地类面积变化统计表, Name = "部分细化地类面积变化统计表", TempalateFileName = "部分细化地类面积变化统计表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.废弃与垃圾填埋细化标注变化统计表, Name = "废弃与垃圾填埋细化标注变化统计表", TempalateFileName = "废弃与垃圾填埋细化标注变化统计表" }); |
|
result.Add(new ReportEntityClass() { ReportType = ReportTypeEnum.三大类土地利用现状变更表, Name = "三大类土地利用现状变更表", TempalateFileName = "三大类土地利用现状变更表" }); |
|
return result; |
|
} |
|
public List<XZQTreeNode> TreeList |
|
{ |
|
get |
|
{ |
|
List<DataDicTionary> dicList = Platform.Instance.DicHelper.GetDic(DicTypeEnum.QSDM, true); |
|
if (dicList == null) |
|
return null; |
|
return GetTree(dicList); |
|
} |
|
} |
|
#region 构造复选TreeView 王欢 2018-09-29 |
|
public List<XZQTreeNode> CheckBoxTreeList |
|
{ |
|
get |
|
{ |
|
//List<DataDicTionary> dicList = DicAPI.GetDic(DicTypeEnum.QSDM, true); |
|
//if (dicList == null) |
|
// return null; |
|
//return GetTreeParent(dicList); |
|
List<XZQTreeNode> XZQTreeNodeList = new List<XZQTreeNode>(); |
|
List<BasicDataModel> dicList = null;// Env.Instance.Platfrom.BasicData.GetXZQDic(1).ToList(); |
|
List<BasicDataModel> dicList2 = null;//Env.Instance.Platfrom.BasicData.GetXZQDicQC(2, true).ToList(); |
|
foreach (var item in dicList) |
|
{ |
|
XZQTreeNode tvi = new XZQTreeNode(); |
|
tvi.XZQDM = item.Code; |
|
tvi.XZQMC = item.Name; |
|
tvi.Tag = item; |
|
tvi.IsChecked = true; |
|
tvi.GroupName = "XZQ"; |
|
foreach (var item2 in dicList2.Where(x => x.Code.Substring(0, 6) == item.Code)) |
|
{ |
|
XZQTreeNode tvi2 = new XZQTreeNode(); |
|
tvi2.XZQDM = item2.Code; |
|
tvi2.XZQMC = item2.Name; |
|
tvi2.Tag = item2; |
|
tvi2.IsChecked = true; |
|
tvi2.GroupName = "XZQ"; |
|
//Bug-16276 霍岩 2019-07-01 子节点的父级属性赋值 |
|
tvi2.Parent = tvi; |
|
tvi.Nodes.Add(tvi2); |
|
} |
|
XZQTreeNodeList.Add(tvi); |
|
} |
|
return XZQTreeNodeList; |
|
} |
|
} |
|
|
|
|
|
private List<XZQTreeNode> GetTreeParent(List<DataDicTionary> dicList) |
|
{ |
|
try |
|
{ |
|
|
|
var list = new List<XZQTreeNode>(); |
|
|
|
foreach (DataDicTionary item in dicList) |
|
{ |
|
if (item.CODE.Length < 6 || item.CODE.Length > 12) |
|
{ |
|
if (item.SubDic != null && item.SubDic.Count > 0) |
|
{ |
|
list.AddRange(GetTreeParent(item.SubDic)); |
|
} |
|
continue; |
|
} |
|
XZQTreeNode tvi = new XZQTreeNode(); |
|
tvi.XZQDM = item.CODE; |
|
tvi.XZQMC = item.NAME; |
|
tvi.Tag = item; |
|
tvi.GroupName = "XZQ"; |
|
list.Add(tvi); |
|
RecursiveAddChildren(tvi, item.SubDic); |
|
tvi.IsExpanded = true; |
|
} |
|
list = list.OrderBy(x => x.XH).ToList(); |
|
return list; |
|
|
|
} |
|
catch (Exception ex) |
|
{ |
|
LogAPI.Debug(ex); |
|
} |
|
return null; |
|
} |
|
private XZQTreeNode RecursiveAddChildren(XZQTreeNode parent, List<DataDicTionary> dicList) |
|
{ |
|
try |
|
{ |
|
//王欢 2018-12-11 系统日志报错问题 |
|
if (dicList == null) |
|
{ |
|
return null; |
|
} |
|
//parent.Nodes = new List<XZQTreeNode>(); |
|
foreach (DataDicTionary item in dicList) |
|
{ |
|
if (item == null) |
|
{ |
|
continue; |
|
} |
|
if (item.CODE.Length < 6 || item.CODE.Length > 12) |
|
{ |
|
continue; |
|
} |
|
XZQTreeNode tvi = new XZQTreeNode(); |
|
tvi.XZQDM = item.CODE; |
|
tvi.XZQMC = item.NAME; |
|
tvi.Tag = item; |
|
tvi.GroupName = "XZQ"; |
|
tvi.Parent = parent; |
|
parent.Nodes.Add(tvi); |
|
RecursiveAddChildren(tvi, item.SubDic); |
|
tvi.IsExpanded = true; |
|
|
|
} |
|
return parent; |
|
} |
|
catch (Exception ex) |
|
{ |
|
LogAPI.Debug(ex); |
|
} |
|
return null; |
|
} |
|
#endregion |
|
private List<XZQTreeNode> GetTree(List<DataDicTionary> dicList) |
|
{ |
|
try |
|
{ |
|
if (dicList == null) |
|
return null; |
|
List<XZQTreeNode> result = new List<XZQTreeNode>(); |
|
foreach (DataDicTionary dic in dicList) |
|
{ |
|
if (dic.CODE.Length < 6 || dic.CODE.Length > 12) |
|
{ |
|
if (dic.SubDic != null && dic.SubDic.Count > 0) |
|
{ |
|
result.AddRange(GetTree(dic.SubDic)); |
|
} |
|
continue; |
|
} |
|
var n1 = new XZQTreeNode(); |
|
n1.XZQDM = dic.CODE; |
|
n1.XZQMC = dic.NAME; |
|
n1.Tag = dic; |
|
n1.GroupName = "XZQ"; |
|
result.Add(n1); |
|
if (dic.SubDic != null && dic.SubDic.Count > 0) |
|
{ |
|
n1.Nodes = GetTree(dic.SubDic); |
|
} |
|
if (n1.XZQDM.Length == 6) |
|
{ |
|
n1.IsExpanded = true; |
|
} |
|
} |
|
result = result.OrderBy(x => x.XH).ToList(); |
|
return result; |
|
} |
|
catch (Exception ex) |
|
{ |
|
LogAPI.Debug(ex); |
|
} |
|
return null; |
|
} |
|
|
|
public ReportEntityClass GetReportEntityClass(ReportTypeEnum re) |
|
{ |
|
var relist = GetReportEntityClassList(); |
|
return relist.FirstOrDefault(x => x.ReportType == re); |
|
} |
|
public ReportEntityClass GetWordReportEntityClass(ReportTypeEnum re) |
|
{ |
|
var relist = GetReportlanguageOutEntityClassList(); |
|
return relist.FirstOrDefault(x => x.ReportType == re); |
|
} |
|
|
|
|
|
|
|
public void Export(ReportTypeEnum re) |
|
{ |
|
IRDBHelper dbHelper = null; |
|
try |
|
{ |
|
if (string.IsNullOrWhiteSpace((MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo).CODE)) |
|
{ |
|
MessageHelper.Show("县行政区划代码不能为空,请在工程属性界面中填写6位县区划代码!"); |
|
return; |
|
} |
|
int validateType = 0; |
|
string connStr = SysConfigsOprator.GetDBConnectionByName("MDBOledbConnection"); |
|
string SourcePath = string.Format(connStr, (MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo).GetProjFilePath(), "dic.mdb"); |
|
//创建数据库连接 |
|
dbHelper = RDBFactory.CreateDbHelper(SourcePath, DatabaseType.MSAccess); |
|
|
|
//第一步:首先判断是否已经缓存过表 |
|
if (re != ReportTypeEnum.YJJBNTXZQKTJB) |
|
{ |
|
string cjhzsqlsql = "select sum(TBZMJ) from MJHZJCTJB "; |
|
DataTable cjmjhzdt = null; |
|
try |
|
{ |
|
cjmjhzdt = dbHelper.ExecuteDatatable("cjmjhz", cjhzsqlsql, true); |
|
} |
|
catch |
|
{ |
|
} |
|
//if (cjmjhzdt == null || cjmjhzdt.Rows.Count == 0 || cjmjhzdt.Rows[0][0].ToDecimal(2) != (Env.Instance.Project.LDKZMJ2 + Env.Instance.Project.HDKZMJ2).ToDecimal(2)) |
|
//{ |
|
// MessageHelper.Show("请先进行数据汇总!"); |
|
// return; |
|
//} |
|
} |
|
ProgressHelper.ShowProcessBar("正在导出..."); |
|
|
|
StatisticalReportClass reportClass = new StatisticalReportClass(); |
|
reportClass.MjConvertValue = 1; |
|
if (reportClass.MjConvertValue == 1) |
|
{ |
|
reportClass.ReportFileType = ReportFileTypeEnum.DBGQ; |
|
} |
|
else |
|
{ |
|
reportClass.ReportFileType = ReportFileTypeEnum.DBM; |
|
} |
|
string savepath = "temp\\export"; |
|
if (!System.IO.Directory.Exists(savepath)) |
|
{ |
|
System.IO.Directory.CreateDirectory(savepath); |
|
} |
|
ReportEntityClass reportEntity = GetReportEntityClass(re); |
|
//Bug-13390 霍岩 2018-12-17 添加原路径文件名前加六位县行政区代码 |
|
string saveCurrentPath = savepath + "\\" + string.Format("({0})", (MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo).CODE) + reportEntity.TempalateFileName + ".xlsx"; |
|
if (TreeList != null) |
|
{ |
|
reportEntity.XZQTreeNode = TreeList[0]; |
|
} |
|
bool isRst = reportClass.Export(saveCurrentPath, dbHelper, reportEntity); |
|
ProgressHelper.CloseProcessBar(); |
|
if (isRst) |
|
{ |
|
//启动主程序 |
|
System.Diagnostics.Process.Start(saveCurrentPath); |
|
//MessageBox.Show("导出完成!"); |
|
} |
|
else |
|
{ |
|
MessageHelper.ShowError("导出失败!"); |
|
} |
|
|
|
} |
|
catch (Exception ex) |
|
{ |
|
ProgressHelper.CloseProcessBar(); |
|
MessageHelper.ShowError("导出失败!"); |
|
LogAPI.Debug("导出失败:" + ex); |
|
} |
|
finally |
|
{ |
|
ProgressHelper.CloseProcessBar(); |
|
if (dbHelper != null) |
|
dbHelper.DisConnect(); |
|
} |
|
} |
|
#region IStatisticExport接口实现 |
|
public string OutPath |
|
{ |
|
get; |
|
set; |
|
} |
|
|
|
public ReportFileTypeEnum AreaUnit |
|
{ |
|
get; |
|
set; |
|
} |
|
ReportFileTypeEnum IStatisticExport.AreaUnit { get; set; } |
|
|
|
public void ExportReport(ReportTypeEnum pReportType) |
|
{ |
|
IRDBHelper dbHelper = null; |
|
try |
|
{ |
|
//RegionAuthorize regionAuthorize = new RegionAuthorize(); |
|
int validateType = 0; |
|
//if (!regionAuthorize.ValidateAuthorizeByXZQDM(ref validateType)) |
|
//{ |
|
// if (validateType.Equals(1)) |
|
// { |
|
// MessageHelper.ShowError("地类图斑数据区域授权未通过"); |
|
// } |
|
// else if (validateType.Equals(2)) |
|
// { |
|
// MessageHelper.ShowError("行政区数据区域授权未通过"); |
|
// } |
|
// else |
|
// { |
|
// MessageHelper.ShowError("区域授权验证失败"); |
|
// } |
|
// return; |
|
//} |
|
string connStr = SysConfigsOprator.GetDBConnectionByName("MDBOledbConnection"); |
|
string SourcePath = "";// string.Format(connStr, Env.Instance.Project.GetProjMDBPath()); |
|
//创建数据库连接 |
|
dbHelper = RDBFactory.CreateDbHelper(SourcePath, DatabaseType.MSAccess); |
|
|
|
//第一步:首先判断是否已经缓存过表 |
|
string cjhzsqlsql = "select sum(TBZMJ) from MJHZJCTJB "; |
|
DataTable cjmjhzdt = null; |
|
try |
|
{ |
|
cjmjhzdt = dbHelper.ExecuteDatatable("cjmjhz", cjhzsqlsql, true); |
|
} |
|
catch |
|
{ |
|
} |
|
//if (cjmjhzdt == null || cjmjhzdt.Rows.Count == 0 || cjmjhzdt.Rows[0][0].ToDecimal(2) != (Env.Instance.Project.LDKZMJ2 + Env.Instance.Project.HDKZMJ2).ToDecimal(2)) |
|
//{ |
|
// //MessageBox.Show("请先进行数据汇总!"); |
|
// LogAPI.Debug("请先进行数据汇总!"); |
|
// return; |
|
//} |
|
StatisticalReportClass reportClass = new StatisticalReportClass(); |
|
reportClass.ReportFileType = AreaUnit; |
|
|
|
ReportEntityClass reportEntity = GetReportEntityClass(pReportType); |
|
string saveCurrentPath = OutPath + ".xlsx"; |
|
if (TreeList != null) |
|
{ |
|
reportEntity.XZQTreeNode = TreeList[0]; |
|
} |
|
bool isRst = reportClass.Export(saveCurrentPath, dbHelper, reportEntity); |
|
//ProgressHelper.CloseProcessBar(); |
|
|
|
} |
|
catch (Exception ex) |
|
{ |
|
//ProgressHelper.CloseProcessBar(); |
|
//MessageBox.Show("导出失败!"); |
|
LogAPI.Debug("导出失败:" + ex); |
|
} |
|
finally |
|
{ |
|
//ProgressHelper.CloseProcessBar(); |
|
if (dbHelper != null) |
|
dbHelper.DisConnect(); |
|
} |
|
} |
|
|
|
public void ExportWordReport(ReportTypeEnum pReportType) |
|
{ |
|
IRDBHelper dbHelper = null; |
|
try |
|
{ |
|
StatisticalReportClass reportClass = new StatisticalReportClass(); |
|
reportClass.ReportFileType = AreaUnit; |
|
|
|
ReportEntityClass reportEntity = GetWordReportEntityClass(pReportType); |
|
string saveCurrentPath = OutPath + ".docx"; |
|
if (TreeList != null) |
|
{ |
|
reportEntity.XZQTreeNode = TreeList[0]; |
|
} |
|
bool isRst = reportClass.Export(saveCurrentPath, dbHelper, reportEntity, new System.Collections.Hashtable()); |
|
//ProgressHelper.CloseProcessBar(); |
|
|
|
} |
|
catch (Exception ex) |
|
{ |
|
//ProgressHelper.CloseProcessBar(); |
|
//MessageBox.Show("导出失败!"); |
|
LogAPI.Debug("导出失败:" + ex); |
|
} |
|
finally |
|
{ |
|
//ProgressHelper.CloseProcessBar(); |
|
if (dbHelper != null) |
|
dbHelper.DisConnect(); |
|
} |
|
} |
|
|
|
public void ExportBGNMKReport(ReportTypeEnum pReportType, string sNMKMDBPath) |
|
{ |
|
IRDBHelper dbHelper = null; |
|
try |
|
{ |
|
string connStr = SysConfigsOprator.GetDBConnectionByName("MDBOledbConnection"); |
|
string sBGNMK_HZPCResults_MDBPath = sNMKMDBPath; |
|
|
|
if (System.IO.File.Exists(sBGNMK_HZPCResults_MDBPath) == false) |
|
{ |
|
MessageHelper.ShowError("未能找到变更年末库汇总平差结果,故汇总表格导出失败"); |
|
return; |
|
} |
|
|
|
string SourcePath = string.Format(connStr, sBGNMK_HZPCResults_MDBPath); |
|
//创建数据库连接 |
|
dbHelper = RDBFactory.CreateDbHelper(SourcePath, DatabaseType.SQLite); |
|
|
|
//第一步:首先判断是否已经缓存过表 |
|
string cjhzsqlsql = "select sum(TBZMJ) from MJHZJCTJB "; |
|
DataTable cjmjhzdt = null; |
|
try |
|
{ |
|
cjmjhzdt = dbHelper.ExecuteDatatable("cjmjhz", cjhzsqlsql, true); |
|
} |
|
catch |
|
{ |
|
} |
|
//if (cjmjhzdt == null || cjmjhzdt.Rows.Count == 0 || cjmjhzdt.Rows[0][0].ToDecimal(2) != (Env.Instance.Project.LDKZMJ2 + Env.Instance.Project.HDKZMJ2).ToDecimal(2)) |
|
//{ |
|
// //MessageBox.Show("请先进行数据汇总!"); |
|
// LogAPI.Debug("请先进行数据汇总!"); |
|
// return; |
|
//} |
|
StatisticalReportClass reportClass = new StatisticalReportClass(); |
|
reportClass.ReportFileType = AreaUnit; |
|
|
|
ReportEntityClass reportEntity = GetReportEntityClass(pReportType); |
|
string saveCurrentPath = OutPath + ".xlsx"; |
|
if (TreeList != null) |
|
{ |
|
reportEntity.XZQTreeNode = TreeList[0]; |
|
} |
|
bool isRst = reportClass.Export(saveCurrentPath, dbHelper, reportEntity, sBGNMK_HZPCResults_MDBPath); |
|
//ProgressHelper.CloseProcessBar(); |
|
} |
|
catch (Exception ex) |
|
{ |
|
//ProgressHelper.CloseProcessBar(); |
|
//MessageBox.Show("导出失败!"); |
|
LogAPI.Debug("导出失败:" + ex); |
|
} |
|
finally |
|
{ |
|
//ProgressHelper.CloseProcessBar(); |
|
if (dbHelper != null) |
|
dbHelper.DisConnect(); |
|
} |
|
} |
|
|
|
|
|
#endregion |
|
} |
|
}
|
|
|