Esempio n. 1
0
        /// <summary>
        /// 通过xml创建项目
        /// </summary>
        /// <param name="p_files"></param>
        /// <returns></returns>
        private static CResult openProjectByxml(_Files p_files, ApplicationForm from)
        {
            CResult result = new CResult();
            //初始化一个新的项目业务
            _Business bus = APP.WorkFlows.Init(EWorkFlowType.PROJECT);
            //读取业务文件
            //CResult result = bus.LoadByXml(p_files);

            //准备工作
            XmlProjWorker projWorker = new XmlProjWorker(bus);

            projWorker.FileName = p_files.FullName;
            projWorker.form     = from;
            projWorker.Load();
            projWorker.Begin();

            /*_ImportXML xml = new _ImportXML(bus);
             * xml.RevertXmlObject += new RevertXmlObject(xml_RevertXmlObject);
             * xml.FileName = p_files.FullName;
             * BackgroundWorker XmlProjWorker = new BackgroundWorker();
             * XmlProjProgressAction form = new XmlProjProgressAction(XmlProjWorker);
             * XmlProjWorker.WorkerReportsProgress = true;
             * XmlProjWorker.DoWork += new DoWorkEventHandler(XmlProjWorker_DoWork);
             * XmlProjWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(XmlProjWorker_RunWorkerCompleted);
             *
             * XmlObject = new object[2] { XmlProjWorker ,1};
             * object param = new object[] { from, p_files, bus, xml, form };
             * XmlProjWorker.RunWorkerAsync(param);
             *
             * form.ShowDialog();*/
            return(result);
        }
Esempio n. 2
0
        public override void OnModelChange(object sender, object args)
        {
            ApplicationForm AppForm = sender as ApplicationForm;

            if (AppForm != null)
            {
                if (this.GetWorkAreas.LogContent.Count == 0)
                {
                    //AppForm.Btn_Fun_Rec.Enabled = false;
                }
                else
                {
                    //AppForm.Btn_Fun_Rec.Enabled = true;
                }
            }
            //添加功能区
            ABaseForm form = args as ABaseForm;

            if (form != null)
            {
                this.UseFunction(form);
                //操作日志处理
                if (this.ALogForm != null)
                {
                    this.ALogForm.LogContent = form.LogContent;
                    this.ALogForm.Init();
                }
                form.functionList1.Visible = true;
                form.functionList1.Dock    = DockStyle.Fill;
                this.dp_Function.ControlContainer.Controls.Clear();
                this.dp_Function.ControlContainer.Controls.Add(form.functionList1);
            }
            base.OnModelChange(sender, args);
        }
Esempio n. 3
0
        private void simpleButton1_Click(object sender, EventArgs e)
        {
            SaveFileDialog sfd = new SaveFileDialog();

            sfd.FileName         = "";
            sfd.Filter           = "调标文件(*.tbx)|*.tbx";
            sfd.FilterIndex      = 1;
            sfd.RestoreDirectory = true;
            if (sfd.ShowDialog() == DialogResult.OK)
            {
                string localFilePath = sfd.FileName.ToString();
                if (!localFilePath.EndsWith(".tbx"))
                {
                    localFilePath += ".tbx";
                }
                try
                {
                    ApplicationForm pForm = this.MdiParent as ApplicationForm;
                    Container       form  = pForm.ActiveMdiChild as Container;
                    SubSegmentForm  obj   = form.GetWorkAreas as SubSegmentForm;
                    File.Copy(APP.Cache.AppFolder + "工程文件\\备份文件\\" + obj.Activitie.Name + ".xls", localFilePath);
                    File.Delete(APP.Cache.AppFolder + "工程文件\\备份文件\\abcInvite.xls");
                }
                catch (Exception)
                {
                    MessageBox.Show("发生未知异常,请重试", "金建软件");
                }
            }

            this.Close();
            this.DialogResult = DialogResult.OK;
        }
