Compare commits

...

7 Commits

Author SHA1 Message Date
plarsen 6e3d16390b C2025-023-New-EP-Format-File 2025-05-26 22:19:19 -04:00
plarsen e470ef0553 C2025-023-New-EP-Format-File 2025-05-20 16:53:16 -04:00
mschill 3e53ec9191 C2025-023 - Electronic Procedures - Modifications to PROMS
Small change to handle removed items that were selected.
2025-05-13 07:48:50 -04:00
mschill 637cbd9954 C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1)
RO/table entry - Dev Testing related changes
2025-05-08 10:18:50 -04:00
mschill e9e934cfb1 C2025-023 - Electronic Procedures - Modifications to PROMS
RO input functionality
2025-05-02 11:46:55 -04:00
mschill a417ddda85 C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1)
RO Graphics Item Adjustment
2025-04-30 11:25:18 -04:00
mschill f273a8839a C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1)
Overlapping of textbox controls
2025-04-29 10:50:59 -04:00
9 changed files with 96 additions and 26 deletions
+4
View File
@@ -93,6 +93,9 @@
</ItemGroup>
<ItemGroup>
<Content Include="epall\EPFormatTST1.xml" />
<Content Include="epall\EPFormatTST2.xml" />
<Content Include="epall\EPFormatTST3.xml" />
<Content Include="epall\EPFormatTST4.xml" />
<Content Include="fmtall\AEPall.xml">
<SubType>Designer</SubType>
</Content>
@@ -189,6 +192,7 @@
<Content Include="fmtall\EFSGBCKall.xml" />
<Content Include="fmtall\ELFDEVall.xml" />
<Content Include="fmtall\ENall.xml" />
<Content Include="fmtall\EPTST2all.xml" />
<Content Include="fmtall\ESFDEVall.xml" />
<Content Include="fmtall\EXCLNall.xml" />
<Content Include="fmtall\EXCLN_00all.xml" />
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -2144,7 +2144,8 @@ namespace VEPROMS.CSLA.Library
filtered.Add(EP);
//check for intersections between unfiltered list and step type list
if (EP.validforsteptypes.Any(steptypelist.Contains))
List<string> tmpEP = EP.validforsteptypes();
if (tmpEP.Any(steptypelist.Contains))
filtered.Add(EP);
}
@@ -272,6 +272,7 @@ namespace VEPROMS.CSLA.Library
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
private LazyLoad<string> _rosource;
public string rosource
{
@@ -280,6 +281,26 @@ namespace VEPROMS.CSLA.Library
return LazyLoad(ref _rosource, "@rosource");
}
}
//the columns in the RO that will be included in the exports
private LazyLoad<string> _returncols;
public List<string> returncols()
{
try
{
string tmp = LazyLoad(ref _returncols, "@returncols");
if (string.IsNullOrEmpty(tmp))
return new List<string>();
else
return tmp.Split(',').Select(p => p.Trim()).ToList();
}
catch
{
throw new ArgumentException($"Error in returncols for EP file: {((EPFormatFile)MyParentFormat).Name}.xml, field: {name}");
}
}
//number of lines for a multi-line text box to span
private LazyLoad<int?> _numlines;
public int numlines
{
@@ -295,27 +316,26 @@ namespace VEPROMS.CSLA.Library
}
//step types that the EPForma Item is valid for (as a list of types)
private LazyLoad<string> _validforsteptypes;
public List<string> validforsteptypes
public List<string> validforsteptypes()
{
get
try
{
try
{
string tmp = LazyLoad(ref _validforsteptypes, "@validforsteptypes");
return tmp.Split(',').Select(p => p.Trim()).ToList();
}
catch
{
throw new ArgumentException($"Error in validforsteptypes for EP file: {((EPFormatFile) MyParentFormat).Name}.xml, field: {name}");
}
string tmp = LazyLoad(ref _validforsteptypes, "@validforsteptypes");
return tmp.Split(',').Select(p => p.Trim()).ToList();
}
catch
{
throw new ArgumentException($"Error in validforsteptypes for EP file: {((EPFormatFile) MyParentFormat).Name}.xml, field: {name}");
}
}
public bool IsValidForStepType(string StepType)
{
return validforsteptypes.Contains(StepType);
List<string> tmp = validforsteptypes();
return tmp.Contains(StepType);
}
//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
public List<ROListItem> getROList(AnnotationInfo currAnn, bool includeblank)
{
if (string.IsNullOrEmpty(rosource))
@@ -329,7 +349,7 @@ namespace VEPROMS.CSLA.Library
string roid = FormatRoidKey(rosource, false);
rochild[] children = lookup.GetRoChildrenByRoid(roid);
List<ROListItem> mylist = children.Select(x => new ROListItem(x.title, x.roid)).ToList();
List<ROListItem> mylist = children.Select(x => new ROListItem(x.title, x.roid.Substring(0, 12))).ToList();
if (includeblank)
mylist.Insert(0, new ROListItem("", ""));
@@ -340,6 +360,39 @@ namespace VEPROMS.CSLA.Library
throw new ArgumentException($"Error in rosource for EP file: {((EPFormatFile)MyParentFormat).Name}.xml, field: {name}");
}
}
//return a list of values for the specified ROID
//given the EP items return columns
//will return all RO items under the Group that's roid = the rosource
public List<string> getROValuesList(AnnotationInfo currAnn, string roid)
{
if (string.IsNullOrEmpty(roid))
return new List<string>();
List<string> values = new List<string>();
DocVersionInfo MyDocVersion = currAnn.MyItem.MyDocVersion;
ROFSTLookup lookup = MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(MyDocVersion);
rochild ro = lookup.GetRoChild(roid);
List<string> rtncols = returncols();
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
@@ -47,7 +47,7 @@ namespace Volian.Controls.Library
myEPFields = _CurrentAnnotation.MyItem.GetValidEPFields(_CurrentAnnotation.TypeID);
MyConfig = new AnnotationConfig(currAnn.Config);
int MaxCharsInLabel = myEPFields.Max(x => x.label.Length);
int MaxCharsInLabel = myEPFields.Where(y => y.type.ToLower() != "tableinput").Max(x => x.label.Length);
//font size 8 - make labels slightly bigger than largest label
panelEP.ColumnStyles[0].SizeType = SizeType.Absolute;
panelEP.ColumnStyles[0].Width = (8 * MaxCharsInLabel) + 5;
@@ -58,14 +58,17 @@ namespace Volian.Controls.Library
RowCount += 1;
panelEP.RowCount = RowCount;
panelEP.Top = 20;
panelEP.RowStyles.Insert(0, new RowStyle(SizeType.AutoSize));
Label wlbl = new Label();
wlbl.Text = EP.label;
wlbl.Visible = true;
wlbl.TextAlign = ContentAlignment.MiddleLeft;
wlbl.Anchor = AnchorStyles.Left | AnchorStyles.Top;
panelEP.Controls.Add(wlbl, 0, panelEP.RowCount - 1);
if (EP.type.ToLower() != "tableinput")
{
Label wlbl = new Label();
wlbl.Text = EP.label;
wlbl.Visible = true;
wlbl.TextAlign = ContentAlignment.MiddleLeft;
wlbl.Anchor = AnchorStyles.Left | AnchorStyles.Top;
wlbl.Width = (8 * MaxCharsInLabel) + 5;
panelEP.Controls.Add(wlbl, 0, panelEP.RowCount - 1);
}
if (EP.type.ToLower() == "text")
{
@@ -91,11 +94,20 @@ namespace Volian.Controls.Library
{
tb.Multiline = true;
tb.ScrollBars = RichTextBoxScrollBars.Both;
panelEP.RowStyles.Insert(panelEP.RowCount - 1, new RowStyle(SizeType.Absolute, 50));
}
else
{
panelEP.RowStyles.Insert(panelEP.RowCount - 1, new RowStyle(SizeType.AutoSize));
}
_DicStepRtb.Add(EP.name, tb);
panelEP.Controls.Add(tb, 1, panelEP.RowCount - 1);
}
else
{
panelEP.RowStyles.Insert(panelEP.RowCount - 1, new RowStyle(SizeType.AutoSize));
}
if (EP.type.ToLower() == "logical")
{
CheckBox cb = new CheckBox();
@@ -155,7 +167,7 @@ namespace Volian.Controls.Library
if (EP.type.ToLower() == "tableinput" && _TablePropControl == null)
{
string val = MyConfig.GetValue("EP", EP.name);
_TablePropControl = new TablePropertiesControl(EP.name, EP.text, val);
_TablePropControl = new TablePropertiesControl(EP.name, EP.label, val);
_TablePropControl.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top;
panelEP.Controls.Add(_TablePropControl, 1, panelEP.RowCount - 1);
@@ -171,7 +183,7 @@ namespace Volian.Controls.Library
foreach (KeyValuePair<string, ComboBox> pair in _DicSingleRO)
{
string val = MyConfig.GetValue("EP", pair.Key);
if (val != null && val != "")
if (!string.IsNullOrEmpty(val) && pair.Value.Items.OfType<ROListItem>().Any(x=> x.Value == val))
pair.Value.SelectedValue = val;
else
pair.Value.SelectedValue = "";
@@ -187,8 +199,8 @@ namespace Volian.Controls.Library
var selectedvalues = val.Split(multiseparator.ToCharArray());
foreach (string item in selectedvalues)
{
string text = ((List<ROListItem>)pair.Value.DataSource).First(x => x.Value == item).Text;
pair.Value.SetSelected(pair.Value.FindString(text), true);
string text = ((List<ROListItem>)pair.Value.DataSource).Find(x => x.Value == item)?.Text;
if (!string.IsNullOrEmpty(text)) pair.Value.SetSelected(pair.Value.FindString(text), true);
}
}