コード例 #1
0
        public void EnableArchivingOnClass(ref IFeatureClass ifeatureClass_0)
        {
            bool flag  = false;
            bool flag2 = false;
            IVersionedObject3 versionedObject = (IVersionedObject3)ifeatureClass_0;

            versionedObject.GetVersionRegistrationInfo(out flag, out flag2);
            if (!flag)
            {
                versionedObject.RegisterAsVersioned3(false);
            }
            else if (flag2)
            {
                versionedObject.UnRegisterAsVersioned3(false);
                versionedObject.RegisterAsVersioned3(false);
            }
            IArchivableObject archivableObject = (IArchivableObject)versionedObject;

            if (archivableObject.IsArchiving)
            {
                archivableObject.DisableArchiving(true, true);
                archivableObject.EnableArchiving(null, null, true);
            }
            else
            {
                archivableObject.EnableArchiving(null, null, true);
            }
        }
コード例 #2
0
ファイル: CmdEnableArchiving.cs プロジェクト: secondii/Yutai
 public override void OnClick()
 {
     try
     {
         IArchivableObject archivableObject = (IArchivableObject)this.iversionedObject3_0;
         archivableObject.EnableArchiving(null, null, true);
     }
     catch (Exception ex)
     {
         MessageService.Current.Warn(ex.Message);
     }
 }
コード例 #3
0
 public override void OnClick()
 {
     try
     {
         IArchivableObject archivableObject             = (IArchivableObject)this.iversionedObject3_0;
         string            text                         = this.string_0.Replace("#NAME#", (this.iversionedObject3_0 as IDataset).Name);
         System.Windows.Forms.DialogResult dialogResult = System.Windows.Forms.MessageBox.Show(text, "停用存档",
                                                                                               System.Windows.Forms.MessageBoxButtons.YesNoCancel, System.Windows.Forms.MessageBoxIcon.Asterisk);
         if (dialogResult == System.Windows.Forms.DialogResult.Yes)
         {
             archivableObject.DisableArchiving(true, true);
         }
         else if (dialogResult == System.Windows.Forms.DialogResult.No)
         {
             archivableObject.DisableArchiving(false, true);
         }
     }
     catch (Exception ex)
     {
         System.Windows.Forms.MessageBox.Show(ex.Message);
     }
 }
コード例 #4
0
ファイル: ClsStatic.cs プロジェクト: johnforrest/GeoCoding
        public static bool EnableAchive(string name, IFeatureWorkspace featureWorkspace)
        {
            IVersionedObject3 pVersionedObject  = null;
            IArchivableObject pArchivableObject = null;
            bool bRegistered                    = false;
            bool bMovingEditsToBase             = false;
            IFeatureWorkspace pFeatureWorkspace = featureWorkspace;

            try
            {
                pVersionedObject = pFeatureWorkspace.OpenFeatureClass(name) as IVersionedObject3;
                pVersionedObject.GetVersionRegistrationInfo(out bRegistered, out bMovingEditsToBase);

                //如果数据没有注册为版本,则进行注册
                if (!bRegistered)
                {
                    pVersionedObject.RegisterAsVersioned3(false);
                }
                else
                {
                    if (bMovingEditsToBase)
                    {
                        pVersionedObject.UnRegisterAsVersioned3(false);
                        pVersionedObject.RegisterAsVersioned3(false);
                    }
                }
                //获取归档对象、判断数据是否归档
                pArchivableObject = pVersionedObject as IArchivableObject;
                if (!pArchivableObject.IsArchiving)
                {
                    pArchivableObject.EnableArchiving(null, null, false);
                }
                return(true);
            }
            catch (Exception)
            {
            }
            return(false);
        }
コード例 #5
0
        /// <summary>
        /// 判断MapMain中的图层是否为注册后的归档数据,否则没有历史
        /// </summary>
        /// <param name="pWorkspace"></param>
        /// <param name="strName"></param>
        /// <returns></returns>
        /// <remarks></remarks>
        private bool HasArch(IWorkspace pWorkspace, string strName)
        {
            IVersionedObject3 pVersionedObject  = default(IVersionedObject3);
            IArchivableObject pArchivableObject = default(IArchivableObject);
            IFeatureClass     pFeatClass        = default(IFeatureClass);

            IFeatureWorkspace pFeatWorkspace = default(IFeatureWorkspace);
            IWorkspace2       pWorkspace2    = default(IWorkspace2);

            try
            {
                //只对SDE的数据执行历史数据的操作
                if (pWorkspace.Type == esriWorkspaceType.esriRemoteDatabaseWorkspace)
                {
                    pWorkspace2 = pWorkspace as IWorkspace2;
                    if (pWorkspace2.get_NameExists(esriDatasetType.esriDTFeatureClass, strName))
                    {
                        pFeatWorkspace   = pWorkspace as IFeatureWorkspace;
                        pFeatClass       = pFeatWorkspace.OpenFeatureClass(strName);
                        pVersionedObject = pFeatClass as IVersionedObject3;
                        if (pVersionedObject == null)
                        {
                            return(false);
                        }
                        pArchivableObject = pVersionedObject as IArchivableObject;
                        if (pArchivableObject.IsArchiving == false)
                        {
                            return(false);
                        }
                        return(true);
                    }
                }
                return(false);
            }
            catch (Exception)
            {
                return(false);
            }
        }