Esempio n. 4
0
        static void appRun(string[] args)
        {
            //DevExpress.UserSkins.OfficeSkins.Register();
            DevExpress.UserSkins.BonusSkins.Register();

            if (!DevExpress.Skins.SkinManager.AllowFormSkins)
            {
                DevExpress.Skins.SkinManager.EnableFormSkins();
            }

            // DevExpress.Skins.SkinManager.DefaultSkinName = "iMaginary";
            Application.EnableVisualStyles();
            //Application.SetCompatibleTextRenderingDefault(false);
            DevExpress.Data.CurrencyDataController.DisableThreadingProblemsDetection = true;
            //Control.CheckForIllegalCrossThreadCalls = false;
            Application.ThreadExit += new EventHandler(Application_ThreadExit);

            //启动服务
            Process   pro  = Process.Start(string.Format("{0}service\\GoldSoftHost.exe", AppDomain.CurrentDomain.BaseDirectory));
            loginForm form = new loginForm();

            //开启验证逻辑
            if (form.ShowDialog() == DialogResult.OK)
            {
                //如果存在路径则直接打开
                ApplicationForm appForm = null;
                if (args.Length > 0)
                {
                    FileInfo info = new FileInfo(args[0].ToString());
                    appForm = new ApplicationForm(info);
                }
                else
                {
                    appForm = new ApplicationForm();
                }
                // DevExpress.LookAndFeel.UserLookAndFeel.Default.SetSkinStyle("iMaginary");

                //try
                //{
                Application.Run(appForm);
                //}
                //catch (Exception ex)
                //{
                //    MessageBox.Show("操作出现异常,请联系管理人员,程序将退出。", "金建软件", MessageBoxButtons.OK, MessageBoxIcon.Warning);

                //    Application.Exit();
                //}
            }
            //Application.Exit();
        }
Esempio n. 5
0
        /// <summary>
        /// 打开单位工程的操作
        /// </summary>
        /// <param name="p_files"></param>
        /// <returns></returns>
        private static void openUnitProject(_Files p_files, ApplicationForm from)
        {
            _Business        bus        = APP.WorkFlows.Init(EWorkFlowType.UnitProject);
            object           param      = new object[] { from, p_files, bus };
            BackgroundWorker UnitWorker = new BackgroundWorker();

            UnitWorker.WorkerReportsProgress = true;
            UnitWorker.DoWork             += new DoWorkEventHandler(UnitWorker_DoWork);
            UnitWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(UnitWorker_RunWorkerCompleted);
            UnitWorker.RunWorkerAsync(param);
            ProgressFrom form = new ProgressFrom(UnitWorker);

            form.ShowDialog();
        }
Esempio n. 6
0
        static void XmlProjWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker XmlProjWorker = sender as BackgroundWorker;

            object[]              param = e.Argument as object[];
            ApplicationForm       form  = param[0] as ApplicationForm;
            _Files                file  = param[1] as _Files;
            _Business             bus   = param[2] as _Business;
            _ImportXML            xml   = param[3] as _ImportXML;
            XmlProjProgressAction pf    = param[4] as XmlProjProgressAction;

            xml.Load();
            object p = new object[] { true, xml.Count };

            XmlProjWorker.ReportProgress(0, p);
            bus.Current = xml.Import();
            e.Result    = new object[] { form, file, bus };
        }
Esempio n. 7
0
        /// <summary>
        /// 当前业务窗体是否已经打开
        /// </summary>
        /// <param name="p_File"></param>
        /// <param name="p_from"></param>
        /// <returns></returns>
        private static string IsExitFileObject(FileInfo p_File, ApplicationForm p_from)
        {
            //找到所有的子窗体提调用保存
            Container f = null;

            foreach (Form from in p_from.MdiChildren)
            {
                f = from as Container;
                if (f != null)
                {
                    if (f.CurrentBusiness.Current.Files.FullName.Equals(p_File.FullName))
                    {
                        return(f.CurrentBusiness.Current.Name);
                    }
                }
            }
            return(string.Empty);
        }
Esempio n. 8
0
        static void ProjWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            object[] result = e.Result as object[];
            if (result == null)
            {
                return;
            }
            ApplicationForm form = result[0] as ApplicationForm;
            _Business       bus  = result[1] as _Business;

            //效验函数
            //if (form.Validation(bus))
            //{
            //this.DialogResult = DialogResult.Cancel;
            APP.Cache.HistoryCache.Add(new FileInfo(bus.Current.Files.FullName));
            APP.Cache.HistoryCache.Save();
            //开启业务窗体
            form.ActionFace.OpenNewBussinessForm(bus);
            // }
        }
