|
|
|
|
using ESRI.ArcGIS.Controls;
|
|
|
|
|
using ESRI.ArcGIS.Geodatabase;
|
|
|
|
|
using KGIS.Framework.AE;
|
|
|
|
|
using KGIS.Framework.AE.Enum;
|
|
|
|
|
using KGIS.Framework.Commands;
|
|
|
|
|
using KGIS.Framework.Maps;
|
|
|
|
|
using KGIS.Framework.Utils;
|
|
|
|
|
using KGIS.Framework.Utils.ExtensionMethod;
|
|
|
|
|
using KGIS.Framework.Utils.Helper;
|
|
|
|
|
using Kingo.Plugin.BGResultManager.View;
|
|
|
|
|
using Kingo.PluginServiceInterface;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Runtime.InteropServices;
|
|
|
|
|
|
|
|
|
|
namespace kingo.Plugin.BGResultManager.Commands
|
|
|
|
|
{
|
|
|
|
|
public class BGNMKResultExportCommand : BaseMenuCommand
|
|
|
|
|
{
|
|
|
|
|
private IHookHelper m_hookHelper = null;
|
|
|
|
|
|
|
|
|
|
public override void OnCreate(object hook)
|
|
|
|
|
{
|
|
|
|
|
if (hook == null)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
if (m_hookHelper == null)
|
|
|
|
|
{
|
|
|
|
|
m_hookHelper = new HookHelperClass();
|
|
|
|
|
m_hookHelper.Hook = hook;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch
|
|
|
|
|
{
|
|
|
|
|
m_hookHelper = null;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
public override void OnClick()
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
GetMJInfo();
|
|
|
|
|
if ((((MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo).DCMJ + (MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo).DCMJHD) * 0.0001).ToDecimal(2) <= 0)
|
|
|
|
|
{
|
|
|
|
|
MessageHelper.ShowTips("控制面积错误,故导出失败!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
//if ((MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo).ISHD)
|
|
|
|
|
//{
|
|
|
|
|
// if ((MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo).DCMJ2 <= 0 && (MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo).DCMJHD2 <= 0)
|
|
|
|
|
// {
|
|
|
|
|
// MessageHelper.ShowTips("错误的陆地控制面积或者海岛控制面积,故导出失败!");
|
|
|
|
|
// return;
|
|
|
|
|
// }
|
|
|
|
|
//}
|
|
|
|
|
FrmResultsExportForTheBGNMK frm = new FrmResultsExportForTheBGNMK();
|
|
|
|
|
frm.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;
|
|
|
|
|
frm.ShowInMainWindow();
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogAPI.Debug("年末库导出失败" + ex.Message);
|
|
|
|
|
MessageHelper.ShowError("年末库导出失败,可能的原因是:" + ex.Message);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
public void GetMJInfo()
|
|
|
|
|
{
|
|
|
|
|
double dDCMJ_LD = 0;
|
|
|
|
|
double dDCMJ_HD = 0;
|
|
|
|
|
decimal dLDKZMJ2 = 0;
|
|
|
|
|
decimal dHDKZMJ2 = 0;
|
|
|
|
|
ICursor pCur = null;
|
|
|
|
|
string connStr = (MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo).GetProjFilePath();
|
|
|
|
|
IWorkspaceAPI s_WsAPI = null;
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
s_WsAPI = new WorkspaceAPI(connStr, WorkspaceTypeEnum.GDBFile);
|
|
|
|
|
//获取基础mdb中的tbmj之和
|
|
|
|
|
IQueryDef pQDef = (s_WsAPI.CurrentWorkspace as IFeatureWorkspace).CreateQueryDef();
|
|
|
|
|
pQDef.Tables = "jc_dltb";
|
|
|
|
|
pQDef.WhereClause = "mssm='00'";
|
|
|
|
|
pQDef.SubFields = "sum(TBMJ)";
|
|
|
|
|
pCur = pQDef.Evaluate();
|
|
|
|
|
IRow pRow = pCur.NextRow();
|
|
|
|
|
if (pRow != null)
|
|
|
|
|
{
|
|
|
|
|
dDCMJ_LD = pRow.get_Value(0).ToString().ToDouble(2);
|
|
|
|
|
}
|
|
|
|
|
Marshal.ReleaseComObject(pCur);
|
|
|
|
|
pQDef.Tables = "jc_dltb";
|
|
|
|
|
pQDef.WhereClause = "mssm='01'";
|
|
|
|
|
pQDef.SubFields = "sum(TBMJ)";
|
|
|
|
|
pCur = pQDef.Evaluate();
|
|
|
|
|
pRow = pCur.NextRow();
|
|
|
|
|
if (pRow != null)
|
|
|
|
|
{
|
|
|
|
|
dDCMJ_HD = pRow.get_Value(0).ToString().ToDouble(2);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
dLDKZMJ2 = (decimal)dDCMJ_LD * (decimal)0.0001;
|
|
|
|
|
dLDKZMJ2 = Math.Round(dLDKZMJ2, 2, MidpointRounding.AwayFromZero);
|
|
|
|
|
|
|
|
|
|
dHDKZMJ2 = (decimal)dDCMJ_HD * (decimal)0.0001;
|
|
|
|
|
dHDKZMJ2 = Math.Round(dHDKZMJ2, 2, MidpointRounding.AwayFromZero);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo).DCMJ = dDCMJ_LD;
|
|
|
|
|
(MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo).DCMJHD = dDCMJ_HD;
|
|
|
|
|
//(MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo).ISHD = dDCMJ_HD > 0 ? true : false;
|
|
|
|
|
//(MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo).LDKZMJ2 = dLDKZMJ2;
|
|
|
|
|
//(MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo).HDKZMJ2 = dHDKZMJ2;
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogAPI.Debug("获取面积失败,异常原因: " + ex + " ; ");
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
if (s_WsAPI != null)
|
|
|
|
|
{
|
|
|
|
|
s_WsAPI.CloseWorkspace();
|
|
|
|
|
}
|
|
|
|
|
if (pCur != null)
|
|
|
|
|
{
|
|
|
|
|
Marshal.ReleaseComObject(pCur);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
public override bool Enabled
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
ProjectInfo pTemp = (MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo);
|
|
|
|
|
if (pTemp == null)
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (string.IsNullOrWhiteSpace(pTemp.GetProjFilePath()))
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|