常用方法

 #region 双击定位方法
        /// <summary>
        /// 单击定位方法
        /// </summary>
        /// <param name="iRow"></param>
        public static void LocateFeat(GridView gridView, string strFeaLyrName, int iRow)
        {
            string strXbUID = gridView.GetRowCellValue(iRow, "PK_UID").ToString().Trim();
            //取得图层
            IFeatureLayer pXbLyr = Form_YZLYSGL.GetFeaLyr(strFeaLyrName);
            if (pXbLyr == null)
            {
                return;
            }
            //通过FeatureLayer的FeatureClass属性得到FeatureClass对象
            IFeatureClass pFeaCls = pXbLyr.FeatureClass;

            //传入QueryFilter过滤条件
            IQueryFilter pQue = new QueryFilter();
            pQue.WhereString = "PK_UID='" + strXbUID + "'";

            //通过FeatureClass对象的 GetEntity<T>(IQueryFilter queryFilter)方法返回RowBase对象
            RowBase pRow = pFeaCls.GetEntity<RowBase>(pQue);
            if (pRow == null)
            {
                ForeStar.CoreUI.Message.MessageManager.Show("没有查询到小班", "提示!");
                return;
            }
            //定义包络矩形对象
            IEnvelope pEnv = null;
            int iOID = 0;
            if (pRow is IFeature)
            {
                iOID = (pRow as IFeature).OID; //IFeature,RowBase都继承自IRow,记录一行记录。此处父类——子类
                pEnv = (pRow as IFeature).ShapeCopy.Envelope;
            }
            else
            {
                iOID = pRow.GetValue<int>(pFeaCls.OIDFieldName);
                //将IFeatureClass的对象ShapeCopy属性返回的IGeometry对象的Envelope属性返回的Envelope对象传给pEnv对象
                pEnv = pFeaCls.GetFeature(iOID).ShapeCopy.Envelope;

            }

            //定义当前系统的IMapControl控件为pMapControl对象
            IMapControl pMapControl = ForeStar.Core.ServiceLocator.ServiceLocatorFactory.ServiceLocator.
                GetInstance<IMapControl>(ForeStar.Core.ServiceLocator.ServiceLocatorKeys.MapControl);

            //定义IMap对象并实例化
            IMap pMap = pMapControl.ActiveView.FocusMap;

            //更改小班面图层的显示范围
            //IEnvelope pNewEnv = XYTableDeclare.ExpandEnvelope2(pEnv, 5);
            //pMap.ZoomGeometry(pNewEnv);

            //将地图文档中各图层依据pEnv进行缩放
            pMap.ZoomGeometry(pEnv);

            //将选定的(pFeaCls.OIDFieldName + "=" + iOID)以SelectionResultNew的形式显示
            IQueryFilter pSelectFilter = new QueryFilter();
            pSelectFilter.WhereString = pFeaCls.OIDFieldName + "=" + iOID;
            pXbLyr.SelectFeatures(pSelectFilter, SelectionResultType.SelectionResultNew, true);
        }
        #endregion




   #region 获取小班FeatureLayer
        /// <summary>
        /// 获取小班FeatureLayer
        /// </summary>
        /// <returns></returns>
        public static IFeatureLayer GetFeaLyr(string strFeaLyrName)
        {
            IMapControl pMapControl = ForeStar.Core.ServiceLocator.ServiceLocatorFactory.
                ServiceLocator.GetInstance<IMapControl>(ForeStar.Core.ServiceLocator.ServiceLocatorKeys.MapControl);
            IMap pMap = pMapControl.ActiveView.FocusMap;
            for (int i = 0; i < pMap.LayerCount; i++)
            {
                ILayer pLyr = pMap.GetLayer(i);
                if (pLyr is IFeatureLayer)
                {
                    IFeatureLayer pFeaLyr = pLyr as IFeatureLayer;
                    if (pFeaLyr.Name == strFeaLyrName)

                        return pFeaLyr;
                }
            }
            return null;
        }
        #endregion



 #region 获取某GridControl中选择的小班个数
        /// <summary>
        /// 获取某GridControl中选择的小班个数
        /// </summary>
        /// <returns></returns>
        public static int GetCheckBoxNum(GridControlClass gridcontrol)
        {
            int i = 0;
            List<RowBase> lstGridCheck = gridcontrol.DataSource as List<RowBase>;
            if (lstGridCheck != null && lstGridCheck.Count > 0)
            {
                foreach (var item in lstGridCheck)
                {
                    bool select = item.GetValue<bool>("SHOWCHECKBOX");
                    if (select)
                    {
                        i++;
                    }
                }
            }
            return i;
        }
        #endregion



  #region 返回某GridControl字段值(IList)
        /// <summary>
        /// 返回某GridControl字段值(IList)
        /// </summary>
        /// <returns></returns>
        public static IList<string> GetGridControlfieldValue(GridControlClass GridControl, string fieldName)
        {
            IList<string> listYSXB = new List<string>();

            List<RowBase> lstFYXBGrid = GridControl.DataSource as List<RowBase>;
            if (lstFYXBGrid != null && lstFYXBGrid.Count > 0)
            {
                foreach (var item in lstFYXBGrid)
                {
                    bool select = item.GetValue<bool>("SHOWCHECKBOX");
                    if (select)
                    {
                        string temp = item.GetValue<string>(fieldName);
                        if (temp == null) continue;
                        if (temp == "") MessageManager.Show(fieldName + "值为空!");
                        listYSXB.Add(temp);
                    }
                }
            }
            return listYSXB;
        }
        #endregion




   #region 获取窗体
        /// <summary>
        /// 获取窗体
        /// </summary>
        /// <param name="m_pXmlForm">获得的窗体</param>
        /// <param name="formName">窗体文件名</param>
        /// <returns></returns>
        public static IDataForm GetForm(IDataForm m_pXmlForm, string formName)
        {
            IApplicationContext pContext = ContextRegistry.GetContext();
            IOpenXmlForm openHelper = pContext.GetObject("IOpenXmlForm") as IOpenXmlForm;
            string XmlForm = formName;
            m_pXmlForm = openHelper.DeSerialize(XmlForm) as IDataForm;
            return m_pXmlForm;
        }
        #endregion



        /// <summary>
        /// 初始化GridControl
        /// </summary>
        /// <param name="pGridControlClass"></param>
        private static void InitGrid(ForeStar.CoreUI.Win.Control.GridControlClass pGridControlClass)
        {
            DevExpress.XtraGrid.Views.Grid.GridView pGridView = pGridControlClass.FocusedGridView;
            pGridView.BeginInit();

            pGridView.Columns.Clear();
            DevExpress.XtraGrid.Columns.GridColumn pGridColumnOID = new DevExpress.XtraGrid.Columns.GridColumn();
            pGridColumnOID.Caption = "唯一编号";
            pGridColumnOID.FieldName = "OID";
            pGridColumnOID.Name = "OID";
            //pGridColumnOID.Width = 45;
            pGridColumnOID.Visible = true;
            pGridColumnOID.OptionsColumn.AllowEdit = false;
            pGridView.Columns.Add(pGridColumnOID);

            DevExpress.XtraGrid.Columns.GridColumn pGridColumnPP = new DevExpress.XtraGrid.Columns.GridColumn();
            pGridColumnPP.Caption = "是否匹配";
            pGridColumnPP.FieldName = "PP";
            pGridColumnPP.Name = "PP";
            //pGridColumnPP.Width = 45;
            pGridColumnPP.Visible = true;
            pGridColumnPP.OptionsColumn.AllowEdit = false;
            pGridView.Columns.Add(pGridColumnPP);
            pGridView.EndInit();
        }




 #region 刷新m_pGridViewFYXB,使其“选择”列为未选中状态
        public static void RefreshGridViewFYXB()
        {
            for (int i = 0; i < m_pGridViewFYXB.RowCount; i++)
            {
                m_pGridViewFYXB.SetRowCellValue(i, m_pGridViewFYXB.Columns["SHOWCHECKBOX"], false);
            }
            m_pGridViewFYXB.OptionsView.ColumnAutoWidth = false;
        }
        #endregion



 public class LogManage
    {
        /// <summary>
        /// 写日志
        /// </summary>
        /// <param name="message"></param>
        public static void WriteLog(string message)
        {
            try
            {
                string filePath = Application.StartupPath + "\\" + DateTime.Now.ToString("yyyy-MM-dd") + "Log.txt";
                string strLog = "时间:" + DateTime.Now.ToString("yyyy-MM-dd HH: mm: ss: ffff") + "  " + "详细信息:" + message;
                if (File.Exists(filePath))
                {
                    StreamWriter sw = File.AppendText(filePath);
                    sw.WriteLine(strLog);
                    sw.Flush();
                    sw.Close();
                }
                else
                {
                    StreamWriter rw = File.CreateText(filePath);
                    rw.WriteLine(strLog);
                    rw.Flush();
                    rw.Close();
                }
            }
            catch (Exception ex)
            {

            }
        }
    }


 public static class CommonMethod
    {
        /// <summary>
        /// 数据输出主方法
        /// </summary>
        /// <param name="lstConvertPams"></param>
        /// <param name="strZdbPath"></param>
        /// <param name="proValue"></param>
        public static void DataOutMain(List<ConvetParms> lstConvertPams, string strZdbPath, int proValue, ProgressBarClass m_pProgress_Bar)
        {
            if (lstConvertPams == null || lstConvertPams.Count == 0)
            {
                m_pProgress_Bar.Position += proValue;
                m_pProgress_Bar.Refresh();
                return;
            }
            //创建空的zdb
            bool IsCreateDB = CreateEmptyZDB(strZdbPath);
            if (!IsCreateDB)
            {
                MessageManager.Show(MessageType.Error, "创建目标数据库失败!", "系统提示");
                m_pProgress_Bar.Position += proValue;
                m_pProgress_Bar.Refresh();
                return;
            }
            else
            {
                ConnectionInfo conInfo = new ConnectionInfo();
                conInfo.WorkspaceType = WorkspaceType.SqlLite;
                conInfo.Database = strZdbPath;
                IWorkspace pTarWorkSpace = WorkspaceFactoryProvider.GetWorkspaceFactory().OpenWorkspace(conInfo);
                if (pTarWorkSpace == null)
                {
                    m_pProgress_Bar.Position += proValue;
                    m_pProgress_Bar.Refresh();
                    return;
                }

                var pDataStructConvert = new DataStructConvertClass();
                int step = Convert.ToInt32(proValue / lstConvertPams.Count);
                bool bResult = false;
                int i = 0;
                foreach (var item in lstConvertPams)
                {
                    m_pProgress_Bar.Position += step;
                    m_pProgress_Bar.Refresh();
                    if (item == null) continue;
                    item.pTarWorkSpace = pTarWorkSpace;
                    bResult = pDataStructConvert.Convert(item.pSourTable, item.pSourceQFilter, item.pTarWorkSpace, item.strTarTabName, null);
                    if (bResult)
                    {
                        i++;
                    }
                }
                //if (i == 7 || i == 9)
                //{
                    m_pProgress_Bar.Position = 100;
                    m_pProgress_Bar.Refresh();
                    MessageManager.Show(MessageType.Information, "导出完成!", "系统提示");
                //}
                //else
                //{
                //    m_pProgress_Bar.Position = 100;
                //    m_pProgress_Bar.Refresh();
                //    MessageManager.Show(MessageType.Information, "导出失败!", "系统提示");
                //}
            }
        }

        /// <summary>
        /// 创建空的zdb
        /// </summary>
        /// <param name="strRealPath"></param>
        /// <returns></returns>
        private static bool CreateEmptyZDB(string strRealPath)
        {
            if (string.IsNullOrEmpty(strRealPath))
            {
                MessageManager.Show(MessageType.Error, "路径为空,不能创建数据源。", "系统提示");
                return false;
            }
            if (File.Exists(strRealPath))
            {
                if (MessageManager.Show(MessageType.Warning, "指定定路径下已存在工程文件,是否覆盖?", "系统提示", MessageButton.YesNo) == MessageResult.No)
                {
                    return false;
                }
            }
            try
            {
                IMZDsConnInfo conInfo = new mzDsConnInfo();
                conInfo.Server = strRealPath;
                conInfo.DataSourceType = mzDataSourceType.mzDsSqlite;
                IMZDataSource pDataSource = mzProviderManager.GetProviderManager().CreateMZDataSource(mzProviderManager.GetProviderManager().GetAt(0).ProviderType, conInfo);
                if (pDataSource == null)
                {
                    MessageManager.Show(MessageType.Error, "创建目标数据库失败!", "系统提示");
                    return false;
                }
                pDataSource.Create();
                return true;
            }
            catch (Exception ex)
            {
                MessageManager.Show(MessageType.Error, "创建目标数据库失败!原因:\r\n" + ex.ToString(), "系统提示");
                return false;
            }
        }
   
        /// <summary>
        /// 初始化“项目”ComboBox
        /// </summary>
        /// <param name="cmbProjectName"></param>
        /// <param name="pQuery"></param>
        public static void InitProjectCmb(FieldComboBox cmbXMMC, IQueryFilter pQuery)
        {
            ITable pTable = ForeStar.Data.Metadata.MetadataWorkspaceFactory.OpenMetadataWorkspace().OpenTable(TableDeclare.PRODUCT).Table;
            if (pTable == null)
                return;

            List<RowBase> prjRows = pTable.GetEntityList<RowBase>(pQuery);
            cmbXMMC.DisplayFieldName = "XMMC";
            cmbXMMC.ValueFieldName = "XMBH";
            cmbXMMC.DataSource = prjRows;
        }

        /// <summary>
        /// 初始化“工程实施年度”ComboBox
        /// </summary>
        /// <param name="cmbGCSSND"></param>
        /// <param name="pQuery"></param>
        public static void InitGCSSNDCmb(FieldComboBox cmbGCSSND, IQueryFilter pQuery)
        {
            ITable pTable = ForeStar.Data.Metadata.MetadataWorkspaceFactory.OpenMetadataWorkspace().OpenTable(TableDeclare.PRODUCT).Table;
            if (pTable == null)
                return;
            List<string> years = new List<string>();
            if (pQuery == null)
            {
                years = pTable.GetUniqueValue("GCSSND");
            }
            else
            {
                years = pTable.GetUniqueValue("GCSSND", pQuery);
            }
            List<RowBase> yearRows = new List<RowBase>();
            foreach (string item in years)
            {
                RowBase row = new RowBase();
                row["year"] = item;
                yearRows.Add(row);
            }
            cmbGCSSND.DisplayFieldName = "year";
            cmbGCSSND.DataSource = yearRows;
        }

        /// <summary>
        /// 进度条显示设置
        /// </summary>
        /// <param name="m_pProgress_Bar"></param>
        public static void SetProgressBar(ProgressBarClass m_pProgress_Bar)
        {
            m_pProgress_Bar.BackColor = Color.Blue;
            m_pProgress_Bar.Clear();
            m_pProgress_Bar.Minimum = 0;
            m_pProgress_Bar.Maximum = 100;
            m_pProgress_Bar.Position = 5;
            m_pProgress_Bar.Refresh();
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值