Esempio n. 9
0
        /// <summary>
        /// 打开项目的过程
        /// </summary>
        private static void openProject(_Files p_files, ApplicationForm from)
        {
            //初始化一个新的项目业务
            _Business bus = APP.WorkFlows.Init(EWorkFlowType.PROJECT);
            //打开一个业务文件
            //bus.Open(p_files);
            //打开业务操作窗体
            //from.ActionFace.OpenNewBussinessForm(bus);

            object           param      = new object[] { from, p_files, bus };
            BackgroundWorker ProjWorker = new BackgroundWorker();

            ProjWorker.WorkerReportsProgress = true;
            ProjWorker.DoWork             += new DoWorkEventHandler(ProjWorker_DoWork);
            ProjWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(ProjWorker_RunWorkerCompleted);
            ProjWorker.RunWorkerAsync(param);
            ProgressFrom form = new ProgressFrom(ProjWorker);

            form.ShowDialog();
        }
Esempio n. 10
0
        /// <summary>
        /// 单位工程处理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        static void UnitWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            try
            {
                BackgroundWorker ProjWorker = sender as BackgroundWorker;
                object[]         param      = e.Argument as object[];
                ApplicationForm  form       = param[0] as ApplicationForm;
                _Files           file       = param[1] as _Files;
                _Business        bus        = param[2] as _Business;

                using (FileStream stream = new FileStream(file.FullName, FileMode.Open, FileAccess.Read))
                {
                    //stream.Position = 0;
                    GZipStream zip = new GZipStream(stream, CompressionMode.Decompress, true);
                    {
                        //zip.Seek(0, SeekOrigin.Begin);
                        BinaryFormatter formater = new BinaryFormatter();
                        _FileHeader     header   = (_FileHeader)formater.Deserialize(zip);
                        _StructSource   ds       = (_StructSource)formater.Deserialize(zip);
                        //创建新的单位工程(单位工程业务体)
                        _UnitProject unit = new _UnitProject();
                        unit.Files = file;
                        unit.Ready(ds);
                        //初始化新的临时对象(不参与序列化此对象每次使用需要呗初始化)

                        /*obj.Property.Temporary = new _Temporary();
                         * //默认同步临时库对象
                         * obj.Property.Temporary.Libraries = obj.Property.DLibraries.Copy();
                         * obj.Property.Temporary.Libraries.Init(APP.Application);
                         * obj.Application = APP.Application;*/
                        e.Result = new object[] { form, unit, bus };
                    }
                    zip.Close();
                }
            }
            catch (Exception)
            {
                MsgBox.Show(_Prompt.无法识别的打开文件, MessageBoxButtons.OK);
            }
        }
Esempio n. 11
0
        static void XmlProjWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            object[]        result   = e.Result as object[];
            ApplicationForm form     = result[0] as ApplicationForm;
            _Files          file     = result[1] as _Files;
            _Business       bus      = result[2] as _Business;
            FileInfo        FileName = new FileInfo(file.FileName);
            //处理文件名
            string NewExists  = _Files.ProjectExName;
            string p_filename = FileName.FullName.Replace(FileName.Extension, NewExists);

            file.init(p_filename);
            bus.Current.Files = file;
            //效验函数
            if (form.Validation(bus))
            {
                //this.DialogResult = DialogResult.Cancel;
                //开启业务窗体
                GC.Collect();
                form.ActionFace.OpenNewBussinessForm(bus);
            }
        }
