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; } } } } } }