Compare commits
15 Commits
Author | SHA1 | Date | |
---|---|---|---|
28c681a562 | |||
44025c3978 | |||
8c32d18aec | |||
20c31153de | |||
ecb9a805e5 | |||
0577acad93 | |||
d7f83fa4d4 | |||
4c4f4d52d2 | |||
0bf9025c0d | |||
2784b57a05 | |||
b9fc9748c7 | |||
ec25f6426a | |||
00283b4f28 | |||
ec8e4c36a4 | |||
92522b1229 |
@@ -180,6 +180,7 @@
|
|||||||
<Content Include="fmtall\CPL_03all.xml" />
|
<Content Include="fmtall\CPL_03all.xml" />
|
||||||
<Content Include="fmtall\CPSAMGDataall.xml" />
|
<Content Include="fmtall\CPSAMGDataall.xml" />
|
||||||
<Content Include="fmtall\CPSAMGDEVall.xml" />
|
<Content Include="fmtall\CPSAMGDEVall.xml" />
|
||||||
|
<Content Include="fmtall\EPTSTBCK1all.xml" />
|
||||||
<Content Include="fmtall\EPTST1all.xml" />
|
<Content Include="fmtall\EPTST1all.xml" />
|
||||||
<Content Include="fmtall\CWEall.xml" />
|
<Content Include="fmtall\CWEall.xml" />
|
||||||
<Content Include="fmtall\CWEDEVall.xml" />
|
<Content Include="fmtall\CWEDEVall.xml" />
|
||||||
|
Binary file not shown.
BIN
PROMS/Formats/fmtall/EPTSTBCK1all.xml
Normal file
BIN
PROMS/Formats/fmtall/EPTSTBCK1all.xml
Normal file
Binary file not shown.
@@ -164,6 +164,9 @@
|
|||||||
<Compile Include="dlgCheckedOutProcedure.designer.cs">
|
<Compile Include="dlgCheckedOutProcedure.designer.cs">
|
||||||
<DependentUpon>dlgCheckedOutProcedure.cs</DependentUpon>
|
<DependentUpon>dlgCheckedOutProcedure.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="dlgExportImportEP.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
<Compile Include="dlgMSWordMessage.cs">
|
<Compile Include="dlgMSWordMessage.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
File diff suppressed because it is too large
Load Diff
347
PROMS/VEPROMS User Interface/dlgExportImportEP.cs
Normal file
347
PROMS/VEPROMS User Interface/dlgExportImportEP.cs
Normal file
@@ -0,0 +1,347 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
using System.Xml;
|
||||||
|
using VEPROMS.CSLA.Library;
|
||||||
|
|
||||||
|
namespace VEPROMS
|
||||||
|
{
|
||||||
|
//C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
|
||||||
|
//class inherits from normal import/export form
|
||||||
|
//then adds additional functionality
|
||||||
|
#pragma warning disable S101 // Types should be named in PascalCase
|
||||||
|
public partial class dlgExportImportEP : dlgExportImport
|
||||||
|
#pragma warning restore S101 // Types should be named in PascalCase
|
||||||
|
{
|
||||||
|
private readonly AnnotationTypeInfo _AnnotationType;
|
||||||
|
private readonly string multiseparator = ",";
|
||||||
|
|
||||||
|
private static Regex _ROAccPageTokenPattern = new Regex("[<][^<>-]+-[^<>]+[>]");
|
||||||
|
|
||||||
|
public dlgExportImportEP(string mode, FolderInfo folderInfo, frmVEPROMS myFrmVEPROMS, int annotationTypeId, int unitIndex = 0) : base(mode, folderInfo, myFrmVEPROMS, (E_UCFImportOptions)0, unitIndex)
|
||||||
|
{
|
||||||
|
_AnnotationType = AnnotationTypeInfo.Get(annotationTypeId);
|
||||||
|
_ExportBothConvertedandNot = true;
|
||||||
|
DocReplace = new Dictionary<int, byte[]>();
|
||||||
|
FormClosed += OnClose;
|
||||||
|
Text = $"{mode} Electronic Procedure ({_AnnotationType.Name}) Dialog for {folderInfo.Name}";
|
||||||
|
}
|
||||||
|
public dlgExportImportEP(string mode, DocVersionInfo docVersionInfo, frmVEPROMS myFrmVEPROMS, int annotationTypeId, int unitIndex = 0) : base(mode, docVersionInfo, myFrmVEPROMS, (E_UCFImportOptions)0, unitIndex)
|
||||||
|
{
|
||||||
|
_AnnotationType = AnnotationTypeInfo.Get(annotationTypeId);
|
||||||
|
_ExportBothConvertedandNot = true;
|
||||||
|
DocReplace = new Dictionary<int, byte[]>();
|
||||||
|
FormClosed += OnClose;
|
||||||
|
Text = $"{mode} Electronic Procedure ({_AnnotationType.Name}) Dialog for {docVersionInfo.Name} of {docVersionInfo.MyFolder.Name}";
|
||||||
|
}
|
||||||
|
public dlgExportImportEP(string mode, ProcedureInfo procedureInfo, frmVEPROMS myFrmVEPROMS, int annotationTypeId, int unitIndex = 0) : base(mode, procedureInfo, myFrmVEPROMS, (E_UCFImportOptions)0, unitIndex)
|
||||||
|
{
|
||||||
|
_AnnotationType = AnnotationTypeInfo.Get(annotationTypeId);
|
||||||
|
_ExportBothConvertedandNot = true;
|
||||||
|
DocReplace = new Dictionary<int, byte[]>();
|
||||||
|
FormClosed += OnClose;
|
||||||
|
Text = $"{mode} Electronic Procedure ({_AnnotationType.Name}) Dialog for {procedureInfo.DisplayNumber}";
|
||||||
|
}
|
||||||
|
|
||||||
|
//Overridden function to handle export of EP data
|
||||||
|
protected override void ExportEPAnnotationInfo(XmlElement xe, ItemInfo ii)
|
||||||
|
{
|
||||||
|
if (_UnitIndex > 0)
|
||||||
|
{
|
||||||
|
ii.MyDocVersion.DocVersionConfig.SelectedSlave = _UnitIndex;
|
||||||
|
ii.MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave = _UnitIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
//switch to handle customizations for different formats
|
||||||
|
switch (ii.ActiveFormat.PlantFormat.EPFormatFiles.Find(x => x.AnnotationTypeID == _AnnotationType.TypeID)?.Name)
|
||||||
|
{
|
||||||
|
default:
|
||||||
|
ExportEPAnnotationInfo_Default(xe, ii);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
ii.MyDocVersion.DocVersionConfig.SelectedSlave = 0;
|
||||||
|
ii.MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave = 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//default export of EP Data
|
||||||
|
private void ExportEPAnnotationInfo_Default(XmlElement xe, ItemInfo ii)
|
||||||
|
{
|
||||||
|
//Add tab text to item
|
||||||
|
string steptab = Volian.Print.Library.PDFReport.BuildStepTab(ii);
|
||||||
|
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "StepTab", steptab));
|
||||||
|
|
||||||
|
//Add db sequence to item
|
||||||
|
string dbsequence = dbSeq(ii);
|
||||||
|
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dbsequence", dbsequence));
|
||||||
|
|
||||||
|
//get first transition in item and add it as an xml element
|
||||||
|
if (ii.MyContent.ContentTransitionCount > 0)
|
||||||
|
{
|
||||||
|
TransitionInfo ct = ii.MyContent.ContentTransitions[0];
|
||||||
|
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "TransitionToItemID", ct.ToID.ToString()));
|
||||||
|
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "TransitionTodbsequence", dbSeq(ct.ToID)));
|
||||||
|
}
|
||||||
|
|
||||||
|
//export EP annotation details under an EPInfo node
|
||||||
|
if (ii.ItemAnnotations != null)
|
||||||
|
{
|
||||||
|
XmlElement xepinfo = xe.OwnerDocument.CreateElement("EPInfo");
|
||||||
|
|
||||||
|
EPFields myEPFields = ii.GetValidEPFields(_AnnotationType.TypeID);
|
||||||
|
ROFSTLookup lookup = ii.MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(ii.MyDocVersion);
|
||||||
|
bool epexportblank = ii.EPexportblank(_AnnotationType.TypeID); //should blank xml elements export?
|
||||||
|
|
||||||
|
//grab the current RO db so will know location of RO files and default graphics ext.
|
||||||
|
using (RODbInfo myRODB = (RODbInfoList.Get()).FirstOrDefault(x => x.RODbID == ii.MyDocVersion.DocVersionAssociations[0].MyROFst.RODbID))
|
||||||
|
{
|
||||||
|
//For each annotation in the item that is of the current EP Annotation type
|
||||||
|
foreach (var EPAnnotation in ii.ItemAnnotations.Where(x => x.TypeID == _AnnotationType.TypeID))
|
||||||
|
{
|
||||||
|
var EPAnnotationConfig = new AnnotationConfig(EPAnnotation.Config);
|
||||||
|
|
||||||
|
XmlElement xepdetails = xe.OwnerDocument.CreateElement("Details");
|
||||||
|
//include the annotation ID for reference
|
||||||
|
xepdetails.Attributes.SetNamedItem(AddAttribute(xepdetails.OwnerDocument, "AnnotationID", EPAnnotation.AnnotationID.ToString()));
|
||||||
|
|
||||||
|
//loop through each EP Field - name the xml elements the EP.name
|
||||||
|
foreach (EPField EP in myEPFields)
|
||||||
|
{
|
||||||
|
string val = EPAnnotationConfig.GetValue("EP", EP.name);
|
||||||
|
|
||||||
|
if (epexportblank || !string.IsNullOrEmpty(val))
|
||||||
|
{
|
||||||
|
|
||||||
|
if (_UnitIndex != 0)
|
||||||
|
{
|
||||||
|
val = DisplayText.ResolveUnitSpecific(ii.MyDocVersion, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
XmlElement xindivid = xe.OwnerDocument.CreateElement(EP.name);
|
||||||
|
|
||||||
|
//need to resolve ROs ROSingle, ROMulti, in text
|
||||||
|
//get values
|
||||||
|
switch (EP.type.ToLower())
|
||||||
|
{
|
||||||
|
case "text":
|
||||||
|
|
||||||
|
//for text, check if any embedded ROs
|
||||||
|
//if none, set the xml element to the text
|
||||||
|
//otherwise resolve the ROs
|
||||||
|
MatchCollection matches = _ROAccPageTokenPattern.Matches(val);
|
||||||
|
if (matches.Count == 0)
|
||||||
|
{
|
||||||
|
xindivid.InnerText = val;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//resolve ROs
|
||||||
|
//text ROs will replace the AccID key in the text
|
||||||
|
//for binary objects like images,
|
||||||
|
//we will keep the AccID in the text and output the binary as a separate child
|
||||||
|
//XML element with the same xml name as the AccID
|
||||||
|
foreach (Match m in matches)
|
||||||
|
{
|
||||||
|
ROFSTLookup.rochild roc = lookup.GetROChildByAccPageID(m.Groups[0].Value);
|
||||||
|
|
||||||
|
// Exclude replacing Images since are binary - for those, add a sub item
|
||||||
|
if (Enumerable.Range(8, 15).Contains(roc.type))
|
||||||
|
{
|
||||||
|
xindivid.InnerText = val;
|
||||||
|
|
||||||
|
XmlElement xroid = AddGraphic(xindivid, m.Groups[0].Value, roc, myRODB, roc.type != 8);
|
||||||
|
|
||||||
|
xindivid.AppendChild(xroid);
|
||||||
|
}
|
||||||
|
else if (!string.IsNullOrEmpty(roc.value))
|
||||||
|
{
|
||||||
|
bool convertCaretToDeltaSymbol = (ii.ActiveSection != null) && ii.ActiveSection.ActiveFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta;
|
||||||
|
|
||||||
|
string rocvalue = roc.value.Replace("`", "\xB0");
|
||||||
|
rocvalue = rocvalue.Replace("\xF8", "\xB0");
|
||||||
|
rocvalue = rocvalue.Replace("\x7F", "\x394"); //delta
|
||||||
|
if (convertCaretToDeltaSymbol) rocvalue = rocvalue.Replace("^", "\x394"); // delta
|
||||||
|
val = val.Replace($"{m.Groups[0].Value}", rocvalue);
|
||||||
|
xindivid.InnerText = val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "rosingle":
|
||||||
|
//Get the output columns from the EPFormatFile
|
||||||
|
//set the "Item" nodes value = to those resolved items
|
||||||
|
//separated by multiseparator
|
||||||
|
XmlElement xindivid_rosingle = xindivid.OwnerDocument.CreateElement("Item");
|
||||||
|
xindivid_rosingle.Attributes.SetNamedItem(AddAttribute(xindivid_rosingle.OwnerDocument, "ROID", val));
|
||||||
|
|
||||||
|
//add values specified in EP input list
|
||||||
|
List<string> ro_single_tmp = EP.getROValuesList(EPAnnotation, val);
|
||||||
|
xindivid_rosingle.InnerText = String.Join(multiseparator, ro_single_tmp.ToArray());
|
||||||
|
|
||||||
|
//if image, add location and binary of image
|
||||||
|
// - images are type 8
|
||||||
|
// but if multiple return values could combine
|
||||||
|
// for example an text (1) + image (8) would be 9
|
||||||
|
ROFSTLookup.rochild roc_single = lookup.GetRoChild(val);
|
||||||
|
if (Enumerable.Range(8, 15).Contains(roc_single.type))
|
||||||
|
{
|
||||||
|
XmlElement xroid = AddGraphic(xindivid, val, roc_single, myRODB, roc_single.type != 8);
|
||||||
|
xindivid_rosingle.AppendChild(xroid);
|
||||||
|
}
|
||||||
|
|
||||||
|
xindivid.AppendChild(xindivid_rosingle);
|
||||||
|
break;
|
||||||
|
case "romulti":
|
||||||
|
//Get the output columns from the EPFormatFile
|
||||||
|
//create an "Item" subnode for each selected RO
|
||||||
|
//set the nodes value = to those resolved items
|
||||||
|
//separated by multiseparator
|
||||||
|
foreach (string ival in val.Split(multiseparator.ToCharArray()))
|
||||||
|
{
|
||||||
|
XmlElement xindivid_romulti = xindivid.OwnerDocument.CreateElement("Item");
|
||||||
|
xindivid_romulti.Attributes.SetNamedItem(AddAttribute(xindivid_romulti.OwnerDocument, "ROID", ival));
|
||||||
|
|
||||||
|
//add values specified in EP input list
|
||||||
|
List<string> ro_multi_tmp = EP.getROValuesList(EPAnnotation, ival);
|
||||||
|
xindivid_romulti.InnerText = String.Join(multiseparator, ro_multi_tmp.ToArray());
|
||||||
|
|
||||||
|
//if image, add location and binary of image
|
||||||
|
// - images are type 8
|
||||||
|
// but if multiple return values could combine
|
||||||
|
// for example an text (1) + image (8) would be 9
|
||||||
|
ROFSTLookup.rochild roc_multi = lookup.GetRoChild(ival);
|
||||||
|
if (Enumerable.Range(8, 15).Contains(roc_multi.type))
|
||||||
|
{
|
||||||
|
XmlElement xroid = AddGraphic(xindivid, ival, roc_multi, myRODB, roc_multi.type != 8);
|
||||||
|
xindivid_romulti.AppendChild(xroid);
|
||||||
|
}
|
||||||
|
|
||||||
|
xindivid.AppendChild(xindivid_romulti);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "tableinput":
|
||||||
|
xindivid.InnerText = val;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
xindivid.InnerText = val;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
xepdetails.AppendChild(xindivid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
xepinfo.AppendChild(xepdetails);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
xe.AppendChild(xepinfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//return a db sequence string from an Item ID
|
||||||
|
private string dbSeq(int itemID)
|
||||||
|
{
|
||||||
|
using (ItemInfo ii = ItemInfo.Get(itemID))
|
||||||
|
{
|
||||||
|
return dbSeq(ii);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//return a db sequence string from an ItemInfo
|
||||||
|
private string dbSeq(ItemInfo ii) => $"{((FolderInfo)ii.MyDocVersion.ActiveParent).Name}:{ii.MyProcedure.DisplayNumber} {ii.MyProcedure.DisplayText}:{ii.DBSequence}";
|
||||||
|
|
||||||
|
//For Exporting an RO that is an image
|
||||||
|
//returns the Location and FileName of the RO Image
|
||||||
|
private string GetROImageFileLocation(ROFSTLookup.rochild roc, RODbInfo rodb, bool isMulti)
|
||||||
|
{
|
||||||
|
string rodbpath = rodb.FolderPath;
|
||||||
|
|
||||||
|
string rocval = roc.value;
|
||||||
|
if (rocval == null) rocval = Array.Find(roc.children, x => x.value.Contains('.')).value;
|
||||||
|
|
||||||
|
if (rocval == null) return "";
|
||||||
|
string imgname;
|
||||||
|
if (isMulti)
|
||||||
|
{
|
||||||
|
imgname = rocval.Substring(rocval.IndexOf(' ') + 1, rocval.IndexOf("\r\n") - rocval.IndexOf(' ') - 1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
imgname = rocval.Substring(0, rocval.IndexOf('\n'));
|
||||||
|
}
|
||||||
|
int thedot = imgname.LastIndexOf('.');
|
||||||
|
string fname = imgname;
|
||||||
|
if (thedot == -1 || (thedot != (imgname.Length - 4)))
|
||||||
|
{
|
||||||
|
RODbConfig roDbCfg = new RODbConfig(rodb.Config);
|
||||||
|
fname += string.Format(".{0}", roDbCfg.GetDefaultGraphicExtension());
|
||||||
|
}
|
||||||
|
|
||||||
|
string imgfile = Path.Combine(rodbpath, fname);
|
||||||
|
return imgfile;
|
||||||
|
}
|
||||||
|
|
||||||
|
//For Exporting an RO that is an image
|
||||||
|
//returns an xmlElement
|
||||||
|
// - that is a child to xindivid
|
||||||
|
// - that has a name of Name
|
||||||
|
// - that has a value of the binary representation of the image
|
||||||
|
// - that has an attribute designating the location of the image file
|
||||||
|
private XmlElement AddGraphic(XmlElement xindivid, string Name, ROFSTLookup.rochild roc, RODbInfo rodb, bool isMulti)
|
||||||
|
{
|
||||||
|
Name = Name.Replace("<", "").Replace(">", "");
|
||||||
|
|
||||||
|
XmlElement xroid = xindivid.OwnerDocument.CreateElement(Name);
|
||||||
|
|
||||||
|
string imgfile = GetROImageFileLocation(roc, rodb, isMulti);
|
||||||
|
if (string.IsNullOrEmpty(imgfile)) return xroid;
|
||||||
|
xroid.Attributes.SetNamedItem(AddAttribute(xroid.OwnerDocument, "Location", imgfile));
|
||||||
|
|
||||||
|
if (File.Exists(imgfile))
|
||||||
|
{
|
||||||
|
using (FileStream fsIn = new FileStream(imgfile, FileMode.Open, FileAccess.Read, FileShare.Read))
|
||||||
|
{
|
||||||
|
// Create an instance of StreamReader that can read characters from the FileStream.
|
||||||
|
using (BinaryReader r = new BinaryReader(fsIn))
|
||||||
|
xroid.InnerText = Encoding.Default.GetString(r.ReadBytes((int)fsIn.Length));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return xroid;
|
||||||
|
}
|
||||||
|
|
||||||
|
//overridden - used to set the RO location for RO Images that are not in annotations
|
||||||
|
protected override void SetROLocation(ref XmlElement xindivid, ROFSTLookup.rochild roc, RODbInfo rodb, bool isMulti)
|
||||||
|
{
|
||||||
|
string imgfile = GetROImageFileLocation(roc, rodb, isMulti);
|
||||||
|
if (!string.IsNullOrEmpty(imgfile)) xindivid.Attributes.SetNamedItem(AddAttribute(xindivid.OwnerDocument, "Location", imgfile));
|
||||||
|
}
|
||||||
|
|
||||||
|
//overridden - used to set specific enhanced doc info
|
||||||
|
protected override void SetEPEnhancedDocLinks(ref XmlElement xe, ItemInfo ii)
|
||||||
|
{
|
||||||
|
EnhancedDocuments eds = ii.GetMyEnhancedDocuments();
|
||||||
|
|
||||||
|
if (eds != null && eds.Count == 1)
|
||||||
|
{
|
||||||
|
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "EnhancedDocType", eds[0].Type.ToString()));
|
||||||
|
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "EnhancedDocToItemID", eds[0].ItemID.ToString()));
|
||||||
|
xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "EnhancedDocToDbSeq", dbSeq(eds[0].ItemID)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//clear objects to release memory
|
||||||
|
private void OnClose(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
DocReplace.Clear();
|
||||||
|
DocReplace = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@@ -708,15 +708,32 @@ namespace VEPROMS
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
int ownerid = MySessionInfo.CheckOutItem(fi.FolderID, CheckOutType.Session);
|
int ownerid = MySessionInfo.CheckOutItem(fi.FolderID, CheckOutType.Session);
|
||||||
|
|
||||||
dlgExportImport dlg = new dlgExportImport(args.Index == 0 ? "Export" : "Import", fi, this, (E_UCFImportOptions)Properties.Settings.Default.UCFImportOpt);//Added frmVEPROMS Parameter
|
|
||||||
dlg.ShowDialog(this);
|
|
||||||
|
|
||||||
MySessionInfo.CheckInItem(ownerid);
|
//C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
|
||||||
|
//form for exporting Electronic Procedures from FolderInfo
|
||||||
if (args.Index == 1 && dlg.MyNewFolder != null)
|
if (args.AnnotationTypeId > 0)
|
||||||
{
|
{
|
||||||
tv.AddNewNode(dlg.MyNewFolder);
|
dlgExportImportEP dlg = new dlgExportImportEP(args.Index == 0 ? "Export" : "Import", fi, this, args.AnnotationTypeId, args.UnitIndex);
|
||||||
|
dlg.ShowDialog(this);
|
||||||
|
|
||||||
|
MySessionInfo.CheckInItem(ownerid);
|
||||||
|
|
||||||
|
if (args.Index == 1 && dlg.MyNewFolder != null)
|
||||||
|
{
|
||||||
|
tv.AddNewNode(dlg.MyNewFolder);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dlgExportImport dlg = new dlgExportImport(args.Index == 0 ? "Export" : "Import", fi, this, (E_UCFImportOptions)Properties.Settings.Default.UCFImportOpt);//Added frmVEPROMS Parameter
|
||||||
|
dlg.ShowDialog(this);
|
||||||
|
|
||||||
|
MySessionInfo.CheckInItem(ownerid);
|
||||||
|
|
||||||
|
if (args.Index == 1 && dlg.MyNewFolder != null)
|
||||||
|
{
|
||||||
|
tv.AddNewNode(dlg.MyNewFolder);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -742,18 +759,40 @@ namespace VEPROMS
|
|||||||
|
|
||||||
int ownerid = MySessionInfo.CheckOutItem(dvi.VersionID, CheckOutType.DocVersion);
|
int ownerid = MySessionInfo.CheckOutItem(dvi.VersionID, CheckOutType.DocVersion);
|
||||||
|
|
||||||
dlgExportImport dlg = new dlgExportImport("Import", dvi, this, (E_UCFImportOptions)Properties.Settings.Default.UCFImportOpt);//Added frmVEPROMS Parameter
|
//C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
|
||||||
dlg.MyNewProcedure = null;
|
//form for exporting Electronic Procedures from DocVersionInfo
|
||||||
dlg.ExternalTransitionItem = null;
|
if (args.AnnotationTypeId > 0)
|
||||||
dlg.ShowDialog(this);
|
{
|
||||||
|
dlgExportImportEP dlg = new dlgExportImportEP(args.Index == 0 ? "Export" : "Import", dvi, this, args.AnnotationTypeId, args.UnitIndex);
|
||||||
|
dlg.MyNewProcedure = null;
|
||||||
|
dlg.ExternalTransitionItem = null;
|
||||||
|
dlg.ShowDialog(this);
|
||||||
|
|
||||||
MySessionInfo.CheckInItem(ownerid);
|
MySessionInfo.CheckInItem(ownerid);
|
||||||
|
|
||||||
if (dlg.MyNewProcedure != null)
|
if (dlg.MyNewProcedure != null)
|
||||||
tv.AddNewNode(dlg.MyNewProcedure);
|
tv.AddNewNode(dlg.MyNewProcedure);
|
||||||
|
|
||||||
|
if (dlg.ExternalTransitionItem != null)
|
||||||
|
tc.OpenItem(dlg.ExternalTransitionItem);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
dlgExportImport dlg = new dlgExportImport("Import", dvi, this, (E_UCFImportOptions)Properties.Settings.Default.UCFImportOpt);//Added frmVEPROMS Parameter
|
||||||
|
dlg.MyNewProcedure = null;
|
||||||
|
dlg.ExternalTransitionItem = null;
|
||||||
|
dlg.ShowDialog(this);
|
||||||
|
|
||||||
|
MySessionInfo.CheckInItem(ownerid);
|
||||||
|
|
||||||
|
if (dlg.MyNewProcedure != null)
|
||||||
|
tv.AddNewNode(dlg.MyNewProcedure);
|
||||||
|
|
||||||
|
if (dlg.ExternalTransitionItem != null)
|
||||||
|
tc.OpenItem(dlg.ExternalTransitionItem);
|
||||||
|
}
|
||||||
|
|
||||||
if (dlg.ExternalTransitionItem != null)
|
|
||||||
tc.OpenItem(dlg.ExternalTransitionItem);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -769,10 +808,24 @@ namespace VEPROMS
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
int ownerid = MySessionInfo.CheckOutItem(pi.ItemID, CheckOutType.Procedure);
|
int ownerid = MySessionInfo.CheckOutItem(pi.ItemID, CheckOutType.Procedure);
|
||||||
dlgExportImport dlg = new dlgExportImport("Export", pi, this, (E_UCFImportOptions)0);//Added frmVEPROMS Parameter
|
|
||||||
dlg.ShowDialog(this);
|
|
||||||
|
|
||||||
MySessionInfo.CheckInItem(ownerid);
|
//C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
|
||||||
|
//form for exporting Electronic Procedures from ProcedureInfo
|
||||||
|
if (args.AnnotationTypeId > 0)
|
||||||
|
{
|
||||||
|
dlgExportImportEP dlg = new dlgExportImportEP("Export", pi, this, args.AnnotationTypeId, args.UnitIndex);
|
||||||
|
dlg.ShowDialog(this);
|
||||||
|
|
||||||
|
MySessionInfo.CheckInItem(ownerid);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
dlgExportImport dlg = new dlgExportImport("Export", pi, this, (E_UCFImportOptions)0);//Added frmVEPROMS Parameter
|
||||||
|
dlg.ShowDialog(this);
|
||||||
|
|
||||||
|
MySessionInfo.CheckInItem(ownerid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1216,7 +1269,7 @@ namespace VEPROMS
|
|||||||
|
|
||||||
//Print Section
|
//Print Section
|
||||||
//C2025-028 Add a Quick Print Section option
|
//C2025-028 Add a Quick Print Section option
|
||||||
|
|
||||||
void tv_PrintSection(object sender, vlnTreeEventArgs args)
|
void tv_PrintSection(object sender, vlnTreeEventArgs args)
|
||||||
{
|
{
|
||||||
PrintSection(sender, args, false);
|
PrintSection(sender, args, false);
|
||||||
@@ -1226,7 +1279,7 @@ namespace VEPROMS
|
|||||||
PrintSection(sender, args, true);
|
PrintSection(sender, args, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PrintSection(object sender, vlnTreeEventArgs args, bool quickprint)
|
void PrintSection(object sender, vlnTreeEventArgs args, bool quickprint)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -2195,7 +2248,7 @@ namespace VEPROMS
|
|||||||
this.superTooltip1.SetSuperTooltip(btnResetSecurity, new SuperTooltipInfo("Reset Security", "", "WARNING this will \nREMOVE ALL PROMS USERS and Reset to the\nOriginal Volian Defaults", null, null, eTooltipColor.Gray));
|
this.superTooltip1.SetSuperTooltip(btnResetSecurity, new SuperTooltipInfo("Reset Security", "", "WARNING this will \nREMOVE ALL PROMS USERS and Reset to the\nOriginal Volian Defaults", null, null, eTooltipColor.Gray));
|
||||||
this.superTooltip1.SetSuperTooltip(btnAdministrativeTools, new SuperTooltipInfo("Administrative Tools", "", "Open the PROMS Adminstration Tools Window", null, null, eTooltipColor.Gray));
|
this.superTooltip1.SetSuperTooltip(btnAdministrativeTools, new SuperTooltipInfo("Administrative Tools", "", "Open the PROMS Adminstration Tools Window", null, null, eTooltipColor.Gray));
|
||||||
this.superTooltip1.SetSuperTooltip(btnUpdateFormats, new SuperTooltipInfo("Update Formats", "", "Install New Formats \n or Re-Install Formats", null, null, eTooltipColor.Gray));
|
this.superTooltip1.SetSuperTooltip(btnUpdateFormats, new SuperTooltipInfo("Update Formats", "", "Install New Formats \n or Re-Install Formats", null, null, eTooltipColor.Gray));
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
MyUserInfo = UserInfo.GetByUserID(VlnSettings.UserID);
|
MyUserInfo = UserInfo.GetByUserID(VlnSettings.UserID);
|
||||||
|
@@ -346,21 +346,21 @@ namespace VEPROMS.CSLA.Library
|
|||||||
{
|
{
|
||||||
var ii = _CacheByPrimaryKey.FirstOrDefault();
|
var ii = _CacheByPrimaryKey.FirstOrDefault();
|
||||||
|
|
||||||
while (ii.Value.Count > 0)
|
while (ii.Value.Count > 0)
|
||||||
{
|
{
|
||||||
if (ii.Value[0]?.MyContent?.ContentParts != null)
|
if (ii.Value[0]?.MyContent?.ContentParts != null)
|
||||||
{ foreach (PartInfo pi in ii.Value[0]?.MyContent?.ContentParts) pi.Dispose(); }
|
{ foreach (PartInfo pi in ii.Value[0]?.MyContent?.ContentParts) pi.Dispose(); }
|
||||||
ii.Value[0].Dispose();
|
ii.Value[0].Dispose();
|
||||||
}
|
}
|
||||||
_CacheByPrimaryKey.Remove(ii.Key);
|
_CacheByPrimaryKey.Remove(ii.Key);
|
||||||
}
|
}
|
||||||
|
|
||||||
while (_CacheList.Count > 0)
|
while (_CacheList.Count > 0)
|
||||||
{
|
{
|
||||||
if (_CacheList[0]?.MyContent?.ContentParts != null)
|
if (_CacheList[0]?.MyContent?.ContentParts != null)
|
||||||
{foreach (PartInfo pi in _CacheList[0]?.MyContent?.ContentParts) pi.Dispose(); }
|
{foreach (PartInfo pi in _CacheList[0]?.MyContent?.ContentParts) pi.Dispose(); }
|
||||||
_CacheList[0].Dispose();
|
_CacheList[0].Dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool _PrintAllAtOnce = false;
|
private bool _PrintAllAtOnce = false;
|
||||||
@@ -450,86 +450,86 @@ namespace VEPROMS.CSLA.Library
|
|||||||
StringBuilder sret = new StringBuilder();
|
StringBuilder sret = new StringBuilder();
|
||||||
ItemInfo pitem = this;
|
ItemInfo pitem = this;
|
||||||
while (!pitem.IsSection && !pitem.IsHigh)
|
while (!pitem.IsSection && !pitem.IsHigh)
|
||||||
{
|
{
|
||||||
using (StepInfo stpinfo = StepInfo.Get(pitem.ItemID))
|
using (StepInfo stpinfo = StepInfo.Get(pitem.ItemID))
|
||||||
{
|
{
|
||||||
string thisTab = stpinfo.MyTab.CleanText;
|
string thisTab = stpinfo.MyTab.CleanText;
|
||||||
|
|
||||||
string typeName = stpinfo.FormatStepData.StepEditData.TypeMenu.MenuItem;
|
string typeName = stpinfo.FormatStepData.StepEditData.TypeMenu.MenuItem;
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(thisTab))
|
if (!string.IsNullOrEmpty(thisTab))
|
||||||
{
|
{
|
||||||
thisTab = thisTab.Trim();
|
thisTab = thisTab.Trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
// if the tab is null or
|
// if the tab is null or
|
||||||
// if the the tab is not a letter or number OR
|
// if the the tab is not a letter or number OR
|
||||||
// the tab is an AND or OR type and is the letter "o"
|
// the tab is an AND or OR type and is the letter "o"
|
||||||
// then reset the tab an empty string so that the type name along with the count of that type
|
// then reset the tab an empty string so that the type name along with the count of that type
|
||||||
// (ex. "AND 2", "OR 3")
|
// (ex. "AND 2", "OR 3")
|
||||||
if (string.IsNullOrEmpty(thisTab) || (thisTab != string.Empty && (!(char.IsLetterOrDigit(thisTab[0])) || ((pitem.IsAnd || pitem.IsOr || pitem.IsCaution || pitem.IsNote) && thisTab.Contains("o")))))
|
if (string.IsNullOrEmpty(thisTab) || (thisTab != string.Empty && (!(char.IsLetterOrDigit(thisTab[0])) || ((pitem.IsAnd || pitem.IsOr || pitem.IsCaution || pitem.IsNote) && thisTab.Contains("o")))))
|
||||||
{
|
{
|
||||||
thisTab = string.Empty;
|
thisTab = string.Empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pitem.IsRNOPart)
|
if (pitem.IsRNOPart)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(thisTab))
|
if (string.IsNullOrEmpty(thisTab))
|
||||||
{
|
{
|
||||||
sret.Insert(0, "RNO.");
|
sret.Insert(0, "RNO.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
thisTab = thisTab.Trim();
|
thisTab = thisTab.Trim();
|
||||||
|
|
||||||
if (!thisTab.EndsWith(".") && !thisTab.EndsWith(")"))
|
if (!thisTab.EndsWith(".") && !thisTab.EndsWith(")"))
|
||||||
{
|
{
|
||||||
thisTab += ".";
|
thisTab += ".";
|
||||||
}
|
}
|
||||||
|
|
||||||
sret.Insert(0, "RNO." + thisTab);
|
sret.Insert(0, "RNO." + thisTab);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (pitem.IsCaution || pitem.IsNote)
|
else if (pitem.IsCaution || pitem.IsNote)
|
||||||
{
|
{
|
||||||
// add the Caution or Note count to the tab (ex "Caution 1", "Note 2")
|
// add the Caution or Note count to the tab (ex "Caution 1", "Note 2")
|
||||||
if (string.IsNullOrEmpty(thisTab))
|
if (string.IsNullOrEmpty(thisTab))
|
||||||
{
|
{
|
||||||
sret.Append("{" + typeName + " " + pitem.Ordinal.ToString() + "}");
|
sret.Append("{" + typeName + " " + pitem.Ordinal.ToString() + "}");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
thisTab = thisTab.Trim(" ".ToCharArray());
|
thisTab = thisTab.Trim(" ".ToCharArray());
|
||||||
sret.Append(thisTab + " " + pitem.Ordinal.ToString() + sret);
|
sret.Append(thisTab + " " + pitem.Ordinal.ToString() + sret);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(thisTab))
|
if (!string.IsNullOrEmpty(thisTab))
|
||||||
{
|
{
|
||||||
thisTab = thisTab.Trim(" ".ToCharArray());
|
thisTab = thisTab.Trim(" ".ToCharArray());
|
||||||
|
|
||||||
if (!thisTab.EndsWith(".") && !thisTab.EndsWith(")"))
|
if (!thisTab.EndsWith(".") && !thisTab.EndsWith(")"))
|
||||||
{
|
{
|
||||||
thisTab += ".";
|
thisTab += ".";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
thisTab = "{" + typeName + " " + pitem.Ordinal.ToString() + "}.";
|
thisTab = "{" + typeName + " " + pitem.Ordinal.ToString() + "}.";
|
||||||
}
|
}
|
||||||
|
|
||||||
sret.Insert(0, thisTab);
|
sret.Insert(0, thisTab);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pitem = pitem.ActiveParent as ItemInfo;
|
pitem = pitem.ActiveParent as ItemInfo;
|
||||||
|
|
||||||
if (pitem == null)
|
if (pitem == null)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return sret.ToString().Trim(" .)".ToCharArray());
|
return sret.ToString().Trim(" .)".ToCharArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetHeader(VE_Font myFont, string myText)
|
public void SetHeader(VE_Font myFont, string myText)
|
||||||
@@ -574,11 +574,11 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
_MyPrevious = null; // Reset list so that the next line gets a new list
|
_MyPrevious = null; // Reset list so that the next line gets a new list
|
||||||
if (MyPrevious != null) MyPrevious.RefreshNextItems(); // Update List for new value
|
if (MyPrevious != null) MyPrevious.RefreshNextItems(); // Update List for new value
|
||||||
//if (_ContentID != tmp.ContentID)
|
//if (_ContentID != tmp.ContentID)
|
||||||
//{
|
//{
|
||||||
if (MyContent != null) MyContent.RefreshContentItems(); // Update List for old value
|
if (MyContent != null) MyContent.RefreshContentItems(); // Update List for old value
|
||||||
_ContentID = tmp.ContentID; // Update the value
|
_ContentID = tmp.ContentID; // Update the value
|
||||||
//}
|
//}
|
||||||
_MyContent = null; // Reset list so that the next line gets a new list
|
_MyContent = null; // Reset list so that the next line gets a new list
|
||||||
if (MyContent != null) MyContent.RefreshContentItems(); // Update List for new value
|
if (MyContent != null) MyContent.RefreshContentItems(); // Update List for new value
|
||||||
_DTS = tmp.DTS;
|
_DTS = tmp.DTS;
|
||||||
@@ -674,12 +674,12 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static void SetParentSectionAndDocVersion(ItemInfo itemInfo, IVEDrillDownReadOnly itemParent, SectionInfo sectionInfo, ProcedureInfo procInfo, DocVersionInfo docVersionInfo, bool isAutomatic = false)
|
internal static void SetParentSectionAndDocVersion(ItemInfo itemInfo, IVEDrillDownReadOnly itemParent, SectionInfo sectionInfo, ProcedureInfo procInfo, DocVersionInfo docVersionInfo, bool isAutomatic = false)
|
||||||
{
|
{
|
||||||
// B2022-107: Display Progress Bar Messages/Statuses when a new ROFST binary file is loaded into the database
|
// B2022-107: Display Progress Bar Messages/Statuses when a new ROFST binary file is loaded into the database
|
||||||
// Added Optional Parameter "bool isAutomatic = false" to disable the RofstLoadingStatus pop-up screen when printing baselines
|
// Added Optional Parameter "bool isAutomatic = false" to disable the RofstLoadingStatus pop-up screen when printing baselines
|
||||||
|
|
||||||
if (itemInfo == null) return;
|
if (itemInfo == null) return;
|
||||||
itemInfo.LoadAllAtOnce = true;
|
itemInfo.LoadAllAtOnce = true;
|
||||||
itemInfo.ActiveParent = itemParent;
|
itemInfo.ActiveParent = itemParent;
|
||||||
@@ -721,7 +721,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The following method is used only in print because the 'printed' data is loaded into
|
/// The following method is used only in print because the 'printed' data is loaded into
|
||||||
/// memory before printing. Find the next item from memory (do not go out to database).
|
/// memory before printing. Find the next item from memory (do not go out to database).
|
||||||
@@ -784,7 +784,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
{
|
{
|
||||||
bool forceConvertToText = false;
|
bool forceConvertToText = false;
|
||||||
TranCheckCount++;
|
TranCheckCount++;
|
||||||
|
|
||||||
if (!forceConvertToText)
|
if (!forceConvertToText)
|
||||||
{
|
{
|
||||||
if (traninfo.MyItemToID.ActiveSection != null)
|
if (traninfo.MyItemToID.ActiveSection != null)
|
||||||
@@ -802,7 +802,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
content.FixTransitionText(traninfo, true);
|
content.FixTransitionText(traninfo, true);
|
||||||
content.Save();
|
content.Save();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// B2025-020 Null Reference fix. Added check for valid index into the TransitionTypeList
|
// B2025-020 Null Reference fix. Added check for valid index into the TransitionTypeList
|
||||||
if (!forceConvertToText)
|
if (!forceConvertToText)
|
||||||
@@ -812,7 +812,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
forceConvertToText = true;
|
forceConvertToText = true;
|
||||||
TranFixCount++;
|
TranFixCount++;
|
||||||
itemInfo.MyContent.FixTransitionText(traninfo, itemInfo, "Reason for Change: Transition type is not available");
|
itemInfo.MyContent.FixTransitionText(traninfo, itemInfo, "Reason for Change: Transition type is not available");
|
||||||
using (Content content = Content.Get(itemInfo.MyContent.ContentID))
|
using (Content content = Content.Get(itemInfo.MyContent.ContentID))
|
||||||
{
|
{
|
||||||
content.FixTransitionText(traninfo, true);
|
content.FixTransitionText(traninfo, true);
|
||||||
content.Save();
|
content.Save();
|
||||||
@@ -835,14 +835,14 @@ namespace VEPROMS.CSLA.Library
|
|||||||
content.FixTransitionText(traninfo, true);
|
content.FixTransitionText(traninfo, true);
|
||||||
content.Save();
|
content.Save();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!forceConvertToText)
|
if (!forceConvertToText)
|
||||||
{
|
{
|
||||||
if (itemInfo.MyDocVersion != null && traninfo.MyItemToID.MyDocVersion != null && itemInfo.MyDocVersion.VersionID != traninfo.MyItemToID.MyDocVersion.VersionID) //different doc version
|
if (itemInfo.MyDocVersion != null && traninfo.MyItemToID.MyDocVersion != null && itemInfo.MyDocVersion.VersionID != traninfo.MyItemToID.MyDocVersion.VersionID) //different doc version
|
||||||
{
|
{
|
||||||
if (!itemInfo.ActiveFormat.PlantFormat.FormatData.TransData.TransTypeList[traninfo.TranType].TransMenu.Contains("Proc")) //internal format
|
if (!itemInfo.ActiveFormat.PlantFormat.FormatData.TransData.TransTypeList[traninfo.TranType].TransMenu.Contains("Proc")) //internal format
|
||||||
{
|
{
|
||||||
@@ -903,7 +903,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
if (itemInfo.MyContent.Text.Contains("Link:Transition"))
|
if (itemInfo.MyContent.Text.Contains("Link:Transition"))
|
||||||
{
|
{
|
||||||
Content content = Content.Get(itemInfo.MyContent.ContentID);
|
Content content = Content.Get(itemInfo.MyContent.ContentID);
|
||||||
|
|
||||||
if (itemInfo.MyContent.ContentTransitions != null)
|
if (itemInfo.MyContent.ContentTransitions != null)
|
||||||
{
|
{
|
||||||
foreach (TransitionInfo ct in itemInfo.MyContent.ContentTransitions)
|
foreach (TransitionInfo ct in itemInfo.MyContent.ContentTransitions)
|
||||||
@@ -913,7 +913,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
|
|
||||||
itemInfo.MyContent.RefreshContentTransitions();
|
itemInfo.MyContent.RefreshContentTransitions();
|
||||||
|
|
||||||
while (content.Text.Contains("Link:Transition"))
|
while (content.Text.Contains("Link:Transition"))
|
||||||
{
|
{
|
||||||
TranCheckCount++;
|
TranCheckCount++;
|
||||||
@@ -931,7 +931,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
else // B2018-043 Eliminate infinite loop for invalid transition structure
|
else // B2018-043 Eliminate infinite loop for invalid transition structure
|
||||||
{
|
{
|
||||||
// Add annotation for Invalid Transition
|
// Add annotation for Invalid Transition
|
||||||
AddInvalidTransitionAnnotation(itemInfo,"Invalid Transition Format");
|
AddInvalidTransitionAnnotation(itemInfo, "Invalid Transition Format");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -984,16 +984,16 @@ namespace VEPROMS.CSLA.Library
|
|||||||
ContentInfo myContent = itemInfo.MyContent;
|
ContentInfo myContent = itemInfo.MyContent;
|
||||||
string txt = myContent.Text;
|
string txt = myContent.Text;
|
||||||
string regDelete = @"(\\v |)\<START\]\#Link\:Transition(|Range)\:[0-9]+ [0-9]+ [0-9]+(| [0-9]+)\[END\>(\\v0 |)";
|
string regDelete = @"(\\v |)\<START\]\#Link\:Transition(|Range)\:[0-9]+ [0-9]+ [0-9]+(| [0-9]+)\[END\>(\\v0 |)";
|
||||||
string txt2=txt;
|
string txt2 = txt;
|
||||||
|
|
||||||
do{
|
do {
|
||||||
txt = txt2;
|
txt = txt2;
|
||||||
txt2 = Regex.Replace(txt, regDelete, "");
|
txt2 = Regex.Replace(txt, regDelete, "");
|
||||||
} while(txt2 != txt);
|
} while (txt2 != txt);
|
||||||
|
|
||||||
if(txt2 != myContent.Text)
|
if (txt2 != myContent.Text)
|
||||||
{
|
{
|
||||||
using(Content tmp = myContent.Get())
|
using (Content tmp = myContent.Get())
|
||||||
{
|
{
|
||||||
tmp.Text = txt2;
|
tmp.Text = txt2;
|
||||||
tmp.Save();
|
tmp.Save();
|
||||||
@@ -1001,7 +1001,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
AddInvalidTransitionAnnotation(itemInfo, "Removed Empty Transition Text");
|
AddInvalidTransitionAnnotation(itemInfo, "Removed Empty Transition Text");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static bool IsTransitionToNonEditable(TransitionInfo ti)
|
private static bool IsTransitionToNonEditable(TransitionInfo ti)
|
||||||
{
|
{
|
||||||
foreach (TransitionInfo til in TransitionsToNonEditable)
|
foreach (TransitionInfo til in TransitionsToNonEditable)
|
||||||
@@ -1032,7 +1032,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
public static int ROCheckCount = 0;
|
public static int ROCheckCount = 0;
|
||||||
public static int ROFixCount = 0;
|
public static int ROFixCount = 0;
|
||||||
private static AnnotationType _VolianCommentType = null; // Using this to flag ro value issues with byron to braidwood
|
private static AnnotationType _VolianCommentType = null; // Using this to flag ro value issues with byron to braidwood
|
||||||
|
|
||||||
public static AnnotationType VolianCommentType
|
public static AnnotationType VolianCommentType
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -1065,7 +1065,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
|
|
||||||
string roval = lookup.GetTranslatedRoValue(rousage.ROID, this.ActiveSection.ActiveFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta, this.ActiveSection.ActiveFormat.PlantFormat.FormatData.SectData.UseTildaPoundCharsForSuperSubScriptInROValues, false, this);
|
string roval = lookup.GetTranslatedRoValue(rousage.ROID, this.ActiveSection.ActiveFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta, this.ActiveSection.ActiveFormat.PlantFormat.FormatData.SectData.UseTildaPoundCharsForSuperSubScriptInROValues, false, this);
|
||||||
ROFSTLookup.rochild roch = lookup.GetRoChild(rousage.ROID);
|
ROFSTLookup.rochild roch = lookup.GetRoChild(rousage.ROID);
|
||||||
|
|
||||||
this.MyContent.FixContentText(rousage, roval, roch.type, rofstinfo, this);
|
this.MyContent.FixContentText(rousage, roval, roch.type, rofstinfo, this);
|
||||||
string newText = this.MyContent.Text;
|
string newText = this.MyContent.Text;
|
||||||
|
|
||||||
@@ -1263,7 +1263,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string GetCombinedTab(ItemInfo itemInfo, string parTab)
|
public static string GetCombinedTab(ItemInfo itemInfo, string parTab)
|
||||||
{
|
{
|
||||||
string pTab = parTab == null ? "" : parTab;
|
string pTab = parTab == null ? "" : parTab;
|
||||||
@@ -1276,7 +1276,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
// for supplemental information, bulleted tabs need to be included in the tab. The 'isletterordigit' should not occur for supinfo items -
|
// for supplemental information, bulleted tabs need to be included in the tab. The 'isletterordigit' should not occur for supinfo items -
|
||||||
// and this includes the parent of the supinfo since that is the tab used for supinfo concatenated with its parent. (B2017-120)
|
// and this includes the parent of the supinfo since that is the tab used for supinfo concatenated with its parent. (B2017-120)
|
||||||
// // B2020-154: Added check for the tab to start with '(', tabs that started with this were not included in the combined tab
|
// // B2020-154: Added check for the tab to start with '(', tabs that started with this were not included in the combined tab
|
||||||
if (thisTab != null && thisTab != "" && (!char.IsLetterOrDigit(thisTab[0]) && thisTab[0] != '(') && !vcbHeaderCheck && !itemInfo.IsInSupInfo && (itemInfo.SupInfos == null || itemInfo.SupInfos.Count <= 0 )) return pTab;
|
if (thisTab != null && thisTab != "" && (!char.IsLetterOrDigit(thisTab[0]) && thisTab[0] != '(') && !vcbHeaderCheck && !itemInfo.IsInSupInfo && (itemInfo.SupInfos == null || itemInfo.SupInfos.Count <= 0)) return pTab;
|
||||||
if (itemInfo.FormatStepData.NumberWithLevel) pTab = itemInfo.MyHLS.MyTab.CleanText.Trim();
|
if (itemInfo.FormatStepData.NumberWithLevel) pTab = itemInfo.MyHLS.MyTab.CleanText.Trim();
|
||||||
// if the parent tab ends with a alphanumeric and this tab is alphanumeric, add a '.' to separate them
|
// if the parent tab ends with a alphanumeric and this tab is alphanumeric, add a '.' to separate them
|
||||||
// also, include use the separator for bullets if doing the supplemental information tab (B2017-120)
|
// also, include use the separator for bullets if doing the supplemental information tab (B2017-120)
|
||||||
@@ -1285,7 +1285,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
if (ms && mn) pTab = pTab.TrimEnd() + ".";
|
if (ms && mn) pTab = pTab.TrimEnd() + ".";
|
||||||
// remove ending '.' (if this is a hls, don't remove the '.')
|
// remove ending '.' (if this is a hls, don't remove the '.')
|
||||||
if (!itemInfo.IsHigh && thisTab.EndsWith(".")) thisTab = thisTab.Substring(0, thisTab.Length - 1);
|
if (!itemInfo.IsHigh && thisTab.EndsWith(".")) thisTab = thisTab.Substring(0, thisTab.Length - 1);
|
||||||
if (itemInfo.HasParentTab) return thisTab.Trim(); // F2020-023: if tab includes parent tab already, don't concatenate it
|
if (itemInfo.HasParentTab) return thisTab.Trim(); // F2020-023: if tab includes parent tab already, don't concatenate it
|
||||||
return pTab + thisTab.Trim();
|
return pTab + thisTab.Trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1341,8 +1341,8 @@ namespace VEPROMS.CSLA.Library
|
|||||||
// B2023-037: loading print text, resolve the RO symbols
|
// B2023-037: loading print text, resolve the RO symbols
|
||||||
|
|
||||||
bool GTLT = !itemInfo.IsTable && sectionInfo.ActiveFormat.PlantFormat.FormatData.SectData.ConvertGTELTEPMinROValue;
|
bool GTLT = !itemInfo.IsTable && sectionInfo.ActiveFormat.PlantFormat.FormatData.SectData.ConvertGTELTEPMinROValue;
|
||||||
bool GLTArrows = !itemInfo.IsTable && sectionInfo.ActiveFormat.PlantFormat.FormatData.SectData.UseDashGreaterLessThenForArrowsInROValue;
|
bool GLTArrows = !itemInfo.IsTable && sectionInfo.ActiveFormat.PlantFormat.FormatData.SectData.UseDashGreaterLessThenForArrowsInROValue;
|
||||||
string roval = lookup.GetTranslatedRoValue(rousage.ROID, sectionInfo.ActiveFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta, sectionInfo.ActiveFormat.PlantFormat.FormatData.SectData.UseTildaPoundCharsForSuperSubScriptInROValues, GTLT || GLTArrows, itemInfo);
|
string roval = lookup.GetTranslatedRoValue(rousage.ROID, sectionInfo.ActiveFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta, sectionInfo.ActiveFormat.PlantFormat.FormatData.SectData.UseTildaPoundCharsForSuperSubScriptInROValues, GTLT || GLTArrows, itemInfo);
|
||||||
ROFSTLookup.rochild roch = lookup.GetRoChild(rousage.ROID);
|
ROFSTLookup.rochild roch = lookup.GetRoChild(rousage.ROID);
|
||||||
itemInfo.MyContent.FixContentText(rousage, roval, roch.type, rofstinfo, itemInfo);
|
itemInfo.MyContent.FixContentText(rousage, roval, roch.type, rofstinfo, itemInfo);
|
||||||
}
|
}
|
||||||
@@ -1367,7 +1367,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (itemInfo.MyContent.ContentTransitionCount > 0)
|
if (itemInfo.MyContent.ContentTransitionCount > 0)
|
||||||
{
|
{
|
||||||
foreach (TransitionInfo traninfo in itemInfo.MyContent.ContentTransitions)
|
foreach (TransitionInfo traninfo in itemInfo.MyContent.ContentTransitions)
|
||||||
@@ -1440,14 +1440,14 @@ namespace VEPROMS.CSLA.Library
|
|||||||
private float _MSWordPageCount = 0;
|
private float _MSWordPageCount = 0;
|
||||||
public float MSWordPageCount
|
public float MSWordPageCount
|
||||||
{
|
{
|
||||||
get {
|
get {
|
||||||
if (_MSWordPageCount == 0) // C2018-011 Get the proper word page count from the saved pdf attachment
|
if (_MSWordPageCount == 0) // C2018-011 Get the proper word page count from the saved pdf attachment
|
||||||
if (MyContent.MyEntry != null && MyContent.MyEntry.MyDocument != null)
|
if (MyContent.MyEntry != null && MyContent.MyEntry.MyDocument != null)
|
||||||
{
|
{
|
||||||
PdfInfo pi = PdfInfo.Get(this, false);
|
PdfInfo pi = PdfInfo.Get(this, false);
|
||||||
if(pi != null) _MSWordPageCount = (float)pi.PageCount;// B2018-071 Don't crash on invalid MS Word section
|
if (pi != null) _MSWordPageCount = (float)pi.PageCount;// B2018-071 Don't crash on invalid MS Word section
|
||||||
}
|
}
|
||||||
return _MSWordPageCount;
|
return _MSWordPageCount;
|
||||||
}
|
}
|
||||||
set { _MSWordPageCount = value; }
|
set { _MSWordPageCount = value; }
|
||||||
}
|
}
|
||||||
@@ -1649,7 +1649,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
// the addition of the parent.IsNote, the note was breaking between 2 ANDs (the 1st AND was a
|
// the addition of the parent.IsNote, the note was breaking between 2 ANDs (the 1st AND was a
|
||||||
// steplevel of 5, but the 2nd was a steplevel of 4). If something similar is seen with Cautions,
|
// steplevel of 5, but the 2nd was a steplevel of 4). If something similar is seen with Cautions,
|
||||||
// that check could be added.
|
// that check could be added.
|
||||||
if (!item.IsRNOPart && !item.IsHigh && (item.MyPrevious == null || (((item.ActiveFormat.PlantFormat.FormatData.PurchaseOptions & E_PurchaseOptions.EnhancedBackgrounds) != E_PurchaseOptions.EnhancedBackgrounds)
|
if (!item.IsRNOPart && !item.IsHigh && (item.MyPrevious == null || (((item.ActiveFormat.PlantFormat.FormatData.PurchaseOptions & E_PurchaseOptions.EnhancedBackgrounds) != E_PurchaseOptions.EnhancedBackgrounds)
|
||||||
&& item.MyParent != null && item.MyParent.IsNote)))
|
&& item.MyParent != null && item.MyParent.IsNote)))
|
||||||
level += firstInc;
|
level += firstInc;
|
||||||
else
|
else
|
||||||
@@ -1716,7 +1716,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
return maxRNOLevel;
|
return maxRNOLevel;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
private bool ParentAndOr
|
private bool ParentAndOr
|
||||||
{
|
{
|
||||||
@@ -1767,7 +1767,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
RemoveEnhancedFromConfig(false);
|
RemoveEnhancedFromConfig(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RemoveEnhancedFromConfig(bool doOneStepOnly)
|
public void RemoveEnhancedFromConfig(bool doOneStepOnly)
|
||||||
{
|
{
|
||||||
XmlDocument xd = new XmlDocument();
|
XmlDocument xd = new XmlDocument();
|
||||||
if (this.MyContent.Config == null || this.MyContent.Config == "") return; // B2017-164 & B2017-172 check for null or empty config
|
if (this.MyContent.Config == null || this.MyContent.Config == "") return; // B2017-164 & B2017-172 check for null or empty config
|
||||||
@@ -1782,7 +1782,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
ctmp.Config = config;
|
ctmp.Config = config;
|
||||||
ctmp.Save();
|
ctmp.Save();
|
||||||
ContentInfo.Refresh(ctmp);
|
ContentInfo.Refresh(ctmp);
|
||||||
_MyConfig = null; // refresh the memory value
|
_MyConfig = null; // refresh the memory value
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (doOneStepOnly) return;
|
if (doOneStepOnly) return;
|
||||||
@@ -2071,7 +2071,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
{
|
{
|
||||||
bool rval = false;
|
bool rval = false;
|
||||||
ItemInfo itm = this;
|
ItemInfo itm = this;
|
||||||
while (itm != null &&!itm.IsHigh && !rval)
|
while (itm != null && !itm.IsHigh && !rval)
|
||||||
{
|
{
|
||||||
rval = itm.IsCautionOrNotePart;
|
rval = itm.IsCautionOrNotePart;
|
||||||
if (!rval) itm = itm.MyParent;
|
if (!rval) itm = itm.MyParent;
|
||||||
@@ -2111,6 +2111,16 @@ namespace VEPROMS.CSLA.Library
|
|||||||
return (sd.Type == type);
|
return (sd.Type == type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// C2025-024 - Electronic Procedures - Export
|
||||||
|
//return if should export blanks
|
||||||
|
public bool EPexportblank(int AnnTypeID)
|
||||||
|
{
|
||||||
|
if (ActiveFormat.PlantFormat.EPFormatFiles.Count == 0 || !ActiveFormat.PlantFormat.EPFormatFiles.Exists(x => x.AnnotationTypeID == AnnTypeID))
|
||||||
|
return true;
|
||||||
|
else
|
||||||
|
return ActiveFormat.PlantFormat.EPFormatFiles.Find(x => x.AnnotationTypeID == AnnTypeID).exportblank;
|
||||||
|
}
|
||||||
|
|
||||||
// C2025-023 - Electronic Procedures - Modifications to PROMS
|
// C2025-023 - Electronic Procedures - Modifications to PROMS
|
||||||
//return EPFields that match this step type or a parent step type
|
//return EPFields that match this step type or a parent step type
|
||||||
public EPFields GetValidEPFields(int AnnTypeID)
|
public EPFields GetValidEPFields(int AnnTypeID)
|
||||||
|
@@ -11,138 +11,157 @@ using static VEPROMS.CSLA.Library.ROFSTLookup;
|
|||||||
|
|
||||||
namespace VEPROMS.CSLA.Library
|
namespace VEPROMS.CSLA.Library
|
||||||
{
|
{
|
||||||
//C2025-023 - Electronic Procedures - Modifications to PROMS
|
//C2025-023 - Electronic Procedures - Modifications to PROMS
|
||||||
// class to handle storage and access of EPFormatFile and EPFormatFile details
|
// class to handle storage and access of EPFormatFile and EPFormatFile details
|
||||||
#region EPFormatFiles
|
#region EPFormatFiles
|
||||||
[TypeConverter(typeof(vlnListConverter<EPFormatFiles, EPFormatFile>))]
|
[TypeConverter(typeof(vlnListConverter<EPFormatFiles, EPFormatFile>))]
|
||||||
public class EPFormatFiles : vlnFormatList<EPFormatFile>
|
public class EPFormatFiles : vlnFormatList<EPFormatFile>
|
||||||
{
|
{
|
||||||
public EPFormatFiles(XmlNodeList xmlNodeList) : base(xmlNodeList) { }
|
public EPFormatFiles(XmlNodeList xmlNodeList) : base(xmlNodeList) { }
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
#region EPFormatFile
|
#region EPFormatFile
|
||||||
public class EPFormatFile : vlnFormatItem
|
public class EPFormatFile : vlnFormatItem
|
||||||
{
|
{
|
||||||
#region Constructor
|
#region Constructor
|
||||||
public EPFormatFile(XmlNode xmlNode) : base(xmlNode) { }
|
public EPFormatFile(XmlNode xmlNode) : base(xmlNode) { }
|
||||||
public EPFormatFile() : base() { }
|
public EPFormatFile() : base() { }
|
||||||
#endregion
|
#endregion
|
||||||
#region Business Fields
|
#region Business Fields
|
||||||
// Name of the EP Viewer Format File
|
// Name of the EP Viewer Format File
|
||||||
private LazyLoad<string> _Name;
|
private LazyLoad<string> _Name;
|
||||||
[DisplayName("Name")]
|
[DisplayName("Name")]
|
||||||
[Description("EP Viewer File Name")]
|
[Description("EP Viewer File Name")]
|
||||||
public string Name
|
public string Name
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return LazyLoad(ref _Name, "@Name");
|
return LazyLoad(ref _Name, "@Name");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Name of the EP Viewer Format File
|
// Name of the EP Viewer Format File
|
||||||
private LazyLoad<string> _Description;
|
private LazyLoad<string> _Description;
|
||||||
[DisplayName("Description")]
|
[DisplayName("Description")]
|
||||||
[Description("EP Viewer Description")]
|
[Description("EP Viewer Description")]
|
||||||
public string Description
|
public string Description
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return LazyLoad(ref _Description, "@Description");
|
return LazyLoad(ref _Description, "@Description");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Id of Annotation Type Associated with this file
|
// Id of Annotation Type Associated with this file
|
||||||
private LazyLoad<int?> _AnnotationTypeID;
|
private LazyLoad<int?> _AnnotationTypeID;
|
||||||
[DisplayName("AnnotationTypeID")]
|
[DisplayName("AnnotationTypeID")]
|
||||||
[Description("Id of Annotation Type Associated with this file")]
|
[Description("Id of Annotation Type Associated with this file")]
|
||||||
public int? AnnotationTypeID
|
public int? AnnotationTypeID
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return LazyLoad(ref _AnnotationTypeID, "@AnnotationTypeID");
|
return LazyLoad(ref _AnnotationTypeID, "@AnnotationTypeID");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// returns a list of fields that are defined in the EP format's structure
|
|
||||||
private EPFields _FieldList;
|
// Return Name of Annotation that EP Format File is Attached to
|
||||||
public EPFields FieldList
|
public string AnnotationName()
|
||||||
{
|
{
|
||||||
get
|
return AnnotationTypeInfo.Get((int) AnnotationTypeID).Name;
|
||||||
{
|
}
|
||||||
XmlDocument xd = GetEPFormatData(Name);
|
|
||||||
return _FieldList == null ? _FieldList = new EPFields(xd.SelectNodes("/EPFormat/EPField")) : _FieldList;
|
//if xml value is blank, should element export?
|
||||||
}
|
//defaults to true
|
||||||
}
|
private LazyLoad<bool> _exportblank;
|
||||||
#endregion
|
[DisplayName("exportblank")]
|
||||||
#region Business Methods
|
[Description("if xml value is blank, should element export?")]
|
||||||
// update all in-use annotation types that have Electronic Procedures
|
public bool exportblank
|
||||||
public static void UpdateAllInUseEPAnnotationTypes()
|
{
|
||||||
{
|
get
|
||||||
foreach (int formatid in GetAllInUseFormats())
|
{
|
||||||
{
|
return LazyLoad(ref _exportblank, "@exportblank");
|
||||||
PlantFormat frmt = FormatInfo.Get(formatid).PlantFormat;
|
}
|
||||||
foreach (EPFormatFile EP in frmt.EPFormatFiles)
|
}
|
||||||
|
// returns a list of fields that are defined in the EP format's structure
|
||||||
|
private EPFields _FieldList;
|
||||||
|
public EPFields FieldList
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
XmlDocument xd = GetEPFormatData(Name);
|
||||||
|
return _FieldList ?? (_FieldList = new EPFields(xd.SelectNodes("/EPFormat/EPField")));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
#region Business Methods
|
||||||
|
// update all in-use annotation types that have Electronic Procedures
|
||||||
|
public static void UpdateAllInUseEPAnnotationTypes()
|
||||||
|
{
|
||||||
|
foreach (int formatid in GetAllInUseFormats())
|
||||||
|
{
|
||||||
|
PlantFormat frmt = FormatInfo.Get(formatid).PlantFormat;
|
||||||
|
foreach (EPFormatFile EP in frmt.EPFormatFiles)
|
||||||
{
|
{
|
||||||
UpdateAnnotationTypeAsEP((int) EP.AnnotationTypeID);
|
UpdateAnnotationTypeAsEP((int) EP.AnnotationTypeID);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
#region Data Access
|
#region Data Access
|
||||||
// static - Load EP Format details - save to db (insert/update)
|
// static - Load EP Format details - save to db (insert/update)
|
||||||
public static void UpdateEPFormat(string name, string data, string userID)
|
public static void UpdateEPFormat(string name, string data, string userID)
|
||||||
{
|
{
|
||||||
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
|
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
|
||||||
{
|
{
|
||||||
using (SqlCommand cm = cn.CreateCommand())
|
using (SqlCommand cm = cn.CreateCommand())
|
||||||
{
|
{
|
||||||
cm.CommandType = CommandType.StoredProcedure;
|
cm.CommandType = CommandType.StoredProcedure;
|
||||||
cm.CommandText = "vesp_UpdateEPFormat";
|
cm.CommandText = "vesp_UpdateEPFormat";
|
||||||
cm.Parameters.AddWithValue("@name", name);
|
cm.Parameters.AddWithValue("@name", name);
|
||||||
cm.Parameters.AddWithValue("@data", data);
|
cm.Parameters.AddWithValue("@data", data);
|
||||||
cm.Parameters.AddWithValue("@userID", userID);
|
cm.Parameters.AddWithValue("@userID", userID);
|
||||||
cm.CommandTimeout = Database.DefaultTimeout;
|
cm.CommandTimeout = Database.DefaultTimeout;
|
||||||
cm.ExecuteNonQuery();
|
cm.ExecuteNonQuery();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// load data for getting fieldlist for this EPFormat
|
// load data for getting fieldlist for this EPFormat
|
||||||
public static XmlDocument GetEPFormatData(string name)
|
public static XmlDocument GetEPFormatData(string name)
|
||||||
{
|
{
|
||||||
name = name.Replace(".xml", "");
|
name = name.Replace(".xml", "");
|
||||||
|
|
||||||
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
|
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
|
||||||
{
|
{
|
||||||
using (SqlCommand cm = cn.CreateCommand())
|
using (SqlCommand cm = cn.CreateCommand())
|
||||||
{
|
{
|
||||||
cm.CommandType = CommandType.Text;
|
cm.CommandType = CommandType.Text;
|
||||||
cm.CommandText = "Select Data FROM EPFormats where Name = @Name";
|
cm.CommandText = "Select Data FROM EPFormats where Name = @Name";
|
||||||
cm.Parameters.AddWithValue("@Name", name);
|
cm.Parameters.AddWithValue("@Name", name);
|
||||||
cm.CommandTimeout = Database.DefaultTimeout;
|
cm.CommandTimeout = Database.DefaultTimeout;
|
||||||
using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
|
using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
|
||||||
{
|
{
|
||||||
if (dr.Read())
|
if (dr.Read())
|
||||||
{
|
{
|
||||||
XmlDocument xd = new XmlDocument();
|
XmlDocument xd = new XmlDocument();
|
||||||
xd.XmlResolver = null;
|
xd.XmlResolver = null;
|
||||||
xd.LoadXml(dr.GetString("Data"));
|
xd.LoadXml(dr.GetString("Data"));
|
||||||
return xd;
|
return xd;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get all in-use formats
|
// Get all in-use formats
|
||||||
public static List<int> GetAllInUseFormats()
|
public static List<int> GetAllInUseFormats()
|
||||||
{
|
{
|
||||||
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
|
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
|
||||||
{
|
{
|
||||||
using (SqlCommand cm = cn.CreateCommand())
|
using (SqlCommand cm = cn.CreateCommand())
|
||||||
{
|
{
|
||||||
cm.CommandType = CommandType.Text;
|
cm.CommandType = CommandType.Text;
|
||||||
cm.CommandText = @"SELECT Distinct Formats.[FormatID]
|
cm.CommandText = @"SELECT Distinct Formats.[FormatID]
|
||||||
FROM
|
FROM
|
||||||
(
|
(
|
||||||
SELECT FormatID FROM Contents
|
SELECT FormatID FROM Contents
|
||||||
@@ -153,260 +172,272 @@ namespace VEPROMS.CSLA.Library
|
|||||||
) inuse
|
) inuse
|
||||||
inner join Formats
|
inner join Formats
|
||||||
on inuse.FormatID = Formats.FormatID";
|
on inuse.FormatID = Formats.FormatID";
|
||||||
cm.CommandTimeout = Database.DefaultTimeout;
|
cm.CommandTimeout = Database.DefaultTimeout;
|
||||||
|
|
||||||
using (DataTable dt = new DataTable())
|
using (DataTable dt = new DataTable())
|
||||||
{
|
{
|
||||||
using (SqlDataAdapter da = new SqlDataAdapter(cm))
|
using (SqlDataAdapter da = new SqlDataAdapter(cm))
|
||||||
{
|
{
|
||||||
da.Fill(dt);
|
da.Fill(dt);
|
||||||
return dt.AsEnumerable().Select(x => x.Field<int>("FormatID")).ToList();
|
return dt.AsEnumerable().Select(x => x.Field<int>("FormatID")).ToList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// update an annotation type as an Electronic Procedure Annotation Type
|
// update an annotation type as an Electronic Procedure Annotation Type
|
||||||
public static void UpdateAnnotationTypeAsEP(int typeID)
|
public static void UpdateAnnotationTypeAsEP(int typeID)
|
||||||
{
|
{
|
||||||
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
|
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
|
||||||
{
|
{
|
||||||
using (SqlCommand cm = cn.CreateCommand())
|
using (SqlCommand cm = cn.CreateCommand())
|
||||||
{
|
{
|
||||||
cm.CommandType = CommandType.Text;
|
cm.CommandType = CommandType.Text;
|
||||||
cm.CommandText = @"Update AnnotationTypes
|
cm.CommandText = @"Update AnnotationTypes
|
||||||
SET IsEPAnnotationType = 1
|
SET IsEPAnnotationType = 1
|
||||||
WHERE TypeID = @typeID";
|
WHERE TypeID = @typeID";
|
||||||
cm.Parameters.AddWithValue("@typeID", typeID);
|
cm.Parameters.AddWithValue("@typeID", typeID);
|
||||||
cm.CommandTimeout = Database.DefaultTimeout;
|
cm.CommandTimeout = Database.DefaultTimeout;
|
||||||
cm.ExecuteNonQuery();
|
cm.ExecuteNonQuery();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns true if there are any EP Annotation Types
|
// Returns true if there are any EP Annotation Types
|
||||||
public static bool IsEPAnnotationType()
|
public static bool IsEPAnnotationType()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
|
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
|
||||||
{
|
{
|
||||||
using (SqlCommand cm = cn.CreateCommand())
|
using (SqlCommand cm = cn.CreateCommand())
|
||||||
{
|
{
|
||||||
cm.CommandType = CommandType.Text;
|
cm.CommandType = CommandType.Text;
|
||||||
cm.CommandText = @"SELECT RESULT = CASE WHEN
|
cm.CommandText = @"SELECT RESULT = CASE WHEN
|
||||||
EXISTS(SELECT 1 FROM AnnotationTypes where IsEPAnnotationType = 1)
|
EXISTS(SELECT 1 FROM AnnotationTypes where IsEPAnnotationType = 1)
|
||||||
THEN 1 ELSE 0 END";
|
THEN 1 ELSE 0 END";
|
||||||
cm.CommandTimeout = Database.DefaultTimeout;
|
cm.CommandTimeout = Database.DefaultTimeout;
|
||||||
using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
|
using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
|
||||||
{
|
{
|
||||||
if (dr.Read() && dr.GetInt32("RESULT") == 1)
|
if (dr.Read() && dr.GetInt32("RESULT") == 1)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
// EP Support has not yet been added for this DB
|
// EP Support has not yet been added for this DB
|
||||||
// IsEPAnnotationType does not exist
|
// IsEPAnnotationType does not exist
|
||||||
// need to run PROMS Fixes
|
// need to run PROMS Fixes
|
||||||
// until then will ignore EP code
|
// until then will ignore EP code
|
||||||
// instead of crashing for a field not found
|
// instead of crashing for a field not found
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
||||||
public class EPFields : vlnFormatList<EPField>
|
public class EPFields : vlnFormatList<EPField>
|
||||||
{
|
{
|
||||||
public EPFields()
|
public EPFields()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public EPFields(XmlNodeList xmlNodeList) : base(xmlNodeList) { }
|
public EPFields(XmlNodeList xmlNodeList) : base(xmlNodeList) { }
|
||||||
}
|
}
|
||||||
// EP field class
|
// EP field class
|
||||||
public class EPField : vlnFormatItem
|
public class EPField : vlnFormatItem
|
||||||
{
|
{
|
||||||
public EPField(XmlNode xmlNode) : base(xmlNode) { }
|
public EPField(XmlNode xmlNode) : base(xmlNode) { }
|
||||||
public EPField() : base() { }
|
public EPField() : base() { }
|
||||||
private LazyLoad<string> _name;
|
private LazyLoad<string> _name;
|
||||||
public string name
|
public string name
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return LazyLoad(ref _name, "@name");
|
return LazyLoad(ref _name, "@name");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private LazyLoad<string> _type;
|
private LazyLoad<string> _type;
|
||||||
public string type
|
public string type
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return LazyLoad(ref _type, "@type");
|
return LazyLoad(ref _type, "@type");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private LazyLoad<string> _label;
|
private LazyLoad<string> _label;
|
||||||
public string label
|
public string label
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
string tmp = LazyLoad(ref _label, "@label");
|
string tmp = LazyLoad(ref _label, "@label");
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(tmp))
|
if (string.IsNullOrEmpty(tmp))
|
||||||
return LazyLoad(ref _name, "@name");
|
return LazyLoad(ref _name, "@name");
|
||||||
else
|
else
|
||||||
return tmp;
|
return tmp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private LazyLoad<string> _text;
|
private LazyLoad<string> _text;
|
||||||
public string text
|
public string text
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return LazyLoad(ref _text, "@text");
|
return LazyLoad(ref _text, "@text");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//roid of group item that individual sub-items will be the choices for the list/combobox for ROSINGLE and ROMULTI
|
//roid of group item that individual sub-items will be the choices for the list/combobox for ROSINGLE and ROMULTI
|
||||||
private LazyLoad<string> _rosource;
|
private LazyLoad<string> _rosource;
|
||||||
public string rosource
|
public string rosource
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return LazyLoad(ref _rosource, "@rosource");
|
return LazyLoad(ref _rosource, "@rosource");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//the columns in the RO that will be included in the exports
|
//the columns in the RO that will be included in the exports
|
||||||
private LazyLoad<string> _returncols;
|
private LazyLoad<string> _returncols;
|
||||||
public List<string> returncols()
|
public List<string> returncols()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
string tmp = LazyLoad(ref _returncols, "@returncols");
|
string tmp = LazyLoad(ref _returncols, "@returncols");
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(tmp))
|
if (string.IsNullOrEmpty(tmp))
|
||||||
return new List<string>();
|
return new List<string>();
|
||||||
else
|
else
|
||||||
return tmp.Split(',').Select(p => p.Trim()).ToList();
|
return tmp.Split(',').Select(p => p.Trim()).ToList();
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
throw new ArgumentException($"Error in returncols for EP file: {((EPFormatFile)MyParentFormat).Name}.xml, field: {name}");
|
throw new ArgumentException($"Error in returncols for EP file, field: {name}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//number of lines for a multi-line text box to span
|
//number of lines for a multi-line text box to span
|
||||||
private LazyLoad<int?> _numlines;
|
private LazyLoad<int?> _numlines;
|
||||||
public int numlines
|
public int numlines
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
int? tmp = LazyLoad(ref _numlines, "@numlines");
|
int? tmp = LazyLoad(ref _numlines, "@numlines");
|
||||||
|
|
||||||
if (tmp == null)
|
if (tmp == null)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
return (int) tmp;
|
return (int) tmp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//step types that the EPForma Item is valid for (as a list of types)
|
//step types that the EPForma Item is valid for (as a list of types)
|
||||||
private LazyLoad<string> _validforsteptypes;
|
private LazyLoad<string> _validforsteptypes;
|
||||||
public List<string> validforsteptypes()
|
public List<string> validforsteptypes()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
string tmp = LazyLoad(ref _validforsteptypes, "@validforsteptypes");
|
string tmp = LazyLoad(ref _validforsteptypes, "@validforsteptypes");
|
||||||
return tmp.Split(',').Select(p => p.Trim()).ToList();
|
return tmp.Split(',').Select(p => p.Trim()).ToList();
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
throw new ArgumentException($"Error in validforsteptypes for EP file: {((EPFormatFile) MyParentFormat).Name}.xml, field: {name}");
|
throw new ArgumentException($"Error in validforsteptypes for EP file, field: {name}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public bool IsValidForStepType(string StepType)
|
public bool IsValidForStepType(string StepType)
|
||||||
{
|
{
|
||||||
List<string> tmp = validforsteptypes();
|
List<string> tmp = validforsteptypes();
|
||||||
return tmp.Contains(StepType);
|
return tmp.Contains(StepType);
|
||||||
}
|
}
|
||||||
|
|
||||||
//return a list of items based on the ROsource specified in the EPFormat File
|
//return a list of items based on the ROsource specified in the EPFormat File
|
||||||
//will return all RO items under the Group that's roid = the rosource
|
//will return all RO items under the Group that's roid = the rosource
|
||||||
public List<ROListItem> getROList(AnnotationInfo currAnn, bool includeblank)
|
public List<ROListItem> getROList(AnnotationInfo currAnn, bool includeblank)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(rosource))
|
if (string.IsNullOrEmpty(rosource))
|
||||||
return new List<ROListItem>();
|
return new List<ROListItem>();
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
DocVersionInfo MyDocVersion = currAnn.MyItem.MyDocVersion;
|
DocVersionInfo MyDocVersion = currAnn.MyItem.MyDocVersion;
|
||||||
ROFSTLookup lookup = MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(MyDocVersion);
|
|
||||||
|
|
||||||
string roid = FormatRoidKey(rosource, false);
|
if (MyDocVersion.DocVersionAssociations != null && MyDocVersion.DocVersionAssociations.Any())
|
||||||
rochild[] children = lookup.GetRoChildrenByRoid(roid);
|
{
|
||||||
|
ROFSTLookup lookup = MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(MyDocVersion);
|
||||||
|
|
||||||
List<ROListItem> mylist = children.Select(x => new ROListItem(x.title, x.roid.Substring(0, 12))).ToList();
|
string roid = FormatRoidKey(rosource, false);
|
||||||
if (includeblank)
|
rochild[] children = lookup.GetRoChildrenByRoid(roid);
|
||||||
mylist.Insert(0, new ROListItem("", ""));
|
|
||||||
|
|
||||||
return mylist;
|
List<ROListItem> mylist = children.Select(x => new ROListItem(x.title, x.roid.Substring(0, 12))).ToList();
|
||||||
}
|
if (includeblank)
|
||||||
catch (Exception Ex)
|
mylist.Insert(0, new ROListItem("", ""));
|
||||||
{
|
|
||||||
throw new ArgumentException($"Error in rosource for EP file: {((EPFormatFile)MyParentFormat).Name}.xml, field: {name}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
return mylist;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return new List<ROListItem>
|
||||||
|
{
|
||||||
|
new ROListItem("", "")
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
//return a list of values for the specified ROID
|
}
|
||||||
//given the EP items return columns
|
catch
|
||||||
//will return all RO items under the Group that's roid = the rosource
|
{
|
||||||
public List<string> getROValuesList(AnnotationInfo currAnn, string roid)
|
throw new ArgumentException($"Error in rosource for EP file, field: {name}");
|
||||||
{
|
}
|
||||||
if (string.IsNullOrEmpty(roid))
|
}
|
||||||
return new List<string>();
|
|
||||||
|
|
||||||
List<string> values = new List<string>();
|
//return a list of values for the specified ROID
|
||||||
DocVersionInfo MyDocVersion = currAnn.MyItem.MyDocVersion;
|
//given the EP items return columns
|
||||||
ROFSTLookup lookup = MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(MyDocVersion);
|
//will return all RO items under the Group that's roid = the rosource
|
||||||
rochild ro = lookup.GetRoChild(roid);
|
public List<string> getROValuesList(AnnotationInfo currAnn, string roid)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(roid))
|
||||||
|
return new List<string>();
|
||||||
|
|
||||||
List<string> rtncols = returncols();
|
List<string> values = new List<string>();
|
||||||
|
DocVersionInfo MyDocVersion = currAnn.MyItem.MyDocVersion;
|
||||||
|
ROFSTLookup lookup = MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(MyDocVersion);
|
||||||
|
rochild ro = lookup.GetRoChild(roid);
|
||||||
|
|
||||||
if (rtncols.Count == 0)
|
List<string> rtncols = returncols();
|
||||||
{
|
|
||||||
values.Add(ro.value);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
foreach (string rcol in rtncols)
|
|
||||||
{
|
|
||||||
rochild ro_indiv = Array.Find(ro.children, x => x.appid.EndsWith($".{rcol}"));
|
|
||||||
if (ro_indiv.value != null) values.Add(ro_indiv.value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return values;
|
if (rtncols.Count == 0)
|
||||||
|
{
|
||||||
|
values.Add(ro.value);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
foreach (string rcol in rtncols)
|
||||||
|
{
|
||||||
|
rochild ro_indiv = Array.Find(ro.children, x => x.appid.EndsWith($".{rcol}"));
|
||||||
|
if (ro_indiv.value != null) values.Add(ro_indiv.value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
return values;
|
||||||
}
|
|
||||||
#endregion
|
}
|
||||||
//C2025-023 - Electronic Procedures - Modifications to PROMS
|
}
|
||||||
// class to handle return of RO Lists
|
|
||||||
#region EPFormatFiles
|
#endregion
|
||||||
public class ROListItem
|
//C2025-023 - Electronic Procedures - Modifications to PROMS
|
||||||
{
|
// class to handle return of RO Lists
|
||||||
public string Text { get; private set; }
|
#region EPFormatFiles
|
||||||
public string Value { get; private set; }
|
public class ROListItem
|
||||||
public ROListItem(string _text, string _value)
|
{
|
||||||
{
|
public string Text { get; private set; }
|
||||||
Text = _text; Value = _value;
|
public string Value { get; private set; }
|
||||||
}
|
public ROListItem(string _text, string _value)
|
||||||
}
|
{
|
||||||
#endregion
|
Text = _text; Value = _value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -120,7 +120,7 @@ namespace Volian.Controls.Library
|
|||||||
foreach (string t in tmps) cmb.Items.Add(t.Trim());
|
foreach (string t in tmps) cmb.Items.Add(t.Trim());
|
||||||
string val = MyConfig.GetValue("EP", EP.name);
|
string val = MyConfig.GetValue("EP", EP.name);
|
||||||
if (val != null && val != "") cmb.SelectedItem = val;
|
if (val != null && val != "") cmb.SelectedItem = val;
|
||||||
cmb.DropDownWidth = TextRenderer.MeasureText(tmps.OrderByDescending(x => x.Length).First(), cmb.Font).Width + SystemInformation.VerticalScrollBarWidth;
|
cmb.DropDownWidth = TextRenderer.MeasureText(tmps.OrderByDescending(x => x.Length).FirstOrDefault(), cmb.Font).Width + SystemInformation.VerticalScrollBarWidth;
|
||||||
cmb.Width = cmb.DropDownWidth;
|
cmb.Width = cmb.DropDownWidth;
|
||||||
_DicComboBox.Add(EP.name, cmb);
|
_DicComboBox.Add(EP.name, cmb);
|
||||||
panelEP.Controls.Add(cmb, 1, panelEP.RowCount - 1);
|
panelEP.Controls.Add(cmb, 1, panelEP.RowCount - 1);
|
||||||
@@ -135,7 +135,7 @@ namespace Volian.Controls.Library
|
|||||||
cmb.ValueMember = "Value";
|
cmb.ValueMember = "Value";
|
||||||
cmb.DataSource = tmps;
|
cmb.DataSource = tmps;
|
||||||
cmb.DropDownStyle = ComboBoxStyle.DropDownList;
|
cmb.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||||
cmb.DropDownWidth = TextRenderer.MeasureText(tmps.OrderByDescending(x => x.Text.Length).First().Text, cmb.Font).Width + SystemInformation.VerticalScrollBarWidth;
|
cmb.DropDownWidth = TextRenderer.MeasureText(tmps.OrderByDescending(x => x.Text.Length).FirstOrDefault()?.Text, cmb.Font).Width + SystemInformation.VerticalScrollBarWidth;
|
||||||
cmb.Width = cmb.DropDownWidth;
|
cmb.Width = cmb.DropDownWidth;
|
||||||
|
|
||||||
_DicSingleRO.Add(EP.name, cmb);
|
_DicSingleRO.Add(EP.name, cmb);
|
||||||
@@ -148,7 +148,7 @@ namespace Volian.Controls.Library
|
|||||||
List<ROListItem> tmps = EP.getROList(currAnn, false);
|
List<ROListItem> tmps = EP.getROList(currAnn, false);
|
||||||
lb.DisplayMember = "Text";
|
lb.DisplayMember = "Text";
|
||||||
lb.ValueMember = "Value";
|
lb.ValueMember = "Value";
|
||||||
lb.Width = TextRenderer.MeasureText(tmps.OrderByDescending(x => x.Text.Length).First().Text, lb.Font).Width + SystemInformation.VerticalScrollBarWidth;
|
lb.Width = TextRenderer.MeasureText(tmps.OrderByDescending(x => x.Text.Length).FirstOrDefault()?.Text, lb.Font).Width + SystemInformation.VerticalScrollBarWidth;
|
||||||
|
|
||||||
lb.DataSource = tmps;
|
lb.DataSource = tmps;
|
||||||
_DicMultiRO.Add(EP.name, lb);
|
_DicMultiRO.Add(EP.name, lb);
|
||||||
|
@@ -22,11 +22,11 @@ namespace Volian.Controls.Library
|
|||||||
public delegate void vlnTreeViewEvent(object sender, vlnTreeEventArgs args);
|
public delegate void vlnTreeViewEvent(object sender, vlnTreeEventArgs args);
|
||||||
public delegate void vlnTreeViewTimeEvent(object sender, vlnTreeTimeEventArgs args);
|
public delegate void vlnTreeViewTimeEvent(object sender, vlnTreeTimeEventArgs args);
|
||||||
public delegate void vlnTreeViewStatusEvent(object sender, vlnTreeStatusEventArgs args);
|
public delegate void vlnTreeViewStatusEvent(object sender, vlnTreeStatusEventArgs args);
|
||||||
public delegate ItemInfo vlnTreeViewClipboardStatusEvent(object sender, vlnTreeEventArgs args);
|
public delegate ItemInfo vlnTreeViewClipboardStatusEvent(object sender, vlnTreeEventArgs args);
|
||||||
public delegate void vlnTreeViewItemInfoEvent(object sender, vlnTreeItemInfoEventArgs args);
|
public delegate void vlnTreeViewItemInfoEvent(object sender, vlnTreeItemInfoEventArgs args);
|
||||||
public delegate bool vlnTreeViewBoolEvent(object sender, vlnTreeEventArgs args);
|
public delegate bool vlnTreeViewBoolEvent(object sender, vlnTreeEventArgs args);
|
||||||
public delegate bool vlnTreeViewItemInfoDeleteEvent(object sender, vlnTreeItemInfoEventArgs args);
|
public delegate bool vlnTreeViewItemInfoDeleteEvent(object sender, vlnTreeItemInfoEventArgs args);
|
||||||
|
|
||||||
public delegate bool vlnTreeViewItemInfoInsertEvent(object sender, vlnTreeItemInfoInsertEventArgs args);
|
public delegate bool vlnTreeViewItemInfoInsertEvent(object sender, vlnTreeItemInfoInsertEventArgs args);
|
||||||
public delegate bool vlnTreeViewItemInfoDeleteFolderEvent(object sender, vlnTreeFolderDeleteEventArgs args);
|
public delegate bool vlnTreeViewItemInfoDeleteFolderEvent(object sender, vlnTreeFolderDeleteEventArgs args);
|
||||||
public delegate bool vlnTreeViewItemInfoPasteEvent(object sender, vlnTreeItemInfoPasteEventArgs args);
|
public delegate bool vlnTreeViewItemInfoPasteEvent(object sender, vlnTreeItemInfoPasteEventArgs args);
|
||||||
@@ -152,6 +152,15 @@ namespace Volian.Controls.Library
|
|||||||
get { return _Index; }
|
get { return _Index; }
|
||||||
set { _Index = value; }
|
set { _Index = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
|
||||||
|
//AnnotationType that would be doing an export for
|
||||||
|
private int _AnnotationTypeId = -1;
|
||||||
|
public int AnnotationTypeId
|
||||||
|
{
|
||||||
|
get { return _AnnotationTypeId; }
|
||||||
|
set { _AnnotationTypeId = value; }
|
||||||
|
}
|
||||||
//jcb multiunit
|
//jcb multiunit
|
||||||
private string _Unit;
|
private string _Unit;
|
||||||
public string Unit
|
public string Unit
|
||||||
@@ -179,6 +188,13 @@ namespace Volian.Controls.Library
|
|||||||
_Destination = destination;
|
_Destination = destination;
|
||||||
_Index = index;
|
_Index = index;
|
||||||
}
|
}
|
||||||
|
public vlnTreeEventArgs(TreeNode node, TreeNode destination, int index, int annTypeId)
|
||||||
|
{
|
||||||
|
_Node = node;
|
||||||
|
_Destination = destination;
|
||||||
|
_Index = index;
|
||||||
|
_AnnotationTypeId = annTypeId;
|
||||||
|
}
|
||||||
//jcb multiunit
|
//jcb multiunit
|
||||||
public vlnTreeEventArgs(TreeNode node, TreeNode destination, int index, string unit, int unitIndex)
|
public vlnTreeEventArgs(TreeNode node, TreeNode destination, int index, string unit, int unitIndex)
|
||||||
{
|
{
|
||||||
@@ -188,11 +204,20 @@ namespace Volian.Controls.Library
|
|||||||
_Unit = unit;
|
_Unit = unit;
|
||||||
_UnitIndex = unitIndex;
|
_UnitIndex = unitIndex;
|
||||||
}
|
}
|
||||||
|
public vlnTreeEventArgs(TreeNode node, TreeNode destination, int index, string unit, int unitIndex, int annTypeId)
|
||||||
|
{
|
||||||
|
_Node = node;
|
||||||
|
_Destination = destination;
|
||||||
|
_Index = index;
|
||||||
|
_Unit = unit;
|
||||||
|
_UnitIndex = unitIndex;
|
||||||
|
_AnnotationTypeId = annTypeId;
|
||||||
|
}
|
||||||
//end jcb multiunit
|
//end jcb multiunit
|
||||||
#endregion
|
#endregion
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
return string.Format("Node={0},Destination={1},Index={2},Unit={3},UnitIndex={4}", NodePath(this.Node), this.Destination, this.Index, this.Unit, this.UnitIndex);
|
return string.Format("Node={0},Destination={1},Index={2},Unit={3},UnitIndex={4}", NodePath(this.Node), this.Destination, this.Index, this.Unit, this.UnitIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
private string NodePath(TreeNode node)
|
private string NodePath(TreeNode node)
|
||||||
@@ -322,7 +347,7 @@ namespace Volian.Controls.Library
|
|||||||
_PasteType = pasteType;
|
_PasteType = pasteType;
|
||||||
_Type = type;
|
_Type = type;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
@@ -573,16 +598,16 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
if (ProcedureCheckedOutTo != null) ProcedureCheckedOutTo(sender, args);
|
if (ProcedureCheckedOutTo != null) ProcedureCheckedOutTo(sender, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public event vlnTreeViewEvent ExportImportProcedureSets;
|
public event vlnTreeViewEvent ExportImportProcedureSets;
|
||||||
private void OnExportImportProcedureSets(object sender, vlnTreeEventArgs args)
|
private void OnExportImportProcedureSets(object sender, vlnTreeEventArgs args)
|
||||||
{
|
{
|
||||||
if (ExportImportProcedureSets != null) ExportImportProcedureSets(sender, args);
|
if (ExportImportProcedureSets != null) ExportImportProcedureSets(sender, args);
|
||||||
}
|
}
|
||||||
public event vlnTreeViewEvent PrintTransitionReport;
|
public event vlnTreeViewEvent PrintTransitionReport;
|
||||||
private void OnPrintTransitionReport(object sender, vlnTreeEventArgs args)
|
private void OnPrintTransitionReport(object sender, vlnTreeEventArgs args)
|
||||||
{
|
{
|
||||||
@@ -634,7 +659,7 @@ namespace Volian.Controls.Library
|
|||||||
// This event was added to update the Step Properties/RO & Tools/Search RO & Reports
|
// This event was added to update the Step Properties/RO & Tools/Search RO & Reports
|
||||||
// when an update of ro.fst is done & the ro trees on those panels needs refreshed.
|
// when an update of ro.fst is done & the ro trees on those panels needs refreshed.
|
||||||
// (bug fix B2015-226)
|
// (bug fix B2015-226)
|
||||||
public event StepPanelTabDisplayEvent TabDisplay;
|
public event StepPanelTabDisplayEvent TabDisplay;
|
||||||
private void OnTabDisplay(object sender, StepPanelTabDisplayEventArgs args)
|
private void OnTabDisplay(object sender, StepPanelTabDisplayEventArgs args)
|
||||||
{
|
{
|
||||||
if (TabDisplay != null) TabDisplay(sender, args);
|
if (TabDisplay != null) TabDisplay(sender, args);
|
||||||
@@ -711,7 +736,10 @@ namespace Volian.Controls.Library
|
|||||||
if (ui.IsAdministrator() || ui.IsSetAdministrator(fi))// && fi.MyParent == null) //VEPROMS level
|
if (ui.IsAdministrator() || ui.IsSetAdministrator(fi))// && fi.MyParent == null) //VEPROMS level
|
||||||
{
|
{
|
||||||
if (fi.HasWorkingDraft)
|
if (fi.HasWorkingDraft)
|
||||||
|
{
|
||||||
cm.MenuItems.Add("Export Procedure Set", new EventHandler(mi_Click));
|
cm.MenuItems.Add("Export Procedure Set", new EventHandler(mi_Click));
|
||||||
|
//AddEPExport(cm.MenuItems, 0, null);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
cm.MenuItems.Add("Import Procedure Set", new EventHandler(mi_Click));
|
cm.MenuItems.Add("Import Procedure Set", new EventHandler(mi_Click));
|
||||||
if (DoSpecificInfo)
|
if (DoSpecificInfo)
|
||||||
@@ -731,12 +759,12 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// B2020-111 only allow Set Administrator to add new folders inside folders they admininstrate
|
// B2020-111 only allow Set Administrator to add new folders inside folders they admininstrate
|
||||||
if ((ui.IsAdministrator() || ui.IsSetAdministrator(fi.MyParent)) && fi.FolderDocVersionCount == 0)
|
if ((ui.IsAdministrator() || ui.IsSetAdministrator(fi.MyParent)) && fi.FolderDocVersionCount == 0)
|
||||||
cm.MenuItems.Add("New Folder", new EventHandler(mi_Click));
|
cm.MenuItems.Add("New Folder", new EventHandler(mi_Click));
|
||||||
if (fi.ChildFolderCount == 0 && !fi.HasWorkingDraft)
|
if (fi.ChildFolderCount == 0 && !fi.HasWorkingDraft)
|
||||||
cm.MenuItems.Add("Create Working Draft", new EventHandler(mi_Click));
|
cm.MenuItems.Add("Create Working Draft", new EventHandler(mi_Click));
|
||||||
}
|
}
|
||||||
if (fi.HasWorkingDraft)
|
if (fi.HasWorkingDraft)
|
||||||
cm.MenuItems.Add("Print Transition Report", new EventHandler(mi_Click));
|
cm.MenuItems.Add("Print Transition Report", new EventHandler(mi_Click));
|
||||||
}
|
}
|
||||||
else if (tn.VEObject as DocVersionInfo != null) // DocVersions can only contain procs
|
else if (tn.VEObject as DocVersionInfo != null) // DocVersions can only contain procs
|
||||||
@@ -745,14 +773,14 @@ namespace Volian.Controls.Library
|
|||||||
//_MyLog.WarnFormat("Context Menu 1c - {0}", GC.GetTotalMemory(true));
|
//_MyLog.WarnFormat("Context Menu 1c - {0}", GC.GetTotalMemory(true));
|
||||||
DocVersionInfo dvi = tn.VEObject as DocVersionInfo;
|
DocVersionInfo dvi = tn.VEObject as DocVersionInfo;
|
||||||
if (ui.IsAdministrator() || ui.IsSetAdministrator(dvi))
|
if (ui.IsAdministrator() || ui.IsSetAdministrator(dvi))
|
||||||
{
|
{
|
||||||
cm.MenuItems.Add("Import Procedure", mi_Click);
|
cm.MenuItems.Add("Import Procedure", mi_Click);
|
||||||
}
|
}
|
||||||
if (ui.IsAdministrator() || ui.IsSetAdministrator(dvi) || ui.IsWriter(dvi))
|
if (ui.IsAdministrator() || ui.IsSetAdministrator(dvi) || ui.IsWriter(dvi))
|
||||||
{
|
{
|
||||||
OwnerInfoList.Reset();
|
OwnerInfoList.Reset();
|
||||||
oil = OwnerInfoList.GetByVersionID(dvi.VersionID);
|
oil = OwnerInfoList.GetByVersionID(dvi.VersionID);
|
||||||
if (dvi.ActiveFormat.PlantFormat.FormatData.SpecificInfo)
|
if (dvi.ActiveFormat.PlantFormat.FormatData.SpecificInfo)
|
||||||
cm.MenuItems.Add("Procedure Set Specific Information", new EventHandler(mi_Click));
|
cm.MenuItems.Add("Procedure Set Specific Information", new EventHandler(mi_Click));
|
||||||
cm.MenuItems.Add("Refresh Checked Out Procedures", new EventHandler(mi_Click));
|
cm.MenuItems.Add("Refresh Checked Out Procedures", new EventHandler(mi_Click));
|
||||||
cm.MenuItems.Add("New Procedure", new EventHandler(mi_Click));
|
cm.MenuItems.Add("New Procedure", new EventHandler(mi_Click));
|
||||||
@@ -846,7 +874,10 @@ namespace Volian.Controls.Library
|
|||||||
oi = OwnerInfo.GetByItemID(pri.ItemID, CheckOutType.Procedure);
|
oi = OwnerInfo.GetByItemID(pri.ItemID, CheckOutType.Procedure);
|
||||||
if (ui.IsAdministrator() || ui.IsSetAdministrator(pri.MyDocVersion))
|
if (ui.IsAdministrator() || ui.IsSetAdministrator(pri.MyDocVersion))
|
||||||
{
|
{
|
||||||
cm.MenuItems.Add("Export Procedure", mi_Click);
|
cm.MenuItems.Add("Export Procedure", mi_Click);
|
||||||
|
//C2025-024 Proms XML Output - if have any EP Format files, add dropdown menu for exporting EP formats
|
||||||
|
if (pri.ActiveFormat.PlantFormat.EPFormatFiles.Count > 0)
|
||||||
|
AddEPExport(cm.MenuItems, pri.MyDocVersion.MultiUnitCount, pri.MyDocVersion.UnitNames, pri.ActiveFormat.PlantFormat.EPFormatFiles);
|
||||||
}
|
}
|
||||||
if (ui.IsAdministrator() || ui.IsSetAdministrator(pri.MyDocVersion) || ui.IsWriter(pri.MyDocVersion))
|
if (ui.IsAdministrator() || ui.IsSetAdministrator(pri.MyDocVersion) || ui.IsWriter(pri.MyDocVersion))
|
||||||
{
|
{
|
||||||
@@ -898,7 +929,7 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
cm.MenuItems.Add(micas);
|
cm.MenuItems.Add(micas);
|
||||||
cm.MenuItems.Add(mitcas);
|
cm.MenuItems.Add(mitcas);
|
||||||
cm.MenuItems.Add(mip);
|
cm.MenuItems.Add(mip);
|
||||||
cm.MenuItems.Add(miqp);
|
cm.MenuItems.Add(miqp);
|
||||||
//cm.MenuItems.Add(mips);
|
//cm.MenuItems.Add(mips);
|
||||||
AddShowChangeBarsAfterMenuItem(cm.MenuItems, pri);
|
AddShowChangeBarsAfterMenuItem(cm.MenuItems, pri);
|
||||||
@@ -1132,35 +1163,35 @@ namespace Volian.Controls.Library
|
|||||||
|
|
||||||
#region Menu_Delete
|
#region Menu_Delete
|
||||||
if (ok)
|
if (ok)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{
|
|
||||||
// Add delete to the menu unless at the very 'top' node, on a grouping (partinfo)
|
|
||||||
// node (RNOs, Steps, Cautions, Notes) or Folder/DocVersion that contains any items.
|
|
||||||
PartInfo pi = tn.VEObject as PartInfo;
|
|
||||||
if (pi == null && tn.Parent != null) // it's not a part and it's not the top....
|
|
||||||
{
|
{
|
||||||
fi = tn.VEObject as FolderInfo;
|
// Add delete to the menu unless at the very 'top' node, on a grouping (partinfo)
|
||||||
if (fi == null || tn.Nodes.Count == 0) // it's not a folder or it has no children
|
// node (RNOs, Steps, Cautions, Notes) or Folder/DocVersion that contains any items.
|
||||||
|
PartInfo pi = tn.VEObject as PartInfo;
|
||||||
|
if (pi == null && tn.Parent != null) // it's not a part and it's not the top....
|
||||||
{
|
{
|
||||||
DocVersionInfo di = tn.VEObject as DocVersionInfo;
|
fi = tn.VEObject as FolderInfo;
|
||||||
if (di == null || tn.Nodes.Count == 0) // it's not a docversion or it has no children
|
if (fi == null || tn.Nodes.Count == 0) // it's not a folder or it has no children
|
||||||
{
|
{
|
||||||
// if it's an enhanced step that was linked from a source, don't allow delete
|
DocVersionInfo di = tn.VEObject as DocVersionInfo;
|
||||||
bool canDoDel = true;
|
if (di == null || tn.Nodes.Count == 0) // it's not a docversion or it has no children
|
||||||
ItemInfo iienh = tn.VEObject as ItemInfo;
|
{
|
||||||
if (iienh != null && iienh.IsProcedure && iienh.IsEnhancedProcedure) canDoDel = false;
|
// if it's an enhanced step that was linked from a source, don't allow delete
|
||||||
if (iienh != null && iienh.IsSection && iienh.IsEnhancedSection && !iienh.IsEnhancedSectionTitleOnly) canDoDel = false;
|
bool canDoDel = true;
|
||||||
if (iienh != null && iienh.IsEnhancedStep) canDoDel = false;
|
ItemInfo iienh = tn.VEObject as ItemInfo;
|
||||||
if (canDoDel) cm.MenuItems.Add("Delete", new EventHandler(mi_Click));
|
if (iienh != null && iienh.IsProcedure && iienh.IsEnhancedProcedure) canDoDel = false;
|
||||||
|
if (iienh != null && iienh.IsSection && iienh.IsEnhancedSection && !iienh.IsEnhancedSectionTitleOnly) canDoDel = false;
|
||||||
|
if (iienh != null && iienh.IsEnhancedStep) canDoDel = false;
|
||||||
|
if (canDoDel) cm.MenuItems.Add("Delete", new EventHandler(mi_Click));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
//_MyLog.WarnFormat("Context Menu 6 - {0}", GC.GetTotalMemory(true));
|
//_MyLog.WarnFormat("Context Menu 6 - {0}", GC.GetTotalMemory(true));
|
||||||
#region Menu_ExternalTransitions
|
#region Menu_ExternalTransitions
|
||||||
@@ -1224,8 +1255,8 @@ namespace Volian.Controls.Library
|
|||||||
// node (RNOs, Steps, Cautions, Notes) or at the step level.
|
// node (RNOs, Steps, Cautions, Notes) or at the step level.
|
||||||
// B2020-105 Allow Set Administrators to rename folder's (sets of procedures) to which they have been given access.
|
// B2020-105 Allow Set Administrators to rename folder's (sets of procedures) to which they have been given access.
|
||||||
if (tn.VEObject is FolderInfo) ok = (ui.IsAdministrator() || ui.IsSetAdministrator(tn.VEObject as FolderInfo));
|
if (tn.VEObject is FolderInfo) ok = (ui.IsAdministrator() || ui.IsSetAdministrator(tn.VEObject as FolderInfo));
|
||||||
else ok = (tn.VEObject is DocVersionInfo) ? (ui.IsAdministrator() || ui.IsSetAdministrator(tn.VEObject as DocVersionInfo))
|
else ok = (tn.VEObject is DocVersionInfo) ? (ui.IsAdministrator() || ui.IsSetAdministrator(tn.VEObject as DocVersionInfo))
|
||||||
: (ui.IsAdministrator() || (tn.VEObject is ItemInfo) && (ui.IsSetAdministrator((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion)
|
: (ui.IsAdministrator() || (tn.VEObject is ItemInfo) && (ui.IsSetAdministrator((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion)
|
||||||
|| ui.IsWriter((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion)));
|
|| ui.IsWriter((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion)));
|
||||||
PartInfo pia = tn.VEObject as PartInfo;
|
PartInfo pia = tn.VEObject as PartInfo;
|
||||||
ItemInfo ii = tn.VEObject as ItemInfo;
|
ItemInfo ii = tn.VEObject as ItemInfo;
|
||||||
@@ -1306,7 +1337,7 @@ namespace Volian.Controls.Library
|
|||||||
itm.Text == "Procedure Set Specific Information" || itm.Text == "Approve All Procedures for" ||
|
itm.Text == "Procedure Set Specific Information" || itm.Text == "Approve All Procedures for" ||
|
||||||
itm.Text == "Approve Some Procedures" || itm.Text == "Approve Some Procedures for")
|
itm.Text == "Approve Some Procedures" || itm.Text == "Approve Some Procedures for")
|
||||||
itm.Enabled = false;
|
itm.Enabled = false;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1335,9 +1366,9 @@ namespace Volian.Controls.Library
|
|||||||
// F2022-024 added Time Critical Action Summary option
|
// F2022-024 added Time Critical Action Summary option
|
||||||
foreach (MenuItem itm in cm.MenuItems)
|
foreach (MenuItem itm in cm.MenuItems)
|
||||||
{
|
{
|
||||||
if (itm.Text == "Procedure Specific Information" || itm.Text == "New Section" || itm.Text == "Approve" || itm.Text == "Open" ||
|
if (itm.Text == "Procedure Specific Information" || itm.Text == "New Section" || itm.Text == "Approve" || itm.Text == "Open" ||
|
||||||
itm.Text == "Copy" || itm.Text == "Delete" || itm.Text == "Properties..." || itm.Text == "Replace Existing Procedure" ||
|
itm.Text == "Copy" || itm.Text == "Delete" || itm.Text == "Properties..." || itm.Text == "Replace Existing Procedure" ||
|
||||||
itm.Text.StartsWith("Showing Change Bars Starting") || itm.Text == "Create Continuous Action Summary" ||
|
itm.Text.StartsWith("Showing Change Bars Starting") || itm.Text == "Create Continuous Action Summary" ||
|
||||||
itm.Text == "Create Time Critical Action Summary" || itm.Text == "Export Procedure")
|
itm.Text == "Create Time Critical Action Summary" || itm.Text == "Export Procedure")
|
||||||
itm.Enabled = false;
|
itm.Enabled = false;
|
||||||
}
|
}
|
||||||
@@ -1359,7 +1390,44 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AddApprovedRevisionsMultiUnit(Menu.MenuItemCollection menuItemCollection, ProcedureInfo pri)
|
//C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
|
||||||
|
// Add context menu for exporting Electronic Procedures
|
||||||
|
// if has an Electronic procedure
|
||||||
|
// then loop through and add an Export for each EP Viewer
|
||||||
|
private void AddEPExport(Menu.MenuItemCollection menuItems, int MultiUnitCount, string[] UnitNames, EPFormatFiles EPFiles)
|
||||||
|
{
|
||||||
|
//add outer menu
|
||||||
|
MenuItem mi = menuItems.Add("Electronic Procedure Viewer Export");
|
||||||
|
foreach (EPFormatFile epAnnType in EPFiles)
|
||||||
|
{
|
||||||
|
|
||||||
|
//Add item for each individual EP Viewer
|
||||||
|
MenuItem mv = mi.MenuItems.Add(epAnnType.AnnotationName());
|
||||||
|
|
||||||
|
//tag will be of format:
|
||||||
|
//{EP Annotation Type ID},{Unit}
|
||||||
|
//if not multi-unit, unit will be zero.
|
||||||
|
if (MultiUnitCount > 1)
|
||||||
|
{
|
||||||
|
//if multi-unit, add menu item for each unit
|
||||||
|
int k = 0;
|
||||||
|
foreach (string s in UnitNames)
|
||||||
|
{
|
||||||
|
k++;
|
||||||
|
MenuItem multiunit_mv = mv.MenuItems.Add(s);
|
||||||
|
multiunit_mv.Tag = $"{epAnnType.AnnotationTypeID},{k}";
|
||||||
|
multiunit_mv.Click += new EventHandler(miEP_Click);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mv.Tag = $"{epAnnType.AnnotationTypeID},0";
|
||||||
|
mv.Click += new EventHandler(miEP_Click);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void AddApprovedRevisionsMultiUnit(Menu.MenuItemCollection menuItemCollection, ProcedureInfo pri)
|
||||||
{
|
{
|
||||||
_currentPri = pri;
|
_currentPri = pri;
|
||||||
RevisionInfoList ril = RevisionInfoList.GetByItemID(pri.ItemID);
|
RevisionInfoList ril = RevisionInfoList.GetByItemID(pri.ItemID);
|
||||||
@@ -1410,11 +1478,11 @@ namespace Volian.Controls.Library
|
|||||||
ril = null;
|
ril = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public void AddNewNode(IVEDrillDownReadOnly o)
|
public void AddNewNode(IVEDrillDownReadOnly o)
|
||||||
{
|
{
|
||||||
VETreeNode tn = new VETreeNode(o);
|
VETreeNode tn = new VETreeNode(o);
|
||||||
SelectedNode.Nodes.Add(tn);
|
SelectedNode.Nodes.Add(tn);
|
||||||
}
|
}
|
||||||
private void AddApprovedRevisions(Menu.MenuItemCollection menuItemCollection, ProcedureInfo pri)
|
private void AddApprovedRevisions(Menu.MenuItemCollection menuItemCollection, ProcedureInfo pri)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -1423,7 +1491,7 @@ namespace Volian.Controls.Library
|
|||||||
_currentPri = pri;
|
_currentPri = pri;
|
||||||
using (RevisionInfoList ril = RevisionInfoList.GetByItemID(pri.ItemID))
|
using (RevisionInfoList ril = RevisionInfoList.GetByItemID(pri.ItemID))
|
||||||
{
|
{
|
||||||
//_MyLog.WarnFormat("Context Menu 1 After GET - {0}", GC.GetTotalMemory(true));
|
//_MyLog.WarnFormat("Context Menu 1 After GET - {0}", GC.GetTotalMemory(true));
|
||||||
if (ril.Count == 0) return; // no versions to list
|
if (ril.Count == 0) return; // no versions to list
|
||||||
MenuItem mi = menuItemCollection.Add("Versions");
|
MenuItem mi = menuItemCollection.Add("Versions");
|
||||||
int lastApprovedRevisionID = 0;
|
int lastApprovedRevisionID = 0;
|
||||||
@@ -1557,7 +1625,7 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
vlnTreeViewPdfArgs args = new vlnTreeViewPdfArgs(Volian.Base.Library.TmpFile.CreateFileName(ProcedureInfo.Get(ri.ItemID).PDFNumber), ri.LatestVersion.PDF, superceded ? "Superceded" : "");
|
vlnTreeViewPdfArgs args = new vlnTreeViewPdfArgs(Volian.Base.Library.TmpFile.CreateFileName(ProcedureInfo.Get(ri.ItemID).PDFNumber), ri.LatestVersion.PDF, superceded ? "Superceded" : "");
|
||||||
OnViewPDF(sender, args);
|
OnViewPDF(sender, args);
|
||||||
// System.Diagnostics.Process pp = System.Diagnostics.Process.Start(GetDocPdf(ri, superceded));
|
// System.Diagnostics.Process pp = System.Diagnostics.Process.Start(GetDocPdf(ri, superceded));
|
||||||
}
|
}
|
||||||
void MultiUnitApprovedRevision_Click(object sender, EventArgs e)
|
void MultiUnitApprovedRevision_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
@@ -1680,7 +1748,7 @@ namespace Volian.Controls.Library
|
|||||||
// 3) 'to' docversion is 'source' and 'from' procedure is within this docversion
|
// 3) 'to' docversion is 'source' and 'from' procedure is within this docversion
|
||||||
// 4) 'to' docVersion is 'enhanced' and 'from' procedure is not
|
// 4) 'to' docVersion is 'enhanced' and 'from' procedure is not
|
||||||
bool canPaste = false;
|
bool canPaste = false;
|
||||||
|
|
||||||
DocVersionInfo dvi = tn.VEObject as DocVersionInfo;
|
DocVersionInfo dvi = tn.VEObject as DocVersionInfo;
|
||||||
DocVersionConfig dvc = dvi.DocVersionConfig;
|
DocVersionConfig dvc = dvi.DocVersionConfig;
|
||||||
bool docVersionIsEnhanced = dvc.MyEnhancedDocuments != null && dvc.MyEnhancedDocuments.Count > 0 && dvc.MyEnhancedDocuments[0].Type == 0;
|
bool docVersionIsEnhanced = dvc.MyEnhancedDocuments != null && dvc.MyEnhancedDocuments.Count > 0 && dvc.MyEnhancedDocuments[0].Type == 0;
|
||||||
@@ -1701,7 +1769,7 @@ namespace Volian.Controls.Library
|
|||||||
if (iiClipboard.IsRtfRaw) canPaste = false; // never paste an equation.
|
if (iiClipboard.IsRtfRaw) canPaste = false; // never paste an equation.
|
||||||
if (canPaste) cm.MenuItems.Add("Paste Procedure", new EventHandler(mi_Click));
|
if (canPaste) cm.MenuItems.Add("Paste Procedure", new EventHandler(mi_Click));
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1919,7 +1987,7 @@ namespace Volian.Controls.Library
|
|||||||
OnQPrintSection(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
|
OnQPrintSection(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
|
||||||
break;
|
break;
|
||||||
case "Print All Procedures for":
|
case "Print All Procedures for":
|
||||||
OnPrintAllProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
|
OnPrintAllProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
|
||||||
break;
|
break;
|
||||||
case "Approve":
|
case "Approve":
|
||||||
OnApproveProcedure(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
|
OnApproveProcedure(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
|
||||||
@@ -1980,7 +2048,7 @@ namespace Volian.Controls.Library
|
|||||||
if (hasValidConnectingProc)
|
if (hasValidConnectingProc)
|
||||||
{
|
{
|
||||||
ItemInfo lprc = ItemInfo.Get(seleds[0].ItemID);
|
ItemInfo lprc = ItemInfo.Get(seleds[0].ItemID);
|
||||||
lprc.DoUnlinkEnhanced(lprc, 0, !hasValidConnectingProc);
|
lprc.DoUnlinkEnhanced(lprc, 0, !hasValidConnectingProc);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
selprc.DoUnlinkEnhanced(selprc, seleds[0].Type, !hasValidConnectingProc);
|
selprc.DoUnlinkEnhanced(selprc, seleds[0].Type, !hasValidConnectingProc);
|
||||||
@@ -2000,7 +2068,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
ItemInfo lprc = ItemInfo.Get(ed.ItemID);
|
ItemInfo lprc = ItemInfo.Get(ed.ItemID);
|
||||||
bool hasValidConnectingProc = CheckForValidEnhLink(lprc);
|
bool hasValidConnectingProc = CheckForValidEnhLink(lprc);
|
||||||
// if there is a valid connection, unlink both. Otherwise, just unlink this selected procedure.
|
// if there is a valid connection, unlink both. Otherwise, just unlink this selected procedure.
|
||||||
if (hasValidConnectingProc)
|
if (hasValidConnectingProc)
|
||||||
lprc.DoUnlinkEnhanced(lprc, ed.Type, !hasValidConnectingProc);
|
lprc.DoUnlinkEnhanced(lprc, ed.Type, !hasValidConnectingProc);
|
||||||
else
|
else
|
||||||
@@ -2024,37 +2092,37 @@ namespace Volian.Controls.Library
|
|||||||
OnNodeSI(this, new vlnTreeEventArgs(tn, null, 0));
|
OnNodeSI(this, new vlnTreeEventArgs(tn, null, 0));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (mi.Text.StartsWith("Collapse"))
|
if (mi.Text.StartsWith("Collapse"))
|
||||||
{
|
{
|
||||||
CollapseProcedures();
|
CollapseProcedures();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (mi.Text == "Print Transition Report")
|
if (mi.Text == "Print Transition Report")
|
||||||
{
|
{
|
||||||
OnPrintTransitionReport(this, new vlnTreeEventArgs(SelectedNode as VETreeNode));
|
OnPrintTransitionReport(this, new vlnTreeEventArgs(SelectedNode as VETreeNode));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (mi.Text == "Export Procedure Set" || mi.Text == "Export Procedure")
|
if (mi.Text == "Export Procedure Set" || mi.Text == "Export Procedure")
|
||||||
{
|
{
|
||||||
OnExportImportProcedureSets(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
|
OnExportImportProcedureSets(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (mi.Text == "Import Procedure Set" || mi.Text == "Import Procedure")
|
if (mi.Text == "Import Procedure Set" || mi.Text == "Import Procedure")
|
||||||
{
|
{
|
||||||
OnExportImportProcedureSets(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 1));
|
OnExportImportProcedureSets(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 1));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (mi.Text.StartsWith("Procedure Checked Out to") || mi.Text.StartsWith("Document Checked Out to"))
|
if (mi.Text.StartsWith("Procedure Checked Out to") || mi.Text.StartsWith("Document Checked Out to"))
|
||||||
{
|
{
|
||||||
OnProcedureCheckedOutTo(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
|
OnProcedureCheckedOutTo(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
|
||||||
return;
|
return;
|
||||||
@@ -2080,7 +2148,7 @@ namespace Volian.Controls.Library
|
|||||||
break;
|
break;
|
||||||
case "New Folder":
|
case "New Folder":
|
||||||
SelectedNode.Expand();
|
SelectedNode.Expand();
|
||||||
tv_NodeNew(MenuSelections.Folder);
|
tv_NodeNew(MenuSelections.Folder);
|
||||||
break;
|
break;
|
||||||
case "Create Working Draft":
|
case "Create Working Draft":
|
||||||
SelectedNode.Expand();
|
SelectedNode.Expand();
|
||||||
@@ -2124,7 +2192,7 @@ namespace Volian.Controls.Library
|
|||||||
tv_NodeCopy();
|
tv_NodeCopy();
|
||||||
break;
|
break;
|
||||||
// lots of paste options:
|
// lots of paste options:
|
||||||
case "Paste Procedure":
|
case "Paste Procedure":
|
||||||
case "Paste Procedure Before":
|
case "Paste Procedure Before":
|
||||||
case "Paste Procedure After":
|
case "Paste Procedure After":
|
||||||
case "Paste Section":
|
case "Paste Section":
|
||||||
@@ -2158,7 +2226,7 @@ namespace Volian.Controls.Library
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
case "Delete":
|
case "Delete":
|
||||||
if (tv_NodeDelete())
|
if (tv_NodeDelete())
|
||||||
{
|
{
|
||||||
@@ -2226,12 +2294,12 @@ namespace Volian.Controls.Library
|
|||||||
case "Create Continuous Action Summary":
|
case "Create Continuous Action Summary":
|
||||||
OnCreateContinuousActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
|
OnCreateContinuousActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
|
||||||
break;
|
break;
|
||||||
// F2022-024 Time Critical Action Summary
|
// F2022-024 Time Critical Action Summary
|
||||||
case "Create Time Critical Action Summary":
|
case "Create Time Critical Action Summary":
|
||||||
OnCreateTimeCriticalActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
|
OnCreateTimeCriticalActionSummary(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
|
||||||
break;
|
break;
|
||||||
// B2017-243 added the following two Cannot Paste items when dealing with enhanced documents
|
// B2017-243 added the following two Cannot Paste items when dealing with enhanced documents
|
||||||
// when then user selects these menu items a message box will appear giving more information as to why it cannot be pasted
|
// when then user selects these menu items a message box will appear giving more information as to why it cannot be pasted
|
||||||
case "CANNOT PASTE HERE. Click for more information...":
|
case "CANNOT PASTE HERE. Click for more information...":
|
||||||
FlexibleMessageBox.Show("You have copied a document that is linked to an Enhanced Document.\n\n" +
|
FlexibleMessageBox.Show("You have copied a document that is linked to an Enhanced Document.\n\n" +
|
||||||
"It can only be pasted before or after another document, within the set, that is linked to an Enhanced Document.", "Cannot Paste Here");
|
"It can only be pasted before or after another document, within the set, that is linked to an Enhanced Document.", "Cannot Paste Here");
|
||||||
@@ -2255,6 +2323,23 @@ namespace Volian.Controls.Library
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
|
||||||
|
// Handles clicking of items in the context menu
|
||||||
|
// for exporting Electronic Procedures
|
||||||
|
// tag will be of format:
|
||||||
|
// {EP Annotation Type ID},{Unit}
|
||||||
|
// if not multi-unit, unit will be zero.
|
||||||
|
void miEP_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
MenuItem mi = sender as MenuItem;
|
||||||
|
int annTypeid = int.Parse(((string)mi.Tag).Split(',')[0]);
|
||||||
|
int unit = int.Parse(((string)mi.Tag).Split(',')[1]);
|
||||||
|
if (unit == 0)
|
||||||
|
OnExportImportProcedureSets(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, annTypeid));
|
||||||
|
else
|
||||||
|
OnExportImportProcedureSets(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, "", unit, annTypeid));
|
||||||
|
}
|
||||||
private bool _doingCollapseNode = false; // B2016-058 when collapse is done, it always calls the drag node event which doesn't appear to be needed
|
private bool _doingCollapseNode = false; // B2016-058 when collapse is done, it always calls the drag node event which doesn't appear to be needed
|
||||||
private void CollapseProcedures()
|
private void CollapseProcedures()
|
||||||
{
|
{
|
||||||
@@ -2273,7 +2358,7 @@ namespace Volian.Controls.Library
|
|||||||
foreach (VETreeNode tnc in tn.Nodes)
|
foreach (VETreeNode tnc in tn.Nodes)
|
||||||
CollapseProcedures(tnc);
|
CollapseProcedures(tnc);
|
||||||
if (tn.VEObject as DocVersionInfo == null && tn.VEObject as FolderInfo == null)
|
if (tn.VEObject as DocVersionInfo == null && tn.VEObject as FolderInfo == null)
|
||||||
tn.Collapse();
|
tn.Collapse();
|
||||||
_doingCollapseNode = true; // B2016-058 this will prevent a Drag Node error when collapsing an RNOs, Cautions, or Notes tree node
|
_doingCollapseNode = true; // B2016-058 this will prevent a Drag Node error when collapsing an RNOs, Cautions, or Notes tree node
|
||||||
}
|
}
|
||||||
private void tv_RemoveChgIds()
|
private void tv_RemoveChgIds()
|
||||||
@@ -2333,7 +2418,7 @@ namespace Volian.Controls.Library
|
|||||||
using (DocVersion dv = DocVersion.Get(MyDVI.VersionID))
|
using (DocVersion dv = DocVersion.Get(MyDVI.VersionID))
|
||||||
{
|
{
|
||||||
swROUpdate = new System.IO.StreamWriter(ROFstInfo.ROUpdateResultsPath(MyDVI)); // RO changes placed in file in the Documents\VEPROMS folder
|
swROUpdate = new System.IO.StreamWriter(ROFstInfo.ROUpdateResultsPath(MyDVI)); // RO changes placed in file in the Documents\VEPROMS folder
|
||||||
// B2022-026 RO Memory Reduction code - first load the new ro.fst so that we can assign the ROTableUpdate event to the correct roFstInfo
|
// B2022-026 RO Memory Reduction code - first load the new ro.fst so that we can assign the ROTableUpdate event to the correct roFstInfo
|
||||||
if (dv.ROfstLoadingFigures || dv.NewerRoFst) // B2017-125 see if loading figures was completed
|
if (dv.ROfstLoadingFigures || dv.NewerRoFst) // B2017-125 see if loading figures was completed
|
||||||
{
|
{
|
||||||
// only load the RO.fst
|
// only load the RO.fst
|
||||||
@@ -2474,7 +2559,7 @@ namespace Volian.Controls.Library
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// C2017-003: ro data in sql server, check for sql connection string
|
// C2017-003: ro data in sql server, check for sql connection string
|
||||||
if (MyDVI.DocVersionAssociations[0].MyROFst.MyRODb.DBConnectionString != "cstring")
|
if (MyDVI.DocVersionAssociations[0].MyROFst.MyRODb.DBConnectionString != "cstring")
|
||||||
roloc = roloc + " \"" + MyDVI.DocVersionAssociations[0].MyROFst.MyRODb.DBConnectionString + "\"";
|
roloc = roloc + " \"" + MyDVI.DocVersionAssociations[0].MyROFst.MyRODb.DBConnectionString + "\"";
|
||||||
// C2021-026 pass in Parent/Child information (list of the children)
|
// C2021-026 pass in Parent/Child information (list of the children)
|
||||||
// B2022-019 look at all DocVersions to find ParentChild information
|
// B2022-019 look at all DocVersions to find ParentChild information
|
||||||
@@ -2525,7 +2610,7 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
VETreeNode tn = SelectedNode as VETreeNode;
|
VETreeNode tn = SelectedNode as VETreeNode;
|
||||||
|
|
||||||
DocVersionInfo dvi = tn.VEObject as DocVersionInfo;
|
DocVersionInfo dvi = tn.VEObject as DocVersionInfo;
|
||||||
// Check for paste into a docversion - queries/code is different than paste related to an item (into a proc or section)
|
// Check for paste into a docversion - queries/code is different than paste related to an item (into a proc or section)
|
||||||
if (dvi != null)
|
if (dvi != null)
|
||||||
@@ -2575,7 +2660,7 @@ namespace Volian.Controls.Library
|
|||||||
if (OnlyProc && repitem != null && tmp != null)
|
if (OnlyProc && repitem != null && tmp != null)
|
||||||
{
|
{
|
||||||
VETreeNode tn1 = new VETreeNode(repitem);
|
VETreeNode tn1 = new VETreeNode(repitem);
|
||||||
tmp.Nodes.Add(tn1);
|
tmp.Nodes.Add(tn1);
|
||||||
SelectedNode = tn1;
|
SelectedNode = tn1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2584,7 +2669,7 @@ namespace Volian.Controls.Library
|
|||||||
|
|
||||||
|
|
||||||
//if (p.IndexOf("Replace") <= -1)
|
//if (p.IndexOf("Replace") <= -1)
|
||||||
this.Cursor = Cursors.Default;
|
this.Cursor = Cursors.Default;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PasteAsDocVersionChild(VETreeNode tn, int copyStartID)
|
public void PasteAsDocVersionChild(VETreeNode tn, int copyStartID)
|
||||||
@@ -2653,7 +2738,7 @@ namespace Volian.Controls.Library
|
|||||||
// the item to be pasted in the step editor and the tree.
|
// the item to be pasted in the step editor and the tree.
|
||||||
ItemInfo newItemInfo = null;
|
ItemInfo newItemInfo = null;
|
||||||
// F2021-009 display a message if pasting step will results in more sub-step levels than are defined in the format
|
// F2021-009 display a message if pasting step will results in more sub-step levels than are defined in the format
|
||||||
if (!ii.IsProcedure)
|
if (!ii.IsProcedure)
|
||||||
ItemInfo.PasteStepIsWithinDefinedSubStepLevels(copyStartID, ii, false);
|
ItemInfo.PasteStepIsWithinDefinedSubStepLevels(copyStartID, ii, false);
|
||||||
if (ii.IsProcedure || !OnPasteItemInfo(this, new vlnTreeItemInfoPasteEventArgs(ii, copyStartID, pasteOpt, ii.MyContent.Type)))
|
if (ii.IsProcedure || !OnPasteItemInfo(this, new vlnTreeItemInfoPasteEventArgs(ii, copyStartID, pasteOpt, ii.MyContent.Type)))
|
||||||
{
|
{
|
||||||
@@ -2716,7 +2801,7 @@ namespace Volian.Controls.Library
|
|||||||
SelectedNode.Nodes.Add(tn1); // add tree node to end of list.
|
SelectedNode.Nodes.Add(tn1); // add tree node to end of list.
|
||||||
SelectedNode = tn1;
|
SelectedNode = tn1;
|
||||||
}
|
}
|
||||||
private void tv_NodeCopy()
|
private void tv_NodeCopy()
|
||||||
{
|
{
|
||||||
if (SelectedNode == null) return;
|
if (SelectedNode == null) return;
|
||||||
VETreeNode tn = SelectedNode as VETreeNode;
|
VETreeNode tn = SelectedNode as VETreeNode;
|
||||||
@@ -2754,7 +2839,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
using (Folder folder = folderInfo.Get())
|
using (Folder folder = folderInfo.Get())
|
||||||
{
|
{
|
||||||
OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(string.Format("{0} Properties", folder.FolderConfig.Name), folder.FolderConfig));
|
OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(string.Format("{0} Properties", folder.FolderConfig.Name), folder.FolderConfig));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void OpenProperties(DocVersionInfo dvInfo)
|
private void OpenProperties(DocVersionInfo dvInfo)
|
||||||
@@ -2768,7 +2853,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
using (Procedure proc = procInfo.Get())
|
using (Procedure proc = procInfo.Get())
|
||||||
{
|
{
|
||||||
OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(string.Format("{0} {1} Properties", proc.ProcedureConfig.Number, proc.ProcedureConfig.Title), proc.ProcedureConfig));
|
OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(string.Format("{0} {1} Properties", proc.ProcedureConfig.Number, proc.ProcedureConfig.Title), proc.ProcedureConfig));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void OpenProperties(SectionInfo sectInfo)
|
private void OpenProperties(SectionInfo sectInfo)
|
||||||
@@ -2781,7 +2866,7 @@ namespace Volian.Controls.Library
|
|||||||
title = string.Format("{0} {1} Properties", sectInfo.SectionConfig.Number, sectInfo.SectionConfig.Title);
|
title = string.Format("{0} {1} Properties", sectInfo.SectionConfig.Number, sectInfo.SectionConfig.Title);
|
||||||
else
|
else
|
||||||
title = string.Format("{0} Properties", sectInfo.SectionConfig.Title);
|
title = string.Format("{0} Properties", sectInfo.SectionConfig.Title);
|
||||||
OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(title, sect.SectionConfig));
|
OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(title, sect.SectionConfig));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void OpenProperties(StepInfo stpinfo)
|
private void OpenProperties(StepInfo stpinfo)
|
||||||
@@ -2919,7 +3004,7 @@ namespace Volian.Controls.Library
|
|||||||
procedure.Save();
|
procedure.Save();
|
||||||
tn = new VETreeNode(_LastProcedureInfo);
|
tn = new VETreeNode(_LastProcedureInfo);
|
||||||
SelectedNode.Nodes.Add(tn); // add tree node to end of list.
|
SelectedNode.Nodes.Add(tn); // add tree node to end of list.
|
||||||
// The following line will allow for a refresh of the procedure list on the Working Draft's treenodes docversion (B2016-034)
|
// The following line will allow for a refresh of the procedure list on the Working Draft's treenodes docversion (B2016-034)
|
||||||
if (((SelectedNode as VETreeNode).VEObject as DocVersionInfo) != null) ((SelectedNode as VETreeNode).VEObject as DocVersionInfo).ResetProcedures();
|
if (((SelectedNode as VETreeNode).VEObject as DocVersionInfo) != null) ((SelectedNode as VETreeNode).VEObject as DocVersionInfo).ResetProcedures();
|
||||||
if (procedure.MyProcedureInfo.CreateEnhanced)
|
if (procedure.MyProcedureInfo.CreateEnhanced)
|
||||||
{
|
{
|
||||||
@@ -2961,7 +3046,7 @@ namespace Volian.Controls.Library
|
|||||||
else
|
else
|
||||||
p2 = procedure.ItemID;
|
p2 = procedure.ItemID;
|
||||||
}
|
}
|
||||||
if (p2 != -1)
|
if (p2 != -1)
|
||||||
DeleteItemInfoAndChildren(_LastProcedureInfo); // Delete Item and reset Previous and Next
|
DeleteItemInfoAndChildren(_LastProcedureInfo); // Delete Item and reset Previous and Next
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
@@ -2971,11 +3056,11 @@ namespace Volian.Controls.Library
|
|||||||
string message = string.Empty;
|
string message = string.Empty;
|
||||||
if (_LastProcedureInfo != null)
|
if (_LastProcedureInfo != null)
|
||||||
if (!MySessionInfo.CanCheckOutItem(_LastProcedureInfo.ItemID, CheckOutType.Procedure, ref message))
|
if (!MySessionInfo.CanCheckOutItem(_LastProcedureInfo.ItemID, CheckOutType.Procedure, ref message))
|
||||||
{
|
{
|
||||||
FlexibleMessageBox.Show(this, message, "Item Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
FlexibleMessageBox.Show(this, message, "Item Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||||
OnUnPauseRefresh(this, null);
|
OnUnPauseRefresh(this, null);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int s1 = -1;
|
int s1 = -1;
|
||||||
if (!(_LastProcedureInfo == null) || !(_LastSectionInfo == null))
|
if (!(_LastProcedureInfo == null) || !(_LastSectionInfo == null))
|
||||||
{
|
{
|
||||||
@@ -3028,8 +3113,8 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
tn = new VETreeNode(_LastSectionInfo);
|
tn = new VETreeNode(_LastSectionInfo);
|
||||||
SelectedNode.Nodes.Add(tn); // add tree node to end of list.
|
SelectedNode.Nodes.Add(tn); // add tree node to end of list.
|
||||||
// if the new section was flagged as either having an enhanced link for Title or Contents, create the
|
// if the new section was flagged as either having an enhanced link for Title or Contents, create the
|
||||||
// Enhanced section:
|
// Enhanced section:
|
||||||
Section sectiontmp = Section.Get(section.ItemID); // need to do this because of 'caching' problem.
|
Section sectiontmp = Section.Get(section.ItemID); // need to do this because of 'caching' problem.
|
||||||
if (sectiontmp.SectionConfig.LinkEnhanced == "T" || sectiontmp.SectionConfig.LinkEnhanced == "Y")
|
if (sectiontmp.SectionConfig.LinkEnhanced == "T" || sectiontmp.SectionConfig.LinkEnhanced == "Y")
|
||||||
CreateEnhancedForSection(newtype, sectiontmp, savLastSectionInfo, sectiontmp.DisplayNumber, sectiontmp.MyContent.Text);
|
CreateEnhancedForSection(newtype, sectiontmp, savLastSectionInfo, sectiontmp.DisplayNumber, sectiontmp.MyContent.Text);
|
||||||
@@ -3057,7 +3142,7 @@ namespace Volian.Controls.Library
|
|||||||
if (s1 != -1)
|
if (s1 != -1)
|
||||||
{
|
{
|
||||||
DeleteItemInfoAndChildren(_LastSectionInfo);// Delete Item and reset Previous and Next
|
DeleteItemInfoAndChildren(_LastSectionInfo);// Delete Item and reset Previous and Next
|
||||||
// B2020-087 refresh the tree node after canceling the creation of the subsection
|
// B2020-087 refresh the tree node after canceling the creation of the subsection
|
||||||
_LastTreeNode.ChildrenLoaded = false;
|
_LastTreeNode.ChildrenLoaded = false;
|
||||||
_LastTreeNode.RefreshNode();
|
_LastTreeNode.RefreshNode();
|
||||||
_LastTreeNode.Collapse();
|
_LastTreeNode.Collapse();
|
||||||
@@ -3104,7 +3189,7 @@ namespace Volian.Controls.Library
|
|||||||
if (s2 != -1)
|
if (s2 != -1)
|
||||||
{
|
{
|
||||||
DeleteItemInfoAndChildren(_LastSectionInfo);// Delete Item and reset Previous and Next
|
DeleteItemInfoAndChildren(_LastSectionInfo);// Delete Item and reset Previous and Next
|
||||||
// B2020-087 refresh the tree node after canceling the creation of the subsection
|
// B2020-087 refresh the tree node after canceling the creation of the subsection
|
||||||
_LastTreeNode.ChildrenLoaded = false;
|
_LastTreeNode.ChildrenLoaded = false;
|
||||||
_LastTreeNode.RefreshNode();
|
_LastTreeNode.RefreshNode();
|
||||||
_LastTreeNode.Collapse();
|
_LastTreeNode.Collapse();
|
||||||
@@ -3301,7 +3386,7 @@ namespace Volian.Controls.Library
|
|||||||
cs.Save();
|
cs.Save();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Section CreateNewSection()
|
private Section CreateNewSection()
|
||||||
{
|
{
|
||||||
// B2020-087 the config for SubSection_Edit was sometimes set even when there wasn't any subsections,
|
// B2020-087 the config for SubSection_Edit was sometimes set even when there wasn't any subsections,
|
||||||
@@ -3341,7 +3426,7 @@ namespace Volian.Controls.Library
|
|||||||
// The parent step was not open in the step editor, just create new step(s) and add treenode.
|
// The parent step was not open in the step editor, just create new step(s) and add treenode.
|
||||||
int newId = -1;
|
int newId = -1;
|
||||||
// B2020-076: if this step has a template, insert template steps.
|
// B2020-076: if this step has a template, insert template steps.
|
||||||
int topType = ii.GetSmartTemplateTopLevelIndxOfThisType(20002);
|
int topType = ii.GetSmartTemplateTopLevelIndxOfThisType(20002);
|
||||||
if (topType != -1)
|
if (topType != -1)
|
||||||
{
|
{
|
||||||
ItemInfo tmp = null;
|
ItemInfo tmp = null;
|
||||||
@@ -3561,7 +3646,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
foreach (DVEnhancedDocument dve in dvc.MyEnhancedDocuments)
|
foreach (DVEnhancedDocument dve in dvc.MyEnhancedDocuments)
|
||||||
{
|
{
|
||||||
if (dve.Type != 0)
|
if (dve.Type != 0)
|
||||||
DocVersion.Delete(dve.VersionID);
|
DocVersion.Delete(dve.VersionID);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -3607,7 +3692,7 @@ namespace Volian.Controls.Library
|
|||||||
if (ed.Type != 0) enhIds.Add(ed.ItemID);
|
if (ed.Type != 0) enhIds.Add(ed.ItemID);
|
||||||
// always return false because an event gets fired to delete tree nodes.
|
// always return false because an event gets fired to delete tree nodes.
|
||||||
if (!DeleteItemInfoAndChildren(_LastProcedureInfo)) return false;
|
if (!DeleteItemInfoAndChildren(_LastProcedureInfo)) return false;
|
||||||
|
|
||||||
_LastProcedureInfo = null;
|
_LastProcedureInfo = null;
|
||||||
foreach (int enhId in enhIds)
|
foreach (int enhId in enhIds)
|
||||||
{
|
{
|
||||||
@@ -3706,7 +3791,7 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RemoveFolder(int folderId)
|
public void RemoveFolder(int folderId)
|
||||||
{
|
{
|
||||||
TreeNode nodeToRemove = FindNodeById(folderId, this.Nodes);
|
TreeNode nodeToRemove = FindNodeById(folderId, this.Nodes);
|
||||||
@@ -3780,7 +3865,7 @@ namespace Volian.Controls.Library
|
|||||||
// C2020-033: Support delete to bring up Search/Incoming Transitions panel
|
// C2020-033: Support delete to bring up Search/Incoming Transitions panel
|
||||||
if (ex.Message.Contains("has External Transitions"))
|
if (ex.Message.Contains("has External Transitions"))
|
||||||
{
|
{
|
||||||
ItemInfo iis = ItemInfo.Get(ii.ItemID);
|
ItemInfo iis = ItemInfo.Get(ii.ItemID);
|
||||||
OnSearchIncTransIn(this, new vlnTreeItemInfoEventArgs(iis));
|
OnSearchIncTransIn(this, new vlnTreeItemInfoEventArgs(iis));
|
||||||
iis = ii.HandleSqlExceptionOnDelete(ex);
|
iis = ii.HandleSqlExceptionOnDelete(ex);
|
||||||
}
|
}
|
||||||
@@ -3878,7 +3963,7 @@ namespace Volian.Controls.Library
|
|||||||
ItemInfo iidrag = ((VETreeNode)dragNode).VEObject as ItemInfo;
|
ItemInfo iidrag = ((VETreeNode)dragNode).VEObject as ItemInfo;
|
||||||
FolderInfo fdrag = ((VETreeNode)dragNode).VEObject as FolderInfo;
|
FolderInfo fdrag = ((VETreeNode)dragNode).VEObject as FolderInfo;
|
||||||
DocVersionInfo ddrag = ((VETreeNode)dragNode).VEObject as DocVersionInfo;
|
DocVersionInfo ddrag = ((VETreeNode)dragNode).VEObject as DocVersionInfo;
|
||||||
if ((iidrag == null && fdrag == null && ddrag == null))
|
if ((iidrag == null && fdrag == null && ddrag == null))
|
||||||
{
|
{
|
||||||
FlexibleMessageBox.Show("Cannot drag/drop a grouping node.");
|
FlexibleMessageBox.Show("Cannot drag/drop a grouping node.");
|
||||||
return;
|
return;
|
||||||
@@ -3929,7 +4014,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
get { return _lastScroll; }
|
get { return _lastScroll; }
|
||||||
}
|
}
|
||||||
private string _location = string.Empty;
|
private string _location = string.Empty;
|
||||||
#endregion
|
#endregion
|
||||||
#region Constructors
|
#region Constructors
|
||||||
public DropLocation(TreeView tv, System.Windows.Forms.DragEventArgs e, DateTime lastScroll)
|
public DropLocation(TreeView tv, System.Windows.Forms.DragEventArgs e, DateTime lastScroll)
|
||||||
@@ -4046,7 +4131,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("Line at {0} Node {1}[{2}] {3}", _location, _dropNode.Text, _index, _position.ToString());
|
//if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("Line at {0} Node {1}[{2}] {3}", _location, _dropNode.Text, _index, _position.ToString());
|
||||||
// Changed the color of the drag indicator to always be red
|
// Changed the color of the drag indicator to always be red
|
||||||
Color lc = (_position == DropPosition.After ? Color.Red : Color.Red);
|
Color lc = (_position == DropPosition.After ? Color.Red : Color.Red);
|
||||||
Brush lb = (_position == DropPosition.After ? Brushes.Red : Brushes.Red);
|
Brush lb = (_position == DropPosition.After ? Brushes.Red : Brushes.Red);
|
||||||
@@ -4073,12 +4158,12 @@ namespace Volian.Controls.Library
|
|||||||
//if (e.Effect == DragDropEffects.None) return;
|
//if (e.Effect == DragDropEffects.None) return;
|
||||||
if (_dropNode != null)
|
if (_dropNode != null)
|
||||||
{
|
{
|
||||||
// if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("ShowLocation1 {0} {1}", e.Effect.ToString(), DateTime.Now.Millisecond);
|
// if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("ShowLocation1 {0} {1}", e.Effect.ToString(), DateTime.Now.Millisecond);
|
||||||
DragHelper.ImageList_DragShowNolock(false);
|
DragHelper.ImageList_DragShowNolock(false);
|
||||||
TreeView tv = _dropNode.TreeView;
|
TreeView tv = _dropNode.TreeView;
|
||||||
TreeNode tmp = tv.GetNodeAt(tv.PointToClient(new Point(e.X, e.Y)));
|
TreeNode tmp = tv.GetNodeAt(tv.PointToClient(new Point(e.X, e.Y)));
|
||||||
// if (!ScrollOnly)
|
// if (!ScrollOnly)
|
||||||
// {
|
// {
|
||||||
if (ScrollTreeView(tmp) || !ScrollOnly)
|
if (ScrollTreeView(tmp) || !ScrollOnly)
|
||||||
{
|
{
|
||||||
//if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("ShowLocation2 {0} {1}", e.Effect.ToString(), DateTime.Now.Millisecond);
|
//if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("ShowLocation2 {0} {1}", e.Effect.ToString(), DateTime.Now.Millisecond);
|
||||||
@@ -4091,8 +4176,8 @@ namespace Volian.Controls.Library
|
|||||||
if (_position != DropPosition.Child) InsertPointer(tmp, g);
|
if (_position != DropPosition.Child) InsertPointer(tmp, g);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// }
|
// }
|
||||||
// else ScrollTreeView(tmp);
|
// else ScrollTreeView(tmp);
|
||||||
DragHelper.ImageList_DragShowNolock(true);
|
DragHelper.ImageList_DragShowNolock(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4115,10 +4200,10 @@ namespace Volian.Controls.Library
|
|||||||
tn.NextVisibleNode.EnsureVisible();// Make sure that the next node is visible
|
tn.NextVisibleNode.EnsureVisible();// Make sure that the next node is visible
|
||||||
else
|
else
|
||||||
if (tn.PrevVisibleNode != null && tn.PrevVisibleNode.PrevVisibleNode != null && tn.PrevVisibleNode.PrevVisibleNode.IsVisible == false)
|
if (tn.PrevVisibleNode != null && tn.PrevVisibleNode.PrevVisibleNode != null && tn.PrevVisibleNode.PrevVisibleNode.IsVisible == false)
|
||||||
tn.PrevVisibleNode.PrevVisibleNode.EnsureVisible();// Make sure that the previous node is visible }
|
tn.PrevVisibleNode.PrevVisibleNode.EnsureVisible();// Make sure that the previous node is visible }
|
||||||
else
|
else
|
||||||
if (tn.PrevVisibleNode != null && tn.PrevVisibleNode.IsVisible == false)
|
if (tn.PrevVisibleNode != null && tn.PrevVisibleNode.IsVisible == false)
|
||||||
tn.PrevVisibleNode.EnsureVisible();// Make sure that the previous node is visible
|
tn.PrevVisibleNode.EnsureVisible();// Make sure that the previous node is visible
|
||||||
retval = (top != tn.Bounds.Top);
|
retval = (top != tn.Bounds.Top);
|
||||||
// if (retval) if(_MyLog.IsInfoEnabled)_MyLog.Info("Scroll");
|
// if (retval) if(_MyLog.IsInfoEnabled)_MyLog.Info("Scroll");
|
||||||
}
|
}
|
||||||
@@ -4151,7 +4236,7 @@ namespace Volian.Controls.Library
|
|||||||
{
|
{
|
||||||
DragDropEffects ee = e.Effect;
|
DragDropEffects ee = e.Effect;
|
||||||
if (e.KeyState == 13) // Shift and Control Keys to do a move.
|
if (e.KeyState == 13) // Shift and Control Keys to do a move.
|
||||||
ee = DragDropEffects.Move;
|
ee = DragDropEffects.Move;
|
||||||
else
|
else
|
||||||
ee = DragDropEffects.None; // Default - Do nothing
|
ee = DragDropEffects.None; // Default - Do nothing
|
||||||
if (IsChild(dragNode, dl.DropNode)) // Don't copy or move to a child node
|
if (IsChild(dragNode, dl.DropNode)) // Don't copy or move to a child node
|
||||||
@@ -4347,28 +4432,28 @@ namespace Volian.Controls.Library
|
|||||||
if (_MyLog.IsErrorEnabled) _MyLog.Error("tv_DragDrop", ex);
|
if (_MyLog.IsErrorEnabled) _MyLog.Error("tv_DragDrop", ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// private void DumpMembers(object o)
|
// private void DumpMembers(object o)
|
||||||
// {
|
// {
|
||||||
// Type t = o.GetType();
|
// Type t = o.GetType();
|
||||||
// //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("\r\n\r\nMembers for type {0}", t.ToString());
|
// //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("\r\n\r\nMembers for type {0}", t.ToString());
|
||||||
// MemberInfo[] mis = t.GetMembers();
|
// MemberInfo[] mis = t.GetMembers();
|
||||||
// int i = 0;
|
// int i = 0;
|
||||||
// foreach (MemberInfo mi in mis)
|
// foreach (MemberInfo mi in mis)
|
||||||
// {
|
// {
|
||||||
// i++;
|
// i++;
|
||||||
// try
|
// try
|
||||||
// {
|
// {
|
||||||
// //if(mi.MemberType != MemberTypes.Method)
|
// //if(mi.MemberType != MemberTypes.Method)
|
||||||
// //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("{0} {1} {2}", i, mi.Name, mi.MemberType);
|
// //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("{0} {1} {2}", i, mi.Name, mi.MemberType);
|
||||||
//// if (fi.Name == "TreeView")
|
//// if (fi.Name == "TreeView")
|
||||||
//// fi.SetValue(o, null);
|
//// fi.SetValue(o, null);
|
||||||
// }
|
// }
|
||||||
// catch (Exception ex)
|
// catch (Exception ex)
|
||||||
// {
|
// {
|
||||||
// if(_MyLog.IsErrorEnabled)_MyLog.Error("DumpMembers", ex);
|
// if(_MyLog.IsErrorEnabled)_MyLog.Error("DumpMembers", ex);
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
private TreeNode Clone(TreeNode tn)
|
private TreeNode Clone(TreeNode tn)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@@ -1688,7 +1688,7 @@ namespace Volian.Print.Library
|
|||||||
System.Windows.Forms.MessageBox.Show(msg.ToString(), "Error during PDF creation for search:", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Exclamation);
|
System.Windows.Forms.MessageBox.Show(msg.ToString(), "Error during PDF creation for search:", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Exclamation);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string BuildStepTab(ItemInfo item)
|
public static string BuildStepTab(ItemInfo item)
|
||||||
{
|
{
|
||||||
if (item == null)
|
if (item == null)
|
||||||
return string.Empty;
|
return string.Empty;
|
||||||
|
Reference in New Issue
Block a user