Compare commits

...

6 Commits

Author SHA1 Message Date
0259d4ff1d C2025-028 Add a Quick Print Section option / B2025-032 Fix Section not Printing Applicability Properly
Added an option to quick print a section.

Fixed a bug where: If you went to a section that had Applicability and select "Print Section" for a specific unit, it would sometimes print all units.
2025-05-16 14:10:56 -04:00
f71e9938bb Merge pull request 'C2025-033 Added a new field and supporting logic to specify if a PageStyle item should be printed for the Child procedure being printed.' (#556) from DemoFormats into Development
Looks good.
Ready for QA.
2025-05-16 11:01:18 -04:00
69f8e3f4fc C2025-033 Added a new field and supporting logic to specify if a PageStyle item should be printed for the Child procedure being printed. 2025-05-16 10:52:37 -04:00
59372b23e4 Merge pull request 'B2025-028 RO Editor - Parent Child Applicability - Default Values' (#554) from B2025-028 into Development
good for testing phase
2025-05-15 10:41:40 -04:00
2970c0d7d4 B2025-028 RO Editor - Parent Child Applicability - Default Values
While working with parent/child applicability with child applicability set for a setpoint group - assign the Setpoint Values and Short Description fields to have Child values.  All child values default to their parent values as expected.  However, if you click in the Parent field for the Short Description, the Child Values for the Short Description fields incorrectly defaulted to the Parent Setpoint Value instead of keeping the parent Short Description.
2025-05-15 10:28:47 -04:00
392f1b09b2 Merge pull request 'C2025-031 Fixed typos found in Tool Tip message from previous check-in of this code change' (#553) from C2025_031_OptionsTooltips_Cleanup into Development
Change just fixes typos in tool tip messages.  No code review needed.
Ready for testing phase
2025-05-15 09:03:53 -04:00
10 changed files with 116 additions and 9 deletions

View File

@@ -282,6 +282,10 @@
<Content Include="fmtall\NSPWGall.xml" />
<Content Include="fmtall\NSP_00all.xml" />
<Content Include="fmtall\OHLPall.xml" />
<Content Include="fmtall\PROMSDemo1all.xml" />
<Content Include="fmtall\PROMSDemo2all.xml" />
<Content Include="fmtall\PROMSDemoALRall.xml" />
<Content Include="fmtall\PROMSDemoBCKall.xml" />
<Content Include="fmtall\PROMSMan1all.xml" />
<Content Include="fmtall\PROMSMan2all.xml" />
<Content Include="fmtall\RGEall.xml" />
@@ -499,6 +503,10 @@
<Content Include="genmacall\nspsam.svg" />
<Content Include="genmacall\nspsamdev.svg" />
<Content Include="genmacall\ohlp.svg" />
<Content Include="genmacall\PROMSDemo1.svg" />
<Content Include="genmacall\PROMSDemo2.svg" />
<Content Include="genmacall\PROMSDemoALR.svg" />
<Content Include="genmacall\PROMSDemoBCK.svg" />
<Content Include="genmacall\PROMSMan1.svg" />
<Content Include="genmacall\PROMSMan2.svg" />
<Content Include="genmacall\rge.svg" />

View File

@@ -276,8 +276,10 @@ namespace ctlXMLEditLib
bool imagechild; //whether this field is a subchild of an image
string imagename; //if subchild of image, name of image parent (for save)
string imagedate; //if this was filename, save the date/time stamp
string name; //name of element
string parenthtid; //name of parent element in hashtable for PC items
public TextBoxAttrTag(bool reqd, string ptn, RadioButton rd, bool img,
string imgname, string imgdate)
string imgname, string imgdate, string elemname)
{
this.req_msg = null;
this.required = reqd;
@@ -286,6 +288,12 @@ namespace ctlXMLEditLib
this.imagechild = img;
this.imagename = imgname;
this.imagedate = imgdate;
this.name = elemname;
if (name.Contains("_PCCHILD"))
this.parenthtid = name.Substring(0, name.IndexOf("_PCCHILD"));
else
this.parenthtid = null;
}
public void SetPattern(string pattern) {this.pattern = pattern;}
public void SetRequired(bool req) {this.required = req;}
@@ -298,6 +306,10 @@ namespace ctlXMLEditLib
public string GetImageName { get {return imagename;}}
public string GetImageDate { get {return imagedate;}}
public void SetImageDate(string imgdate) {this.imagedate = imgdate;}
public string GetName { get { return name; } }
public void SetName(string elemname) { this.name = elemname; }
public string GetParentHTId { get { return parenthtid; } }
public void SetParentHTId(string id) { this.parenthtid = id; }
}
public ctlXMLEdit(VlnXmlElement myelem, XmlSchema myschema, ArrayList reqfields, ArrayList fldsWithApplic, string [] pckids)
@@ -928,7 +940,7 @@ namespace ctlXMLEditLib
// initialization.
if (mytextbox.Tag == null)
{
TextBoxAttrTag tag = new TextBoxAttrTag(false, pattern, radio, img, (img?imgname:null), null);
TextBoxAttrTag tag = new TextBoxAttrTag(false, pattern, radio, img, (img?imgname:null), null, mytextbox.Name);
mytextbox.Tag = (object) tag;
}
return getannot;
@@ -1136,6 +1148,7 @@ namespace ctlXMLEditLib
mytextbox = new TextBox();
mytextbox.Location = new Point(screenx+indent, screeny);
string tFieldName = (pcChildIdx == 0) ? CvtUserFldToFld(element.Name) : CvtUserFldToFld(pcChildFldName);
mytextbox.Name = tFieldName;
myHT.Add(tFieldName, mytextbox);
tabindx++;
Controls.Add(mytextbox);
@@ -1201,9 +1214,21 @@ namespace ctlXMLEditLib
string dfTxt = "";
try
{
ctlXMLEdit tmp = (ctlXMLEdit)tb?.Parent;
if (!string.IsNullOrEmpty(tmp?.ActiveControl.Text))
dfTxt = tmp.ActiveControl.Text;
string parentid = ((TextBoxAttrTag)tb.Tag).GetParentHTId;
if (!string.IsNullOrEmpty(parentid))
{
object o = myHT[parentid];
if (o != null)
dfTxt = (o as TextBox).Text; // set to use the parent's value (default)
}
else
{
string parName = pcGrpBox.Name.Substring(5);
object o = myHT[parName];
if (o != null)
dfTxt = (o as TextBox).Text; // set to use the parent's value (default)
}
}
catch
{

View File

@@ -418,7 +418,12 @@ namespace VEPROMS
//txbPDFLocation.Text = _PDFPath;
BuildPDFFileName();
ProcedureConfig pc = _MyProcedure.MyConfig as ProcedureConfig;
if(SelectedSlave > 0) pc.SelectedSlave = SelectedSlave;
// C2025-033 set which Child procedure is being printed used for PageStyle items
VlnSvgPageHelper.PrintingChild = SelectedSlave;
if (SelectedSlave > 0)
{
pc.SelectedSlave = SelectedSlave;
}
if (pc != null)
{
//C2021-062 use the save rev number for all procedures if set, or just use the rev number in the current procedure config

View File

@@ -533,6 +533,7 @@ namespace VEPROMS
tv.PrintProcedure += new vlnTreeViewEvent(tv_PrintProcedure);
tv.PrintSection += new vlnTreeViewEvent(tv_PrintSection);
tv.QPrintSection += new vlnTreeViewEvent(tv_QPrintSection);
tv.QPrintProcedure += new vlnTreeViewEvent(tv_QPrintProcedure);
tv.PrintAllProcedures += new vlnTreeViewEvent(tv_PrintAllProcedures);
tv.ApproveProcedure += new vlnTreeViewEvent(tv_ApproveProcedure);
@@ -1213,7 +1214,19 @@ namespace VEPROMS
}
void tv_PrintSection(object sender, vlnTreeEventArgs args) // Quick Print right click menu on Procedure name.
//Print Section
//C2025-028 Add a Quick Print Section option
void tv_PrintSection(object sender, vlnTreeEventArgs args)
{
PrintSection(sender, args, false);
}
void tv_QPrintSection(object sender, vlnTreeEventArgs args)
{
PrintSection(sender, args, true);
}
void PrintSection(object sender, vlnTreeEventArgs args, bool quickprint)
{
try
{
@@ -1225,7 +1238,9 @@ namespace VEPROMS
tc.SaveCurrentEditItem(si2.MyProcedure);
//B2025-032 Fix Section not Printing Applicability Properly
si2.MyDocVersion.DocVersionConfig.SelectedSlave = args.UnitIndex;
si2.MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave = args.UnitIndex;
using (DlgPrintProcedure prnDlg = new DlgPrintProcedure(si2.MyProcedure))
{
@@ -1233,8 +1248,14 @@ namespace VEPROMS
prnDlg.SelectedSlave = args.UnitIndex;
prnDlg.MySessionInfo = MySessionInfo;
prnDlg.SetupForProcedure(); // Setup filename
prnDlg.ShowDialog(this); // Create Print report
if (quickprint)
prnDlg.QPCreatePDF(); // Create Print report
else
prnDlg.ShowDialog(this); // Create Print report
//B2025-032 Fix Section not Printing Applicability Properly
si2.MyDocVersion.DocVersionConfig.SelectedSlave = 0;
si2.MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave = 0;
}
}

View File

@@ -244,6 +244,16 @@ namespace VEPROMS.CSLA.Library
return LazyLoad(ref _TrimEnding, "@TrimEnding");
}
}
// C2025-033 to specify to print pagestyle item for a specific Child procedure
private LazyLoad<int?> _ChildNum;
public int? ChildNum
{
get
{
return (LazyLoad(ref _ChildNum, "@ChildNum"));
}
}
#endregion
#region Override ToString
public override string ToString()

View File

@@ -528,6 +528,11 @@ namespace Volian.Controls.Library
{
if (PrintSection != null) PrintSection(sender, args);
}
public event vlnTreeViewEvent QPrintSection;
private void OnQPrintSection(object sender, vlnTreeEventArgs args)
{
if (QPrintSection != null) QPrintSection(sender, args);
}
public event vlnTreeViewEvent PrintAllProcedures;
private void OnPrintAllProcedures(object sender, vlnTreeEventArgs args)
{
@@ -994,11 +999,26 @@ namespace Volian.Controls.Library
mp.Tag = k;
}
cm.MenuItems.Add(mps);
//C2025-028 Add a Quick Print Section option
MenuItem mps_qp = new MenuItem("Quick Print Section");
int k_qp = 0;
foreach (string s in si2.MyDocVersion.UnitNames)
{
k_qp++;
MenuItem mp_qp = mps_qp.MenuItems.Add(s, new EventHandler(miMultiUnit_Click));
mp_qp.Tag = k_qp;
}
cm.MenuItems.Add(mps_qp);
}
}
else
{
if(!si2.IsSubsection) cm.MenuItems.Add("Print Section", new EventHandler(mi_Click));
if (!si2.IsSubsection)
{
cm.MenuItems.Add("Print Section", new EventHandler(mi_Click));
cm.MenuItems.Add("Quick Print Section", new EventHandler(mi_Click));
}
}
}
}
@@ -1064,6 +1084,7 @@ namespace Volian.Controls.Library
if (i.HasWordContent)
{
cm.MenuItems.Add("Print Section", new EventHandler(mi_Click));
cm.MenuItems.Add("Quick Print Section", new EventHandler(mi_Click));
}
}
#endregion
@@ -1867,6 +1888,9 @@ namespace Volian.Controls.Library
case "Print Section":
OnPrintSection(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
break;
case "Quick Print Section":
OnQPrintSection(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
break;
case "Print All Procedures for":
OnPrintAllProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0,mi.Text,(int)mi.Tag));
break;
@@ -2014,6 +2038,10 @@ namespace Volian.Controls.Library
VETreeNode tn2 = SelectedNode as VETreeNode;
OnPrintSection(this, new vlnTreeEventArgs(tn2 as VETreeNode, null, 0));
break;
case "Quick Print Section":
VETreeNode tn2qp = SelectedNode as VETreeNode;
OnQPrintSection(this, new vlnTreeEventArgs(tn2qp as VETreeNode, null, 0));
break;
case "Open":
OpenNode();
break;

View File

@@ -252,6 +252,14 @@ namespace Volian.Print.Library
get { return _CountInApplProcs; }
set { _CountInApplProcs = value; }
}
// C2025-033 Child (slave) being printed
private static int _PrintingChild = 0;
public static int PrintingChild
{
get { return _PrintingChild; }
set { _PrintingChild = value; }
}
//private bool _AddBlankPagesForDuplexPrinting = false;
//public bool AddBlankPagesForDuplexPrinting // Tells us if a the option to add a blank page is turn on (for procedures with duplex foldouts)
//{
@@ -1363,6 +1371,8 @@ i = 0;
foreach (VEPROMS.CSLA.Library.PageItem pageItem in pageStyle.PageItems)
{
if (pageItem.Token == null) continue; // can be null if token is dependent on PSI lookup!
// 2024-089 selectively print pagestyle item base on Child Procedure being printed
if (PrintingChild > 0 && pageItem.ChildNum > 0 && pageItem.ChildNum != PrintingChild) continue; // C2025-033 item should not be printed for this child
DidHLSText = false; // reset to false for this group of tokens.
//if (pageItem.Token.Contains("HLSTEXT"))
// Console.WriteLine("{0} - PageList Token", pageItem.Token);