From 8cd75c0c141b27704397a4501111cc16951663b4 Mon Sep 17 00:00:00 2001 From: John Date: Thu, 18 Feb 2016 15:29:25 +0000 Subject: [PATCH] logic to save word sections with resolved RO values for exporting the approved procedure logic to create an export file with unlinked RO and Transition Commented out debug statements to help evaluate memory usage --- .../dlgApproveProcedure.cs | 5 +- .../VEPROMS User Interface/dlgExportImport.cs | 743 ++++++++++-------- .../dlgExportImport.designer.cs | 742 +++++++++-------- .../frmPDFStatusForm.cs | 9 + .../Extension/DocumentExt.cs | 29 +- .../VEPROMS.CSLA.Library/Extension/PdfExt.cs | 10 +- .../Extension/RevisionInfoExt.cs | 16 +- 7 files changed, 820 insertions(+), 734 deletions(-) diff --git a/PROMS/VEPROMS User Interface/dlgApproveProcedure.cs b/PROMS/VEPROMS User Interface/dlgApproveProcedure.cs index a670591f..73c290bd 100644 --- a/PROMS/VEPROMS User Interface/dlgApproveProcedure.cs +++ b/PROMS/VEPROMS User Interface/dlgApproveProcedure.cs @@ -1103,6 +1103,7 @@ namespace VEPROMS frmPDFStatusForm frm = new frmPDFStatusForm(pi, ap.RevNumAndDate, /* revdate change: ap.RevDate.ToString("MM/dd/yyyy") ,*/ waterMark, false, false, ViewPDF, true, VlnSettings.TemporaryFolder, new ChangeBarDefinition(pi.MyDocVersion.MyConfig as DocVersionConfig, pi.ActiveFormat), pdfTmp, location, pi.MyDocVersion.DocVersionConfig.Print_AddBlankPagesWhenUsingDuplexFoldouts, true,"",false,false); frm.AllowAllWatermarks = true; frm.CloseWhenDone = !ViewPDF; + frm.DocReplace = new Dictionary(); // will hold the Word Attachments with resolved ROs frm.ShowDialog(); //if (ap.ProcInfo.MyDocVersion.DocVersionConfig.SelectedSlave > 0) //{ @@ -1139,9 +1140,11 @@ namespace VEPROMS pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0; if (si.IsApproved == 1) { - dlgExportImport dlg = new dlgExportImport("Export", pi); + dlgExportImport dlg = new dlgExportImport("Export", pi); // "true tell export to convert ROs and Transitions to text + dlg.DocReplace = frm.DocReplace; // this tells approval to prepare an export file with resolved transitions and ROs, word sections are saved with resolved ROs during approval PDF creation and saved in DocReplace System.Xml.XmlDocument xd = new System.Xml.XmlDocument(); dlg.ExportItem(xd, pi, "procedure"); + frm.DocReplace = dlg.DocReplace = null; version.ApprovedXML = xd.OuterXml; version.Save(); dlg.Dispose(); diff --git a/PROMS/VEPROMS User Interface/dlgExportImport.cs b/PROMS/VEPROMS User Interface/dlgExportImport.cs index d65328c5..3face088 100644 --- a/PROMS/VEPROMS User Interface/dlgExportImport.cs +++ b/PROMS/VEPROMS User Interface/dlgExportImport.cs @@ -14,7 +14,8 @@ using Ionic.Zip; namespace VEPROMS { public partial class dlgExportImport : Form - { +{ + private bool _ConvertROsAndTransitionsToText = false; // set to true when Approval creates an Export file private ItemInfo _ExternalTransitionItem = null; public ItemInfo ExternalTransitionItem { @@ -527,195 +528,196 @@ namespace VEPROMS if (!dicItemDepth.ContainsKey(depth)) dicItemDepth.Add(depth, 0); dicItemDepth[depth] = id; } - private void LoadImportDataReader() - { - int pCount = 0; - int sCount = 0; - Folder folder = null; - DocVersion docversion = null; - Dictionary dicRofst = null; - Dictionary dicEntry = null; - ROFst rofst = null; - GetImportDataCounts(); - pbImportProcedure.Maximum = MyCounts.Count; - pbImportProcedure.Value = 0; - Application.DoEvents(); - FileStream fs = File.OpenRead(txtImport.Text); - XmlReaderSettings rs = new XmlReaderSettings(); - rs.CheckCharacters = false; - XmlReader xr = XmlReader.Create(fs, rs); - while (xr.Read()) - { - if (xr.IsStartElement()) - { - switch (xr.Name) - { - case "annotation": - AddAnnotation(xr); - break; - //case "association": - // break; - case "content": - { - if (xr.Depth == 3) //content for procedure - { - ItemInfo ii = AddProcedure(xr, docversion, dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - UpdatePreviousItem(xr.Depth, ii); - UpdateParentItem(xr.Depth, ii); - } - else - { + // jsj 2016Feb17 - this appears to not be used + //private void LoadImportDataReader() + //{ + // int pCount = 0; + // int sCount = 0; + // Folder folder = null; + // DocVersion docversion = null; + // Dictionary dicRofst = null; + // Dictionary dicEntry = null; + // ROFst rofst = null; + // GetImportDataCounts(); + // pbImportProcedure.Maximum = MyCounts.Count; + // pbImportProcedure.Value = 0; + // Application.DoEvents(); + // FileStream fs = File.OpenRead(txtImport.Text); + // XmlReaderSettings rs = new XmlReaderSettings(); + // rs.CheckCharacters = false; + // XmlReader xr = XmlReader.Create(fs, rs); + // while (xr.Read()) + // { + // if (xr.IsStartElement()) + // { + // switch (xr.Name) + // { + // case "annotation": + // AddAnnotation(xr); + // break; + // //case "association": + // // break; + // case "content": + // { + // if (xr.Depth == 3) //content for procedure + // { + // ItemInfo ii = AddProcedure(xr, docversion, dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); + // UpdatePreviousItem(xr.Depth, ii); + // UpdateParentItem(xr.Depth, ii); + // } + // else + // { - int fromtype = dicItemDepth.ContainsKey(xr.Depth - 2) ? dicItemDepth[xr.Depth - 2] : 0; - switch (fromtype) - { - case 2: - { //sections - ItemInfo ii = AddSection(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - UpdatePreviousItem(xr.Depth, ii); - UpdateParentItem(xr.Depth, ii); - break; - } - case 3: - { //cautions - ItemInfo ii = AddCaution(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - UpdatePreviousItem(xr.Depth, ii); - UpdateParentItem(xr.Depth, ii); - break; - } - case 4: - { //notes - ItemInfo ii = AddNote(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - UpdatePreviousItem(xr.Depth, ii); - UpdateParentItem(xr.Depth, ii); - break; - } - case 5: - { //rnos - ItemInfo ii = AddRNO(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - UpdatePreviousItem(xr.Depth, ii); - UpdateParentItem(xr.Depth, ii); - break; - } - case 6: - { //steps - ItemInfo ii = AddStep(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - UpdatePreviousItem(xr.Depth, ii); - UpdateParentItem(xr.Depth, ii); - break; - } - case 7: - { //tables - ItemInfo ii = AddTable(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - UpdatePreviousItem(xr.Depth, ii); - UpdateParentItem(xr.Depth, ii); - break; - } - default: - break; - } - } - break; - } - case "document": - AddDocument(xr, dicEntry); - break; - case "docversion": - { - docversion = AddDocVersion(folder, xr); - UpdatePreviousItem(xr.Depth + 2, null); - break; - } - case "entry": - dicEntry = AddEntry(xr); - break; - case "folder": - folder = AddFolder(Folder.Get(MyFolder.FolderID), xr); - break; - case "grid": - AddGrid(xr); - break; - case "procedure": - { - UpdateItemDepth(xr.Depth + 1, int.Parse(xr.GetAttribute("itemid"))); - pbImportProcedure.PerformStep(); - lblImportProcedure.Text = string.Format("{0} of {1} Procedures", pbImportProcedure.Value.ToString(), pbImportProcedure.Maximum.ToString()); - pCount++; - pbImportSection.Maximum = MyCounts[pCount].Count; - pbImportSection.Value = 0; - sCount = 0; - Application.DoEvents(); - break; - } - case "section": - { - UpdateItemDepth(xr.Depth + 1, int.Parse(xr.GetAttribute("itemid"))); - pbImportSection.PerformStep(); - lblImportSection.Text = string.Format("{0} of {1} Sections", pbImportSection.Value.ToString(), pbImportSection.Maximum.ToString()); - sCount++; - pbImportStep.Maximum = MyCounts[pCount][sCount]; - pbImportStep.Value = 0; - Application.DoEvents(); - break; - } - case "step": - { - UpdateItemDepth(xr.Depth + 1, int.Parse(xr.GetAttribute("itemid"))); - if (xr.Depth == 8) - { - pbImportStep.PerformStep(); - lblImportStep.Text = string.Format("{0} of {1} Steps", pbImportStep.Value.ToString(), pbImportStep.Maximum.ToString()); - Application.DoEvents(); - } - break; - } - case "caution": - case "note": - case "rno": - case "table": - UpdateItemDepth(xr.Depth + 1, int.Parse(xr.GetAttribute("itemid"))); - break; - case "cautions": - case "notes": - case "rnos": - case "sections": - case "steps": - case "tables": - { - UpdateItemDepth(xr.Depth, int.Parse(xr.GetAttribute("fromtype"))); - UpdatePreviousItem(xr.Depth + 2, null); - UpdateParentItem(xr.Depth + 2, dicParentItem[xr.Depth - 1]); - break; - } - case "rodb": - { - MyRODb = AddRODb(xr); - rofst = AddROFst(dicRofst); - docversion.DocVersionAssociations.Add(rofst); - docversion.Save(); - break; - } - case "rofst": - dicRofst = GetROFstData(xr); - break; - case "rousage": - AddROUsage(xr); - break; - //case "transition": - // break; - default: - break; - } - Console.WriteLine("{0} - {1}", xr.Name, xr.Depth.ToString()); - } - } - pbImportProcedure.PerformStep(); - Application.DoEvents(); - fs.Close(); - FixImportDataTransitions(); - StoreItemContentIDs(); - ResolveExternalTransitions(folder); - } + // int fromtype = dicItemDepth.ContainsKey(xr.Depth - 2) ? dicItemDepth[xr.Depth - 2] : 0; + // switch (fromtype) + // { + // case 2: + // { //sections + // ItemInfo ii = AddSection(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); + // UpdatePreviousItem(xr.Depth, ii); + // UpdateParentItem(xr.Depth, ii); + // break; + // } + // case 3: + // { //cautions + // ItemInfo ii = AddCaution(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); + // UpdatePreviousItem(xr.Depth, ii); + // UpdateParentItem(xr.Depth, ii); + // break; + // } + // case 4: + // { //notes + // ItemInfo ii = AddNote(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); + // UpdatePreviousItem(xr.Depth, ii); + // UpdateParentItem(xr.Depth, ii); + // break; + // } + // case 5: + // { //rnos + // ItemInfo ii = AddRNO(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); + // UpdatePreviousItem(xr.Depth, ii); + // UpdateParentItem(xr.Depth, ii); + // break; + // } + // case 6: + // { //steps + // ItemInfo ii = AddStep(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); + // UpdatePreviousItem(xr.Depth, ii); + // UpdateParentItem(xr.Depth, ii); + // break; + // } + // case 7: + // { //tables + // ItemInfo ii = AddTable(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); + // UpdatePreviousItem(xr.Depth, ii); + // UpdateParentItem(xr.Depth, ii); + // break; + // } + // default: + // break; + // } + // } + // break; + // } + // case "document": + // AddDocument(xr, dicEntry); + // break; + // case "docversion": + // { + // docversion = AddDocVersion(folder, xr); + // UpdatePreviousItem(xr.Depth + 2, null); + // break; + // } + // case "entry": + // dicEntry = AddEntry(xr); + // break; + // case "folder": + // folder = AddFolder(Folder.Get(MyFolder.FolderID), xr); + // break; + // case "grid": + // AddGrid(xr); + // break; + // case "procedure": + // { + // UpdateItemDepth(xr.Depth + 1, int.Parse(xr.GetAttribute("itemid"))); + // pbImportProcedure.PerformStep(); + // lblImportProcedure.Text = string.Format("{0} of {1} Procedures", pbImportProcedure.Value.ToString(), pbImportProcedure.Maximum.ToString()); + // pCount++; + // pbImportSection.Maximum = MyCounts[pCount].Count; + // pbImportSection.Value = 0; + // sCount = 0; + // Application.DoEvents(); + // break; + // } + // case "section": + // { + // UpdateItemDepth(xr.Depth + 1, int.Parse(xr.GetAttribute("itemid"))); + // pbImportSection.PerformStep(); + // lblImportSection.Text = string.Format("{0} of {1} Sections", pbImportSection.Value.ToString(), pbImportSection.Maximum.ToString()); + // sCount++; + // pbImportStep.Maximum = MyCounts[pCount][sCount]; + // pbImportStep.Value = 0; + // Application.DoEvents(); + // break; + // } + // case "step": + // { + // UpdateItemDepth(xr.Depth + 1, int.Parse(xr.GetAttribute("itemid"))); + // if (xr.Depth == 8) + // { + // pbImportStep.PerformStep(); + // lblImportStep.Text = string.Format("{0} of {1} Steps", pbImportStep.Value.ToString(), pbImportStep.Maximum.ToString()); + // Application.DoEvents(); + // } + // break; + // } + // case "caution": + // case "note": + // case "rno": + // case "table": + // UpdateItemDepth(xr.Depth + 1, int.Parse(xr.GetAttribute("itemid"))); + // break; + // case "cautions": + // case "notes": + // case "rnos": + // case "sections": + // case "steps": + // case "tables": + // { + // UpdateItemDepth(xr.Depth, int.Parse(xr.GetAttribute("fromtype"))); + // UpdatePreviousItem(xr.Depth + 2, null); + // UpdateParentItem(xr.Depth + 2, dicParentItem[xr.Depth - 1]); + // break; + // } + // case "rodb": + // { + // MyRODb = AddRODb(xr); + // rofst = AddROFst(dicRofst); + // docversion.DocVersionAssociations.Add(rofst); + // docversion.Save(); + // break; + // } + // case "rofst": + // dicRofst = GetROFstData(xr); + // break; + // case "rousage": + // AddROUsage(xr); + // break; + // //case "transition": + // // break; + // default: + // break; + // } + // Console.WriteLine("{0} - {1}", xr.Name, xr.Depth.ToString()); + // } + // } + // pbImportProcedure.PerformStep(); + // Application.DoEvents(); + // fs.Close(); + // FixImportDataTransitions(); + // StoreItemContentIDs(); + // ResolveExternalTransitions(folder); + //} private void SaveTransitionAndItemContentIDs() { XmlDocument xd = new XmlDocument(); @@ -1091,9 +1093,7 @@ namespace VEPROMS { ofd.Filter = "PROMS Procedure Export Files|*.pxml"; if (ofd.ShowDialog(this) == DialogResult.OK) - { txtImport.Text = ofd.FileName; - } } } private void txtImport_TextChanged(object sender, EventArgs e) @@ -1574,6 +1574,17 @@ namespace VEPROMS } } } + // used to save word sections with resolved ROs (export generated from Approve) + private Dictionary _DocReplace; + public Dictionary DocReplace + { + get { return _DocReplace; } + set + { + _DocReplace = value; + _ConvertROsAndTransitionsToText = (value != null); + } + } private void ExportItem(ItemInfo ii, string nodename) { /* @@ -1630,9 +1641,11 @@ namespace VEPROMS UserID */ XmlElement xe = xn.OwnerDocument.CreateElement(nodename); + // strip the link information if we are convertingthe RO and Transitions to text + string ciText = (_ConvertROsAndTransitionsToText)?ItemInfo.StripLinks(ci.Text):ci.Text; xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "contentid", ci.ContentID.ToString())); xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "number", ci.Number)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "text", ci.Text)); + xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "text", ciText)); xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "type", ci.Type.ToString())); xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "formatid", ci.FormatID.ToString())); xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", ci.Config)); @@ -1697,10 +1710,12 @@ namespace VEPROMS DTS UserID */ + // strip the link information if we are convertinga the ROs and Transitions to text + string ciText = (_ConvertROsAndTransitionsToText) ? ItemInfo.StripLinks(ci.Text) : ci.Text; MyWriter.WriteStartElement(nodename); MyWriter.WriteAttributeString("contentid", ci.ContentID.ToString()); MyWriter.WriteAttributeString("number", ci.Number); - MyWriter.WriteAttributeString("text", ci.Text); + MyWriter.WriteAttributeString("text", ciText); MyWriter.WriteAttributeString("type", ci.Type.ToString()); MyWriter.WriteAttributeString("formatid", ci.FormatID.ToString()); MyWriter.WriteAttributeString("config", ci.Config); @@ -1730,9 +1745,15 @@ namespace VEPROMS DTS UserID */ + string giData = gi.Data; + if (_ConvertROsAndTransitionsToText) + { + giData = giData.Replace("True", "False"); // converts a RO table to a unlinked regular table + giData = ItemInfo.StripLinks(giData); // this converts ROs and transitions to text + } XmlElement xe = xn.OwnerDocument.CreateElement(nodename); xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "contentid", gi.ContentID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "data", gi.Data)); + xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "data", giData)); xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", gi.Config)); xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", gi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", gi.UserID.ToString())); @@ -1777,9 +1798,15 @@ namespace VEPROMS DTS UserID */ + string giData = gi.Data; + if (_ConvertROsAndTransitionsToText) + { + giData = giData.Replace("IsRoTable>True", "IsRoTable>False"); // converts a RO table to regular table + giData = ItemInfo.StripLinks(giData); // converts ROs and Transitions to text + } MyWriter.WriteStartElement(nodename); MyWriter.WriteAttributeString("contentid", gi.ContentID.ToString()); - MyWriter.WriteAttributeString("data", gi.Data); + MyWriter.WriteAttributeString("data", giData); MyWriter.WriteAttributeString("config", gi.Config); MyWriter.WriteAttributeString("dts", gi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); MyWriter.WriteAttributeString("userid", gi.UserID.ToString()); @@ -1856,10 +1883,17 @@ namespace VEPROMS UserID FileExtension */ + byte[] buf = di.DocContent; + string libDocTitle = di.LibTitle; + if (DocReplace != null && DocReplace.ContainsKey(di.DocID) && _ConvertROsAndTransitionsToText) + { + buf = DocReplace[di.DocID]; + libDocTitle = null; // unlink the word section from the library document + } XmlElement xe = xn.OwnerDocument.CreateElement(nodename); xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "docid", di.DocID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "libtitle", di.LibTitle)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "doccontent", Convert.ToBase64String(di.DocContent))); + xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "libtitle", libDocTitle)); // di.LibTitle)); + xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "doccontent", Convert.ToBase64String(buf))); xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "docascii", di.DocAscii)); xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", di.Config)); xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", di.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); @@ -1910,10 +1944,17 @@ namespace VEPROMS UserID FileExtension */ + byte[] buf = di.DocContent; + string libDocTitle = di.LibTitle; + if (DocReplace != null && DocReplace.ContainsKey(di.DocID) && _ConvertROsAndTransitionsToText) + { + buf = DocReplace[di.DocID]; + libDocTitle = null; // unlink the word section from the library document + } MyWriter.WriteStartElement(nodename); MyWriter.WriteAttributeString("docid", di.DocID.ToString()); - MyWriter.WriteAttributeString("libtitle", di.LibTitle); - MyWriter.WriteAttributeString("doccontent", Convert.ToBase64String(di.DocContent)); + MyWriter.WriteAttributeString("libtitle", libDocTitle);// di.LibTitle); + MyWriter.WriteAttributeString("doccontent", Convert.ToBase64String(buf)); MyWriter.WriteAttributeString("docascii", di.DocAscii); MyWriter.WriteAttributeString("config", di.Config); MyWriter.WriteAttributeString("dts", di.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); @@ -2246,69 +2287,69 @@ namespace VEPROMS cc.Text = cc.Text.Replace(lookfor, replacewith); cc.Save(); } - private void AddTransitions(Content content, XmlNode xn) - { - /* - Content - Item - Item - int - int - string - dts - string - + private void AddTransitions(Content content, XmlNode xn) + { + /* + Content + Item + Item + int + int + string + dts + string + - #Link:Transition:1 2 187 - type,id,toid + #Link:Transition:1 2 187 + type,id,toid - #Link:TransitionRange:2 1 175 177 - type,id,toid,rangeid - */ - XmlNodeList nl = xn.SelectNodes("./transition"); - foreach (XmlNode nd in nl) - { - int toid = int.Parse(nd.Attributes.GetNamedItem("toid").InnerText); - int rangeid = int.Parse(nd.Attributes.GetNamedItem("rangeid").InnerText); - if (Old2NewItem.ContainsKey(toid) && Old2NewItem.ContainsKey(rangeid)) - { - int transitionid = int.Parse(nd.Attributes.GetNamedItem("transitionid").InnerText); - int isrange = int.Parse(nd.Attributes.GetNamedItem("isrange").InnerText); - int trantype = int.Parse(nd.Attributes.GetNamedItem("trantype").InnerText); - string config = nd.Attributes.GetNamedItem("config").InnerText; - string userid = nd.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - string lookfor; - if (isrange == 0) - lookfor = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - else - lookfor = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - //fromid = content.ContentID; - toid = Old2NewItem[toid]; - rangeid = Old2NewItem[rangeid]; - Transition tt = Transition.MakeTransition(content, Item.Get(toid), Item.Get(rangeid), isrange, trantype, config, dts, userid); - transitionid = tt.TransitionID; - string replacewith; - if (isrange == 0) - replacewith = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - else - replacewith = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - content.Text = content.Text.Replace(lookfor, replacewith); + #Link:TransitionRange:2 1 175 177 + type,id,toid,rangeid + */ + XmlNodeList nl = xn.SelectNodes("./transition"); + foreach (XmlNode nd in nl) + { + int toid = int.Parse(nd.Attributes.GetNamedItem("toid").InnerText); + int rangeid = int.Parse(nd.Attributes.GetNamedItem("rangeid").InnerText); + if (Old2NewItem.ContainsKey(toid) && Old2NewItem.ContainsKey(rangeid)) + { + int transitionid = int.Parse(nd.Attributes.GetNamedItem("transitionid").InnerText); + int isrange = int.Parse(nd.Attributes.GetNamedItem("isrange").InnerText); + int trantype = int.Parse(nd.Attributes.GetNamedItem("trantype").InnerText); + string config = nd.Attributes.GetNamedItem("config").InnerText; + string userid = nd.Attributes.GetNamedItem("userid").InnerText; + DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); + string lookfor; + if (isrange == 0) + lookfor = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); + else + lookfor = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); + //fromid = content.ContentID; + toid = Old2NewItem[toid]; + rangeid = Old2NewItem[rangeid]; + Transition tt = Transition.MakeTransition(content, Item.Get(toid), Item.Get(rangeid), isrange, trantype, config, dts, userid); + transitionid = tt.TransitionID; + string replacewith; + if (isrange == 0) + replacewith = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); + else + replacewith = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); + content.Text = content.Text.Replace(lookfor, replacewith); content.FixTransitionText(TransitionInfo.Get(tt.TransitionID)); - content.Save(); - } - else - { - PendingTransitions.DocumentElement.AppendChild(PendingTransitions.ImportNode(nd, true)); - //save to holding pen - } - } - } + content.Save(); + } + else + { + PendingTransitions.DocumentElement.AppendChild(PendingTransitions.ImportNode(nd, true)); + //save to holding pen + } + } + } private void AddTransitions() { AddTransitions(PendingTransitions); } - private void AddTransitions(XmlDocument xd) + private void AddTransitions(XmlDocument xd) { /* Content @@ -2684,26 +2725,27 @@ namespace VEPROMS FixSectionStart(procInfo); return procInfo; } - private void AddROUsage(XmlReader xr) - { - int contentid = int.Parse(xr.GetAttribute("contentid")); - contentid = Old2NewContent[contentid]; - Content content = Content.Get(contentid); - string rousageid = xr.GetAttribute("rousageid"); - string roid = xr.GetAttribute("roid"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - RoUsage rou = RoUsage.MakeRoUsage(content, roid, config, dts, userid, MyRODb); - rou.Save(); - string lookFor = string.Format("#Link:ReferencedObject:{0} {1} {2}[END>", rousageid, roid, oldRODbID.ToString()); - string replaceWith = string.Format("#Link:ReferencedObject:{0} {1} {2}[END>", rou.ROUsageID.ToString(), roid, newRODbID.ToString()); - if (lookFor != replaceWith) - { - content.Text = content.Text.Replace(lookFor, replaceWith); - content.Save(); - } - } + // jsj 2016Feb16 - This appears to not be used + //private void AddROUsage(XmlReader xr) + //{ + // int contentid = int.Parse(xr.GetAttribute("contentid")); + // contentid = Old2NewContent[contentid]; + // Content content = Content.Get(contentid); + // string rousageid = xr.GetAttribute("rousageid"); + // string roid = xr.GetAttribute("roid"); + // string config = xr.GetAttribute("config"); + // string userid = xr.GetAttribute("userid"); + // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); + // RoUsage rou = RoUsage.MakeRoUsage(content, roid, config, dts, userid, MyRODb); + // rou.Save(); + // string lookFor = string.Format("#Link:ReferencedObject:{0} {1} {2}[END>", rousageid, roid, oldRODbID.ToString()); + // string replaceWith = (cbxCvrtROsToText.Checked) ? "" : string.Format("#Link:ReferencedObject:{0} {1} {2}[END>", rou.ROUsageID.ToString(), roid, newRODbID.ToString()); + // if (lookFor != replaceWith) + // { + // content.Text = content.Text.Replace(lookFor, replaceWith); + // content.Save(); + // } + //} private void AddROUsages(Content content, XmlNode xn) { foreach (XmlNode nd in xn.SelectNodes("rousage")) @@ -2812,29 +2854,30 @@ namespace VEPROMS foreach (XmlNode nd in xn.ChildNodes) prevInfo = AddTable(nd, parentInfo, prevInfo); } - private ItemInfo AddTable(XmlReader xr, ItemInfo parentInfo, ItemInfo prevInfo, int oldid) - { - string number = xr.GetAttribute("number"); - string text = xr.GetAttribute("text"); - int steptype = int.Parse(xr.GetAttribute("type")); - string formatid = xr.GetAttribute("formatid"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - Step step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Table); - step.DTS = dts; - step.UserID = userid; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - Old2NewItem.Add(oldid, step.ItemID); - Old2NewContent.Add(int.Parse(xr.GetAttribute("contentid")), step.MyContent.ContentID); - prevInfo = StepInfo.Get(step.ItemID); - return prevInfo; - } + // jsj 2016Feb16 - This appears to not be used + //private ItemInfo AddTable(XmlReader xr, ItemInfo parentInfo, ItemInfo prevInfo, int oldid) + //{ + // string number = xr.GetAttribute("number"); + // string text = xr.GetAttribute("text"); + // int steptype = int.Parse(xr.GetAttribute("type")); + // string formatid = xr.GetAttribute("formatid"); + // string config = xr.GetAttribute("config"); + // string userid = xr.GetAttribute("userid"); + // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); + // Step step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Table); + // step.DTS = dts; + // step.UserID = userid; + // if (formatid != string.Empty) + // step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); + // step.MyContent.Config = config; + // step.MyContent.DTS = dts; + // step.MyContent.UserID = userid; + // step.Save(); + // Old2NewItem.Add(oldid, step.ItemID); + // Old2NewContent.Add(int.Parse(xr.GetAttribute("contentid")), step.MyContent.ContentID); + // prevInfo = StepInfo.Get(step.ItemID); + // return prevInfo; + //} private ItemInfo AddTable(XmlNode xn, ItemInfo parentInfo, ItemInfo prevInfo) { pbImportStep.PerformStep(); @@ -3285,17 +3328,18 @@ namespace VEPROMS floatFoldout.Add(contentid, int.Parse(xn.InnerText)); } } - private void AddGrid(XmlReader xr) - { - int contentid = int.Parse(xr.GetAttribute("contentid")); - contentid = Old2NewContent[contentid]; - Content content = Content.Get(contentid); - string data = xr.GetAttribute("data"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - Grid gg = Grid.MakeGrid(content, data, config, dts, userid); - } + // jsj 2016Feb16 - This appears to not be used + //private void AddGrid(XmlReader xr) + //{ + // int contentid = int.Parse(xr.GetAttribute("contentid")); + // contentid = Old2NewContent[contentid]; + // Content content = Content.Get(contentid); + // string data = xr.GetAttribute("data"); + // string config = xr.GetAttribute("config"); + // string userid = xr.GetAttribute("userid"); + // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); + // Grid gg = Grid.MakeGrid(content, data, config, dts, userid); + //} private void AddGrid(Content content, XmlNode xc) { XmlNode nd = xc.SelectSingleNode("grid"); @@ -3303,29 +3347,29 @@ namespace VEPROMS XmlDocument xd = new XmlDocument(); xd.LoadXml(data); XmlNode gn = xd.SelectSingleNode("C1FlexGrid/Control/IsRoTable"); - if (gn.InnerText.ToLower() == "true") - { - gn = xd.SelectSingleNode("C1FlexGrid/Control/RODbId"); - gn.InnerText = newRODbID.ToString(); - data = xd.OuterXml; - } - else - { - XmlNodeList nl = xd.SelectNodes("C1FlexGrid/Cells/Cell/Data"); - bool modified = false; - string lookFor = string.Format(" {0}[END", oldRODbID.ToString()); - string replaceWith = string.Format(" {0}[END", newRODbID.ToString()); - foreach (XmlNode nn in nl) - { - if (nn.InnerText.Contains("#Link:ReferencedObject:")) - { - nn.InnerText = nn.InnerText.Replace(lookFor, replaceWith); - modified = true; - } - } - if(modified) - data = xd.OuterXml; - } + if (gn.InnerText.ToLower() == "true") + { + gn = xd.SelectSingleNode("C1FlexGrid/Control/RODbId"); + gn.InnerText = newRODbID.ToString(); + data = xd.OuterXml; + } + else + { + XmlNodeList nl = xd.SelectNodes("C1FlexGrid/Cells/Cell/Data"); + bool modified = false; + string lookFor = string.Format(" {0}[END", oldRODbID.ToString()); + string replaceWith = string.Format(" {0}[END", newRODbID.ToString()); + foreach (XmlNode nn in nl) + { + if (nn.InnerText.Contains("#Link:ReferencedObject:")) + { + nn.InnerText = nn.InnerText.Replace(lookFor, replaceWith); + modified = true; + } + } + if (modified) + data = xd.OuterXml; + } string config = nd.Attributes.GetNamedItem("config").InnerText; string userid = nd.Attributes.GetNamedItem("userid").InnerText; DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); @@ -3349,23 +3393,24 @@ namespace VEPROMS Entry ee = Entry.MakeEntry(content, dd, dts, userid); ee.Save(); } - private void AddDocument(XmlReader xr, Dictionary dic) - { - string libtitle = xr.GetAttribute("libtitle"); - byte[] doccontent = Convert.FromBase64String(xr.GetAttribute("doccontent")); - string docascii = xr.GetAttribute("docascii"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - string fileextension = xr.GetAttribute("fileextension"); - Document dd = Document.MakeDocument(libtitle, doccontent, docascii, config, dts, userid, fileextension); - int contentid = int.Parse(dic["contentid"]); - contentid = Old2NewContent[contentid]; - Content content = Content.Get(contentid); - dts = DateTime.Parse(dic["dts"]); - userid = dic["userid"]; - Entry ee = Entry.MakeEntry(content, dd, dts, userid); - } + // jsj 2016Feb16 - This appears to not be used + //private void AddDocument(XmlReader xr, Dictionary dic) + //{ + // string libtitle = xr.GetAttribute("libtitle"); + // byte[] doccontent = Convert.FromBase64String(xr.GetAttribute("doccontent")); + // string docascii = xr.GetAttribute("docascii"); + // string config = xr.GetAttribute("config"); + // string userid = xr.GetAttribute("userid"); + // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); + // string fileextension = xr.GetAttribute("fileextension"); + // Document dd = Document.MakeDocument(libtitle, doccontent, docascii, config, dts, userid, fileextension); + // int contentid = int.Parse(dic["contentid"]); + // contentid = Old2NewContent[contentid]; + // Content content = Content.Get(contentid); + // dts = DateTime.Parse(dic["dts"]); + // userid = dic["userid"]; + // Entry ee = Entry.MakeEntry(content, dd, dts, userid); + //} private Document AddDocument(XmlNode xn) { Document d; diff --git a/PROMS/VEPROMS User Interface/dlgExportImport.designer.cs b/PROMS/VEPROMS User Interface/dlgExportImport.designer.cs index 50a0369c..cb3f8404 100644 --- a/PROMS/VEPROMS User Interface/dlgExportImport.designer.cs +++ b/PROMS/VEPROMS User Interface/dlgExportImport.designer.cs @@ -28,379 +28,377 @@ namespace VEPROMS /// private void InitializeComponent() { - this.pnlExport = new System.Windows.Forms.Panel(); - this.btnCloseExport = new System.Windows.Forms.Button(); - this.lblExportTime = new System.Windows.Forms.Label(); - this.lblExportStatus = new System.Windows.Forms.Label(); - this.pbExportStep = new System.Windows.Forms.ProgressBar(); - this.lblExportStep = new System.Windows.Forms.Label(); - this.pbExportSection = new System.Windows.Forms.ProgressBar(); - this.lblExportSection = new System.Windows.Forms.Label(); - this.pbExportProcedure = new System.Windows.Forms.ProgressBar(); - this.lblExportProcedure = new System.Windows.Forms.Label(); - this.btnDoExport = new System.Windows.Forms.Button(); - this.btnExport = new System.Windows.Forms.Button(); - this.txtExport = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); - this.pnlImport = new System.Windows.Forms.Panel(); - this.btnCloseImport = new System.Windows.Forms.Button(); - this.lblImportTime = new System.Windows.Forms.Label(); - this.lblImportStatus = new System.Windows.Forms.Label(); - this.pbImportStep = new System.Windows.Forms.ProgressBar(); - this.lblImportStep = new System.Windows.Forms.Label(); - this.pbImportSection = new System.Windows.Forms.ProgressBar(); - this.lblImportSection = new System.Windows.Forms.Label(); - this.pbImportProcedure = new System.Windows.Forms.ProgressBar(); - this.lblImportProcedure = new System.Windows.Forms.Label(); - this.btnDoImport = new System.Windows.Forms.Button(); - this.btnImport = new System.Windows.Forms.Button(); - this.txtImport = new System.Windows.Forms.TextBox(); - this.label2 = new System.Windows.Forms.Label(); - this.ofd = new System.Windows.Forms.OpenFileDialog(); - this.sfd = new System.Windows.Forms.SaveFileDialog(); - this.cbxExportAudits = new System.Windows.Forms.CheckBox(); - this.cbxImportAudits = new System.Windows.Forms.CheckBox(); - this.pnlExport.SuspendLayout(); - this.pnlImport.SuspendLayout(); - this.SuspendLayout(); - // - // pnlExport - // - this.pnlExport.Controls.Add(this.cbxExportAudits); - this.pnlExport.Controls.Add(this.btnCloseExport); - this.pnlExport.Controls.Add(this.lblExportTime); - this.pnlExport.Controls.Add(this.lblExportStatus); - this.pnlExport.Controls.Add(this.pbExportStep); - this.pnlExport.Controls.Add(this.lblExportStep); - this.pnlExport.Controls.Add(this.pbExportSection); - this.pnlExport.Controls.Add(this.lblExportSection); - this.pnlExport.Controls.Add(this.pbExportProcedure); - this.pnlExport.Controls.Add(this.lblExportProcedure); - this.pnlExport.Controls.Add(this.btnDoExport); - this.pnlExport.Controls.Add(this.btnExport); - this.pnlExport.Controls.Add(this.txtExport); - this.pnlExport.Controls.Add(this.label1); - this.pnlExport.Location = new System.Drawing.Point(12, 12); - this.pnlExport.Name = "pnlExport"; - this.pnlExport.Size = new System.Drawing.Size(618, 199); - this.pnlExport.TabIndex = 0; - // - // btnCloseExport - // - this.btnCloseExport.Enabled = false; - this.btnCloseExport.Location = new System.Drawing.Point(562, 32); - this.btnCloseExport.Name = "btnCloseExport"; - this.btnCloseExport.Size = new System.Drawing.Size(53, 23); - this.btnCloseExport.TabIndex = 12; - this.btnCloseExport.Text = "Close"; - this.btnCloseExport.UseVisualStyleBackColor = true; - this.btnCloseExport.Click += new System.EventHandler(this.btnCloseExport_Click); - // - // lblExportTime - // - this.lblExportTime.AutoSize = true; - this.lblExportTime.Location = new System.Drawing.Point(392, 29); - this.lblExportTime.Name = "lblExportTime"; - this.lblExportTime.Size = new System.Drawing.Size(28, 13); - this.lblExportTime.TabIndex = 11; - this.lblExportTime.Text = "0:00"; - this.lblExportTime.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // lblExportStatus - // - this.lblExportStatus.AutoSize = true; - this.lblExportStatus.Location = new System.Drawing.Point(140, 30); - this.lblExportStatus.Name = "lblExportStatus"; - this.lblExportStatus.Size = new System.Drawing.Size(133, 13); - this.lblExportStatus.TabIndex = 10; - this.lblExportStatus.Text = "Awaiting Export File Name:"; - // - // pbExportStep - // - this.pbExportStep.Location = new System.Drawing.Point(15, 155); - this.pbExportStep.Name = "pbExportStep"; - this.pbExportStep.Size = new System.Drawing.Size(561, 20); - this.pbExportStep.Step = 1; - this.pbExportStep.TabIndex = 9; - // - // lblExportStep - // - this.lblExportStep.AutoSize = true; - this.lblExportStep.Location = new System.Drawing.Point(12, 139); - this.lblExportStep.Name = "lblExportStep"; - this.lblExportStep.Size = new System.Drawing.Size(34, 13); - this.lblExportStep.TabIndex = 8; - this.lblExportStep.Text = "Steps"; - // - // pbExportSection - // - this.pbExportSection.Location = new System.Drawing.Point(15, 116); - this.pbExportSection.Name = "pbExportSection"; - this.pbExportSection.Size = new System.Drawing.Size(561, 20); - this.pbExportSection.Step = 1; - this.pbExportSection.TabIndex = 7; - // - // lblExportSection - // - this.lblExportSection.AutoSize = true; - this.lblExportSection.Location = new System.Drawing.Point(12, 100); - this.lblExportSection.Name = "lblExportSection"; - this.lblExportSection.Size = new System.Drawing.Size(48, 13); - this.lblExportSection.TabIndex = 6; - this.lblExportSection.Text = "Sections"; - // - // pbExportProcedure - // - this.pbExportProcedure.Location = new System.Drawing.Point(15, 77); - this.pbExportProcedure.Name = "pbExportProcedure"; - this.pbExportProcedure.Size = new System.Drawing.Size(561, 20); - this.pbExportProcedure.Step = 1; - this.pbExportProcedure.TabIndex = 5; - // - // lblExportProcedure - // - this.lblExportProcedure.AutoSize = true; - this.lblExportProcedure.Location = new System.Drawing.Point(12, 61); - this.lblExportProcedure.Name = "lblExportProcedure"; - this.lblExportProcedure.Size = new System.Drawing.Size(61, 13); - this.lblExportProcedure.TabIndex = 4; - this.lblExportProcedure.Text = "Procedures"; - // - // btnDoExport - // - this.btnDoExport.Enabled = false; - this.btnDoExport.Location = new System.Drawing.Point(15, 25); - this.btnDoExport.Name = "btnDoExport"; - this.btnDoExport.Size = new System.Drawing.Size(119, 23); - this.btnDoExport.TabIndex = 3; - this.btnDoExport.Text = "Process Export"; - this.btnDoExport.UseVisualStyleBackColor = true; - this.btnDoExport.Click += new System.EventHandler(this.btnDoExport_Click); - // - // btnExport - // - this.btnExport.Location = new System.Drawing.Point(582, 3); - this.btnExport.Name = "btnExport"; - this.btnExport.Size = new System.Drawing.Size(25, 23); - this.btnExport.TabIndex = 2; - this.btnExport.Text = "..."; - this.btnExport.UseVisualStyleBackColor = true; - this.btnExport.Click += new System.EventHandler(this.btnExport_Click); - // - // txtExport - // - this.txtExport.Location = new System.Drawing.Point(141, 6); - this.txtExport.Name = "txtExport"; - this.txtExport.ReadOnly = true; - this.txtExport.Size = new System.Drawing.Size(435, 20); - this.txtExport.TabIndex = 1; - this.txtExport.TextChanged += new System.EventHandler(this.txtExport_TextChanged); - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(12, 9); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(123, 13); - this.label1.TabIndex = 0; - this.label1.Text = "Select Export File Name:"; - // - // pnlImport - // - this.pnlImport.Controls.Add(this.cbxImportAudits); - this.pnlImport.Controls.Add(this.btnCloseImport); - this.pnlImport.Controls.Add(this.lblImportTime); - this.pnlImport.Controls.Add(this.lblImportStatus); - this.pnlImport.Controls.Add(this.pbImportStep); - this.pnlImport.Controls.Add(this.lblImportStep); - this.pnlImport.Controls.Add(this.pbImportSection); - this.pnlImport.Controls.Add(this.lblImportSection); - this.pnlImport.Controls.Add(this.pbImportProcedure); - this.pnlImport.Controls.Add(this.lblImportProcedure); - this.pnlImport.Controls.Add(this.btnDoImport); - this.pnlImport.Controls.Add(this.btnImport); - this.pnlImport.Controls.Add(this.txtImport); - this.pnlImport.Controls.Add(this.label2); - this.pnlImport.Location = new System.Drawing.Point(12, 217); - this.pnlImport.Name = "pnlImport"; - this.pnlImport.Size = new System.Drawing.Size(618, 225); - this.pnlImport.TabIndex = 1; - // - // btnCloseImport - // - this.btnCloseImport.Enabled = false; - this.btnCloseImport.Location = new System.Drawing.Point(562, 33); - this.btnCloseImport.Name = "btnCloseImport"; - this.btnCloseImport.Size = new System.Drawing.Size(53, 23); - this.btnCloseImport.TabIndex = 18; - this.btnCloseImport.Text = "Close"; - this.btnCloseImport.UseVisualStyleBackColor = true; - this.btnCloseImport.Click += new System.EventHandler(this.btnCloseImport_Click); - // - // lblImportTime - // - this.lblImportTime.AutoSize = true; - this.lblImportTime.Location = new System.Drawing.Point(392, 30); - this.lblImportTime.Name = "lblImportTime"; - this.lblImportTime.Size = new System.Drawing.Size(28, 13); - this.lblImportTime.TabIndex = 17; - this.lblImportTime.Text = "0.00"; - this.lblImportTime.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // lblImportStatus - // - this.lblImportStatus.AutoSize = true; - this.lblImportStatus.Location = new System.Drawing.Point(137, 31); - this.lblImportStatus.Name = "lblImportStatus"; - this.lblImportStatus.Size = new System.Drawing.Size(132, 13); - this.lblImportStatus.TabIndex = 16; - this.lblImportStatus.Text = "Awaiting Import File Name:"; - // - // pbImportStep - // - this.pbImportStep.Location = new System.Drawing.Point(15, 156); - this.pbImportStep.Name = "pbImportStep"; - this.pbImportStep.Size = new System.Drawing.Size(561, 20); - this.pbImportStep.Step = 1; - this.pbImportStep.TabIndex = 15; - // - // lblImportStep - // - this.lblImportStep.AutoSize = true; - this.lblImportStep.Location = new System.Drawing.Point(12, 140); - this.lblImportStep.Name = "lblImportStep"; - this.lblImportStep.Size = new System.Drawing.Size(34, 13); - this.lblImportStep.TabIndex = 14; - this.lblImportStep.Text = "Steps"; - // - // pbImportSection - // - this.pbImportSection.Location = new System.Drawing.Point(14, 117); - this.pbImportSection.Name = "pbImportSection"; - this.pbImportSection.Size = new System.Drawing.Size(561, 20); - this.pbImportSection.Step = 1; - this.pbImportSection.TabIndex = 13; - // - // lblImportSection - // - this.lblImportSection.AutoSize = true; - this.lblImportSection.Location = new System.Drawing.Point(12, 101); - this.lblImportSection.Name = "lblImportSection"; - this.lblImportSection.Size = new System.Drawing.Size(48, 13); - this.lblImportSection.TabIndex = 12; - this.lblImportSection.Text = "Sections"; - // - // pbImportProcedure - // - this.pbImportProcedure.Location = new System.Drawing.Point(14, 78); - this.pbImportProcedure.Name = "pbImportProcedure"; - this.pbImportProcedure.Size = new System.Drawing.Size(561, 20); - this.pbImportProcedure.Step = 1; - this.pbImportProcedure.TabIndex = 11; - // - // lblImportProcedure - // - this.lblImportProcedure.AutoSize = true; - this.lblImportProcedure.Location = new System.Drawing.Point(12, 62); - this.lblImportProcedure.Name = "lblImportProcedure"; - this.lblImportProcedure.Size = new System.Drawing.Size(61, 13); - this.lblImportProcedure.TabIndex = 10; - this.lblImportProcedure.Text = "Procedures"; - // - // btnDoImport - // - this.btnDoImport.Enabled = false; - this.btnDoImport.Location = new System.Drawing.Point(15, 26); - this.btnDoImport.Name = "btnDoImport"; - this.btnDoImport.Size = new System.Drawing.Size(119, 23); - this.btnDoImport.TabIndex = 5; - this.btnDoImport.Text = "Process Import"; - this.btnDoImport.UseVisualStyleBackColor = true; - this.btnDoImport.Click += new System.EventHandler(this.btnDoImport_Click); - // - // btnImport - // - this.btnImport.Location = new System.Drawing.Point(581, 4); - this.btnImport.Name = "btnImport"; - this.btnImport.Size = new System.Drawing.Size(25, 23); - this.btnImport.TabIndex = 4; - this.btnImport.Text = "..."; - this.btnImport.UseVisualStyleBackColor = true; - this.btnImport.Click += new System.EventHandler(this.btnImport_Click); - // - // txtImport - // - this.txtImport.Location = new System.Drawing.Point(140, 7); - this.txtImport.Name = "txtImport"; - this.txtImport.ReadOnly = true; - this.txtImport.Size = new System.Drawing.Size(435, 20); - this.txtImport.TabIndex = 3; - this.txtImport.TextChanged += new System.EventHandler(this.txtImport_TextChanged); - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(12, 10); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(122, 13); - this.label2.TabIndex = 1; - this.label2.Text = "Select Import File Name:"; - // - // ofd - // - this.ofd.AddExtension = false; - this.ofd.Filter = "PROMS Export Files|*.expx"; - this.ofd.Title = "Import File Name"; - // - // sfd - // - this.sfd.DefaultExt = "expx"; - this.sfd.Filter = "PROMS Export Files|*.expx"; - this.sfd.Title = "Export File Name"; - // - // cbxExportAudits - // - this.cbxExportAudits.AutoSize = true; - this.cbxExportAudits.Location = new System.Drawing.Point(141, 47); - this.cbxExportAudits.Name = "cbxExportAudits"; - this.cbxExportAudits.Size = new System.Drawing.Size(123, 17); - this.cbxExportAudits.TabIndex = 13; - this.cbxExportAudits.Text = "Include Audit History"; - this.cbxExportAudits.UseVisualStyleBackColor = true; - this.cbxExportAudits.Checked = false; + this.pnlExport = new System.Windows.Forms.Panel(); + this.cbxExportAudits = new System.Windows.Forms.CheckBox(); + this.btnCloseExport = new System.Windows.Forms.Button(); + this.lblExportTime = new System.Windows.Forms.Label(); + this.lblExportStatus = new System.Windows.Forms.Label(); + this.pbExportStep = new System.Windows.Forms.ProgressBar(); + this.lblExportStep = new System.Windows.Forms.Label(); + this.pbExportSection = new System.Windows.Forms.ProgressBar(); + this.lblExportSection = new System.Windows.Forms.Label(); + this.pbExportProcedure = new System.Windows.Forms.ProgressBar(); + this.lblExportProcedure = new System.Windows.Forms.Label(); + this.btnDoExport = new System.Windows.Forms.Button(); + this.btnExport = new System.Windows.Forms.Button(); + this.txtExport = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.pnlImport = new System.Windows.Forms.Panel(); + this.cbxImportAudits = new System.Windows.Forms.CheckBox(); + this.btnCloseImport = new System.Windows.Forms.Button(); + this.lblImportTime = new System.Windows.Forms.Label(); + this.lblImportStatus = new System.Windows.Forms.Label(); + this.pbImportStep = new System.Windows.Forms.ProgressBar(); + this.lblImportStep = new System.Windows.Forms.Label(); + this.pbImportSection = new System.Windows.Forms.ProgressBar(); + this.lblImportSection = new System.Windows.Forms.Label(); + this.pbImportProcedure = new System.Windows.Forms.ProgressBar(); + this.lblImportProcedure = new System.Windows.Forms.Label(); + this.btnDoImport = new System.Windows.Forms.Button(); + this.btnImport = new System.Windows.Forms.Button(); + this.txtImport = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.ofd = new System.Windows.Forms.OpenFileDialog(); + this.sfd = new System.Windows.Forms.SaveFileDialog(); + this.pnlExport.SuspendLayout(); + this.pnlImport.SuspendLayout(); + this.SuspendLayout(); + // + // pnlExport + // + this.pnlExport.Controls.Add(this.cbxExportAudits); + this.pnlExport.Controls.Add(this.btnCloseExport); + this.pnlExport.Controls.Add(this.lblExportTime); + this.pnlExport.Controls.Add(this.lblExportStatus); + this.pnlExport.Controls.Add(this.pbExportStep); + this.pnlExport.Controls.Add(this.lblExportStep); + this.pnlExport.Controls.Add(this.pbExportSection); + this.pnlExport.Controls.Add(this.lblExportSection); + this.pnlExport.Controls.Add(this.pbExportProcedure); + this.pnlExport.Controls.Add(this.lblExportProcedure); + this.pnlExport.Controls.Add(this.btnDoExport); + this.pnlExport.Controls.Add(this.btnExport); + this.pnlExport.Controls.Add(this.txtExport); + this.pnlExport.Controls.Add(this.label1); + this.pnlExport.Location = new System.Drawing.Point(12, 12); + this.pnlExport.Name = "pnlExport"; + this.pnlExport.Size = new System.Drawing.Size(618, 199); + this.pnlExport.TabIndex = 0; + // + // cbxExportAudits + // + this.cbxExportAudits.AutoSize = true; + this.cbxExportAudits.Location = new System.Drawing.Point(141, 54); + this.cbxExportAudits.Name = "cbxExportAudits"; + this.cbxExportAudits.Size = new System.Drawing.Size(123, 17); + this.cbxExportAudits.TabIndex = 13; + this.cbxExportAudits.Text = "Include Audit History"; + this.cbxExportAudits.UseVisualStyleBackColor = true; this.cbxExportAudits.Visible = false; - // - // cbxImportAudits - // - this.cbxImportAudits.AutoSize = true; - this.cbxImportAudits.Location = new System.Drawing.Point(140, 47); - this.cbxImportAudits.Name = "cbxImportAudits"; - this.cbxImportAudits.Size = new System.Drawing.Size(182, 17); - this.cbxImportAudits.TabIndex = 19; - this.cbxImportAudits.Text = "Include Audit History (if available)"; - this.cbxImportAudits.UseVisualStyleBackColor = true; - this.cbxImportAudits.Checked = false; + // + // btnCloseExport + // + this.btnCloseExport.Enabled = false; + this.btnCloseExport.Location = new System.Drawing.Point(562, 32); + this.btnCloseExport.Name = "btnCloseExport"; + this.btnCloseExport.Size = new System.Drawing.Size(53, 23); + this.btnCloseExport.TabIndex = 12; + this.btnCloseExport.Text = "Close"; + this.btnCloseExport.UseVisualStyleBackColor = true; + this.btnCloseExport.Click += new System.EventHandler(this.btnCloseExport_Click); + // + // lblExportTime + // + this.lblExportTime.AutoSize = true; + this.lblExportTime.Location = new System.Drawing.Point(392, 29); + this.lblExportTime.Name = "lblExportTime"; + this.lblExportTime.Size = new System.Drawing.Size(28, 13); + this.lblExportTime.TabIndex = 11; + this.lblExportTime.Text = "0:00"; + this.lblExportTime.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // lblExportStatus + // + this.lblExportStatus.AutoSize = true; + this.lblExportStatus.Location = new System.Drawing.Point(140, 30); + this.lblExportStatus.Name = "lblExportStatus"; + this.lblExportStatus.Size = new System.Drawing.Size(133, 13); + this.lblExportStatus.TabIndex = 10; + this.lblExportStatus.Text = "Awaiting Export File Name:"; + // + // pbExportStep + // + this.pbExportStep.Location = new System.Drawing.Point(15, 155); + this.pbExportStep.Name = "pbExportStep"; + this.pbExportStep.Size = new System.Drawing.Size(561, 20); + this.pbExportStep.Step = 1; + this.pbExportStep.TabIndex = 9; + // + // lblExportStep + // + this.lblExportStep.AutoSize = true; + this.lblExportStep.Location = new System.Drawing.Point(12, 139); + this.lblExportStep.Name = "lblExportStep"; + this.lblExportStep.Size = new System.Drawing.Size(34, 13); + this.lblExportStep.TabIndex = 8; + this.lblExportStep.Text = "Steps"; + // + // pbExportSection + // + this.pbExportSection.Location = new System.Drawing.Point(15, 116); + this.pbExportSection.Name = "pbExportSection"; + this.pbExportSection.Size = new System.Drawing.Size(561, 20); + this.pbExportSection.Step = 1; + this.pbExportSection.TabIndex = 7; + // + // lblExportSection + // + this.lblExportSection.AutoSize = true; + this.lblExportSection.Location = new System.Drawing.Point(12, 100); + this.lblExportSection.Name = "lblExportSection"; + this.lblExportSection.Size = new System.Drawing.Size(48, 13); + this.lblExportSection.TabIndex = 6; + this.lblExportSection.Text = "Sections"; + // + // pbExportProcedure + // + this.pbExportProcedure.Location = new System.Drawing.Point(15, 77); + this.pbExportProcedure.Name = "pbExportProcedure"; + this.pbExportProcedure.Size = new System.Drawing.Size(561, 20); + this.pbExportProcedure.Step = 1; + this.pbExportProcedure.TabIndex = 5; + // + // lblExportProcedure + // + this.lblExportProcedure.AutoSize = true; + this.lblExportProcedure.Location = new System.Drawing.Point(12, 61); + this.lblExportProcedure.Name = "lblExportProcedure"; + this.lblExportProcedure.Size = new System.Drawing.Size(61, 13); + this.lblExportProcedure.TabIndex = 4; + this.lblExportProcedure.Text = "Procedures"; + // + // btnDoExport + // + this.btnDoExport.Enabled = false; + this.btnDoExport.Location = new System.Drawing.Point(15, 25); + this.btnDoExport.Name = "btnDoExport"; + this.btnDoExport.Size = new System.Drawing.Size(119, 23); + this.btnDoExport.TabIndex = 3; + this.btnDoExport.Text = "Process Export"; + this.btnDoExport.UseVisualStyleBackColor = true; + this.btnDoExport.Click += new System.EventHandler(this.btnDoExport_Click); + // + // btnExport + // + this.btnExport.Location = new System.Drawing.Point(582, 3); + this.btnExport.Name = "btnExport"; + this.btnExport.Size = new System.Drawing.Size(25, 23); + this.btnExport.TabIndex = 2; + this.btnExport.Text = "..."; + this.btnExport.UseVisualStyleBackColor = true; + this.btnExport.Click += new System.EventHandler(this.btnExport_Click); + // + // txtExport + // + this.txtExport.Location = new System.Drawing.Point(141, 6); + this.txtExport.Name = "txtExport"; + this.txtExport.ReadOnly = true; + this.txtExport.Size = new System.Drawing.Size(435, 20); + this.txtExport.TabIndex = 1; + this.txtExport.TextChanged += new System.EventHandler(this.txtExport_TextChanged); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(12, 9); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(123, 13); + this.label1.TabIndex = 0; + this.label1.Text = "Select Export File Name:"; + // + // pnlImport + // + this.pnlImport.Controls.Add(this.cbxImportAudits); + this.pnlImport.Controls.Add(this.btnCloseImport); + this.pnlImport.Controls.Add(this.lblImportTime); + this.pnlImport.Controls.Add(this.lblImportStatus); + this.pnlImport.Controls.Add(this.pbImportStep); + this.pnlImport.Controls.Add(this.lblImportStep); + this.pnlImport.Controls.Add(this.pbImportSection); + this.pnlImport.Controls.Add(this.lblImportSection); + this.pnlImport.Controls.Add(this.pbImportProcedure); + this.pnlImport.Controls.Add(this.lblImportProcedure); + this.pnlImport.Controls.Add(this.btnDoImport); + this.pnlImport.Controls.Add(this.btnImport); + this.pnlImport.Controls.Add(this.txtImport); + this.pnlImport.Controls.Add(this.label2); + this.pnlImport.Location = new System.Drawing.Point(12, 217); + this.pnlImport.Name = "pnlImport"; + this.pnlImport.Size = new System.Drawing.Size(618, 225); + this.pnlImport.TabIndex = 1; + // + // cbxImportAudits + // + this.cbxImportAudits.AutoSize = true; + this.cbxImportAudits.Location = new System.Drawing.Point(360, 56); + this.cbxImportAudits.Name = "cbxImportAudits"; + this.cbxImportAudits.Size = new System.Drawing.Size(182, 17); + this.cbxImportAudits.TabIndex = 19; + this.cbxImportAudits.Text = "Include Audit History (if available)"; + this.cbxImportAudits.UseVisualStyleBackColor = true; this.cbxImportAudits.Visible = false; - // - // dlgExportImport - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(633, 452); - this.Controls.Add(this.pnlImport); - this.Controls.Add(this.pnlExport); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "dlgExportImport"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Export Import Dialog"; - this.Load += new System.EventHandler(this.dlgExportImport_Load); - this.pnlExport.ResumeLayout(false); - this.pnlExport.PerformLayout(); - this.pnlImport.ResumeLayout(false); - this.pnlImport.PerformLayout(); - this.ResumeLayout(false); + // + // btnCloseImport + // + this.btnCloseImport.Enabled = false; + this.btnCloseImport.Location = new System.Drawing.Point(562, 33); + this.btnCloseImport.Name = "btnCloseImport"; + this.btnCloseImport.Size = new System.Drawing.Size(53, 23); + this.btnCloseImport.TabIndex = 18; + this.btnCloseImport.Text = "Close"; + this.btnCloseImport.UseVisualStyleBackColor = true; + this.btnCloseImport.Click += new System.EventHandler(this.btnCloseImport_Click); + // + // lblImportTime + // + this.lblImportTime.AutoSize = true; + this.lblImportTime.Location = new System.Drawing.Point(392, 30); + this.lblImportTime.Name = "lblImportTime"; + this.lblImportTime.Size = new System.Drawing.Size(28, 13); + this.lblImportTime.TabIndex = 17; + this.lblImportTime.Text = "0.00"; + this.lblImportTime.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // lblImportStatus + // + this.lblImportStatus.AutoSize = true; + this.lblImportStatus.Location = new System.Drawing.Point(137, 31); + this.lblImportStatus.Name = "lblImportStatus"; + this.lblImportStatus.Size = new System.Drawing.Size(132, 13); + this.lblImportStatus.TabIndex = 16; + this.lblImportStatus.Text = "Awaiting Import File Name:"; + // + // pbImportStep + // + this.pbImportStep.Location = new System.Drawing.Point(16, 180); + this.pbImportStep.Name = "pbImportStep"; + this.pbImportStep.Size = new System.Drawing.Size(561, 20); + this.pbImportStep.Step = 1; + this.pbImportStep.TabIndex = 15; + // + // lblImportStep + // + this.lblImportStep.AutoSize = true; + this.lblImportStep.Location = new System.Drawing.Point(13, 164); + this.lblImportStep.Name = "lblImportStep"; + this.lblImportStep.Size = new System.Drawing.Size(34, 13); + this.lblImportStep.TabIndex = 14; + this.lblImportStep.Text = "Steps"; + // + // pbImportSection + // + this.pbImportSection.Location = new System.Drawing.Point(15, 141); + this.pbImportSection.Name = "pbImportSection"; + this.pbImportSection.Size = new System.Drawing.Size(561, 20); + this.pbImportSection.Step = 1; + this.pbImportSection.TabIndex = 13; + // + // lblImportSection + // + this.lblImportSection.AutoSize = true; + this.lblImportSection.Location = new System.Drawing.Point(13, 125); + this.lblImportSection.Name = "lblImportSection"; + this.lblImportSection.Size = new System.Drawing.Size(48, 13); + this.lblImportSection.TabIndex = 12; + this.lblImportSection.Text = "Sections"; + // + // pbImportProcedure + // + this.pbImportProcedure.Location = new System.Drawing.Point(15, 102); + this.pbImportProcedure.Name = "pbImportProcedure"; + this.pbImportProcedure.Size = new System.Drawing.Size(561, 20); + this.pbImportProcedure.Step = 1; + this.pbImportProcedure.TabIndex = 11; + // + // lblImportProcedure + // + this.lblImportProcedure.AutoSize = true; + this.lblImportProcedure.Location = new System.Drawing.Point(13, 86); + this.lblImportProcedure.Name = "lblImportProcedure"; + this.lblImportProcedure.Size = new System.Drawing.Size(61, 13); + this.lblImportProcedure.TabIndex = 10; + this.lblImportProcedure.Text = "Procedures"; + // + // btnDoImport + // + this.btnDoImport.Enabled = false; + this.btnDoImport.Location = new System.Drawing.Point(15, 26); + this.btnDoImport.Name = "btnDoImport"; + this.btnDoImport.Size = new System.Drawing.Size(119, 23); + this.btnDoImport.TabIndex = 5; + this.btnDoImport.Text = "Process Import"; + this.btnDoImport.UseVisualStyleBackColor = true; + this.btnDoImport.Click += new System.EventHandler(this.btnDoImport_Click); + // + // btnImport + // + this.btnImport.Location = new System.Drawing.Point(581, 4); + this.btnImport.Name = "btnImport"; + this.btnImport.Size = new System.Drawing.Size(25, 23); + this.btnImport.TabIndex = 4; + this.btnImport.Text = "..."; + this.btnImport.UseVisualStyleBackColor = true; + this.btnImport.Click += new System.EventHandler(this.btnImport_Click); + // + // txtImport + // + this.txtImport.Location = new System.Drawing.Point(140, 7); + this.txtImport.Name = "txtImport"; + this.txtImport.ReadOnly = true; + this.txtImport.Size = new System.Drawing.Size(435, 20); + this.txtImport.TabIndex = 3; + this.txtImport.TextChanged += new System.EventHandler(this.txtImport_TextChanged); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(12, 10); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(122, 13); + this.label2.TabIndex = 1; + this.label2.Text = "Select Import File Name:"; + // + // ofd + // + this.ofd.AddExtension = false; + this.ofd.Filter = "PROMS Export Files|*.expx"; + this.ofd.Title = "Import File Name"; + // + // sfd + // + this.sfd.DefaultExt = "expx"; + this.sfd.Filter = "PROMS Export Files|*.expx"; + this.sfd.Title = "Export File Name"; + // + // dlgExportImport + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(633, 452); + this.Controls.Add(this.pnlImport); + this.Controls.Add(this.pnlExport); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "dlgExportImport"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Export Import Dialog"; + this.Load += new System.EventHandler(this.dlgExportImport_Load); + this.pnlExport.ResumeLayout(false); + this.pnlExport.PerformLayout(); + this.pnlImport.ResumeLayout(false); + this.pnlImport.PerformLayout(); + this.ResumeLayout(false); } @@ -437,7 +435,7 @@ namespace VEPROMS private System.Windows.Forms.Button btnCloseExport; private System.Windows.Forms.Button btnCloseImport; private System.Windows.Forms.CheckBox cbxExportAudits; - private System.Windows.Forms.CheckBox cbxImportAudits; + private System.Windows.Forms.CheckBox cbxImportAudits; } } \ No newline at end of file diff --git a/PROMS/VEPROMS User Interface/frmPDFStatusForm.cs b/PROMS/VEPROMS User Interface/frmPDFStatusForm.cs index 9dd39e9b..07f31375 100644 --- a/PROMS/VEPROMS User Interface/frmPDFStatusForm.cs +++ b/PROMS/VEPROMS User Interface/frmPDFStatusForm.cs @@ -88,6 +88,14 @@ namespace VEPROMS _NewLocation = newLocation; DialogResult = DialogResult.OK; } + // used when the approved function creates an export file with unlinked ROs and Transitons. Word sections that have RO tokens are saved with the RO Vaules in DocReplace + // DocReplace is passed on to the Export functions. + private Dictionary _DocReplace; + public Dictionary DocReplace + { + get { return _DocReplace; } + set { _DocReplace = value; } + } public bool AllowAllWatermarks { get { return MyPromsPrinter.AllowAllWatermarks; } @@ -146,6 +154,7 @@ namespace VEPROMS if (CancelStop) btnCancel.Visible = true; Application.DoEvents(); MyPromsPrinter.StatusChanged += new PromsPrinterStatusEvent(pp_StatusChanged); + MyPromsPrinter.DocReplace = DocReplace; // used when approve generates an export with unlinked ROs and Transitions DateTime tStart = DateTime.Now; if (!CancelStop) PromsPrinter.ClearTransPageNumProblems(); do diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/DocumentExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/DocumentExt.cs index 7b1e644f..ae107039 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/DocumentExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/DocumentExt.cs @@ -572,6 +572,13 @@ namespace VEPROMS.CSLA.Library } public static class MSWordToPDF { + // used to save Word sections with resolved ROs (for export generated from Approve) + private static Dictionary _DocReplace; + public static Dictionary DocReplace + { + get { return MSWordToPDF._DocReplace; } + set { MSWordToPDF._DocReplace = value; } + } private static bool _CloseWordWhenDone = true; public static bool CloseWordWhenDone { @@ -615,7 +622,7 @@ namespace VEPROMS.CSLA.Library string fileName = GetFileName(sect); FileInfo fi = new FileInfo(fileName); FileStream fs = fi.Create(); - PdfInfo myPdf = PdfInfo.Get(sect); + PdfInfo myPdf = PdfInfo.Get(sect,false); if (myPdf != null && myPdf.DocPdf != null) fs.Write(myPdf.DocPdf, 0, myPdf.DocPdf.Length); fs.Close(); return fileName; @@ -624,7 +631,7 @@ namespace VEPROMS.CSLA.Library public static bool UpdateDocPdf(DocumentInfo mydoc, Color overrideColor, ItemInfo sect) { MSWordToPDF.OverrideColor = overrideColor; - PdfInfo myPdf = PdfInfo.Get(sect); + PdfInfo myPdf = PdfInfo.Get(sect,DocReplace!=null); return true; } public static bool SetDocPdf(DocumentInfo docInfo, ItemInfo sect) @@ -982,15 +989,32 @@ namespace VEPROMS.CSLA.Library sel.Range.Font.Color = (LBWdColor)WordColor(OverrideColor == System.Drawing.Color.Transparent ? System.Drawing.Color.Black : OverrideColor); sect.MSWordPageCount = myDoc.Length; fileName = CreatePDF(fileName, openPdf,MSWordToPDF.DebugStatus); + if (DocReplace != null) + { + MyApp.ActiveDocument.SaveAs2000(); + DocReplace.Add(sect.MyContent.MyEntry.DocID, GetBytes(MyApp.ActiveDocument.FullName)); // save the word document containing resolved ROs + } CloseDocument(); if (CloseWordWhenDone) { CloseAppAfterWait(); } if (statusChange != null) statusChange(VolianStatusType.Complete, 0, ""); + GC.Collect(); //jsj 2-15-2016 - for memeory garbage collection return fileName; } } + // Reads the Word file containing the resolved ROs + // used when adding to DocReplace + private static byte[] GetBytes(string filename) + { + FileInfo fi = new FileInfo(filename); + FileStream fs = fi.Open(FileMode.Open,FileAccess.Read,FileShare.ReadWrite); + byte[] buf = new byte[fi.Length]; + fs.Read(buf, 0, buf.Length); + fs.Close(); + return buf; + } private static void CloseDocument() { int attempts = 0; @@ -1323,6 +1347,7 @@ namespace VEPROMS.CSLA.Library VG.IVGOutput vgOut = new VG.VGOut_Graphics(grfx); vgOut.DebugStatus = MSWordToPDF.DebugStatus; myPlot.Process(vgOut); + GC.Collect(); // memory garbage collection (Regex bug) grfx.Dispose(); GraphicsUnit gu = new GraphicsUnit(); retval = mf.GetBounds(ref gu); diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/PdfExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/PdfExt.cs index c4eb1d5a..db6a3827 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/PdfExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/PdfExt.cs @@ -63,7 +63,7 @@ namespace VEPROMS.CSLA.Library } public partial class PdfInfo { - public static PdfInfo Get(ItemInfo sect) + public static PdfInfo Get(ItemInfo sect, bool ovrride) { int count = 0; while (count < 2) @@ -81,8 +81,12 @@ namespace VEPROMS.CSLA.Library myPdf = Get(sect.MyContent.MyEntry.DocID, ss*10 + MSWordToPDF.DebugStatus, (int)myDocStyle.Layout.TopMargin, (int)myDocStyle.Layout.PageLength, (int)myDocStyle.Layout.LeftMargin, (int)myDocStyle.Layout.PageWidth); } - if (myPdf != null) return myPdf; - if (count > 0) return null; // Could not find or create a pdf + // ovrride forces the the printing of the word seciton, which creates a word file with resolved ROs, which is saved for an approved export + if (!ovrride || (ovrride && count ==1)) + { + if (myPdf != null) return myPdf; + if (count > 0) return null; // Could not find or create a pdf + } MSWordToPDF.SetDocPdf(sect.MyContent.MyEntry.MyDocument, sect); count++; } diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/RevisionInfoExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/RevisionInfoExt.cs index 10e92ccc..409f8b2f 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/RevisionInfoExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/RevisionInfoExt.cs @@ -878,14 +878,16 @@ namespace VEPROMS.CSLA.Library { get { + //_MyLog.WarnFormat("LatestVersion 1 - {0}",GC.GetTotalMemory(true)); if (this.RevisionVersions == null || this.RevisionVersions.Count == 0) return null; - VersionInfo latest = this.RevisionVersions[0]; - foreach (VersionInfo vi in this.RevisionVersions) - { - if (vi.DTS > latest.DTS) - latest = vi; - } - return latest; + VersionInfo latest = this.RevisionVersions[0]; + foreach (VersionInfo vi in this.RevisionVersions) + { + if (vi.DTS > latest.DTS) + latest = vi; + } + //_MyLog.WarnFormat("LatestVersion 2 - {0}", GC.GetTotalMemory(true)); + return latest; } } public override string ToString()