Esempio n. 12
0
        private void dataGridView1_DoubleClick(object sender, EventArgs e)
        {
            if (this.dataGridView1.SelectedRows.Count <= 0)
            {
                return;
            }
            columnName = this.dataGridView1.SelectedRows[0].Cells[0].Value.ToString();

            ApplicationForm pForm   = this.MdiParent as ApplicationForm;
            Container       form    = pForm.ActiveMdiChild as Container;
            decimal         rate    = 0.0m;
            decimal         oResult = 0.0m;
            int             qdID    = 0;

            DataRow[] rows = null;
            DataRow   row = null;
            bool      result = false;
            decimal   jsCount = 0.0m, zhdj = 0.0m;

            SubSegmentForm obj = form.GetWorkAreas as SubSegmentForm;

            for (int i = 0; i < obj.Activitie.StructSource.ModelSubSegments.Rows.Count; i++)
            {
                if (!obj.Activitie.StructSource.ModelSubSegments.Rows[i]["LB"].ToString().Equals("清单"))
                {
                    continue;
                }

                for (int j = 0; j < APP.GoldSoftClient.TB_RESULT.Rows.Count; j++)
                {
                    if (decimal.Parse(obj.Activitie.StructSource.ModelSubSegments.Rows[i]["ZHDJ"].ToString()) == 0.0M ||
                        APP.GoldSoftClient.TB_RESULT.Rows[j][columnName].ToString().Equals("正无穷大") ||
                        APP.GoldSoftClient.TB_RESULT.Rows[j][columnName].ToString().Equals("负无穷大") ||
                        obj.Activitie.StructSource.ModelSubSegments.Rows[i]["ZHDJ"].ToString().Equals("正无穷大") ||
                        obj.Activitie.StructSource.ModelSubSegments.Rows[i]["ZHDJ"].ToString().Equals("负无穷大"))
                    {
                        continue;
                    }
                    if (obj.Activitie.StructSource.ModelSubSegments.Rows[i]["XH"].ToString().Equals(APP.GoldSoftClient.TB_RESULT.Rows[j]["OLDXH"].ToString()) &&
                        obj.Activitie.StructSource.ModelSubSegments.Rows[i]["UnID"].ToString().Equals(APP.GoldSoftClient.TB_RESULT.Rows[j]["GCID"].ToString()))
                    {
                        row = obj.Activitie.StructSource.ModelSubSegments.Rows[i];
                        row.BeginEdit();
                        //row["ZJTJ"] = APP.GoldSoftClient.TB_RESULT.Rows[j][columnName];

                        decimal.TryParse(APP.GoldSoftClient.TB_RESULT.Rows[j][columnName].ToString(), out jsCount);
                        decimal.TryParse(obj.Activitie.StructSource.ModelSubSegments.Rows[i]["ZHDJ"].ToString(), out zhdj);
                        rate = jsCount / zhdj;
                        //rate = decimal.Parse(APP.GoldSoftClient.TB_RESULT.Rows[j][columnName].ToString()) / decimal.Parse(obj.Activitie.StructSource.ModelSubSegments.Rows[i]["ZHDJ"].ToString());
                        row["ZHDJ"] = APP.GoldSoftClient.TB_RESULT.Rows[j][columnName];
                        row.EndEdit();
                        qdID = int.Parse(obj.Activitie.StructSource.ModelSubSegments.Rows[i]["ID"].ToString());
                        rows = obj.Activitie.StructSource.ModelQuantity.Select("QDID = " + qdID);
                        for (int n = 0; n < rows.Length; n++)
                        {
                            if (!decimal.TryParse(rows[n]["XHL"].ToString(), out oResult))
                            {
                                continue;
                            }
                            rows[n].BeginEdit();
                            rows[n]["XHL"] = Math.Round(oResult * rate, 4);
                            rows[n].EndEdit();
                        }
                    }
                }
            }

            //APP.GoldSoftClient.TB_RESULT.Columns.Remove(columnName);

            this.Close();
        }
