Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 09a397bed2 | |||
| a33039bcae | |||
| 0ebd125266 | |||
| fd16a6b6c3 | |||
| cf19f764c7 | |||
| 88850d6c25 | |||
| b173c61575 | |||
| 3b866f0952 | |||
| 94db524a11 | |||
| f27616ce1f | |||
| 7f75af7119 |
Binary file not shown.
Binary file not shown.
@@ -1817,7 +1817,7 @@ ALTER trigger [dbo].[tr_Contents_Delete] on [dbo].[Contents] instead of delete a
|
||||
select ii.ContentID,ii.Number,ii.Text,ii.Type,ii.FormatID,ii.Config,ii.DTS,ii.UserID,ii.DeleteStatus,ii.ActionDTS
|
||||
from tblContents ii inner join deleted dd on dd.ContentID = ii.ContentID
|
||||
where ii.DeleteStatus > 0
|
||||
update ga set ga.contentauditid = (select max(auditid) from contentaudits where contentid = ga.contentid and deletestatus = ga.deletestatus)
|
||||
update ga set ga.contentauditid = (select ISNULL(max(auditid),0) from contentaudits where contentid = ga.contentid and deletestatus = ga.deletestatus)
|
||||
from gridaudits ga join deleted dd on ga.contentid = dd.contentid where ga.contentauditid = 0
|
||||
end
|
||||
go
|
||||
|
||||
@@ -24990,6 +24990,34 @@ IF (@@Error = 0) PRINT 'Procedure Creation: getRevisionByItemIDandRevisionNumber
|
||||
ELSE PRINT 'Procedure Creation: getRevisionByItemIDandRevisionNumber Error on Creation'
|
||||
GO
|
||||
|
||||
/*
|
||||
==========================================================================================================
|
||||
Author: Matthew Schill
|
||||
Create Date: 06/29/2026
|
||||
Description: Added an ISNULL check when setting GridAudits.contentauditid.
|
||||
Was Causing Deletion of some Grids to fail.
|
||||
==========================================================================================================
|
||||
*/
|
||||
/****** Object: Trigger [tr_Contents_Delete] ******/
|
||||
ALTER trigger [dbo].[tr_Contents_Delete] on [dbo].[Contents] instead of delete as
|
||||
begin
|
||||
update ii set DeleteStatus = (select max(DeleteID) from DeleteLog where SPID = @@spid), ActionDTS = getdate(),
|
||||
UserID = (select top 1 UserID from DeleteLog where SPID = @@spid order by deleteid desc)
|
||||
from tblContents ii inner join deleted dd on dd.ContentID = ii.ContentID
|
||||
insert into ContentAudits(ContentID,Number,Text,Type,FormatID,Config,DTS,UserID,DeleteStatus,ActionDTS)
|
||||
select ii.ContentID,ii.Number,ii.Text,ii.Type,ii.FormatID,ii.Config,ii.DTS,ii.UserID,ii.DeleteStatus,ii.ActionDTS
|
||||
from tblContents ii inner join deleted dd on dd.ContentID = ii.ContentID
|
||||
where ii.DeleteStatus > 0
|
||||
update ga set ga.contentauditid = (select ISNULL(max(auditid),0) from contentaudits where contentid = ga.contentid and deletestatus = ga.deletestatus)
|
||||
from gridaudits ga join deleted dd on ga.contentid = dd.contentid where ga.contentauditid = 0
|
||||
end
|
||||
go
|
||||
|
||||
-- Display the status of Trigger alter
|
||||
IF (@@Error = 0) PRINT 'Trigger Alteration: tr_Contents_Delete Succeeded'
|
||||
ELSE PRINT 'Trigger Alteration: tr_Contents_Delete Error on Creation'
|
||||
GO
|
||||
|
||||
/*
|
||||
---------------------------------------------------------------------------
|
||||
| ADD New Code Before this Block |
|
||||
@@ -25023,8 +25051,8 @@ BEGIN TRY -- Try Block
|
||||
DECLARE @RevDate varchar(255)
|
||||
DECLARE @RevDescription varchar(255)
|
||||
|
||||
set @RevDate = '05/26/2026 7:00 AM'
|
||||
set @RevDescription = 'Get Most Recent Revision when Duplicates'
|
||||
set @RevDate = '06/29/2026 7:00 AM'
|
||||
set @RevDescription = 'Update to Grid Deletion Audits'
|
||||
|
||||
Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription
|
||||
PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription
|
||||
|
||||
@@ -8,7 +8,6 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading;
|
||||
using static System.Net.Mime.MediaTypeNames;
|
||||
|
||||
|
||||
namespace VEPROMS.CSLA.Library
|
||||
@@ -61,7 +60,8 @@ namespace VEPROMS.CSLA.Library
|
||||
#region Structs / Internal Classes
|
||||
|
||||
[Serializable]
|
||||
public struct roHdr
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE1006:Naming Styles", Justification = "Keep Older Pre-existing naming conventions")]
|
||||
public struct roHdr
|
||||
{
|
||||
public int hSize;
|
||||
public int hYear;
|
||||
@@ -78,7 +78,8 @@ namespace VEPROMS.CSLA.Library
|
||||
};
|
||||
|
||||
[Serializable]
|
||||
public struct rodbi
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE1006:Naming Styles", Justification = "Keep Older Pre-existing naming conventions")]
|
||||
public struct rodbi
|
||||
{
|
||||
public int dbiID;
|
||||
public int dbiType;
|
||||
@@ -91,7 +92,8 @@ namespace VEPROMS.CSLA.Library
|
||||
};
|
||||
|
||||
[Serializable]
|
||||
public struct rogrp
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE1006:Naming Styles", Justification = "Keep Older Pre-existing naming conventions")]
|
||||
public struct rogrp
|
||||
{
|
||||
public string value;
|
||||
public string appid;
|
||||
@@ -102,7 +104,8 @@ namespace VEPROMS.CSLA.Library
|
||||
};
|
||||
|
||||
[Serializable]
|
||||
public struct rochild
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE1006:Naming Styles", Justification = "Keep Older Pre-existing naming conventions")]
|
||||
public struct rochild
|
||||
{
|
||||
public int ID;
|
||||
public int ParentID;
|
||||
@@ -133,7 +136,7 @@ namespace VEPROMS.CSLA.Library
|
||||
private List<string> _baseAccPageKeys;
|
||||
|
||||
// RofstLookup/Conversion Variables
|
||||
private int _rofstID;
|
||||
private readonly int _rofstID;
|
||||
private DocVersionInfo _myDocVersionInfo;
|
||||
private int _selectedSlave;
|
||||
private string _otherChild = string.Empty;
|
||||
@@ -149,7 +152,7 @@ namespace VEPROMS.CSLA.Library
|
||||
// B2022-107: Display Progress Bar Messages/Statuses when a new ROFST binary file is loaded into the database
|
||||
private frmRofstLoadStatus _frmRofstLoadStatus = null;
|
||||
private Dictionary<int, int> _dicRoCounts = null;
|
||||
private bool _showLoadingStatus = true;
|
||||
private readonly bool _showLoadingStatus = true;
|
||||
|
||||
private int _curRoCnt = 0;
|
||||
private int _dbRoCnt = 0;
|
||||
@@ -414,7 +417,6 @@ namespace VEPROMS.CSLA.Library
|
||||
|
||||
ROFSTLookup.rochild rc = RofstDataGetChildByAccPageID(_rofstID, accPageBase);
|
||||
|
||||
//if (rc.ID >=0 && rc.roid.Length < 16 && Regex.IsMatch(accPageKey, @".*\.[A-Z]") && rc.children != null && rc.children.Count() > 0)
|
||||
if (rc.ID >= 0 && rc.roid.Length < 16 && !string.IsNullOrEmpty(accPageExt) && rc.children != null && rc.children.Count() > 0)
|
||||
{
|
||||
// Check if AccPageID/Key has a return value specific extension. Try to find the RoChild record with the specific return value type,
|
||||
@@ -507,8 +509,6 @@ namespace VEPROMS.CSLA.Library
|
||||
// B2023-037: Handle <=, >=, +-, -> and <- symbols. Convert to unicode for output, i.e. print and edit/view (when editing
|
||||
// step, will show as 2 characters, not unicode, unless ro inserted when code replaced link text with unicode.
|
||||
|
||||
//(_MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.UseDashGreaterLessThenForArrowsInROValue ||
|
||||
// _MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.ConvertGTELTEPMinROValue))
|
||||
bool arrows1 = myiteminfo.ActiveFormat.PlantFormat.FormatData.SectData.UseDashGreaterLessThenForArrowsInROValue;
|
||||
bool arrows2 = myiteminfo.ActiveFormat.PlantFormat.FormatData.SectData.ConvertGTELTEPMinROValue;
|
||||
|
||||
@@ -681,11 +681,10 @@ namespace VEPROMS.CSLA.Library
|
||||
|
||||
if (minutes > 0) duration = string.Format("{0} min(s) ", minutes.ToString("n0"));
|
||||
if (secs < 0) secs = 0.00;
|
||||
duration = duration + string.Format("{0,10:#####0.00} sec(s)", secs).Trim();
|
||||
duration += string.Format("{0,10:#####0.00} sec(s)", secs).Trim();
|
||||
|
||||
return duration;
|
||||
|
||||
//return string.Format("{0,10:#####0.00}", TimeSpan.FromTicks(DateTime.Now.Ticks - dtStart.Ticks).TotalSeconds);
|
||||
}
|
||||
|
||||
//C2026-008 Re-Architect RO.FST to include RO Modification date/time
|
||||
@@ -1475,21 +1474,22 @@ namespace VEPROMS.CSLA.Library
|
||||
|
||||
private ROFSTLookup.roHdr ConvertFst2Objects(byte[] ab)
|
||||
{
|
||||
ROFSTLookup.roHdr roh = new ROFSTLookup.roHdr();
|
||||
ROFSTLookup.roHdr roh = new ROFSTLookup.roHdr
|
||||
{
|
||||
hSize = BitConverter.ToInt32(ab, 0),
|
||||
hYear = BitConverter.ToInt16(ab, 4),
|
||||
hMonth = ab[6],
|
||||
hDay = ab[7],
|
||||
hcYear = BitConverter.ToInt16(ab, 8),
|
||||
hcMonth = ab[10],
|
||||
hcDay = ab[11],
|
||||
hcHour = ab[12],
|
||||
hcMin = ab[13],
|
||||
hcSec = ab[14],
|
||||
hcHund = ab[15]
|
||||
};
|
||||
|
||||
roh.hSize = BitConverter.ToInt32(ab, 0);
|
||||
roh.hYear = BitConverter.ToInt16(ab, 4);
|
||||
roh.hMonth = ab[6];
|
||||
roh.hDay = ab[7];
|
||||
roh.hcYear = BitConverter.ToInt16(ab, 8);
|
||||
roh.hcMonth = ab[10];
|
||||
roh.hcDay = ab[11];
|
||||
roh.hcHour = ab[12];
|
||||
roh.hcMin = ab[13];
|
||||
roh.hcSec = ab[14];
|
||||
roh.hcHund = ab[15];
|
||||
|
||||
int hdrOffset = BitConverter.ToInt32(ab, 16);
|
||||
int hdrOffset = BitConverter.ToInt32(ab, 16);
|
||||
int dbs = BitConverter.ToInt16(ab, hdrOffset + 4);
|
||||
|
||||
roh.myDbs = new ROFSTLookup.rodbi[dbs];
|
||||
@@ -1525,12 +1525,13 @@ namespace VEPROMS.CSLA.Library
|
||||
|
||||
private ROFSTLookup.rogrp LoadGroup(byte[] ab, int offset, int tableID)
|
||||
{
|
||||
ROFSTLookup.rogrp myGrp = new ROFSTLookup.rogrp();
|
||||
ROFSTLookup.rogrp myGrp = new ROFSTLookup.rogrp
|
||||
{
|
||||
ID = BitConverter.ToInt32(ab, offset),
|
||||
ParentID = BitConverter.ToInt32(ab, offset + 4)
|
||||
};
|
||||
|
||||
myGrp.ID = BitConverter.ToInt32(ab, offset);
|
||||
myGrp.ParentID = BitConverter.ToInt32(ab, offset + 4);
|
||||
|
||||
int numChildren = BitConverter.ToInt16(ab, offset + 8);
|
||||
int numChildren = BitConverter.ToInt16(ab, offset + 8);
|
||||
|
||||
if (numChildren > 0)
|
||||
{
|
||||
@@ -1660,7 +1661,7 @@ namespace VEPROMS.CSLA.Library
|
||||
}
|
||||
|
||||
// Update Progress Bar Accordingly
|
||||
if (_totalRoCnt > 0) _pctComplete = _pctComplete + ((Convert.ToDouble(_dbRoCnt) / Convert.ToDouble(_totalRoCnt)) * 80.0);
|
||||
if (_totalRoCnt > 0) _pctComplete += ((Convert.ToDouble(_dbRoCnt) / Convert.ToDouble(_totalRoCnt)) * 80.0);
|
||||
|
||||
OnProgressChanged(displayText, Convert.ToInt32(_pctComplete), 100);
|
||||
}
|
||||
@@ -1720,15 +1721,13 @@ namespace VEPROMS.CSLA.Library
|
||||
protected virtual void OnProgressChanged(string title, string displayText, int curVal = 0, int maxVal = 100)
|
||||
{
|
||||
// If frmRofstLoadStatus is not null then call Update Progress Method
|
||||
if (_frmRofstLoadStatus != null)
|
||||
_frmRofstLoadStatus.UpdateProgress(title, displayText, curVal, maxVal);
|
||||
_frmRofstLoadStatus?.UpdateProgress(title, displayText, curVal, maxVal);
|
||||
}
|
||||
|
||||
protected virtual void OnProgressChanged(string displayText, int curVal = 0, int maxVal = 100)
|
||||
{
|
||||
// If frmRofstLoadStatus is not null then call Update Progress Method
|
||||
if (_frmRofstLoadStatus != null)
|
||||
_frmRofstLoadStatus.UpdateProgress(_frmRofstLoadStatus.Title, displayText, curVal, maxVal);
|
||||
_frmRofstLoadStatus?.UpdateProgress(_frmRofstLoadStatus.Title, displayText, curVal, maxVal);
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -1739,21 +1738,22 @@ namespace VEPROMS.CSLA.Library
|
||||
|
||||
private ROFSTLookup.roHdr ConvertToRoHdrObject(SafeDataReader dr, bool loadChildren)
|
||||
{
|
||||
ROFSTLookup.roHdr rh = new ROFSTLookup.roHdr();
|
||||
ROFSTLookup.roHdr rh = new ROFSTLookup.roHdr
|
||||
{
|
||||
hSize = (int)dr.GetValue("hSize"),
|
||||
hYear = (int)dr.GetValue("hYear"),
|
||||
hMonth = (byte)dr.GetValue("hMonth"),
|
||||
hDay = (byte)dr.GetValue("hDay"),
|
||||
hcYear = (int)dr.GetValue("hcYear"),
|
||||
hcMonth = (byte)dr.GetValue("hcMonth"),
|
||||
hcDay = (byte)dr.GetValue("hcDay"),
|
||||
hcHour = (byte)dr.GetValue("hcHour"),
|
||||
hcMin = (byte)dr.GetValue("hcMin"),
|
||||
hcSec = (byte)dr.GetValue("hcSec"),
|
||||
hcHund = (byte)dr.GetValue("hcHund")
|
||||
};
|
||||
|
||||
rh.hSize = (int)dr.GetValue("hSize");
|
||||
rh.hYear = (int)dr.GetValue("hYear");
|
||||
rh.hMonth = (byte)dr.GetValue("hMonth");
|
||||
rh.hDay = (byte)dr.GetValue("hDay");
|
||||
rh.hcYear = (int)dr.GetValue("hcYear");
|
||||
rh.hcMonth = (byte)dr.GetValue("hcMonth");
|
||||
rh.hcDay = (byte)dr.GetValue("hcDay");
|
||||
rh.hcHour = (byte)dr.GetValue("hcHour");
|
||||
rh.hcMin = (byte)dr.GetValue("hcMin");
|
||||
rh.hcSec = (byte)dr.GetValue("hcSec");
|
||||
rh.hcHund = (byte)dr.GetValue("hcHund");
|
||||
|
||||
if (loadChildren)
|
||||
if (loadChildren)
|
||||
{
|
||||
rh.myDbs = RofstDataGetDatabases(_rofstID);
|
||||
}
|
||||
@@ -1763,17 +1763,18 @@ namespace VEPROMS.CSLA.Library
|
||||
|
||||
private ROFSTLookup.rodbi ConvertToRodbiObject(SafeDataReader dr, bool loadChildren, bool loadAllChildren)
|
||||
{
|
||||
ROFSTLookup.rodbi rd = new ROFSTLookup.rodbi();
|
||||
ROFSTLookup.rodbi rd = new ROFSTLookup.rodbi
|
||||
{
|
||||
dbiID = (int)dr.GetValue("dbiID"),
|
||||
dbiType = (int)dr.GetValue("dbiType"),
|
||||
dbiAW = (int)dr.GetValue("dbiAW"),
|
||||
dbiAP = (string)dr.GetValue("dbiAP"),
|
||||
dbiTitle = (string)dr.GetValue("dbiTitle"),
|
||||
ID = (int)dr.GetValue("ID"),
|
||||
ParentID = (int)dr.GetValue("ParentID")
|
||||
};
|
||||
|
||||
rd.dbiID = (int)dr.GetValue("dbiID");
|
||||
rd.dbiType = (int)dr.GetValue("dbiType");
|
||||
rd.dbiAW = (int)dr.GetValue("dbiAW");
|
||||
rd.dbiAP = (string)dr.GetValue("dbiAP");
|
||||
rd.dbiTitle = (string)dr.GetValue("dbiTitle");
|
||||
rd.ID = (int)dr.GetValue("ID");
|
||||
rd.ParentID = (int)dr.GetValue("ParentID");
|
||||
|
||||
if (loadChildren || loadAllChildren)
|
||||
if (loadChildren || loadAllChildren)
|
||||
{
|
||||
rd.children = RofstDataGetChildrenByID(_rofstID, rd.dbiID, rd.ID, false, loadAllChildren);
|
||||
}
|
||||
@@ -1783,15 +1784,16 @@ namespace VEPROMS.CSLA.Library
|
||||
|
||||
private ROFSTLookup.rochild ConvertToRochildObject(SafeDataReader dr, bool loadChildren, bool loadAllChildren)
|
||||
{
|
||||
ROFSTLookup.rochild rc = new ROFSTLookup.rochild();
|
||||
ROFSTLookup.rochild rc = new ROFSTLookup.rochild
|
||||
{
|
||||
ID = (int)dr.GetValue("ID"),
|
||||
ParentID = (int)dr.GetValue("ParentID"),
|
||||
type = (int)dr.GetValue("type"),
|
||||
title = (string)dr.GetValue("title"),
|
||||
roid = (string)dr.GetValue("roid")
|
||||
};
|
||||
|
||||
rc.ID = (int)dr.GetValue("ID");
|
||||
rc.ParentID = (int)dr.GetValue("ParentID");
|
||||
rc.type = (int)dr.GetValue("type");
|
||||
rc.title = (string)dr.GetValue("title");
|
||||
rc.roid = (string)dr.GetValue("roid");
|
||||
|
||||
if (!string.IsNullOrEmpty((string)dr.GetValue("appid")))
|
||||
if (!string.IsNullOrEmpty((string)dr.GetValue("appid")))
|
||||
{
|
||||
rc.appid = (string)dr.GetValue("AccPageID");
|
||||
|
||||
@@ -1811,13 +1813,14 @@ namespace VEPROMS.CSLA.Library
|
||||
|
||||
private ROFSTLookup.RoExtension ConvertToRoExtensionObject(SafeDataReader dr)
|
||||
{
|
||||
ROFSTLookup.RoExtension re = new ROFSTLookup.RoExtension();
|
||||
ROFSTLookup.RoExtension re = new ROFSTLookup.RoExtension
|
||||
{
|
||||
Offset = (int)dr.GetValue("Offset"),
|
||||
RoidExt = (string)dr.GetValue("RoidExt"),
|
||||
AccPageExt = (string)dr.GetValue("AccPageExt")
|
||||
};
|
||||
|
||||
re.Offset = (int)dr.GetValue("Offset");
|
||||
re.RoidExt = (string)dr.GetValue("RoidExt");
|
||||
re.AccPageExt = (string)dr.GetValue("AccPageExt");
|
||||
|
||||
return re;
|
||||
return re;
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -1875,7 +1878,6 @@ namespace VEPROMS.CSLA.Library
|
||||
// Instead of returning the RoChildBase object with a single RoReturnVal object attached, just return the single Ro ReturnValue object.
|
||||
var roRetVal = child.children.First();
|
||||
|
||||
//child.title = roRetVal.title;
|
||||
child.appid = roRetVal.appid;
|
||||
child.roid = roRetVal.roid;
|
||||
child.value = roRetVal.value;
|
||||
@@ -2129,44 +2131,71 @@ namespace VEPROMS.CSLA.Library
|
||||
return ProcessRO(match, multiRtnVal);
|
||||
}
|
||||
|
||||
private string ProcessMacros(string str)
|
||||
{
|
||||
// Takes the RO text value and sees if a macro has been used.
|
||||
// If so it will perform the macro operation on the substring in the text value
|
||||
// Note** Right now the only macro is @HSP(), where every space between the "(" and ")" will be replaced with a hard space
|
||||
// Takes the RO text value and sees if a macro has been used.
|
||||
// If so it will perform the macro operation on the substring in the text value
|
||||
// Note** Right now the only macro is @HSP(), where every space between the "(" and ")" will be replaced with a hard space
|
||||
private static string ProcessMacros(string str)
|
||||
{
|
||||
|
||||
if (string.IsNullOrEmpty(str))
|
||||
return str;
|
||||
if (string.IsNullOrEmpty(str) || str.ToUpper().IndexOf("@HSP(") < 0)
|
||||
return str;
|
||||
|
||||
string rtnstr = str;
|
||||
int indx;
|
||||
|
||||
while ((indx = rtnstr.ToUpper().IndexOf("@HSP(")) > -1)
|
||||
{
|
||||
string resstr = rtnstr.Substring(0, indx);
|
||||
int endHsp = rtnstr.IndexOf(")", indx);
|
||||
string processingstr = str; //holds current string being processed
|
||||
int indx; //current position of @HSP( in string
|
||||
int endpos = 0; //end of last parens
|
||||
|
||||
//B2026 - 002 handle if parens inside a HSP
|
||||
int startpos = indx + 5;
|
||||
while (rtnstr.Substring(startpos, endHsp - startpos).Contains("("))
|
||||
{
|
||||
startpos = rtnstr.IndexOf("(", startpos + 1, endHsp - startpos) + 1;
|
||||
endHsp = rtnstr.IndexOf(")", endHsp + 1);
|
||||
}
|
||||
StringBuilder sb = new StringBuilder();
|
||||
Stack<char> endparens = new Stack<char>();
|
||||
|
||||
string tmpstr = rtnstr.Substring(indx + 5, endHsp - indx - 5);
|
||||
while ((indx = processingstr.ToUpper().IndexOf("@HSP(")) > -1)
|
||||
{
|
||||
sb.Append(processingstr.Substring(0, indx)); // initial string before @HSP(
|
||||
|
||||
// B2017-012 Don't convert space to hard spaces for XY Plots.
|
||||
if (!tmpstr.Contains("<<G")) tmpstr = tmpstr.Replace(" ", @"\u160?");
|
||||
for (int i = indx + 5; i < processingstr.Length; i++)
|
||||
{
|
||||
char ch = processingstr[i];
|
||||
|
||||
resstr = resstr + tmpstr;
|
||||
rtnstr = resstr + rtnstr.Substring(endHsp + 1);
|
||||
}
|
||||
if (ch == '(')
|
||||
{
|
||||
//if opening paren inside HSP add it to the stack to look for a closing parens
|
||||
endparens.Push(ch);
|
||||
}
|
||||
else if (ch == ')' && endparens.Count > 0)
|
||||
{
|
||||
//if cloing parens and it matches an opening parens inside of HSP, remove a level
|
||||
_ = endparens.Pop();
|
||||
}
|
||||
else if (ch == ')' && endparens.Count == 0)
|
||||
{
|
||||
//if closing parens and at same level as HSP, break out since found correct closing parens
|
||||
endpos = i;
|
||||
break;
|
||||
}
|
||||
else if (i == processingstr.Length - 1)
|
||||
{
|
||||
//if hit the end of the string and no matching closing parens found, take to the end of the string
|
||||
endpos = processingstr.Length;
|
||||
}
|
||||
}
|
||||
|
||||
return rtnstr;
|
||||
}
|
||||
//Add the text inside the @HSP(...)
|
||||
string tmpstr = processingstr.Substring(indx + 5, endpos - indx - 5);
|
||||
// B2017-012 Don't convert space to hard spaces for XY Plots.
|
||||
if (!tmpstr.Contains("<<G")) tmpstr = tmpstr.Replace(" ", @"\u160?");
|
||||
sb.Append(tmpstr);
|
||||
|
||||
private int StringLength(byte[] ab, int offset)
|
||||
//Set the processing string to after the ending parens found in case multiple @HSP
|
||||
processingstr = endpos + 1 >= processingstr.Length ? "" : processingstr.Substring(endpos + 1);
|
||||
}
|
||||
|
||||
//add text after last end parens
|
||||
sb.Append(processingstr);
|
||||
|
||||
return sb.ToString();
|
||||
}
|
||||
|
||||
private int StringLength(byte[] ab, int offset)
|
||||
{
|
||||
int i = 0;
|
||||
while (ab[i + offset] != 0) i++;
|
||||
@@ -2275,7 +2304,7 @@ namespace VEPROMS.CSLA.Library
|
||||
{
|
||||
rc.roid = FormatRoidKey(roid).Substring(0, 12);
|
||||
|
||||
DocVersionConfig dvc = (_myDocVersionInfo != null) ? _myDocVersionInfo.DocVersionConfig : null;
|
||||
DocVersionConfig dvc = _myDocVersionInfo?.DocVersionConfig;
|
||||
if (dvc != null) dvc.SelectedSlave = this.SelectedSlave;
|
||||
|
||||
switch (rc.roid)
|
||||
@@ -2283,49 +2312,49 @@ namespace VEPROMS.CSLA.Library
|
||||
case "FFFF00000001":
|
||||
rc.title = "Number";
|
||||
rc.appid = "U-NUMBER";
|
||||
rc.value = (dvc != null) ? dvc.Unit_Number : null;
|
||||
rc.value = dvc?.Unit_Number;
|
||||
break;
|
||||
|
||||
case "FFFF00000002":
|
||||
rc.title = "Other Number";
|
||||
rc.appid = "U-OTHERNUMBER";
|
||||
rc.value = (dvc != null) ? dvc.Other_Unit_Number : null;
|
||||
rc.value = dvc?.Other_Unit_Number;
|
||||
break;
|
||||
|
||||
case "FFFF00000003":
|
||||
rc.title = "Text";
|
||||
rc.appid = "U-TEXT";
|
||||
rc.value = (dvc != null) ? dvc.Unit_Text : null;
|
||||
rc.value = dvc?.Unit_Text;
|
||||
break;
|
||||
|
||||
case "FFFF00000004":
|
||||
rc.title = "Other Text";
|
||||
rc.appid = "U-OTHERTEXT";
|
||||
rc.value = (dvc != null) ? dvc.Other_Unit_Text : null;
|
||||
rc.value = dvc?.Other_Unit_Text;
|
||||
break;
|
||||
|
||||
case "FFFF00000005":
|
||||
rc.title = "ID";
|
||||
rc.appid = "U-ID";
|
||||
rc.value = (dvc != null) ? dvc.Unit_ID : null;
|
||||
rc.value = dvc?.Unit_ID;
|
||||
break;
|
||||
|
||||
case "FFFF00000006":
|
||||
rc.title = "Other ID";
|
||||
rc.appid = "U-OTHERID";
|
||||
rc.value = (dvc != null) ? dvc.Other_Unit_ID : null;
|
||||
rc.value = dvc?.Other_Unit_ID;
|
||||
break;
|
||||
|
||||
case "FFFF00000007":
|
||||
rc.title = "Name";
|
||||
rc.appid = "U-NAME";
|
||||
rc.value = (dvc != null) ? dvc.Unit_Name : null;
|
||||
rc.value = dvc?.Unit_Name;
|
||||
break;
|
||||
|
||||
case "FFFF00000008":
|
||||
rc.title = "Other Name";
|
||||
rc.appid = "U-OTHERNAME";
|
||||
rc.value = (dvc != null) ? dvc.Other_Unit_Name : null;
|
||||
rc.value = dvc?.Other_Unit_Name;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -15,24 +15,24 @@ using System.Linq;
|
||||
|
||||
namespace Volian.Controls.Library
|
||||
{
|
||||
public partial class DisplaySearch : UserControl
|
||||
{
|
||||
#region Public Events/Handlers
|
||||
public partial class DisplaySearch : UserControl
|
||||
{
|
||||
#region Public Events/Handlers
|
||||
|
||||
public event DisplaySearchEvent PrintRequest;
|
||||
public event DisplaySearchEvent PrintRequest;
|
||||
public event DisplaySearchEvent SearchComplete;
|
||||
|
||||
private void OnPrintRequest(DisplaySearchEventArgs args)
|
||||
{
|
||||
if (PrintRequest != null)
|
||||
PrintRequest(this, args);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnSearchComplete(DisplaySearchEventArgs args)
|
||||
{
|
||||
if (SearchComplete != null)
|
||||
SearchComplete(this, args);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -43,9 +43,9 @@ namespace Volian.Controls.Library
|
||||
// B2023-076: Adding option to select all procedure sets
|
||||
private const string SelectAllProcedureSetsText = "Select All Procedure Sets";
|
||||
|
||||
// B2019-161 When tracking timing time this action
|
||||
private static VolianTimer _TimeActivity = new VolianTimer("DisplaySearch _TmrRefresh_Tick", 399);
|
||||
private Timer _TmrRefresh = null;
|
||||
// B2019-161 When tracking timing time this action
|
||||
private static VolianTimer _TimeActivity = new VolianTimer("DisplaySearch _TmrRefresh_Tick", 399);
|
||||
private Timer _TmrRefresh = null;
|
||||
|
||||
public FormatVersionList myFormatVersionList;
|
||||
private ItemInfo _SearchIncTransII = null;
|
||||
@@ -220,7 +220,7 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
_TmrRefresh = new Timer();
|
||||
_TmrRefresh.Interval = 1000;
|
||||
_TmrRefresh.Tick += _TmrRefresh_Tick;
|
||||
_TmrRefresh.Tick += _TmrRefresh_Tick;
|
||||
}
|
||||
return _TmrRefresh;
|
||||
}
|
||||
@@ -325,7 +325,7 @@ namespace Volian.Controls.Library
|
||||
if (tabSearchTypes.SelectedTab == tabSearchTypes.Tabs[2])
|
||||
{ // RO Search
|
||||
ROFSTLookup.rochild[] chld = null;
|
||||
ROFSTLookup.rochild ch;
|
||||
ROFSTLookup.rochild ch;
|
||||
if (cmboTreeROs.SelectedNode != null)
|
||||
{
|
||||
if (cbxFndUnLnkROVals.Enabled && cbxFndUnLnkROVals.Checked)
|
||||
@@ -337,22 +337,22 @@ namespace Volian.Controls.Library
|
||||
else
|
||||
{
|
||||
if (cmboTreeROs.SelectedNode.Tag is ROFSTLookup.rodbi)
|
||||
{
|
||||
{
|
||||
ROFSTLookup.rodbi db = (ROFSTLookup.rodbi)cmboTreeROs.SelectedNode.Tag;
|
||||
return _MyRODbID.ToString() + ":" + string.Format("{0}", db.dbiID.ToString("X4"));
|
||||
}
|
||||
return _MyRODbID.ToString() + ":" + string.Format("{0}", db.dbiID.ToString("X4"));
|
||||
}
|
||||
else if (cmboTreeROs.SelectedNode.Tag is ROFSTLookup.rochild)
|
||||
{
|
||||
{
|
||||
ch = (ROFSTLookup.rochild)cmboTreeROs.SelectedNode.Tag;
|
||||
chld = ch.children;
|
||||
// build a list of ROs to search
|
||||
// B2022-118: remove the ending comma otherwise query will fail
|
||||
string strRtnStr = _MyRODbID.ToString() + ":" + GetROsToSearch(chld);
|
||||
if (strRtnStr.EndsWith(","))
|
||||
strRtnStr = strRtnStr.Substring(0, strRtnStr.Length - 1);
|
||||
return strRtnStr;
|
||||
}
|
||||
}
|
||||
// build a list of ROs to search
|
||||
// B2022-118: remove the ending comma otherwise query will fail
|
||||
string strRtnStr = _MyRODbID.ToString() + ":" + GetROsToSearch(chld);
|
||||
if (strRtnStr.EndsWith(","))
|
||||
strRtnStr = strRtnStr.Substring(0, strRtnStr.Length - 1);
|
||||
return strRtnStr;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return string.Empty;
|
||||
@@ -468,15 +468,18 @@ namespace Volian.Controls.Library
|
||||
this.Refresh();
|
||||
myFormatVersionList = FormatVersionList.GetFormatVersions();
|
||||
cbxTranVersion.DisplayMember = "Title";
|
||||
int lastLastFormatID = 0;
|
||||
foreach (FormatVersion fv in myFormatVersionList)
|
||||
|
||||
List<FormatVersion> fvlst = myFormatVersionList.GroupBy(x => x.FormatID).Select(group => new
|
||||
FormatVersion(title: group.Max(x => x.Title),
|
||||
formatID: group.Key,
|
||||
versionID: group.Max(x => x.VersionID)
|
||||
)).OrderBy(y => y.Title).ToList();
|
||||
|
||||
foreach (FormatVersion fv in fvlst)
|
||||
{
|
||||
if (fv.FormatID != lastLastFormatID)
|
||||
{
|
||||
cbxTranVersion.Items.Add(fv);
|
||||
lastLastFormatID = fv.FormatID;
|
||||
}
|
||||
cbxTranVersion.Items.Add(fv);
|
||||
}
|
||||
|
||||
cbxTranVersion.SelectedIndexChanged -= new EventHandler(cbxTranVersion_SelectedIndexChanged);
|
||||
cbxTranVersion.SelectedIndexChanged += new EventHandler(cbxTranVersion_SelectedIndexChanged);
|
||||
cbxTranFormat.SelectedIndexChanged -= new EventHandler(cbxTranFormat_SelectedIndexChanged);
|
||||
@@ -556,14 +559,9 @@ namespace Volian.Controls.Library
|
||||
string versionList = string.Empty;
|
||||
string sep = string.Empty;
|
||||
FormatVersion sfv = cbxTranVersion.SelectedItem as FormatVersion;
|
||||
foreach (FormatVersion fv in myFormatVersionList)
|
||||
{
|
||||
if (fv.FormatID == sfv.FormatID)
|
||||
{
|
||||
versionList += sep + fv.VersionID;
|
||||
sep = ",";
|
||||
}
|
||||
}
|
||||
|
||||
versionList = string.Join(",", myFormatVersionList.Where(x => x.FormatID == sfv?.FormatID).Select(y => y.VersionID));
|
||||
|
||||
cbxTranVersion.Tag = versionList;
|
||||
cbxTranFormatFillIn(versionList);
|
||||
if (dicExpandedFolderNodes.Count > 0)
|
||||
@@ -616,7 +614,7 @@ namespace Volian.Controls.Library
|
||||
dicSelectedFolderNodes.Clear();
|
||||
}
|
||||
}
|
||||
this.Cursor = Cursors.Default;
|
||||
this.Cursor = Cursors.Default;
|
||||
}
|
||||
|
||||
// C2020-033: Update the search panel for Incoming transitions. This gets called from the tree view & the ribbon
|
||||
@@ -828,10 +826,10 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
DevComponents.AdvTree.Node pnode = sender as DevComponents.AdvTree.Node;
|
||||
if (pnode != null && pnode.HasChildNodes)
|
||||
{
|
||||
CheckTreeNodeChildren(pnode.Nodes);
|
||||
}
|
||||
}
|
||||
{
|
||||
CheckTreeNodeChildren(pnode.Nodes);
|
||||
}
|
||||
}
|
||||
|
||||
public void advTreeProcSetsFillIn(bool blSeachTabClicked)
|
||||
{
|
||||
@@ -846,15 +844,15 @@ namespace Volian.Controls.Library
|
||||
topnode.Text = "Available Procedure Sets";
|
||||
topnode.Tag = fi;
|
||||
topnode.DataKey = fi.FolderID;
|
||||
advTreeProcSets.Nodes.Add(topnode);
|
||||
advTreeProcSets.Nodes.Add(topnode);
|
||||
//advTreeProcSets.AfterNodeInsert += new TreeNodeCollectionEventHandler(advTreeProcSets_AfterNodeInsert);
|
||||
|
||||
//B2023-076: Adding option to select all procedure sets
|
||||
//B2023-076: Adding option to select all procedure sets
|
||||
DevComponents.AdvTree.Node selectAllNode = new Node();
|
||||
selectAllNode.Text = SelectAllProcedureSetsText;
|
||||
selectAllNode.Tag = SelectAllProcedureSetsText;
|
||||
selectAllNode.CheckBoxVisible = true;
|
||||
selectAllNode.NodeClick += new EventHandler(AllProcedureSets_clicked);
|
||||
selectAllNode.NodeClick += new EventHandler(AllProcedureSets_clicked);
|
||||
topnode.Nodes.Add(selectAllNode);
|
||||
|
||||
if (fi.SortedChildFolders != null)
|
||||
@@ -865,7 +863,7 @@ namespace Volian.Controls.Library
|
||||
newnode.Text = fic.ToString();
|
||||
newnode.Tag = fic;
|
||||
newnode.DataKey = fi.FolderID;
|
||||
AddCheckBox(true, newnode);//C2016-045 Allow Folders to be selected.
|
||||
AddCheckBox(true, newnode);//C2016-045 Allow Folders to be selected.
|
||||
cntnd++;
|
||||
if (fic.ChildFolderCount > 0 || fic.FolderDocVersionCount > 0) // allow for '+' for tree expansion
|
||||
{
|
||||
@@ -873,7 +871,7 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
DevComponents.AdvTree.Node tnt = new DevComponents.AdvTree.Node();
|
||||
tnt.Text = DummyNodeText;
|
||||
newnode.Nodes.Add(tnt);
|
||||
newnode.Nodes.Add(tnt);
|
||||
}
|
||||
topnode.Nodes.Add(newnode);
|
||||
}
|
||||
@@ -885,7 +883,7 @@ namespace Volian.Controls.Library
|
||||
newnode.Text = fi.ToString();
|
||||
newnode.Tag = fi;
|
||||
newnode.DataKey = fi.FolderID;
|
||||
AddCheckBox(true, newnode);//C2016-045 Allow Folders to be selected.
|
||||
AddCheckBox(true, newnode);//C2016-045 Allow Folders to be selected.
|
||||
topnode.Nodes.Add(newnode);
|
||||
lstCheckedDocVersions.Add(Mydocversion);
|
||||
buildSetToSearchPanelTitle();
|
||||
@@ -897,7 +895,7 @@ namespace Volian.Controls.Library
|
||||
fi = Mydocversion.MyFolder;
|
||||
topnode = new DevComponents.AdvTree.Node();
|
||||
topnode.Text = fi.ToString();
|
||||
advTreeProcSets.Nodes.Add(topnode);
|
||||
advTreeProcSets.Nodes.Add(topnode);
|
||||
topnode.Tag = fi;
|
||||
topnode.DataKey = fi.FolderID;
|
||||
}
|
||||
@@ -935,31 +933,31 @@ namespace Volian.Controls.Library
|
||||
newnode.Text = fic.ToString();
|
||||
newnode.Tag = fic;
|
||||
newnode.DataKey = fic.FolderID;
|
||||
par.Nodes.Add(newnode);
|
||||
par.Nodes.Add(newnode);
|
||||
AddCheckBox(true, newnode);//C2016-045 Allow Folders to be selected.
|
||||
newnode.Enabled = true;
|
||||
if (fic.ChildFolderCount > 0) // B2017-176: Only expand if folder has folders (not working draft nodes)
|
||||
if (fic.ChildFolderCount > 0) // B2017-176: Only expand if folder has folders (not working draft nodes)
|
||||
{
|
||||
DevComponents.AdvTree.Node tnt = new DevComponents.AdvTree.Node();
|
||||
tnt.Text = DummyNodeText;
|
||||
newnode.Nodes.Add(tnt);
|
||||
// B2017-176: Only expand if folder has folders (not working draft nodes): the following was moved from the code
|
||||
// that would check if this should be enabled if seraching for transition types. The transition controls
|
||||
// had a list of associated docversions, so needed to get the docversion in the folder:
|
||||
newnode.Nodes.Add(tnt);
|
||||
// B2017-176: Only expand if folder has folders (not working draft nodes): the following was moved from the code
|
||||
// that would check if this should be enabled if seraching for transition types. The transition controls
|
||||
// had a list of associated docversions, so needed to get the docversion in the folder:
|
||||
if (tabSearchTypes.SelectedTab == tabTranSearch)
|
||||
{
|
||||
{
|
||||
if (!dicSelectedFolderNodes.ContainsKey(newnode)) dicSelectedFolderNodes.Add(newnode, false);
|
||||
// get the docversion for this folder, if it has one and determine whether it is enabled for transitions:
|
||||
string svid = null;
|
||||
if (fic.FolderDocVersionCount > 0)
|
||||
svid = fic.FolderDocVersions[0].VersionID.ToString();
|
||||
newnode.Enabled = svid != null && cbxTranVersion.Tag != null ? cbxTranVersion.Tag.ToString().Contains(svid) : false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void AdvTree_AfterExpandorCollapse(object sender, AdvTreeNodeEventArgs e)
|
||||
{
|
||||
@@ -979,9 +977,9 @@ namespace Volian.Controls.Library
|
||||
if (topNode != null)
|
||||
{
|
||||
topNode.EnsureVisible();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -1061,12 +1059,12 @@ namespace Volian.Controls.Library
|
||||
DevComponents.DotNetBar.ButtonItem btnCM = new DevComponents.DotNetBar.ButtonItem();
|
||||
|
||||
btnCM.Text = string.Format("{0}", (char)sym.Unicode);
|
||||
// to name button use unicode rather than desc, desc may have spaces or odd chars
|
||||
// to name button use unicode rather than desc, desc may have spaces or odd chars
|
||||
btnCM.Name = "btnCM" + sym.Unicode.ToString();
|
||||
btnCM.Tooltip = sym.Desc;
|
||||
btnCM.Tag = string.Format(@"{0}", sym.Unicode);
|
||||
btnCM.FontBold = true;
|
||||
btnCM.Click += new System.EventHandler(btnSym_Click);
|
||||
btnCM.Click += new System.EventHandler(btnSym_Click);
|
||||
galSymbols.SubItems.Add(btnCM);
|
||||
}
|
||||
}
|
||||
@@ -1117,7 +1115,7 @@ namespace Volian.Controls.Library
|
||||
newnode = new DevComponents.AdvTree.Node();
|
||||
newnode.Text = nodetext;
|
||||
newnode.Selectable = selectable;
|
||||
AddCheckBox(chxbxvisable, newnode);//C2016-045 Allow Folders to be selected.
|
||||
AddCheckBox(chxbxvisable, newnode);//C2016-045 Allow Folders to be selected.
|
||||
return newnode;
|
||||
}
|
||||
|
||||
@@ -1164,7 +1162,7 @@ namespace Volian.Controls.Library
|
||||
bool allowNonAdmin = IncTranCvtPerm();
|
||||
List<int> itmsEditable = new List<int>(); // return this list
|
||||
int listCount = 0;
|
||||
if (all) // Check all in list
|
||||
if (all) // Check all in list
|
||||
{
|
||||
listCount = _SearchResults.Count;
|
||||
foreach (ItemInfo ii in _SearchResults)
|
||||
@@ -1214,9 +1212,9 @@ namespace Volian.Controls.Library
|
||||
// C2020-033: convert selected transitions to text
|
||||
private void btnTranCvtSelToTxt_Click(object sender, EventArgs e)
|
||||
{
|
||||
// First see if all selected can be converted, i.e. user has permission to edit
|
||||
// First see if all selected can be converted, i.e. user has permission to edit
|
||||
List<ListBoxItem> lbis = lbSrchResultsIncTrans.CheckedItems;
|
||||
List<int> itmsEditable = TranCvtCheckPermission(false);
|
||||
List<int> itmsEditable = TranCvtCheckPermission(false);
|
||||
if (itmsEditable == null || itmsEditable.Count == 0) return;
|
||||
TranCvtToTxt(itmsEditable);
|
||||
fromTranCvtBtn = true;
|
||||
@@ -1450,7 +1448,7 @@ namespace Volian.Controls.Library
|
||||
|
||||
DevComponents.AdvTree.Node tn = new DevComponents.AdvTree.Node(db.dbiTitle);
|
||||
tn.Tag = db;
|
||||
cmboTreeROs.Nodes.Add(tn);
|
||||
cmboTreeROs.Nodes.Add(tn);
|
||||
|
||||
AddDummyGroup(db, tn);
|
||||
}
|
||||
@@ -1505,26 +1503,26 @@ namespace Volian.Controls.Library
|
||||
ROFSTLookup.rochild[] chld = null;
|
||||
|
||||
if (tn.Tag is ROFSTLookup.rodbi)
|
||||
{
|
||||
{
|
||||
ROFSTLookup.rodbi db = (ROFSTLookup.rodbi)tn.Tag;
|
||||
MyROFSTLookup.LoadChildren(ref db);
|
||||
chld = db.children;
|
||||
}
|
||||
MyROFSTLookup.LoadChildren(ref db);
|
||||
chld = db.children;
|
||||
}
|
||||
else if (tn.Tag is ROFSTLookup.rochild)
|
||||
{
|
||||
{
|
||||
ROFSTLookup.rochild ch = (ROFSTLookup.rochild)tn.Tag;
|
||||
MyROFSTLookup.LoadChildren(ref ch);
|
||||
chld = ch.children;
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("error - no type");
|
||||
return;
|
||||
}
|
||||
MyROFSTLookup.LoadChildren(ref ch);
|
||||
chld = ch.children;
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("error - no type");
|
||||
return;
|
||||
}
|
||||
|
||||
// if children, add dummy node
|
||||
// B2022-026 RO Memory Reduction code - need to check length
|
||||
if (chld != null && chld.Length > 0)
|
||||
// if children, add dummy node
|
||||
// B2022-026 RO Memory Reduction code - need to check length
|
||||
if (chld != null && chld.Length > 0)
|
||||
{
|
||||
ProgressBar_Initialize(chld.Length, tn.Text);
|
||||
|
||||
@@ -1533,11 +1531,11 @@ namespace Volian.Controls.Library
|
||||
ProgressBar_SetValue(i);
|
||||
DevComponents.AdvTree.Node tmp = null;
|
||||
|
||||
ROFSTLookup.rochild roc = chld[i];
|
||||
ROFSTLookup.rochild roc = chld[i];
|
||||
|
||||
// if this is a group, i.e. type 0, add a dummy node
|
||||
// B2022-026 RO Memory Reduction code - check children length
|
||||
if (roc.type == 0 && !MyROFSTLookup.HasChildren(ref roc))
|
||||
// if this is a group, i.e. type 0, add a dummy node
|
||||
// B2022-026 RO Memory Reduction code - check children length
|
||||
if (roc.type == 0 && !MyROFSTLookup.HasChildren(ref roc))
|
||||
{
|
||||
continue; // Ignore: Junk Scenario
|
||||
}
|
||||
@@ -1556,33 +1554,33 @@ namespace Volian.Controls.Library
|
||||
}
|
||||
|
||||
|
||||
if (roc.value == null)
|
||||
{
|
||||
if (roc.value == null)
|
||||
{
|
||||
tmp = new DevComponents.AdvTree.Node(roc.title);
|
||||
tmp.Tag = roc;
|
||||
|
||||
int index = FindIndex(tn.Nodes, tmp.Text);
|
||||
tn.Nodes.Insert(index, tmp);
|
||||
int index = FindIndex(tn.Nodes, tmp.Text);
|
||||
tn.Nodes.Insert(index, tmp);
|
||||
|
||||
DevComponents.AdvTree.Node sub = new DevComponents.AdvTree.Node(DummyNodeText);
|
||||
tmp.Nodes.Add(sub);
|
||||
}
|
||||
else
|
||||
{
|
||||
DevComponents.AdvTree.Node sub = new DevComponents.AdvTree.Node(DummyNodeText);
|
||||
tmp.Nodes.Add(sub);
|
||||
}
|
||||
else
|
||||
{
|
||||
tmp = new DevComponents.AdvTree.Node(roc.title);
|
||||
tmp.Tag = roc;
|
||||
|
||||
if (roc.roid.Length == 16)
|
||||
{
|
||||
tn.Nodes.Add(tmp);
|
||||
}
|
||||
else
|
||||
{
|
||||
int index = FindIndex(tn.Nodes, tmp.Text);
|
||||
tn.Nodes.Insert(index, tmp);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (roc.roid.Length == 16)
|
||||
{
|
||||
tn.Nodes.Add(tmp);
|
||||
}
|
||||
else
|
||||
{
|
||||
int index = FindIndex(tn.Nodes, tmp.Text);
|
||||
tn.Nodes.Insert(index, tmp);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ProgressBar_Clear();
|
||||
@@ -1611,18 +1609,18 @@ namespace Volian.Controls.Library
|
||||
cbxFndUnLnkROVals.Enabled = false;
|
||||
}
|
||||
else if (cmboTreeROs.SelectedNode.Tag is ROFSTLookup.rochild)
|
||||
{
|
||||
{
|
||||
ROFSTLookup.rochild ro = (ROFSTLookup.rochild)cmboTreeROs.SelectedNode.Tag;
|
||||
// B2022-026 RO Memory Reduction code - check children length
|
||||
cbxFndUnLnkROVals.Enabled = (ro.children == null || ro.children.Length <= 0);
|
||||
}
|
||||
// B2022-026 RO Memory Reduction code - check children length
|
||||
cbxFndUnLnkROVals.Enabled = (ro.children == null || ro.children.Length <= 0);
|
||||
}
|
||||
|
||||
if (!cbxFndUnLnkROVals.Enabled)
|
||||
if (!cbxFndUnLnkROVals.Enabled)
|
||||
cbxFndUnLnkROVals.Checked = false;
|
||||
}
|
||||
|
||||
private void gpFindROs_EnabledChanged(object sender, EventArgs e)
|
||||
{
|
||||
private void gpFindROs_EnabledChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (gpFindROs.Enabled)
|
||||
gpFindROs.Style.BackColor = Color.Yellow;
|
||||
else
|
||||
@@ -1826,24 +1824,24 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
ListBoxItem lbi = sender as ListBoxItem;
|
||||
if (lbi != null)
|
||||
{
|
||||
ItemBindingData ibd = lbi.Tag as ItemBindingData;
|
||||
{
|
||||
ItemBindingData ibd = lbi.Tag as ItemBindingData;
|
||||
ItemInfo ii = ibd.DataItem as ItemInfo;
|
||||
bool allowNonAdmin = IncTranCvtPerm();
|
||||
bool allowNonAdmin = IncTranCvtPerm();
|
||||
if (lbi.CheckState == CheckState.Checked && ii != null)
|
||||
{
|
||||
if (!allowNonAdmin && !UserInfo.CanEdit(MyUserInfo, ii.MyDocVersion))
|
||||
{
|
||||
FlexibleMessageBox.Show("You do not have permission to edit the procedure, section, or step.",
|
||||
"Convert Transition to Text", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
lbi.CheckState = CheckState.Unchecked;
|
||||
}
|
||||
}
|
||||
// B2021-018: use the CheckedItems.Count on the list box for the search results for
|
||||
// incoming transitions to determine whether to enable the convert selected to text:
|
||||
btnTranCvtSelToTxt.Enabled = (lbSrchResultsIncTrans.CheckedItems.Count > 0);
|
||||
}
|
||||
}
|
||||
{
|
||||
if (!allowNonAdmin && !UserInfo.CanEdit(MyUserInfo, ii.MyDocVersion))
|
||||
{
|
||||
FlexibleMessageBox.Show("You do not have permission to edit the procedure, section, or step.",
|
||||
"Convert Transition to Text", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
lbi.CheckState = CheckState.Unchecked;
|
||||
}
|
||||
}
|
||||
// B2021-018: use the CheckedItems.Count on the list box for the search results for
|
||||
// incoming transitions to determine whether to enable the convert selected to text:
|
||||
btnTranCvtSelToTxt.Enabled = (lbSrchResultsIncTrans.CheckedItems.Count > 0);
|
||||
}
|
||||
}
|
||||
|
||||
private void GrpPanSearchResults_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
|
||||
{
|
||||
@@ -2186,8 +2184,8 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
docVersionList += sep + dvi.VersionID.ToString();
|
||||
sep = ",";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// B2018-134 to search specifically for Outside Transitions, set docVeronList to empty string so that all procedure sets are considered
|
||||
if (cbxTranCategory.SelectedItem.ToString() == "Outside")
|
||||
docVersionList = string.Empty;
|
||||
@@ -2449,8 +2447,8 @@ namespace Volian.Controls.Library
|
||||
}
|
||||
}
|
||||
|
||||
// if the selected folder has a docversion, handle it:
|
||||
if (n.Tag != SelectAllProcedureSetsText)
|
||||
// if the selected folder has a docversion, handle it:
|
||||
if (n.Tag != SelectAllProcedureSetsText)
|
||||
{
|
||||
FolderInfo fi = (FolderInfo)n.Tag;
|
||||
RefreshLstCheckedDocVersions();
|
||||
@@ -2569,7 +2567,7 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
Node newnode = new DevComponents.AdvTree.Node();
|
||||
newnode.Text = str;
|
||||
advTreeStepTypes.Nodes.Add(newnode);
|
||||
advTreeStepTypes.Nodes.Add(newnode);
|
||||
}
|
||||
buildStepTypePannelTitle();
|
||||
}
|
||||
@@ -2658,16 +2656,16 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
vid = vid.IndexOf(",") < 0 ? vid : vid.Substring(0, cbxTranVersion.Tag.ToString().IndexOf(","));
|
||||
|
||||
DocVersionInfo dvi = DocVersionInfo.Get(int.Parse(vid));
|
||||
TransTypeList ttl = dvi.ActiveFormat.PlantFormat.FormatData.TransData.TransTypeList;
|
||||
DocVersionInfo dvi = DocVersionInfo.Get(int.Parse(vid));
|
||||
TransTypeList ttl = dvi.ActiveFormat.PlantFormat.FormatData.TransData.TransTypeList;
|
||||
|
||||
cbxTranFormat.Items.Clear();
|
||||
cbxTranFormat.Items.Add("All");
|
||||
|
||||
for (int i = 0; i < ttl.MaxIndex; i++)
|
||||
{
|
||||
cbxTranFormat.Items.Add(new TransItem(ttl[i].TransMenu.Replace("?.", string.Empty), ttl[i].TransFormat.Replace("?.", string.Empty)));
|
||||
}
|
||||
for (int i = 0; i < ttl.MaxIndex; i++)
|
||||
{
|
||||
cbxTranFormat.Items.Add(new TransItem(ttl[i].TransMenu.Replace("?.", string.Empty), ttl[i].TransFormat.Replace("?.", string.Empty)));
|
||||
}
|
||||
|
||||
cbxTranFormat.SelectedIndex = 0;
|
||||
cbxTranCategory.Items.Clear();
|
||||
@@ -3299,7 +3297,7 @@ namespace Volian.Controls.Library
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
{
|
||||
FlexibleMessageBox.Show("An error occurred while reading the xml file.\r\n\r\nThis can happen when the file selected for the Load is not saved\r\n" +
|
||||
"from a PROMS Search or if some of the steps no longer exist.", "Search Load Failed", MessageBoxButtons.OK);
|
||||
}
|
||||
@@ -3476,9 +3474,9 @@ namespace Volian.Controls.Library
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void btnCopySearchResults_Click(object sender, EventArgs e)
|
||||
private void btnCopySearchResults_Click(object sender, EventArgs e)
|
||||
{
|
||||
ICollection<ItemInfo> myList = lbSrchResults.DataSource as ICollection<ItemInfo>;
|
||||
if (tabSearchTypes.SelectedTab == tabSearchTypes.Tabs[4]) myList = lbSrchResultsIncTrans.DataSource as ICollection<ItemInfo>;
|
||||
@@ -3660,7 +3658,7 @@ namespace Volian.Controls.Library
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
#endregion
|
||||
|
||||
public delegate void DisplaySearchEvent(object sender, DisplaySearchEventArgs args);
|
||||
public delegate void DisplaySearchEvent(object sender, DisplaySearchEventArgs args);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user