/// <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); }
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); }
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; }
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(); }
/// <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(); }
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 }; }
/// <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); }
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); // } }
/// <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(); }
/// <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); } }
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); } }
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(); }
/// <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 };*/ }
/// <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); }