Esempio n. 13
0
        /// <summary>
        /// 打开项目具体操作
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        static void ProjWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            _Files file = null;

            try
            {
                BackgroundWorker ProjWorker = sender as BackgroundWorker;
                object[]         param      = e.Argument as object[];
                ApplicationForm  form       = param[0] as ApplicationForm;
                file = param[1] as _Files;
                _Business bus = param[2] as _Business;
                //打开一个业务文件
                bus.Open(file);
                //打开业务操作窗体
                e.Result = new object[] { form, bus };
            }
            catch (Exception ex)
            {
                MsgBox.Show(_Prompt.无法识别的打开文件, MessageBoxButtons.OK);
            }
            finally
            {
                if (file != null)
                {
                    file = null;
                }
            }

            /*BackgroundWorker ProjWorker = sender as BackgroundWorker;
             * object[] param = e.Argument as object[];
             * ApplicationForm form = param[0] as ApplicationForm;
             * _Files file = param[1] as _Files;
             * _Business bus = param[2] as _Business;
             * _Projects proj = null;
             * _Engineering en = null;
             * using (FileStream stream = new FileStream(file.FullName, FileMode.Open, FileAccess.Read))
             * {
             *  GZipStream zip = new GZipStream(stream, CompressionMode.Decompress, true);
             *  {
             *      BinaryFormatter formater = new BinaryFormatter();
             *      long lenth = stream.Length;
             *      int percent = 0;
             *      while (stream.Position != lenth)
             *      {
             *
             *          object obj = formater.Deserialize(zip);
             *          //zip.Close();
             *          if (obj is _Projects)
             *          {
             *              proj = obj as _Projects;
             *              proj.InSerializable(file);
             *              ProjWorker.ReportProgress(++percent, proj);
             *          }
             *          if (proj != null)
             *          {
             *              if (obj is _Engineering)
             *              {
             *                  en = obj as _Engineering;
             *                  en.InSerializable(proj);
             *                  ProjWorker.ReportProgress(++percent, en);
             *              }
             *              if (obj is _UnitProject)
             *              {
             *                  _UnitProject un = obj as _UnitProject;
             *                  un.InSerializable(en);
             *                  ProjWorker.ReportProgress(++percent, un);
             *              }
             *          }
             *      }
             *  }
             *
             * }
             *
             * e.Result = new object[] { form, proj, bus };*/
        }
Esempio n. 14
0
        /// <summary>
        /// 为打开项目文件提供的静态方法
        /// </summary>
        /// <param name="p_Info"></param>
        public static CResult Load(FileInfo p_Info, ApplicationForm from)
        {
            CResult result = new CResult(false);

            //文件不存在直接返回
            if (!p_Info.Exists)
            {
                result.Success          = false;
                result.ErrorInformation = "您要打开的文件对象不存在!";
                MsgBox.Alert(result.ErrorInformation);
                return(result);
            }
            //存在相同路径的的业务则不打开
            string name = IsExitFileObject(p_Info, from);

            if (name != string.Empty)
            {
                result.Success          = false;
                result.ErrorInformation = string.Format("项目-{0} 已经打开!", name);
                MsgBox.Alert(result.ErrorInformation);
                return(result);
            }

            _Files files = new _Files();

            files.Init(p_Info.FullName);
            //如果当前业务流是锁定状态不允许创建任何新业务

            //创建新业务(要创建的类型根据文件判断)
            switch (files.FileType)
            {
            case GOLDSOFT.QDJJ.COMMONS._Files.CFileType.单位工程:
                //此处实现单位工程的打开逻辑
                CActionData.openUnitProject(files, from);
                break;

            case GOLDSOFT.QDJJ.COMMONS._Files.CFileType.单项工程:
                //此处实现单项工程打开逻辑
                APP.Application.Global.WorkFolder = p_Info.Directory.Parent;
                CActionData.openEngineering(files);
                break;

            case GOLDSOFT.QDJJ.COMMONS._Files.CFileType.项目文件:
            case GOLDSOFT.QDJJ.COMMONS._Files.CFileType.电子标书:
                //此处实现单项工程打开逻辑
                APP.Application.Global.WorkFolder = p_Info.Directory.Parent;
                CActionData.openProject(files, from);
                break;

            case GOLDSOFT.QDJJ.COMMONS._Files.CFileType.XML文件:
                //此处实现xml打开逻辑
                // APP.Application.Global.WorkFolder = new FileInfo(p_FileName).Directory.Parent;
                CActionData.openProjectByxml(files, from);
                break;
            }

            /* result.Data = EBObjectType.Auto;
             * result.Success = false;
             * return result;*/
            result.Success = true;

            return(result);
        }