123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- using System;
- using System.Collections.Generic;
- using System.Configuration;
- using System.Data;
- using System.Drawing;
- using System.Windows.Forms;
- using ESRI.ArcGIS.Geodatabase;
- using Tofly.Data.General;
- using Tofly.GIS.ArcGIS.Util;
- namespace AutoCreateVersion.Win
- {
- public partial class FormCreateVersion : Form
- {
- public FormCreateVersion()
- {
- InitializeComponent();
- this.tsbtnCreateVersion.Enabled = false;
- }
- private void tsbtnLoadVersions_Click(object sender, EventArgs e)
- {
- try
- {
- string __strServer = ConfigurationManager.AppSettings["LicServer"];
- string __strDBUser = ConfigurationManager.AppSettings["DBUser"];
- string __strPassword = ConfigurationManager.AppSettings["Password"];
- SpatialDbHelper.InitHelper(WorkspaceType.Oracle, __strServer, __strDBUser, __strPassword);
- DataTable __dtUser = new DataTable();
- string __strSQL = "select t.username,t.realname,t.sde_version from tf_jurisdiction_user t where instr(trim(t.sde_version), '.')>1 order by t.sde_version";
- SpatialDbHelper.GetTable(__strSQL, ref __dtUser);
- this.dgridVersions.DataSource = __dtUser;
- foreach(DataGridViewColumn __dgvCol in this.dgridVersions.Columns)
- {
- switch (__dgvCol.Name.ToLower())
- {
- case "username":
- __dgvCol.HeaderText = "用户名";
- break;
- case "realname":
- __dgvCol.HeaderText = "用户实名";
- break;
- case "sde_version":
- __dgvCol.HeaderText = "用户版本";
- break;
- }
- __dgvCol.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
- __dgvCol.SortMode = DataGridViewColumnSortMode.NotSortable;
-
- __dgvCol.Resizable = DataGridViewTriState.True;
- }
-
- this.tsbtnCreateVersion.Enabled = (this.dgridVersions.Rows.Count > 0);
- }
- catch (System.Exception ex)
- {
- MessageBox.Show("加载失败: " + ex.Message, "加载版本信息");
- }
- }
- private void tsbtnCreateVersion_Click(object sender, EventArgs e)
- {
- Tofly.CoreUI.Win.Form.Forms.FormProgress __frmProgress = null;
- try
- {
- __frmProgress = new Tofly.CoreUI.Win.Form.Forms.FormProgress(Tofly.CoreUI.Message.tfProgressType.ProgressProcess, true)
- {
- Text = "自动创建版本",
- StartPosition = FormStartPosition.CenterScreen
- };
- __frmProgress.Show(this);
- Application.DoEvents();
- string __strServer = string.Format("sde:oracle11g:{0}", ConfigurationManager.AppSettings["SdeServer"]);
- string __strSDE_PWD = ConfigurationManager.AppSettings["SDE_Password"];
- GeoDataSourceHelper __geoDSHelper = new GeoDataSourceHelper();
- List<string> __lstExistVersion = new List<string>();
- #region 获取已有版本集合
- ESRI.ArcGIS.Geodatabase.IWorkspace __wsProcessing = __geoDSHelper.ConnectToTransactionalVersion("", __strServer, "sde", __strSDE_PWD, "");
- IVersionedWorkspace4 __vwsProcessing = __wsProcessing as IVersionedWorkspace4;
- IEnumVersionInfo2 __enumVersionInfo = __vwsProcessing.Versions as IEnumVersionInfo2;
- IVersionInfo2 __vinfo = null;
- __enumVersionInfo.Reset();
- while ((__vinfo = __enumVersionInfo.Next() as IVersionInfo2) != null)
- {
- __lstExistVersion.Add(__vinfo.VersionName.ToLower());
- }
- System.Runtime.InteropServices.Marshal.ReleaseComObject(__enumVersionInfo);
- __enumVersionInfo = null;
- #endregion
- List<string> __lstCreateVersion = new List<string>();
- string __strDBUserPrevious = "", __strDBUserCurrent = "";
- IVersion __vDefaultProcessing = null, __vNew = null;
- DataTable __dtVersions = this.dgridVersions.DataSource as DataTable;
- string __strVersionCurrent = "";
- for (int __iRow = 0; __iRow < __dtVersions.Rows.Count; __iRow++)
- {
- __strVersionCurrent = __dtVersions.Rows[__iRow]["sde_version"].ToString().ToLower();
- if (__lstExistVersion.Contains(__strVersionCurrent) == false)
- {
- __frmProgress.UpdateTitle(string.Format("自动创建版本-正在创建版本({0})", __strVersionCurrent));
- Application.DoEvents();
- __strDBUserCurrent = __strVersionCurrent.Substring(0, __strVersionCurrent.IndexOf("."));
- __strVersionCurrent = __strVersionCurrent.Substring(__strVersionCurrent.IndexOf(".") + 1);
- if (__strDBUserPrevious != __strDBUserCurrent)
- {
- ESRI.ArcGIS.Geodatabase.IWorkspace __wsProcessing2 = __geoDSHelper.ConnectToTransactionalVersion("", __strServer, __strDBUserCurrent, __strDBUserCurrent, "");
- IVersionedWorkspace4 __vwsProcessing2 = __wsProcessing2 as IVersionedWorkspace4;
- __vDefaultProcessing = __vwsProcessing2.DefaultVersion;
- __strDBUserPrevious = __strDBUserCurrent;
- }
- __vNew = __vDefaultProcessing.CreateVersion(__strVersionCurrent);
- __vNew.Access = esriVersionAccess.esriVersionAccessPublic;
- __vNew.Description = __dtVersions.Rows[__iRow]["realname"].ToString();
- __lstCreateVersion.Add(__dtVersions.Rows[__iRow]["sde_version"].ToString());
- }
- }
- for (int __iRow = 0; __iRow < this.dgridVersions.Rows.Count; __iRow++)
- {
- if (__lstCreateVersion.Contains(this.dgridVersions.Rows[__iRow].Cells["sde_version"].Value.ToString()))
- {
- this.dgridVersions.Rows[__iRow].DefaultCellStyle.BackColor = Color.LawnGreen;
- }
- }
- MessageBox.Show("完成用户版本的创建.", "创建版本");
- }
- catch (System.Exception ex)
- {
- Tofly.CoreUI.Message.WaitManager.Close();
- MessageBox.Show("创建失败: " + ex.Message, "创建版本");
- }
- finally
- {
- if (__frmProgress != null)
- {
- __frmProgress.Dispose();
- __frmProgress = null;
- }
- }
- }
- private void tsbtnExit_Click(object sender, EventArgs e)
- {
- this.Close();
- }
- private void dgridVersions_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
- {
- try
- {
- if (sender == null)
- {
- return;
- }
- DataGridView __dgvSender = sender as DataGridView;
- Rectangle rectangle = new Rectangle(e.RowBounds.Location.X, e.RowBounds.Location.Y, __dgvSender.RowHeadersWidth - 4, e.RowBounds.Height);
- TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(), __dgvSender.RowHeadersDefaultCellStyle.Font, rectangle, __dgvSender.RowHeadersDefaultCellStyle.ForeColor, TextFormatFlags.VerticalCenter | TextFormatFlags.Right);
- }
- catch { }
- }
- }
- }
|