Compare commits
29 Commits
SQL_Optimi
...
C2025-024
Author | SHA1 | Date | |
---|---|---|---|
3d7528e069 | |||
58cc75ef71 | |||
b5a9462e95 | |||
1bc421ac6d | |||
ad0d091b49 | |||
22de686a44 | |||
3e7eb09758 | |||
e2a276085b | |||
d561c579e0 | |||
371d117746 | |||
28c681a562 | |||
2131efb522 | |||
6e20774edf | |||
a7c7744ff3 | |||
019aefbc61 | |||
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.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
PROMS/Formats/fmtall/EPTSTBCK1all.xml
Normal file
BIN
PROMS/Formats/fmtall/EPTSTBCK1all.xml
Normal file
Binary file not shown.
@@ -63,18 +63,21 @@ namespace VEPROMS
|
|||||||
lstFrom.Items.Remove(item);
|
lstFrom.Items.Remove(item);
|
||||||
}
|
}
|
||||||
SetButtonsEditable();
|
SetButtonsEditable();
|
||||||
|
btnUpdate.Enabled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Move all items to lstSelected.
|
// Move all items to lstSelected.
|
||||||
private void btnSelectAll_Click(object sender, EventArgs e)
|
private void btnSelectAll_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
MoveAllItems(lstUnselected, lstSelected);
|
MoveAllItems(lstUnselected, lstSelected);
|
||||||
|
btnUpdate.Enabled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Move all items to lstUnselected.
|
// Move all items to lstUnselected.
|
||||||
private void btnDeselectAll_Click(object sender, EventArgs e)
|
private void btnDeselectAll_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
MoveAllItems(lstSelected, lstUnselected);
|
MoveAllItems(lstSelected, lstUnselected);
|
||||||
|
btnUpdate.Enabled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Move all items from one ListBox to another.
|
// Move all items from one ListBox to another.
|
||||||
@@ -83,6 +86,7 @@ namespace VEPROMS
|
|||||||
lstTo.Items.AddRange(lstFrom.Items);
|
lstTo.Items.AddRange(lstFrom.Items);
|
||||||
lstFrom.Items.Clear();
|
lstFrom.Items.Clear();
|
||||||
SetButtonsEditable();
|
SetButtonsEditable();
|
||||||
|
btnUpdate.Enabled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Enable and disable buttons.
|
// Enable and disable buttons.
|
||||||
@@ -93,8 +97,7 @@ namespace VEPROMS
|
|||||||
// Save selected list to DB.
|
// Save selected list to DB.
|
||||||
private void btnUpdate_Click(object sender, EventArgs e)
|
private void btnUpdate_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
DataTable dt2 = coverToTable();
|
saveChanges();
|
||||||
VEPROMS.CSLA.Library.AnnotationstypeSelections.Update(dt2, UserID);
|
|
||||||
}
|
}
|
||||||
public class AnnotataionItem
|
public class AnnotataionItem
|
||||||
{
|
{
|
||||||
@@ -150,12 +153,32 @@ namespace VEPROMS
|
|||||||
{
|
{
|
||||||
lstSelected.Items.Add(new AnnotataionItem(lstSelectedRow["Name"].ToString(), (int)lstSelectedRow["TypeID"]));
|
lstSelected.Items.Add(new AnnotataionItem(lstSelectedRow["Name"].ToString(), (int)lstSelectedRow["TypeID"]));
|
||||||
}
|
}
|
||||||
|
btnUpdate.Enabled = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void btnCancel_Click_1(object sender, EventArgs e)
|
private void btnCancel_Click_1(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
if (btnUpdate.Enabled == true)
|
||||||
|
{
|
||||||
|
string message = "Changes have not yet been saved. Do you want to save the changes prior to closing?";
|
||||||
|
string title = "Save Annotation Selections";
|
||||||
|
MessageBoxButtons buttons = MessageBoxButtons.YesNo;
|
||||||
|
DialogResult result = MessageBox.Show(message, title, buttons);
|
||||||
|
if (result == DialogResult.Yes)
|
||||||
|
{
|
||||||
|
saveChanges();
|
||||||
this.Close();
|
this.Close();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private DataTable coverToTable()
|
private DataTable coverToTable()
|
||||||
{
|
{
|
||||||
@@ -169,6 +192,12 @@ namespace VEPROMS
|
|||||||
}
|
}
|
||||||
return dt;
|
return dt;
|
||||||
}
|
}
|
||||||
|
private void saveChanges()
|
||||||
|
{
|
||||||
|
DataTable dt2 = coverToTable();
|
||||||
|
VEPROMS.CSLA.Library.AnnotationstypeSelections.Update(dt2, UserID);
|
||||||
|
btnUpdate.Enabled = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -175,6 +175,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>
|
||||||
|
@@ -158,7 +158,7 @@ namespace VEPROMS
|
|||||||
this.btnCancel.Name = "btnCancel";
|
this.btnCancel.Name = "btnCancel";
|
||||||
this.btnCancel.Size = new System.Drawing.Size(100, 35);
|
this.btnCancel.Size = new System.Drawing.Size(100, 35);
|
||||||
this.btnCancel.TabIndex = 9;
|
this.btnCancel.TabIndex = 9;
|
||||||
this.btnCancel.Text = "Cancel";
|
this.btnCancel.Text = "Close";
|
||||||
this.btnCancel.UseVisualStyleBackColor = true;
|
this.btnCancel.UseVisualStyleBackColor = true;
|
||||||
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click_1);
|
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click_1);
|
||||||
//
|
//
|
||||||
@@ -203,7 +203,7 @@ namespace VEPROMS
|
|||||||
this.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
this.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||||
this.Name = "dlgAnnotationsSelect";
|
this.Name = "dlgAnnotationsSelect";
|
||||||
this.Text = "Select Annotation Types";
|
this.Text = "Filter Annotation Types";
|
||||||
this.Load += new System.EventHandler(this.DlgAnnotationsSelect_Load);
|
this.Load += new System.EventHandler(this.DlgAnnotationsSelect_Load);
|
||||||
this.tableLayoutPanel1.ResumeLayout(false);
|
this.tableLayoutPanel1.ResumeLayout(false);
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
|
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,6 +708,22 @@ namespace VEPROMS
|
|||||||
{
|
{
|
||||||
int ownerid = MySessionInfo.CheckOutItem(fi.FolderID, CheckOutType.Session);
|
int ownerid = MySessionInfo.CheckOutItem(fi.FolderID, CheckOutType.Session);
|
||||||
|
|
||||||
|
//C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
|
||||||
|
//form for exporting Electronic Procedures from FolderInfo
|
||||||
|
if (args.AnnotationTypeId > 0)
|
||||||
|
{
|
||||||
|
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
|
dlgExportImport dlg = new dlgExportImport(args.Index == 0 ? "Export" : "Import", fi, this, (E_UCFImportOptions)Properties.Settings.Default.UCFImportOpt);//Added frmVEPROMS Parameter
|
||||||
dlg.ShowDialog(this);
|
dlg.ShowDialog(this);
|
||||||
|
|
||||||
@@ -719,6 +735,7 @@ namespace VEPROMS
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (dvi != null)
|
if (dvi != null)
|
||||||
{
|
{
|
||||||
@@ -741,6 +758,26 @@ namespace VEPROMS
|
|||||||
|
|
||||||
int ownerid = MySessionInfo.CheckOutItem(dvi.VersionID, CheckOutType.DocVersion);
|
int ownerid = MySessionInfo.CheckOutItem(dvi.VersionID, CheckOutType.DocVersion);
|
||||||
|
|
||||||
|
//C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
|
||||||
|
//form for exporting Electronic Procedures from DocVersionInfo
|
||||||
|
if (args.AnnotationTypeId > 0)
|
||||||
|
{
|
||||||
|
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);
|
||||||
|
|
||||||
|
if (dlg.MyNewProcedure != null)
|
||||||
|
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
|
dlgExportImport dlg = new dlgExportImport("Import", dvi, this, (E_UCFImportOptions)Properties.Settings.Default.UCFImportOpt);//Added frmVEPROMS Parameter
|
||||||
dlg.MyNewProcedure = null;
|
dlg.MyNewProcedure = null;
|
||||||
dlg.ExternalTransitionItem = null;
|
dlg.ExternalTransitionItem = null;
|
||||||
@@ -754,6 +791,8 @@ namespace VEPROMS
|
|||||||
if (dlg.ExternalTransitionItem != null)
|
if (dlg.ExternalTransitionItem != null)
|
||||||
tc.OpenItem(dlg.ExternalTransitionItem);
|
tc.OpenItem(dlg.ExternalTransitionItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pi != null)
|
if (pi != null)
|
||||||
@@ -768,6 +807,19 @@ namespace VEPROMS
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
int ownerid = MySessionInfo.CheckOutItem(pi.ItemID, CheckOutType.Procedure);
|
int ownerid = MySessionInfo.CheckOutItem(pi.ItemID, CheckOutType.Procedure);
|
||||||
|
|
||||||
|
//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
|
dlgExportImport dlg = new dlgExportImport("Export", pi, this, (E_UCFImportOptions)0);//Added frmVEPROMS Parameter
|
||||||
dlg.ShowDialog(this);
|
dlg.ShowDialog(this);
|
||||||
|
|
||||||
@@ -775,6 +827,7 @@ namespace VEPROMS
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void MakeDatabaseChanges()
|
private void MakeDatabaseChanges()
|
||||||
{
|
{
|
||||||
@@ -1486,9 +1539,11 @@ namespace VEPROMS
|
|||||||
// and if they are not the same, use the CurrentItem from the main frmVEPROMS.
|
// and if they are not the same, use the CurrentItem from the main frmVEPROMS.
|
||||||
ProcedureInfo piThis = null;
|
ProcedureInfo piThis = null;
|
||||||
if (_CurrentItem != null) piThis = _CurrentItem.MyProcedure;
|
if (_CurrentItem != null) piThis = _CurrentItem.MyProcedure;
|
||||||
|
|
||||||
ProcedureInfo pi = args.Proc as ProcedureInfo;
|
ProcedureInfo pi = args.Proc as ProcedureInfo;
|
||||||
|
if (args.OringFlg == 1) // B2025-036 split screen print issue. if oringFlg == 1 the ctrl-p keys was pressed.
|
||||||
|
{
|
||||||
if (piThis != null && pi.ItemID != piThis.ItemID) pi = piThis;
|
if (piThis != null && pi.ItemID != piThis.ItemID) pi = piThis;
|
||||||
|
}
|
||||||
|
|
||||||
// Check if Procedure Info is null
|
// Check if Procedure Info is null
|
||||||
if (pi == null) return;
|
if (pi == null) return;
|
||||||
@@ -1530,8 +1585,11 @@ namespace VEPROMS
|
|||||||
if (_CurrentItem != null) piThis = _CurrentItem.MyProcedure;
|
if (_CurrentItem != null) piThis = _CurrentItem.MyProcedure;
|
||||||
|
|
||||||
ProcedureInfo pi = args.Proc as ProcedureInfo;
|
ProcedureInfo pi = args.Proc as ProcedureInfo;
|
||||||
if (piThis != null && pi.ItemID != piThis.ItemID) pi = piThis;
|
|
||||||
|
|
||||||
|
if (args.OringFlg == 1) // B2025-036 split screen print issue. if oringFlg == 1 the ctrl-p keys was pressed.
|
||||||
|
{
|
||||||
|
if (piThis != null && pi.ItemID != piThis.ItemID) pi = piThis;
|
||||||
|
}
|
||||||
// Check if Procedure Info is null
|
// Check if Procedure Info is null
|
||||||
if (pi == null) return;
|
if (pi == null) return;
|
||||||
|
|
||||||
|
@@ -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)
|
||||||
|
@@ -61,6 +61,25 @@ namespace VEPROMS.CSLA.Library
|
|||||||
return LazyLoad(ref _AnnotationTypeID, "@AnnotationTypeID");
|
return LazyLoad(ref _AnnotationTypeID, "@AnnotationTypeID");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Return Name of Annotation that EP Format File is Attached to
|
||||||
|
public string AnnotationName()
|
||||||
|
{
|
||||||
|
return AnnotationTypeInfo.Get((int) AnnotationTypeID).Name;
|
||||||
|
}
|
||||||
|
|
||||||
|
//if xml value is blank, should element export?
|
||||||
|
//defaults to true
|
||||||
|
private LazyLoad<bool> _exportblank;
|
||||||
|
[DisplayName("exportblank")]
|
||||||
|
[Description("if xml value is blank, should element export?")]
|
||||||
|
public bool exportblank
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return LazyLoad(ref _exportblank, "@exportblank");
|
||||||
|
}
|
||||||
|
}
|
||||||
// returns a list of fields that are defined in the EP format's structure
|
// returns a list of fields that are defined in the EP format's structure
|
||||||
private EPFields _FieldList;
|
private EPFields _FieldList;
|
||||||
public EPFields FieldList
|
public EPFields FieldList
|
||||||
@@ -68,7 +87,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
get
|
get
|
||||||
{
|
{
|
||||||
XmlDocument xd = GetEPFormatData(Name);
|
XmlDocument xd = GetEPFormatData(Name);
|
||||||
return _FieldList == null ? _FieldList = new EPFields(xd.SelectNodes("/EPFormat/EPField")) : _FieldList;
|
return _FieldList ?? (_FieldList = new EPFields(xd.SelectNodes("/EPFormat/EPField")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
@@ -296,7 +315,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
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}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -325,7 +344,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
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)
|
||||||
@@ -344,6 +363,9 @@ namespace VEPROMS.CSLA.Library
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
DocVersionInfo MyDocVersion = currAnn.MyItem.MyDocVersion;
|
DocVersionInfo MyDocVersion = currAnn.MyItem.MyDocVersion;
|
||||||
|
|
||||||
|
if (MyDocVersion.DocVersionAssociations != null && MyDocVersion.DocVersionAssociations.Any())
|
||||||
|
{
|
||||||
ROFSTLookup lookup = MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(MyDocVersion);
|
ROFSTLookup lookup = MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(MyDocVersion);
|
||||||
|
|
||||||
string roid = FormatRoidKey(rosource, false);
|
string roid = FormatRoidKey(rosource, false);
|
||||||
@@ -355,12 +377,20 @@ namespace VEPROMS.CSLA.Library
|
|||||||
|
|
||||||
return mylist;
|
return mylist;
|
||||||
}
|
}
|
||||||
catch (Exception Ex)
|
else
|
||||||
{
|
{
|
||||||
throw new ArgumentException($"Error in rosource for EP file: {((EPFormatFile)MyParentFormat).Name}.xml, field: {name}");
|
return new List<ROListItem>
|
||||||
}
|
{
|
||||||
|
new ROListItem("", "")
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
throw new ArgumentException($"Error in rosource for EP file, field: {name}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//return a list of values for the specified ROID
|
//return a list of values for the specified ROID
|
||||||
//given the EP items return columns
|
//given the EP items return columns
|
||||||
@@ -394,6 +424,7 @@ namespace VEPROMS.CSLA.Library
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
//C2025-023 - Electronic Procedures - Modifications to PROMS
|
//C2025-023 - Electronic Procedures - Modifications to PROMS
|
||||||
// class to handle return of RO Lists
|
// class to handle return of RO Lists
|
||||||
|
@@ -618,6 +618,15 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
private int _MyLastFormatID = -1;
|
private int _MyLastFormatID = -1;
|
||||||
private StepRTB _MyStepRTB;
|
private StepRTB _MyStepRTB;
|
||||||
|
private static int _OringFlg;
|
||||||
|
public static int OringFlg
|
||||||
|
{
|
||||||
|
get { return _OringFlg; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_OringFlg = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
public StepRTB MyStepRTB
|
public StepRTB MyStepRTB
|
||||||
{
|
{
|
||||||
get { return _MyStepRTB; }
|
get { return _MyStepRTB; }
|
||||||
@@ -4143,16 +4152,22 @@ namespace Volian.Controls.Library
|
|||||||
|
|
||||||
private void btnPdfCreate_Click(object sender, EventArgs e)
|
private void btnPdfCreate_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
// B2025-036 split screen print issue. if oringFlg == 1 the ctrl-p keys was pressed.
|
||||||
|
_OringFlg = 0;
|
||||||
|
DevComponents.DotNetBar.eEventSource oring = ((DevComponents.DotNetBar.Events.EventSourceArgs)e).Source;
|
||||||
|
if (oring == eEventSource.Keyboard)
|
||||||
|
_OringFlg = 1;
|
||||||
|
|
||||||
if (MyItemInfo == null) return; // if creating a pdf before rtb exists, return;
|
if (MyItemInfo == null) return; // if creating a pdf before rtb exists, return;
|
||||||
if (MyEditItem != null) MyEditItem.SaveCurrentAndContents();
|
if (MyEditItem != null) MyEditItem.SaveCurrentAndContents();
|
||||||
OnPrintRequest(new StepTabRibbonEventArgs(MyItemInfo.MyProcedure), 0);
|
OnPrintRequest(new StepTabRibbonEventArgs(MyItemInfo.MyProcedure, _OringFlg), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void btnPdfQuickCreate_Click(object sender, EventArgs e)
|
private void btnPdfQuickCreate_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (MyItemInfo == null) return; // if creating a pdf before rtb exists, return;
|
if (MyItemInfo == null) return; // if creating a pdf before rtb exists, return;
|
||||||
if (MyEditItem != null) MyEditItem.SaveCurrentAndContents();
|
if (MyEditItem != null) MyEditItem.SaveCurrentAndContents();
|
||||||
OnPrintRequest(new StepTabRibbonEventArgs(MyItemInfo.MyProcedure), 1);
|
OnPrintRequest(new StepTabRibbonEventArgs(MyItemInfo.MyProcedure, _OringFlg), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void btnCASCreate_Click(object sender, EventArgs e)
|
private void btnCASCreate_Click(object sender, EventArgs e)
|
||||||
@@ -4814,9 +4829,10 @@ namespace Volian.Controls.Library
|
|||||||
public class StepTabRibbonEventArgs : EventArgs
|
public class StepTabRibbonEventArgs : EventArgs
|
||||||
{
|
{
|
||||||
public StepTabRibbonEventArgs() { ; }
|
public StepTabRibbonEventArgs() { ; }
|
||||||
public StepTabRibbonEventArgs(ItemInfo proc)
|
public StepTabRibbonEventArgs(ItemInfo proc, int oringFlg = 0)
|
||||||
{
|
{
|
||||||
_Proc = proc;
|
_Proc = proc;
|
||||||
|
OringFlg = oringFlg;
|
||||||
}
|
}
|
||||||
private ItemInfo _Proc;
|
private ItemInfo _Proc;
|
||||||
|
|
||||||
@@ -4825,6 +4841,13 @@ namespace Volian.Controls.Library
|
|||||||
get { return _Proc; }
|
get { return _Proc; }
|
||||||
set { _Proc = value; }
|
set { _Proc = value; }
|
||||||
}
|
}
|
||||||
|
// B2025-036 split screen print issue. if oringFlg == 1 the ctrl-p keys was pressed.
|
||||||
|
private int _OringFlg;
|
||||||
|
public int OringFlg
|
||||||
|
{
|
||||||
|
get { return _OringFlg; }
|
||||||
|
set { _OringFlg = value; }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
public delegate void StepTabRibbonEvent(object sender, StepTabRibbonEventArgs args);
|
public delegate void StepTabRibbonEvent(object sender, StepTabRibbonEventArgs args);
|
||||||
|
|
||||||
|
@@ -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);
|
||||||
|
@@ -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,6 +204,15 @@ 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()
|
||||||
@@ -706,7 +731,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)
|
||||||
@@ -842,6 +870,9 @@ namespace Volian.Controls.Library
|
|||||||
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))
|
||||||
{
|
{
|
||||||
@@ -1355,6 +1386,43 @@ namespace Volian.Controls.Library
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//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)
|
private void AddApprovedRevisionsMultiUnit(Menu.MenuItemCollection menuItemCollection, ProcedureInfo pri)
|
||||||
{
|
{
|
||||||
_currentPri = pri;
|
_currentPri = pri;
|
||||||
@@ -2251,6 +2319,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()
|
||||||
{
|
{
|
||||||
|
@@ -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