Compare commits

..

49 Commits

Author SHA1 Message Date
f3309e4a40 B2025-007 RO Editor – RO Figure Default File extension 2025-01-23 11:02:15 -05:00
8fa059c186 Merge pull request 'C2025-007 ROEditor - PROMPT to Confirm Deletion' (#494) from C2025-007 into Development
good for testing phase
2025-01-22 13:31:24 -05:00
96e61aea2b C2025-007 ROEditor - PROMPT to Confirm Deletion
When deleting a group or an RO in the RO Editor, consider adding a prompte for the user asking if they are sure they want to delete the ro/group.  Perhaps also add text to the message saying they may want to consider creating a zip file of the RO folder prior to deleting ROs/groups.
2025-01-22 12:45:27 -05:00
565779c9c8 Merge pull request 'B2025-009 RO Editor - Disable the Save As button if it is a new RO that has not been saved yet.' (#493) from B2025-009 into Development
change ready for testing
2025-01-22 12:01:04 -05:00
b4ccd682c3 B2025-009 RO Editor - Disable the Save As button if it is a new RO that has not been saved yet.
Adding a new RO:  when you click Save As, you get the Problem Saving Data message box. Should only be able to “Save As” if it has already been previously saved.
2025-01-22 11:57:57 -05:00
dba1331556 Merge pull request 'B2025-004 Remove dependency on stored procedure (GetDisplayTabdata).' (#492) from B2025-004_v2 into Development
changes good for testing phase
2025-01-22 10:39:24 -05:00
8803ae2274 B2025-004 Remove dependency on stored procedure (GetDisplayTabdata).
-- Found during testing that needed a few additional items that needed to not create hard errors
2025-01-22 10:35:44 -05:00
69d09b7fc2 Merge pull request 'B2025-004 Remove dependency on stored procedure (GetDisplayTabdata).' (#491) from B2025-004 into Development
good for testing phase
2025-01-22 08:25:26 -05:00
8ddfc8654e Merge pull request 'C2025-006_B2025-006 - C2025-006 RO Editor Figure wording update, B2025-006 RO Editor Figure Height or Width warning message update' (#490) from C2025-006_B2025-006 into Development
good for testing phase
2025-01-22 08:19:05 -05:00
7a3243e882 B2025-004 Remove dependency on stored procedure (GetDisplayTabdata). 2025-01-22 06:59:03 -05:00
4fc3b89e06 C2025-006_B2025-006 - C2025-006 RO Editor Figure wording update, B2025-006 RO Editor Figure Height or Width warning message update 2025-01-22 06:26:48 -05:00
a17419ac12 Merge pull request 'C2025-003 Enhanced Copy/Paste Upgrade - Add ability to copy/paste over enhanced master documents' (#487) from C2025-003 into Development
ready for testing phase
2025-01-21 10:48:00 -05:00
88905132e7 Merge branch 'Development' of https://git.volian.com/Volian/SourceCode into Development 2025-01-21 10:40:06 -05:00
111bed58d6 Merge pull request 'B2025-003 Chronology/Summary of Changes Reports' (#488) from B2025-003 into Development
Reviewed-on: #488

due to GIT restore from backup
2025-01-21 10:31:21 -05:00
bed61324d6 C2025-003 Enhanced Copy/Paste Upgrade - Add ability to copy/paste over enhanced master documents 2025-01-20 14:43:54 -05:00
1a889352b8 Merge pull request 'B2025-003 Chronology/Summary of Changes Reports' (#485) from B2025-003 into Development
ready for testing phase
2025-01-09 11:14:22 -05:00
5bba126a36 B2025-003 Chronology/Summary of Changes Reports 2025-01-09 11:08:30 -05:00
e01b955d46 Merge pull request 'F2024-088 - Per customer’s request, removed “Using”, “Faulted”, “Intact”, “Normal”, “On”, “Off”, “Locally”, “Manually”, “Fall”, “Rise”, and “Ruptured” from the ReplaceWords list' (#484) from F2024-088_FNP into Development
Format only change.  ready for testing phase
2024-12-17 09:48:30 -05:00
e3431b0e1e F2024-088 - Per customer’s request, removed “Using”, “Faulted”, “Intact”, “Normal”, “On”, “Off”, “Locally”, “Manually”, “Fall”, “Rise”, and “Ruptured” from the ReplaceWords list 2024-12-17 09:46:40 -05:00
b6d646b910 Merge pull request 'F2024-086 In the PROMS Manual format in the Attachments (Step Editor) With Border section type, the page number needs centered horizontally on the page (it's located between the section number and section title.' (#483) from F2024-086 into Development
good for testing phase
2024-12-12 08:44:08 -05:00
bb679a2790 F2024-086 In the PROMS Manual format in the Attachments (Step Editor) With Border section type, the page number needs centered horizontally on the page (it's located between the section number and section title. 2024-12-12 08:36:29 -05:00
e3af0a6426 Merge pull request 'B2024-094 - Carats (as Deltas) print as question marks in tables when unit <u> is used in RO Definition Value' (#482) from B2024-094 into Development
good for testing phase
2024-12-12 08:33:12 -05:00
b2108b9e5f B2024-094 - Carats (as Deltas) print as question marks in tables when unit <u> is used in RO Definition Value 2024-12-11 15:35:29 -05:00
d100002107 Merge pull request 'F2024-087 - Fixes printing sub-sections that go from continuous (single column sub-sections) to a separate (two column sub-section) so that the two column sub-section starts at the top of the page.' (#480) from F2024-097_Farley into Development
format only - good for testing phase
2024-12-11 11:14:44 -05:00
afd61303c5 F2024-087 - Fixes printing sub-sections that go from continuous (single column sub-sections) to a separate (two column sub-section) so that the two column sub-section starts at the top of the page. 2024-12-11 11:07:30 -05:00
d1c3e81a38 Merge pull request 'B2024-096 In the Ro Editor, allow <u> for a field name in the Referenced object Definition Return Value.' (#479) from B2024-096 into Development
good for testing phase
2024-12-10 09:00:22 -05:00
46419edfee B2024-096 In the Ro Editor, allow <u> for a field name in the Referenced object Definition Return Value. 2024-12-10 08:36:30 -05:00
81c91d7866 Merge pull request 'C2024-037 Enhanced Print Section so that it can now be utilized for Sections that contain subsections.' (#478) from C2024-037 into Development
good for testing phase
2024-12-09 16:07:53 -05:00
34ee092919 C2024-037 Enhanced Print Section so that it can now be utilized for Sections that contain subsections.
Farley uses subsections in some of their AOP procedures.   The "Print Section" feature did not work for these sections - instead returning a message as if the pdf was already open.
2024-12-09 15:24:34 -05:00
d07344a88a Merge pull request 'B2024-095 In Admin Tools, added minimum heights to the left side panels above selecting items in the trees. Previously when the windows were resized the trees would overlap with buttons and notes.' (#477) from B2024-095 into Development
good for testing phase
2024-12-09 10:34:58 -05:00
66ae1c632b B2024-095 In Admin Tools, added minimum heights to the left side panels above selecting items in the trees. Previously when the windows were resized the trees would overlap with buttons and notes. 2024-12-09 08:00:15 -05:00
7cc7b71edd Merge pull request 'B2024-067 Deleting Folders through Admin Tools missing some folders' (#476) from B2024-067 into Development
ready for testing phase
2024-12-05 15:51:32 -05:00
a223dfd463 B2024-067 Deleting Folders through Admin Tools missing some folders 2024-12-05 15:27:46 -05:00
61e8bc5ffa Merge pull request 'B2024-003_B2023-113_B2024-093 Updating RO Values inside a text Grid, adding a caret and/or dash into the RO value and then updating RO values changed to question marks in the UI. This also fixes restoring a deleted RO table column that has a hyphen in …' (#475) from B2024-003_B2023-113_B2024-093 into Development
good for testing phase
2024-12-03 15:22:47 -05:00
bba52a736a B2024-003_B2023-113_B2024-093 Updating RO Values inside a text Grid, adding a caret and/or dash into the RO value and then updating RO values changed to question marks in the UI. This also fixes restoring a deleted RO table column that has a hyphen in it. Also, Dashes/Hyphens and Carets in RO TABLES were behaving differently in different data sets due to different fonts – this fixes so that carats when ConvertCaretToDelta is set in the format, will properly restore/store as Deltas. 2024-12-03 15:12:04 -05:00
c5d575a019 Merge pull request 'F2019-011 Wide step tabs were printing into text. Shifted Left Justification slightly (roughly 2 characters) to account for these / this spacing.' (#474) from F2019-011 into Development
ok for testing phase
2024-11-27 09:28:22 -05:00
08f8441aca F2019-011 Wide step tabs were printing into text. Shifted Left Justification slightly (roughly 2 characters) to account for these / this spacing. 2024-11-27 09:19:42 -05:00
6bf116cbef Merge pull request 'B2023-095_U2022-004 - When Copy/Pasting Symbols, some of the symbols paste in an incorrect font' (#473) from B2023-095_U2022-004 into Development
good for testing phase
2024-11-25 14:51:35 -05:00
cc96b3fa5b B2023-095_U2022-004 - When Copy/Pasting Symbols, some of the symbols paste in an incorrect font 2024-11-25 14:44:50 -05:00
b489452bd1 Merge pull request 'B2023-029 - Added format flag to Continuous Action Note and Continuous Action Caution so that the check box to include on the generated Continuous Action Summary is automatically checked' (#472) from B2023-039_bwd_byr into Development
format only change.
Ready for testing phase
2024-11-22 14:56:17 -05:00
fa4e3997e4 B2023-029 - Added format flag to Continuous Action Note and Continuous Action Caution so that the check box to include on the generated Continuous Action Summary is automatically checked 2024-11-22 14:55:12 -05:00
7659cbbee6 Merge pull request 'B2023-074 - Fixed printing a section title, via the section properties check box, on a two-column step editor section.' (#471) from General_Debugging into Development
minor code change - no review needed.
OK for testing phase
2024-11-22 10:20:22 -05:00
548b845f62 B2023-074 - Fixed printing a section title, via the section properties check box, on a two-column step editor section. 2024-11-22 10:10:57 -05:00
4f733656a0 Merge pull request 'F2024-085 - Added a Conditional Time Critical Action high level step type to the EOP and AOP formats' (#470) from F2024-085_BVPS_ContTimeAction into Development
format only changes
2024-11-20 09:12:29 -05:00
f4ef244a10 F2024-085 - Added a Conditional Time Critical Action high level step type to the EOP and AOP formats 2024-11-20 09:10:46 -05:00
839000d48c Merge pull request 'B2024-003_ B2023-113 Updating RO Values inside a text Grid, adding a caret and/or dash into the RO value and then updating RO values changed to question marks in the UI. This also fixes restoring a deleted RO table column that has a hyphen in it.' (#469) from B2024-003_B2023_113_GIT into Development
good for testing phase
2024-11-18 16:24:13 -05:00
bcb8f419ee B2024-003_ B2023-113 Updating RO Values inside a text Grid, adding a caret and/or dash into the RO value and then updating RO values changed to question marks in the UI. This also fixes restoring a deleted RO table column that has a hyphen in it. 2024-11-18 16:17:07 -05:00
059c399240 Merge pull request 'B2021-094 - Fixed shortcut keystroke usage for the GoTo button <Shift><Ctrl><G> when used multiple times' (#468) from B2021-094_keystroke4GoTo into Development
Looks good - ready for QA
2024-11-18 14:59:13 -05:00
13b3cd6bc4 B2021-094 - Fixed shortcut keystroke usage for the GoTo button <Shift><Ctrl><G> when used multiple times 2024-11-18 14:54:34 -05:00
34 changed files with 1818 additions and 1794 deletions

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.

Binary file not shown.

View File

@@ -746,6 +746,7 @@ namespace ROEditor
break;
}
}
if (inusename == "u") found = true; //to handle unit designation
if (found == false)syntax(inusename+" invalid field name",strt,where);
// used to have procini def stuff here.
start=where+1;

View File

@@ -504,7 +504,6 @@ namespace ROEditor
// if a specific RO was passed in. Load the xml tree from it to the root & then
// edit it through the ctlXmledit.
// from the input tbl string, get a table name.
ArrayList levelRecids = new ArrayList();
int itbl = System.Convert.ToInt32(specificro.Substring(0,4),16);
string stbl = System.Convert.ToString(itbl,10);
@@ -594,7 +593,6 @@ namespace ROEditor
return;
}
roTreeView.SelectedNode = trnd;
}
protected void roTreeView_AfterSelect (object sender,
@@ -676,12 +674,14 @@ namespace ROEditor
//if Ctrl/Shift Key is held down
if (ROsSelectedforMultiMove == null)
ROsSelectedforMultiMove = new List<TreeNode>();
if ((Control.ModifierKeys & Keys.Shift) != 0)
// B2021-094 added check that Control and Alt keys were not pressed with shift key
// if user does the <Ctrl><Shift><G> keystroke (Goto selected RO from step editor)
// but only lifts up on the G key, it was dropping down into this code below
// and getting a null reference error upon initial entry in to the RO Editor
if ((Control.ModifierKeys & Keys.Shift) != 0 && (Control.ModifierKeys & Keys.Control) == 0 && (Control.ModifierKeys & Keys.Alt) == 0)
{
//if shift is held down, clear existing nodes then add the range of nodes
roTreeView_ClearAllMultiSelect();
if (PreviousNode.Index < CurrentNode.Index)
{
//Traverse Down
@@ -1154,7 +1154,10 @@ namespace ROEditor
tbtnCancel.Enabled = true;
tbtnSave.Enabled = true;
tbtnRestore.Enabled = true;
tbtnSaveAs.Enabled = true;
if (newone == null)
{ tbtnSaveAs.Enabled = true; }
else
{ tbtnSaveAs.Enabled = false; }
}
menuROSave.Enabled = tbtnSave.Enabled;
}
@@ -1170,7 +1173,10 @@ namespace ROEditor
tbtnSave.Enabled = true;
tbtnRestore.Enabled = true;
tbtnSaveAs.Enabled = true;
if (newone == null)
{ tbtnSaveAs.Enabled = true; }
else
{ tbtnSaveAs.Enabled = false; }
tbtnCancel.Enabled = true;
menuROSave.Enabled = tbtnSave.Enabled;
//B2021-080 set the mysavexml flag to true to ensure the text change will be saved
@@ -2392,20 +2398,26 @@ namespace ROEditor
*/
private void menuRODelete_Click(object sender, System.EventArgs e)
{
bool success=false;
XmlNode nd = (XmlNode) roTreeView.SelectedNode.Tag;
if (nd.ParentNode.Name == "RO_Root")
success = myrodb.RODB_DeleteGroup(nd,null,null);
else
success = myrodb.RODB_DeleteRO(nd);
if (success == true)
string msgstr = "It is recommended that you may wish to create a backup zip of your RO folder prior to performing deletions.\n\nAre you sure you wish to delete the selected RO/RO Group?";
DialogResult AnswerYN = MessageBox.Show(msgstr, "Deleting ROs/RO Group", MessageBoxButtons.YesNo);
if (AnswerYN == DialogResult.Yes)
{
// remove from xml tree & the tree control
XmlNode parent = nd.ParentNode;
parent.RemoveChild(nd);
updateRoListView(roTreeView.SelectedNode.Parent);
roTreeView.SelectedNode.Remove();
roTreeView.Refresh();
bool success = false;
XmlNode nd = (XmlNode)roTreeView.SelectedNode.Tag;
if (nd.ParentNode.Name == "RO_Root")
success = myrodb.RODB_DeleteGroup(nd, null, null);
else
success = myrodb.RODB_DeleteRO(nd);
if (success == true)
{
// remove from xml tree & the tree control
XmlNode parent = nd.ParentNode;
parent.RemoveChild(nd);
updateRoListView(roTreeView.SelectedNode.Parent);
roTreeView.SelectedNode.Remove();
roTreeView.Refresh();
}
}
}

View File

@@ -324,29 +324,17 @@ namespace ctlXMLEditLib
string ROINI = Directory.GetCurrentDirectory()+ "\\ROAPP.INI";
// Get the default file extension for graphic files
// DefaultGraphicFileExtension = TheIniFile.GetINIKeyValueStr("ROApp","Extention","",5,"ROAPP.INI");
// DefaultGraphicFileExtension = TheIniFile.GetINIKeyValueStr("ROApp","Extention","",5,"ROAPP.INI");
// Bug fix: B2006-025
// needed to pass the full path of ROAPP.INI
// B2025-007 only use the default file location (remove 16 bit PROMS location)
IniReader in1 = new IniReader(ROINI);
DefaultGraphicFileExtension = in1.ReadString("ROApp","Extention","");
if (DefaultGraphicFileExtension.Equals(""))
{
string ApplPathUp = ApplicationPath.ToUpper();
int idx = ApplPathUp.IndexOf("VE-PROMS.NET\\BIN");
if (idx >= 0)
{
string PromsINI = ApplicationPath.Substring(0, idx);
PromsINI += "VE-PROMS\\VEPROMS.INI";
IniReader in2 = new IniReader(PromsINI);
DefaultGraphicFileExtension = in2.ReadString("Graphics", "defaultext", ".TIF");
}
else
DefaultGraphicFileExtension = ".TIF";
}
// if (File.Exists(PromsINI))
// DefaultGraphicFileExtension = TheIniFile.GetINIKeyValueStr("Graphics","defaultext",".TIF",5,PromsINI);
// if (File.Exists("ROAPP.INI"))
// DefaultGraphicFileExtension = TheIniFile.GetINIKeyValueStr("ROApp","Extention",".TIF",5,"ROAPP.INI");
DefaultGraphicFileExtension = in1.ReadString("ROApp", "Extention");
if (string.IsNullOrEmpty(DefaultGraphicFileExtension)) DefaultGraphicFileExtension = in1.ReadString("ROApp", "Extension", ".TIF");
// if (File.Exists(PromsINI))
// DefaultGraphicFileExtension = TheIniFile.GetINIKeyValueStr("Graphics","defaultext",".TIF",5,PromsINI);
// if (File.Exists("ROAPP.INI"))
// DefaultGraphicFileExtension = TheIniFile.GetINIKeyValueStr("ROApp","Extention",".TIF",5,"ROAPP.INI");
if (!DefaultGraphicFileExtension.StartsWith("."))
DefaultGraphicFileExtension = "." + DefaultGraphicFileExtension;
@@ -1129,7 +1117,7 @@ namespace ctlXMLEditLib
mylabel.BackColor = chlbckcolor; // PC Applic fields are shaded blue otherwise backcolor is transparent
mylabel.Location = new Point(screenx+indent, screeny);
mylabel.Name = (pcChildIdx == 0) ? CvtUserFldToFld(element.Name) : CvtUserFldToFld(pcChildFldName);
mylabel.Text = (applicLabel.Length > 0) ? applicLabel : CvtFldToUserFld(element.Name); // C2021-026 applicLabel is the P/C Child name
mylabel.Text = (applicLabel.Length > 0) ? applicLabel : CvtFldToUserFld(element.Name).Replace("Image_",""); // C2021-026 applicLabel is the P/C Child name
mylabel.AutoSize = true;
Controls.Add(mylabel);
// add 3 onto screeny so that textbox is slightly below label.
@@ -1484,12 +1472,15 @@ namespace ctlXMLEditLib
if (fnamebox.Text != "" && fnamebox.Modified == true)
{
FileInfo ifi = new FileInfo(fnamebox.Text);
if (ifi.Exists == false)
if (ifi.Exists == false)
{
MessageBoxButtons buttons = MessageBoxButtons.OK;
MessageBox.Show( "File does not exist.",
"File Input Error", buttons);
return;
FileInfo ifi2 = new FileInfo(fnamebox.Text + DefaultGraphicFileExtension);
if (!ifi2.Exists)
{
MessageBox.Show("File does not exist.",
"File Input Error", MessageBoxButtons.OK);
return;
}
}
bool ok = ValidGraphicsFile(fnamebox.Text);
if (ok != true)
@@ -1696,7 +1687,7 @@ namespace ctlXMLEditLib
}
catch (Exception ee)
{
MessageBox.Show("Invalid Height Input",ee.ToString());
MessageBox.Show("The Height and Width cannot be empty fields. Enter a number in either field and the other will automatically adjust to a proportional size.", "Invalid Height Input");
}
}
}
@@ -1713,7 +1704,7 @@ namespace ctlXMLEditLib
}
catch (Exception ee)
{
MessageBox.Show("Invalid Width Input", ee.ToString());
MessageBox.Show("The Height and Width cannot be empty fields. Enter a number in either field and the other will automatically adjust to a proportional size.", "Invalid Width Input");
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -178,6 +178,8 @@ namespace VEPROMS
myDocVersions.Clear();
FolderInfo fi = FolderInfo.GetTop();
fi.RefreshChildFolders();
if (fi.ChildFolderCount > 0)
{
TreeNode tn = new TreeNode(fi.Name);
@@ -233,7 +235,7 @@ namespace VEPROMS
loadedWorkingDraft = true;
}
if (tn.Parent != null && !loadedWorkingDraft)
if (tn.Parent != null && !loadedWorkingDraft && fi.FolderDocVersionCount == 0)
{
tn.Remove();
}

View File

@@ -183,19 +183,19 @@ It is recommended that this be done during off hours.
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="warningBox5.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAplJREFUOE+N
k11IU2Ecxv9zouK8CULrzo8SU3QKaSYmOJ2uFL8SK4igEIok6qKUwggySTShC41CRiiGdWNfYBcVWiGl
FqN0lh+UTaekzuWcuu2c9316nSdKLPEHz817/s/zPv9zOPQ/nlVQEGulF3ILPe+8SIHK8eYR5lusLwHy
Oy08RqpXjjfHVCMlsydbGbekg4/r4HmwRbLWUZzyeGNqD5NK1O5lw8L8NQHckgh5SAdXA3UqIxuzZKSj
8ssI8Il9wMQeYDoVfD4HrsdhsNdRgTL2b4yl5Ce1qL+xcQOWxpKxMzwAMVEayIv7IU8XwVnv8+XuEfJV
xtfjMlKZ/CYG3JYJ96wOPj6EoCBfMCkfnJdguSMG89eoVBlfS+tJCpCafa1stgBYzAZbzoFGo0ZIiD84
KwJ350P+UQxHtfr7vUPkp9j+4GqiM1K3FtyVB8h5wlSI4GB/RIQHgjtzwWaywMb1WHwYg7lKOq3YVrlz
jPw8RrWFOUoAJhpwcaNciNDQQMRGB4FNpIMNp4B93A2pXw/7ZbWlufCvFguNdNzzOta7J5S6fP4AdkVq
kKQVAQNJYO8TwHq0kD8kwdkWhZkLdMJrrsonlfu2yszmSsA9Bat1p0XdsTTcvxmJtpowyL1ar/m3PKYM
2MpVgzcySUWTdWRwd+wAXzoo3r5B7CnqDqVg+lW89yuoVARrR/SaANm0F46mUFjOUjYtN9BTaVQYJzPA
RlPB+hNF3XjvP3C9bDuqTm2D9DZuTcCKXN1psJ2ndhGgnpJGciENGyB9zoJk1kMezFonySw0oIf0KVOs
oIO7L3MlYITstVTsrKNHCzXU5aimnvmrZPp5hfrtlWS2X6LBuQoatJWTWQz3C5mEeoS6hNqt5yj7FysJ
zJwL4b/EAAAAAElFTkSuQmCC
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAp5JREFUOE+F
k11Ik1Ecxv9zouJ2E4TWnR8V5tAppJmYsLnNlaLTxAoiKIQiibpYSmEEmSSa0IVGISMUw7rpE+yiQiuk
/IhROssPyjanpL4udeq29z3nCdcH+Wb1g+fq/zzP+R8Oh+gvPK4kNWujp1IrPek8S5Hy+X9hbXSN9aVC
eq1FwEYN8vk/mWqiDPZwI+NOHbhLj8CdDaK7npLlvnWpO0AKqZV62YgO/GMquDMN0rAevkbqlHvXZdlG
h6Rn8eATu4GJncB0Fvh8HnwPYuGpJ4vcvwZbGYWJrcpPzGXG8ngGtsZFQJOggrS0B9J0MbwNIR9uHqRQ
ee4XPhuVSy814IIB/lk9QkIIanUomFgIzkux0qHB/CUqk+eCtB2jCLEl1M1mLcBSLthKHlQqJaKjw8FZ
Mbi/ENKXEizUKD/f2k9h8jz5mumk2K0F9xUAUgE4K0JUVDji4yLBvflgMyYwlxFL9zSYq6ITa8I3DlNY
wKZ0soVSgFkAXgwuFSEmJhJJiWqwCR3YSCbY2x0QB4zwnFc6W4p+22KxiY4EXiQF74kf6/L5vdi+TYV0
rRpsMB2sPxWsRwvpTTq87QmYOUNHg+HqQlL4ryscbK4UPGD5vu60CWw8G7evbkN7bSykXm0w/FMBew6E
CsXQFQMpaLKezP6OLeDL+8AFM5hLBzaciennKcFXUCgI7o7ENQWSfRcWmmPgPEW5tNJIj8QxM9hkDthY
FthAGlh/SvAPXC7fjOrjmyC+Sl5TsCpfdzYEK92llUbllDiaD3HEDPG9CaLDCGnI9IdEhwnioBHiOwMC
dj38fYbVglHy1FGJt57uL9ZS10IN9cxfJPvXCzTgqSKH5xwNzVXSkFBBDsFKA4KV7IKVegQrda2e7j5N
ud8AKwnMnBpmYFAAAAAASUVORK5CYII=
</value>
</data>
<data name="swUpdateROVals.SuperTooltip" xml:space="preserve">
@@ -230,36 +230,36 @@ If more than one procedure is selected, it is recommended that this be performed
</data>
<data name="warningBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAplJREFUOE+N
k11IU2Ecxv9zouK8CULrzo8SU3QKaSYmOJ2uFL8SK4igEIok6qKUwggySTShC41CRiiGdWNfYBcVWiGl
FqN0lh+UTaekzuWcuu2c9316nSdKLPEHz817/s/zPv9zOPQ/nlVQEGulF3ILPe+8SIHK8eYR5lusLwHy
Oy08RqpXjjfHVCMlsydbGbekg4/r4HmwRbLWUZzyeGNqD5NK1O5lw8L8NQHckgh5SAdXA3UqIxuzZKSj
8ssI8Il9wMQeYDoVfD4HrsdhsNdRgTL2b4yl5Ce1qL+xcQOWxpKxMzwAMVEayIv7IU8XwVnv8+XuEfJV
xtfjMlKZ/CYG3JYJ96wOPj6EoCBfMCkfnJdguSMG89eoVBlfS+tJCpCafa1stgBYzAZbzoFGo0ZIiD84
KwJ350P+UQxHtfr7vUPkp9j+4GqiM1K3FtyVB8h5wlSI4GB/RIQHgjtzwWaywMb1WHwYg7lKOq3YVrlz
jPw8RrWFOUoAJhpwcaNciNDQQMRGB4FNpIMNp4B93A2pXw/7ZbWlufCvFguNdNzzOta7J5S6fP4AdkVq
kKQVAQNJYO8TwHq0kD8kwdkWhZkLdMJrrsonlfu2yszmSsA9Bat1p0XdsTTcvxmJtpowyL1ar/m3PKYM
2MpVgzcySUWTdWRwd+wAXzoo3r5B7CnqDqVg+lW89yuoVARrR/SaANm0F46mUFjOUjYtN9BTaVQYJzPA
RlPB+hNF3XjvP3C9bDuqTm2D9DZuTcCKXN1psJ2ndhGgnpJGciENGyB9zoJk1kMezFonySw0oIf0KVOs
oIO7L3MlYITstVTsrKNHCzXU5aimnvmrZPp5hfrtlWS2X6LBuQoatJWTWQz3C5mEeoS6hNqt5yj7FysJ
zJwL4b/EAAAAAElFTkSuQmCC
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAp5JREFUOE+F
k11Ik1Ecxv9zouJ2E4TWnR8V5tAppJmYsLnNlaLTxAoiKIQiibpYSmEEmSSa0IVGISMUw7rpE+yiQiuk
/IhROssPyjanpL4udeq29z3nCdcH+Wb1g+fq/zzP+R8Oh+gvPK4kNWujp1IrPek8S5Hy+X9hbXSN9aVC
eq1FwEYN8vk/mWqiDPZwI+NOHbhLj8CdDaK7npLlvnWpO0AKqZV62YgO/GMquDMN0rAevkbqlHvXZdlG
h6Rn8eATu4GJncB0Fvh8HnwPYuGpJ4vcvwZbGYWJrcpPzGXG8ngGtsZFQJOggrS0B9J0MbwNIR9uHqRQ
ee4XPhuVSy814IIB/lk9QkIIanUomFgIzkux0qHB/CUqk+eCtB2jCLEl1M1mLcBSLthKHlQqJaKjw8FZ
Mbi/ENKXEizUKD/f2k9h8jz5mumk2K0F9xUAUgE4K0JUVDji4yLBvflgMyYwlxFL9zSYq6ITa8I3DlNY
wKZ0soVSgFkAXgwuFSEmJhJJiWqwCR3YSCbY2x0QB4zwnFc6W4p+22KxiY4EXiQF74kf6/L5vdi+TYV0
rRpsMB2sPxWsRwvpTTq87QmYOUNHg+HqQlL4ryscbK4UPGD5vu60CWw8G7evbkN7bSykXm0w/FMBew6E
CsXQFQMpaLKezP6OLeDL+8AFM5hLBzaciennKcFXUCgI7o7ENQWSfRcWmmPgPEW5tNJIj8QxM9hkDthY
FthAGlh/SvAPXC7fjOrjmyC+Sl5TsCpfdzYEK92llUbllDiaD3HEDPG9CaLDCGnI9IdEhwnioBHiOwMC
dj38fYbVglHy1FGJt57uL9ZS10IN9cxfJPvXCzTgqSKH5xwNzVXSkFBBDsFKA4KV7IKVegQrda2e7j5N
ud8AKwnMnBpmYFAAAAAASUVORK5CYII=
</value>
</data>
<data name="warningBox3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAplJREFUOE+N
k11IU2Ecxv9zouK8CULrzo8SU3QKaSYmOJ2uFL8SK4igEIok6qKUwggySTShC41CRiiGdWNfYBcVWiGl
FqN0lh+UTaekzuWcuu2c9316nSdKLPEHz817/s/zPv9zOPQ/nlVQEGulF3ILPe+8SIHK8eYR5lusLwHy
Oy08RqpXjjfHVCMlsydbGbekg4/r4HmwRbLWUZzyeGNqD5NK1O5lw8L8NQHckgh5SAdXA3UqIxuzZKSj
8ssI8Il9wMQeYDoVfD4HrsdhsNdRgTL2b4yl5Ce1qL+xcQOWxpKxMzwAMVEayIv7IU8XwVnv8+XuEfJV
xtfjMlKZ/CYG3JYJ96wOPj6EoCBfMCkfnJdguSMG89eoVBlfS+tJCpCafa1stgBYzAZbzoFGo0ZIiD84
KwJ350P+UQxHtfr7vUPkp9j+4GqiM1K3FtyVB8h5wlSI4GB/RIQHgjtzwWaywMb1WHwYg7lKOq3YVrlz
jPw8RrWFOUoAJhpwcaNciNDQQMRGB4FNpIMNp4B93A2pXw/7ZbWlufCvFguNdNzzOta7J5S6fP4AdkVq
kKQVAQNJYO8TwHq0kD8kwdkWhZkLdMJrrsonlfu2yszmSsA9Bat1p0XdsTTcvxmJtpowyL1ar/m3PKYM
2MpVgzcySUWTdWRwd+wAXzoo3r5B7CnqDqVg+lW89yuoVARrR/SaANm0F46mUFjOUjYtN9BTaVQYJzPA
RlPB+hNF3XjvP3C9bDuqTm2D9DZuTcCKXN1psJ2ndhGgnpJGciENGyB9zoJk1kMezFonySw0oIf0KVOs
oIO7L3MlYITstVTsrKNHCzXU5aimnvmrZPp5hfrtlWS2X6LBuQoatJWTWQz3C5mEeoS6hNqt5yj7FysJ
zJwL4b/EAAAAAElFTkSuQmCC
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAp5JREFUOE+F
k11Ik1Ecxv9zouJ2E4TWnR8V5tAppJmYsLnNlaLTxAoiKIQiibpYSmEEmSSa0IVGISMUw7rpE+yiQiuk
/IhROssPyjanpL4udeq29z3nCdcH+Wb1g+fq/zzP+R8Oh+gvPK4kNWujp1IrPek8S5Hy+X9hbXSN9aVC
eq1FwEYN8vk/mWqiDPZwI+NOHbhLj8CdDaK7npLlvnWpO0AKqZV62YgO/GMquDMN0rAevkbqlHvXZdlG
h6Rn8eATu4GJncB0Fvh8HnwPYuGpJ4vcvwZbGYWJrcpPzGXG8ngGtsZFQJOggrS0B9J0MbwNIR9uHqRQ
ee4XPhuVSy814IIB/lk9QkIIanUomFgIzkux0qHB/CUqk+eCtB2jCLEl1M1mLcBSLthKHlQqJaKjw8FZ
Mbi/ENKXEizUKD/f2k9h8jz5mumk2K0F9xUAUgE4K0JUVDji4yLBvflgMyYwlxFL9zSYq6ITa8I3DlNY
wKZ0soVSgFkAXgwuFSEmJhJJiWqwCR3YSCbY2x0QB4zwnFc6W4p+22KxiY4EXiQF74kf6/L5vdi+TYV0
rRpsMB2sPxWsRwvpTTq87QmYOUNHg+HqQlL4ryscbK4UPGD5vu60CWw8G7evbkN7bSykXm0w/FMBew6E
CsXQFQMpaLKezP6OLeDL+8AFM5hLBzaciennKcFXUCgI7o7ENQWSfRcWmmPgPEW5tNJIj8QxM9hkDthY
FthAGlh/SvAPXC7fjOrjmyC+Sl5TsCpfdzYEK92llUbllDiaD3HEDPG9CaLDCGnI9IdEhwnioBHiOwMC
dj38fYbVglHy1FGJt57uL9ZS10IN9cxfJPvXCzTgqSKH5xwNzVXSkFBBDsFKA4KV7IKVegQrda2e7j5N
ud8AKwnMnBpmYFAAAAAASUVORK5CYII=
</value>
</data>
<data name="swCkObsoleteROData.SuperTooltip" xml:space="preserve">
@@ -324,36 +324,36 @@ This function will remove all of the saved attachment PDFS stored in the databas
</data>
<data name="warningBox4.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAplJREFUOE+N
k11IU2Ecxv9zouK8CULrzo8SU3QKaSYmOJ2uFL8SK4igEIok6qKUwggySTShC41CRiiGdWNfYBcVWiGl
FqN0lh+UTaekzuWcuu2c9316nSdKLPEHz817/s/zPv9zOPQ/nlVQEGulF3ILPe+8SIHK8eYR5lusLwHy
Oy08RqpXjjfHVCMlsydbGbekg4/r4HmwRbLWUZzyeGNqD5NK1O5lw8L8NQHckgh5SAdXA3UqIxuzZKSj
8ssI8Il9wMQeYDoVfD4HrsdhsNdRgTL2b4yl5Ce1qL+xcQOWxpKxMzwAMVEayIv7IU8XwVnv8+XuEfJV
xtfjMlKZ/CYG3JYJ96wOPj6EoCBfMCkfnJdguSMG89eoVBlfS+tJCpCafa1stgBYzAZbzoFGo0ZIiD84
KwJ350P+UQxHtfr7vUPkp9j+4GqiM1K3FtyVB8h5wlSI4GB/RIQHgjtzwWaywMb1WHwYg7lKOq3YVrlz
jPw8RrWFOUoAJhpwcaNciNDQQMRGB4FNpIMNp4B93A2pXw/7ZbWlufCvFguNdNzzOta7J5S6fP4AdkVq
kKQVAQNJYO8TwHq0kD8kwdkWhZkLdMJrrsonlfu2yszmSsA9Bat1p0XdsTTcvxmJtpowyL1ar/m3PKYM
2MpVgzcySUWTdWRwd+wAXzoo3r5B7CnqDqVg+lW89yuoVARrR/SaANm0F46mUFjOUjYtN9BTaVQYJzPA
RlPB+hNF3XjvP3C9bDuqTm2D9DZuTcCKXN1psJ2ndhGgnpJGciENGyB9zoJk1kMezFonySw0oIf0KVOs
oIO7L3MlYITstVTsrKNHCzXU5aimnvmrZPp5hfrtlWS2X6LBuQoatJWTWQz3C5mEeoS6hNqt5yj7FysJ
zJwL4b/EAAAAAElFTkSuQmCC
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAp5JREFUOE+F
k11Ik1Ecxv9zouJ2E4TWnR8V5tAppJmYsLnNlaLTxAoiKIQiibpYSmEEmSSa0IVGISMUw7rpE+yiQiuk
/IhROssPyjanpL4udeq29z3nCdcH+Wb1g+fq/zzP+R8Oh+gvPK4kNWujp1IrPek8S5Hy+X9hbXSN9aVC
eq1FwEYN8vk/mWqiDPZwI+NOHbhLj8CdDaK7npLlvnWpO0AKqZV62YgO/GMquDMN0rAevkbqlHvXZdlG
h6Rn8eATu4GJncB0Fvh8HnwPYuGpJ4vcvwZbGYWJrcpPzGXG8ngGtsZFQJOggrS0B9J0MbwNIR9uHqRQ
ee4XPhuVSy814IIB/lk9QkIIanUomFgIzkux0qHB/CUqk+eCtB2jCLEl1M1mLcBSLthKHlQqJaKjw8FZ
Mbi/ENKXEizUKD/f2k9h8jz5mumk2K0F9xUAUgE4K0JUVDji4yLBvflgMyYwlxFL9zSYq6ITa8I3DlNY
wKZ0soVSgFkAXgwuFSEmJhJJiWqwCR3YSCbY2x0QB4zwnFc6W4p+22KxiY4EXiQF74kf6/L5vdi+TYV0
rRpsMB2sPxWsRwvpTTq87QmYOUNHg+HqQlL4ryscbK4UPGD5vu60CWw8G7evbkN7bSykXm0w/FMBew6E
CsXQFQMpaLKezP6OLeDL+8AFM5hLBzaciennKcFXUCgI7o7ENQWSfRcWmmPgPEW5tNJIj8QxM9hkDthY
FthAGlh/SvAPXC7fjOrjmyC+Sl5TsCpfdzYEK92llUbllDiaD3HEDPG9CaLDCGnI9IdEhwnioBHiOwMC
dj38fYbVglHy1FGJt57uL9ZS10IN9cxfJPvXCzTgqSKH5xwNzVXSkFBBDsFKA4KV7IKVegQrda2e7j5N
ud8AKwnMnBpmYFAAAAAASUVORK5CYII=
</value>
</data>
<data name="warningBox2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAplJREFUOE+N
k11IU2Ecxv9zouK8CULrzo8SU3QKaSYmOJ2uFL8SK4igEIok6qKUwggySTShC41CRiiGdWNfYBcVWiGl
FqN0lh+UTaekzuWcuu2c9316nSdKLPEHz817/s/zPv9zOPQ/nlVQEGulF3ILPe+8SIHK8eYR5lusLwHy
Oy08RqpXjjfHVCMlsydbGbekg4/r4HmwRbLWUZzyeGNqD5NK1O5lw8L8NQHckgh5SAdXA3UqIxuzZKSj
8ssI8Il9wMQeYDoVfD4HrsdhsNdRgTL2b4yl5Ce1qL+xcQOWxpKxMzwAMVEayIv7IU8XwVnv8+XuEfJV
xtfjMlKZ/CYG3JYJ96wOPj6EoCBfMCkfnJdguSMG89eoVBlfS+tJCpCafa1stgBYzAZbzoFGo0ZIiD84
KwJ350P+UQxHtfr7vUPkp9j+4GqiM1K3FtyVB8h5wlSI4GB/RIQHgjtzwWaywMb1WHwYg7lKOq3YVrlz
jPw8RrWFOUoAJhpwcaNciNDQQMRGB4FNpIMNp4B93A2pXw/7ZbWlufCvFguNdNzzOta7J5S6fP4AdkVq
kKQVAQNJYO8TwHq0kD8kwdkWhZkLdMJrrsonlfu2yszmSsA9Bat1p0XdsTTcvxmJtpowyL1ar/m3PKYM
2MpVgzcySUWTdWRwd+wAXzoo3r5B7CnqDqVg+lW89yuoVARrR/SaANm0F46mUFjOUjYtN9BTaVQYJzPA
RlPB+hNF3XjvP3C9bDuqTm2D9DZuTcCKXN1psJ2ndhGgnpJGciENGyB9zoJk1kMezFonySw0oIf0KVOs
oIO7L3MlYITstVTsrKNHCzXU5aimnvmrZPp5hfrtlWS2X6LBuQoatJWTWQz3C5mEeoS6hNqt5yj7FysJ
zJwL4b/EAAAAAElFTkSuQmCC
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAp5JREFUOE+F
k11Ik1Ecxv9zouJ2E4TWnR8V5tAppJmYsLnNlaLTxAoiKIQiibpYSmEEmSSa0IVGISMUw7rpE+yiQiuk
/IhROssPyjanpL4udeq29z3nCdcH+Wb1g+fq/zzP+R8Oh+gvPK4kNWujp1IrPek8S5Hy+X9hbXSN9aVC
eq1FwEYN8vk/mWqiDPZwI+NOHbhLj8CdDaK7npLlvnWpO0AKqZV62YgO/GMquDMN0rAevkbqlHvXZdlG
h6Rn8eATu4GJncB0Fvh8HnwPYuGpJ4vcvwZbGYWJrcpPzGXG8ngGtsZFQJOggrS0B9J0MbwNIR9uHqRQ
ee4XPhuVSy814IIB/lk9QkIIanUomFgIzkux0qHB/CUqk+eCtB2jCLEl1M1mLcBSLthKHlQqJaKjw8FZ
Mbi/ENKXEizUKD/f2k9h8jz5mumk2K0F9xUAUgE4K0JUVDji4yLBvflgMyYwlxFL9zSYq6ITa8I3DlNY
wKZ0soVSgFkAXgwuFSEmJhJJiWqwCR3YSCbY2x0QB4zwnFc6W4p+22KxiY4EXiQF74kf6/L5vdi+TYV0
rRpsMB2sPxWsRwvpTTq87QmYOUNHg+HqQlL4ryscbK4UPGD5vu60CWw8G7evbkN7bSykXm0w/FMBew6E
CsXQFQMpaLKezP6OLeDL+8AFM5hLBzaciennKcFXUCgI7o7ENQWSfRcWmmPgPEW5tNJIj8QxM9hkDthY
FthAGlh/SvAPXC7fjOrjmyC+Sl5TsCpfdzYEK92llUbllDiaD3HEDPG9CaLDCGnI9IdEhwnioBHiOwMC
dj38fYbVglHy1FGJt57uL9ZS10IN9cxfJPvXCzTgqSKH5xwNzVXSkFBBDsFKA4KV7IKVegQrda2e7j5N
ud8AKwnMnBpmYFAAAAAASUVORK5CYII=
</value>
</data>
<data name="swRmObsoleteROData.SuperTooltip" xml:space="preserve">

View File

@@ -687,19 +687,46 @@ namespace VEPROMS.CSLA.Library
myLength += mg.Groups[3].Length;
}
string gg = MyGrid.Data.Substring(myIndex, myLength);
//CSM B2024-003 Updating RO Values inside a text Grid, adding a karat
// and/or dash into the RO value changes to question marks in the UI,
if (newvalue.Contains(@"\u8209?"))
{
Match m = Regex.Match(newvalue, @"(\\f[0-9]+)(\\u[0-9]{1,4}\?)(\\f[0-9]+ ?)");
if (m == null)
newvalue = newvalue.Replace(@"\u8209?", "-");
else if (m.Groups[1].Value == "")
newvalue = newvalue.Replace(@"\u8209?", "-");
else
newvalue = newvalue.Replace(@"\u8209?", m.Groups[1].Value + @"\u8209?" + m.Groups[3].Value);
}
int indx_to_addfont = -1;
if (newvalue.Contains(@"\u916?"))
{
Match m = Regex.Match(newvalue, @"(\\f[0-9]+)(\\u[0-9]{1,4}\?)(\\f[0-9]+ ?)");
if (m == null)
newvalue = newvalue.Replace(@"\u916?", "^");
else if (m.Groups[1].Value == "" && !ContentItems[0].MyItem.MyItemInfo.MyDocVersion.MyFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta)
newvalue = newvalue.Replace(@"\u916?", "^");
else if (m.Groups[1].Value == "")
{
//B2024-003, B2023-113, B2024-093 - Updating RO Values inside a text Grid,
// adding a caret and/or dash into the RO value and then updating RO values changed to question marks in the UI.
// This is to handle if ConvertCaretToDelta is true
// since delta is not part of the standard ascii
// may need to add a font to handle it.
newvalue = newvalue.Replace(@"\u916?", @"\f9\u916?\f0 ");
indx_to_addfont = GetLocationToInsertFontInGrid(myIndex);
}
else
newvalue = newvalue.Replace(@"\u916?", m.Groups[1].Value + @"\u916?" + m.Groups[3].Value);
}
if (newvalue.Contains(@"\u8593?"))
{
Match m = Regex.Match(newvalue, @"(\\f[0-9]+)(\\u[0-9]{1,4}\?)(\\f[0-9]+ ?)");
if (m == null)
newvalue = newvalue.Replace(@"\u8593?", "^");
else if (m.Groups[1].Value == "")
newvalue = newvalue.Replace(@"\u8593?", "^");
else
newvalue = newvalue.Replace(@"\u8593?", m.Groups[1].Value + @"\u8593?" + m.Groups[3].Value);
}
@@ -708,6 +735,8 @@ namespace VEPROMS.CSLA.Library
Match m = Regex.Match(newvalue, @"(\\f[0-9]+)(\\u[0-9]{1,4}\?)(\\f[0-9]+ ?)");
if (m == null)
newvalue = newvalue.Replace(@"\u9586?", @"\\");
else if (m.Groups[1].Value == "")
newvalue = newvalue.Replace(@"\u9586?", @"\\");
else
newvalue = newvalue.Replace(@"\u9586?", m.Groups[1].Value + @"\u9586?" + m.Groups[3].Value);
}
@@ -719,7 +748,17 @@ namespace VEPROMS.CSLA.Library
if (gg != newvalue)
{
retval = gg;
MyGrid.Data = MyGrid.Data.Substring(0, myIndex) + newvalue + MyGrid.Data.Substring(myIndex + myLength);
//B2024-003, B2023-113, B2024-093 - Updating RO Values inside a text Grid,
// adding a caret and/or dash into the RO value and then updating RO values changed to question marks in the UI.
// This is to handle if ConvertCaretToDelta is true
// since delta is not part of the standard ascii
// may need to add a font to handle it.
string begin_str = MyGrid.Data.Substring(0, myIndex);
if (indx_to_addfont > -1)
begin_str = begin_str.Insert(indx_to_addfont, @"{\f9\fnil\fcharset0 FreeMono;}");
MyGrid.Data = begin_str + newvalue + MyGrid.Data.Substring(myIndex + myLength);
MyGrid.Save();
break;
}
}
@@ -729,6 +768,64 @@ namespace VEPROMS.CSLA.Library
return retval;
}
//B2024-003, B2023-113, B2024-093 - Updating RO Values inside a text Grid,
// adding a caret and/or dash into the RO value and then updating RO values changed to question marks in the UI.
// This is to handle if ConvertCaretToDelta is true
// since delta is not part of the standard ascii
// may need to add a font to handle it.
// startIndex = Index in the Grid at which the text we want to replace is starting
//basic Grid data partitioning using the variables in this sub is as follows:
//
// [indexOfPrefix] [indx]
// | |
// [text before last occurrence of prefix] {prefix} [rest of fonts] [text after fonts]
private int GetLocationToInsertFontInGrid(int startIndex)
{
//searches backwards from the srtIndex for the last previous occurrence of the prefix
string prefix = @"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{";
int indexOfPrefix = MyGrid.Data.LastIndexOf(prefix, startIndex);
//find the end of the font section
//by passing in the Grid data
//with the following removed:
// - Everything before the last occurrence of the prefix
// - the prefix itself removed
int indx = GetIndexOfCloseBracket(MyGrid.Data.Substring(indexOfPrefix + prefix.Length, startIndex - indexOfPrefix - prefix.Length));
if (indx > -1)
{
indx += indexOfPrefix;
indx += prefix.Length;
}
//indx will contain last spot inside the font section
return indx;
}
//B2024-003, B2023-113, B2024-093 - Updating RO Values inside a text Grid,
// this function will find the corresponding occurrence of a closing bracket :
// usage is you pass in some text after an opening bracket, and it will tell you what the index is for it closing
private int GetIndexOfCloseBracket(string text)
{
int indx = 0;
Stack<char> stk = new System.Collections.Generic.Stack<char>();
foreach (char c in text)
{
if (c == '{')
stk.Push('{');
else if (c == '}' && stk.Count == 0)
return indx;
else if (c == '}')
stk.Pop();
indx++;
}
return -1;
}
public static string MakeConsistentFormat(string gg)
{
// replace degree, bullet dash, hardspace
@@ -1255,6 +1352,16 @@ namespace VEPROMS.CSLA.Library
{
gg = ItemInfo.ConvertToDisplayText(gg);
newvalue = ItemInfo.ConvertToDisplayText(newvalue);
//CSM B2024-094 - Carats (as Deltas) print as question marks in tables when unit <u> is used in RO Definition Value
//If there is a grid, need to keep these as the \u code
//Otherwise they will not use the correct font and end up as question marks
if (MyGrid != null)
{
gg = gg.Replace($"{(char)916}", @"\u916?");
newvalue = newvalue.Replace($"{(char)916}", @"\u916?");
}
// Debug - jsj 5-19-2017 - left in for initial check-in
//string xx_gg = gg_org.Replace(@"\'b0", @"\'B0").Replace(@"\u8209?", "-").Replace(@"\u160?", " ").Replace("\xA0", " ");
//string xx_nv = newval_org.Replace(@"\'b0", @"\'B0").Replace(@"\u8209?", "-").Replace(@"\u160?", " ").Replace("\xA0", " ");
@@ -1307,7 +1414,19 @@ namespace VEPROMS.CSLA.Library
else
newvalue = newvalue.Replace(@"\u8209?", m.Groups[1].Value + @"\u8209?" + m.Groups[3].Value);
}
//B2024-003, B2023-113, B2024-093 - Updating RO Values inside a text Grid,
// This will handle if there is a delta and the column/row of the grid is removed
//then restored from history
if (newvalue.Contains(@"\u916?"))
{
Match m = Regex.Match(gg, @"(\\f[0-9]+)(\\u[0-9]{1,4}\?)(\\f[0-9]+ ?)");
if (m.Groups.Count < 3 && !ContentItems[0].MyDocVersion.MyFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta)
newvalue = newvalue.Replace(@"\u916?", "^");
else if (m.Groups.Count < 3)
newvalue = newvalue.Replace(@"\u916?", $"{(char)916}");
else
newvalue = newvalue.Replace(@"\u916?", m.Groups[1].Value + @"\u916?" + m.Groups[3].Value);
}
if (newvalue.Contains(@"\u8593?"))
{
Match m = Regex.Match(newvalue, @"(\\f[0-9]+)(\\u[0-9]{1,4}\?)(\\f[0-9]+ ?)");

View File

@@ -8447,97 +8447,7 @@ namespace VEPROMS.CSLA.Library
Dr = dr;
}
}
public static DataTable GetDisplayTabs(int itemID) //, string displayTabID, string displayTabName)
{
try
{
DataTable tmp = DataPortal.Fetch<DataTable>(new DisplayTabs(itemID, "", "")); //, displayTabID, displayTabName));
//ItemInfo.AddList(tmp);
//tmp.AddEvents();
return tmp;
}
catch (Exception ex)
{
throw new DbCslaException("Error on ItemInfoList.GetChildren", ex);
}
}
private DataTable dt = new DataTable();
private DataTable DataPortal_Fetch(DisplayTabs criteria)
{
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
{
using (SqlCommand cm = cn.CreateCommand())
{
try
{
cm.CommandType = CommandType.StoredProcedure;
cm.CommandText = "GetDisplayTabData";
cm.CommandTimeout = Database.DefaultTimeout;
SqlDataAdapter da = new SqlDataAdapter(cm);
da.Fill(dt);
cn.Close();
da.Dispose();
return dt;
}
catch (Exception ex)
{
//if (_MyLog.IsErrorEnabled) _MyLog.Error("ItemExt.DataPortal_Fetch", ex);
throw new DbCslaException("ItemExt.DataPortal_Fetch", ex);
}
}
}
}
//public static void AddDisplayTabsState(int itemID, string displayTabID, string displayTabName)
//{
// try
// {
// //DisplayTabs tmp =
// DataPortal.Fetch<DisplayTabs>(new DisplayTabs(itemID, displayTabID, displayTabName)); //, displayTabID, displayTabName));
// //ItemInfo.AddList(tmp);
// //tmp.AddEvents();
// //return tmp;
// }
// catch (Exception ex)
// {
// throw new DbCslaException("Error on ItemInfoList.GetChildren", ex);
// }
//}
//private DataTable dt = new DataTable();
//private void DataPortal_Fetch(int itemID, string displayTabID, string displayTabName)
//{
// using (SqlConnection cn = Database.VEPROMS_SqlConnection)
// {
// using (SqlCommand cm = cn.CreateCommand())
// {
// try
// {
// cm.CommandType = CommandType.StoredProcedure;
// cm.CommandText = "AddDisplayTabState";
// cm.CommandTimeout = Database.DefaultTimeout;
// cm.Parameters.AddWithValue("@ItemID", ItemID);
// cm.Parameters.AddWithValue("@displayTabID", displayTabID);
// cm.Parameters.AddWithValue("@displayTabName", displayTabName);
// cm.ExecuteNonQuery();
// //SqlDataAdapter da = new SqlDataAdapter(cm);
// //da.Fill(dt);
// //cn.Close();
// //da.Dispose();
// //return dt; // fix
// }
// catch (Exception ex)
// {
// //if (_MyLog.IsErrorEnabled) _MyLog.Error("ItemExt.DataPortal_Fetch", ex);
// throw new DbCslaException("ItemExt.DataPortal_Fetch", ex);
// }
// }
// }
//}
public static void AddDisplayTabsState(int itemID, string displayTabID, string displayTabName)
//private void DataPortal_Fetch(int itemID, string displayTabID, string displayTabName)
{

View File

@@ -2650,97 +2650,174 @@ namespace VEPROMS.CSLA.Library
firstTrans = false;
if (!CanDeleteObject())
throw new System.Security.SecurityException("User not authorized to remove a Item");
// B2016-009 check source and desintation types and display message box if needed
// B2016-009 check source and destination types and display message box if needed
// C2022-017 moved the CheckSourceDestinationType call to btnPasteReplace_Click in StepTabRibbon
// B2023-101 Handle Paste Replace when procedure to be replaced has Incoming Transitions, i.e. do a separate try/catch for this case
ItemInfo newItemInfo = null;
try
using (ItemInfo copyItemInfo = ItemInfo.Get(copyStartID))
{
// C2017-031: Support for paste/replace an enhanced step, if this is replacing enhanced, do a specific query
if (itemInfo.IsEnhancedStep)
try
{
newItemInfo = ItemInfo.CopyPasteReplaceEnhancedItemInfoFetch(copyStartID, itemInfo);
if (newItemInfo == null) return null;
// C2017-031: Support for paste/replace an enhanced step, if this is replacing enhanced, do a specific query
if (itemInfo.IsEnhancedStep)
{
newItemInfo = ItemInfo.CopyPasteReplaceEnhancedItemInfoFetch(copyStartID, itemInfo);
if (newItemInfo == null) return null;
}
//C2025-003 Enhanced Copy/Paste Upgrade - Added support for paste/replace on a master step
else if (itemInfo.HasEnhancedLinkedStep || copyItemInfo.HasEnhancedLinkedStep)
{
DialogResult rslt = DialogResult.No;
SectionConfig secCfg = itemInfo.ActiveSection.MyConfig as SectionConfig;
if (copyItemInfo.HasEnhancedLinkedStep && secCfg.MyEnhancedDocuments.Count > 0)
rslt = FlexibleMessageBox.Show("The step you are copying contains linked background documents." +
"\r\n\r\nDo you also wish to make a copy of the background documents?",
"Paste background documents", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
//unlink and remove any background documents attached to where you are copying to
//and then delete them
//if selected want to replace BG step (DialogResult.Yes)
if (itemInfo.HasEnhancedLinkedStep && rslt == DialogResult.Yes)
{
foreach (EnhancedDocument ed in itemInfo.GetMyEnhancedDocuments())
{
using (ItemInfo exEnh = ItemInfo.Get(ed.ItemID))
{
exEnh.DoUnlinkEnhanced(exEnh, 0, false);
DeleteItemAndChildren(exEnh);
}
}
}
//do copy/paste replace of the master step
newItemInfo = ItemInfo.CopyPasteReplaceItemInfoFetch(copyStartID, itemInfo);
if (newItemInfo == null) return null;
//copy any background documents
//if selected want to replace BG step (DialogResult.Yes)
if (copyItemInfo.HasEnhancedLinkedStep && rslt == DialogResult.Yes)
{
foreach (EnhancedDocument ed in copyItemInfo.GetMyEnhancedDocuments())
{
using (ItemInfo exEnh = newItemInfo.DoAddMissingEnhancedItems(ed.Type))
{
PasteReplace(exEnh, ed.ItemID, chgid, ref firstTrans);
}
}
}
else if (rslt == DialogResult.No)
{
//if selected didn't want to copy BG documents (DialogResult.No)
//need to unlink BG doc from old removed content (what was pasted over top of)
//re-link BG document to new paste replace master doc
//this should also auto update the text of the main linked item
//to match the new master doc wording
//get original BG documents
EnhancedDocuments orig_eds = itemInfo.GetMyEnhancedDocuments();
//remove link from pre-existing BG docs
foreach (EnhancedDocument ed in orig_eds)
{
using (ItemInfo exEnh = ItemInfo.Get(ed.ItemID))
{ exEnh.DoUnlinkEnhanced(exEnh, 0, false); }
}
//remove link from steps just copied
ItemInfo.PasteClearEnhanced(newItemInfo);
//re-link pre-existing BG docs to newly replaced master step
foreach (EnhancedDocument ed in orig_eds)
{
using (ItemInfo orig_ed_item = ItemInfo.Get(ed.ItemID))
{ newItemInfo.DoCreateLinksEnhancedSingleItem(orig_ed_item, ed.Type); }
}
}
}
else
{
newItemInfo = ItemInfo.CopyPasteReplaceItemInfoFetch(copyStartID, itemInfo); if (newItemInfo == null) return null;
}
}
else
catch (Exception ex1)
{
newItemInfo = ItemInfo.CopyPasteReplaceItemInfoFetch(copyStartID, itemInfo); if (newItemInfo == null) return null;
}
}
catch (Exception ex1)
{
if (ex1.Message.Contains("has External Transitions and has no next step")
if (ex1.Message.Contains("has External Transitions and has no next step")
|| ex1.Message.Contains("has External Transitions to Procedure")
|| ex1.Message.Contains("has External Transitions to it's children"))
{
FlexibleMessageBox.Show("This procedure has external transition references to it that must be resolved before doing the Paste/Replace.\r\nRight Click on the procedure and select the Incoming Transitions menu option to find these references and resolve them.", "Paste Replace Failed", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
return null;
{
FlexibleMessageBox.Show("This procedure has external transition references to it that must be resolved before doing the Paste/Replace.\r\nRight Click on the procedure and select the Incoming Transitions menu option to find these references and resolve them.", "Paste Replace Failed", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
return null;
}
}
}
try
{
// Delete business objects, including remove from tree
ItemInfo.DeleteItemInfoAndChildren(itemInfo.ItemID); // Dispose ItemInfo and Children
using (Item item = Get(newItemInfo.ItemID)) ItemInfo.Refresh(item);
ItemInfo.PasteSetChangeId(newItemInfo, chgid);
ItemInfo.PasteClearEnhanced(newItemInfo);
if (newItemInfo.NextItem != null) using (Item item = newItemInfo.NextItem.Get()) ItemInfo.Refresh(item);
newItemInfo.RefreshNextItems();
// if inserting after a caution or note, refreshes tabs. This will adjust bullets
// of any previous cautions or notes.
if (newItemInfo.IsCaution || newItemInfo.IsNote) newItemInfo.ResetOrdinal();
newItemInfo.UpdateTransitionText();
newItemInfo.UpdateROText();
newItemInfo.UpdatePastedStepTransitionText();
try
{
// Delete business objects, including remove from tree
ItemInfo.DeleteItemInfoAndChildren(itemInfo.ItemID); // Dispose ItemInfo and Children
using (Item item = Get(newItemInfo.ItemID)) ItemInfo.Refresh(item);
ItemInfo.PasteSetChangeId(newItemInfo, chgid);
if (!copyItemInfo.HasEnhancedLinkedStep && !itemInfo.HasEnhancedLinkedStep) ItemInfo.PasteClearEnhanced(newItemInfo);
if (newItemInfo.NextItem != null) using (Item item = newItemInfo.NextItem.Get()) ItemInfo.Refresh(item);
newItemInfo.RefreshNextItems();
// if inserting after a caution or note, refreshes tabs. This will adjust bullets
// of any previous cautions or notes.
if (newItemInfo.IsCaution || newItemInfo.IsNote) newItemInfo.ResetOrdinal();
newItemInfo.UpdateTransitionText();
newItemInfo.UpdateROText();
newItemInfo.UpdatePastedStepTransitionText();
// Add to tree
if (newItemInfo.NextItem != null)
{
using (ItemInfo itm = ItemInfo.GetNonCached(newItemInfo.NextItem.ItemID))
// Add to tree
if (newItemInfo.NextItem != null)
{
itm.OnNewSiblingBefore(new ItemInfoInsertEventArgs(newItemInfo, ItemInfo.EAddpingPart.Before));
using (ItemInfo itm = ItemInfo.GetNonCached(newItemInfo.NextItem.ItemID))
{
itm.OnNewSiblingBefore(new ItemInfoInsertEventArgs(newItemInfo, ItemInfo.EAddpingPart.Before));
}
}
}
else if (newItemInfo.PreviousID != null)
{
using (ItemInfo itm2 = ItemInfo.GetNonCached((int)newItemInfo.PreviousID))
else if (newItemInfo.PreviousID != null)
{
itm2.OnNewSiblingAfter(new ItemInfoInsertEventArgs(newItemInfo, ItemInfo.EAddpingPart.After));
using (ItemInfo itm2 = ItemInfo.GetNonCached((int)newItemInfo.PreviousID))
{
itm2.OnNewSiblingAfter(new ItemInfoInsertEventArgs(newItemInfo, ItemInfo.EAddpingPart.After));
}
}
else
{
// B2024-045, 049 and 050: if not a single procedure replace, update user interface by using the 'OnNewChild'. Single
// procedure's MyParent is null because its parent is a working draft (docversion) since MyParent's type is iteminfo.
// For the single procedure case, the user interface code in vlntreeview will update the tree.
if (newItemInfo.MyParent != null)
newItemInfo.MyParent.OnNewChild(new ItemInfoInsertEventArgs(newItemInfo, ItemInfo.EAddpingPart.Child));
}
return newItemInfo;
}
else
catch (Exception ex)
{
// B2024-045, 049 and 050: if not a single procedure replace, update user interface by using the 'OnNewChild'. Single
// procedure's MyParent is null because its parent is a working draft (docversion) since MyParent's type is iteminfo.
// For the single procedure case, the user interface code in vlntreeview will update the tree.
if (newItemInfo.MyParent != null)
newItemInfo.MyParent.OnNewChild(new ItemInfoInsertEventArgs(newItemInfo, ItemInfo.EAddpingPart.Child));
ItemInfo iii = itemInfo.HandleSqlExceptionOnDelete(ex);
if (iii == itemInfo) return null;// If self returned then return null
if (iii != null)
{
firstTrans = true; // B2017-179 set the firstTrans to true and return the itminfo of the first transition location that needs resolved
return iii;
}
if (!HandleSqlExceptionOnCopy(ex))
{
if (ex.Message.Contains("has External Transitions and has no next step")
|| ex.Message.Contains("has External Transitions to Procedure")
|| ex.Message.Contains("has External Transitions to it's children")
|| ex.Message.Contains("This step has been deleted"))
throw ex;
FlexibleMessageBox.Show("Details were written to the Error Log.", "Paste Replace Failed", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
return itemInfo;
}
else
return itemInfo;
}
return newItemInfo;
}
catch (Exception ex)
{
ItemInfo iii = itemInfo.HandleSqlExceptionOnDelete(ex);
if (iii == itemInfo) return null;// If self returned then return null
if (iii != null)
{
firstTrans = true; // B2017-179 set the firstTrans to true and return the itminfo of the first transition location that needs resolved
return iii;
}
if (!HandleSqlExceptionOnCopy(ex))
{
if (ex.Message.Contains("has External Transitions and has no next step")
|| ex.Message.Contains("has External Transitions to Procedure")
|| ex.Message.Contains("has External Transitions to it's children")
|| ex.Message.Contains("This step has been deleted")
)
throw ex;
FlexibleMessageBox.Show("Details were written to the Error Log.", "Paste Replace Failed", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
return itemInfo;
}
else
return itemInfo;
}
}
#endregion

View File

@@ -1148,8 +1148,7 @@ namespace VEPROMS.CSLA.Library
}
catch (Exception ex)
{
//if (_MyLog.IsErrorEnabled) _MyLog.Error("ItemExt.DeactivateStateDisplayTabTmp", ex);
throw new DbCslaException("ItemExt.DeactivateStateDisplayTabTmp", ex);
Database.LogException("ItemExt.DeactivateStateDisplayTabTmp", ex);
}
}
@@ -1176,8 +1175,7 @@ namespace VEPROMS.CSLA.Library
}
catch (Exception ex)
{
//if (_MyLog.IsErrorEnabled) _MyLog.Error("ItemExt.AddDisplayTabsState", ex);
throw new DbCslaException("ItemExt.AddDisplayTabsState", ex);
Database.LogException("ItemExt.AddDisplayTabsState", ex);
}
}
}
@@ -1194,13 +1192,8 @@ namespace VEPROMS.CSLA.Library
cm.CommandType = CommandType.StoredProcedure;
cm.CommandText = "GetDisplayTabdata";
cm.CommandTimeout = Database.DefaultTimeout;
cm.Parameters.AddWithValue("@UserID", UserID);
//cm.ExecuteNonQuery();
cm.Parameters.AddWithValue("@UserID", UserID);
SqlDataAdapter da = new SqlDataAdapter(cm);
//da.Fill(dt);
//cn.Close();
//da.Dispose();
//return dt; // fix
SqlDataReader reader = cm.ExecuteReader();
DataTable dt = new DataTable();
@@ -1210,8 +1203,10 @@ namespace VEPROMS.CSLA.Library
}
catch (Exception ex)
{
//if (_MyLog.IsErrorEnabled) _MyLog.Error("ItemExt.DeactivateStateDisplayTabTmp", ex);
throw new DbCslaException("ItemExt.DeactivateStateDisplayTabTmp", ex);
//B2025-004
//if it fails loading previously open tabs, simply treat it as if no tabs were open
//instead of crashing
return new DataTable();
}
}

View File

@@ -48,7 +48,6 @@ namespace VEPROMS.CSLA.Library
catch (Exception ex)
{
Database.LogException("UserSettings_GetData", ex);
throw new DbCslaException("UserSettings_GetData", ex);
}
}

View File

@@ -17,10 +17,10 @@ namespace Volian.Base.Library
return new List<string>(text.Split(mySplit, StringSplitOptions.None));
}
int width = 0; // width of text, non-rtf
int start = 0; // start of line (index into string 'text'), includes rtf
int lastspace = 0; // location of lastspace (index into string 'text'), includes rtf
int startNonRtf = 0; // start of line, non-rtf (used for determining starting position to determine width if there was a break)
int width = 0; // width of text, non-rtf
int start = 0; // start of line (index into string 'text'), includes rtf
int lastspace = 0; // location of lastspace (index into string 'text'), includes rtf
int startNonRtf = 0; // start of line, non-rtf (used for determining starting position to determine width if there was a break)
string rtfprefix = "";
string nextprefix = "";
for (int indx = 0; indx < text.Length; indx++)
@@ -125,32 +125,9 @@ namespace Volian.Base.Library
// converting the unicode \u8482? to \'99, but once this is done, PROMS StepRTB (edit windows) does not show it
rtnStr = rtnStr.Replace(@"\'99", @"\u8482?");
// convert \'ae to \u174? this is for the registered symbol. RTF converts the unicode character to \'ae
rtnStr = rtnStr.Replace(@"\'ae",@"\u174?");
rtnStr = rtnStr.Replace(@"\'ae", @"\u174?");
// convert \'a9 to \u169? this is for the copyright symbol. RTF converts the unicode character to \'a9
rtnStr = rtnStr.Replace(@"\'a9",@"\u169?");
// B2021-039: paste of the greek symbols was not working correctly, RTF was converting unicode, similar to above
// B2022-052: Division symbol converted to an x, caused by fix B2021-039. The code below was translating the division
// symbol but it should only be translated if the character's font is Greek or Baltic. Unfortunately this is not
// a complete solution since it converts characters it shouldn't, for example, using the following steps: all
// of Proms symbols are entered into a step; a ctrl-a/ctrl-c is used to copy these and then ctrl-v to paste
// into another new step. The paste (from the underlying richtextbox) causes some characters to be in plain
// arial font, and others to be in arial with Greek flag. Some character codes exist in each font, for example f7.
// The code below does not look into what font is used, just converts the character. Since any kind of font
// can occur during paste, if from an external program, a message will be given stating that a symbol may be incorrect
// because an unsupported font was pasted. It was felt that this was sufficient based on estimate of fix versus chance of
// occurrence. Note that the message was moved into StepRTB since this code is called by non-UI code (5/26/22)
if (str.ToUpper().Contains("GREEK") || str.ToUpper().Contains("BALTIC"))
{
//System.Windows.Forms.MessageBox.Show("Pasted text may use an unsupported font so some characters may not paste correctly and may require delete/reenter of character from within Proms.",
// "Paste Font Issue", System.Windows.Forms.MessageBoxButtons.OK);
for (int i = 0; i < 26; i++)
{
rtnStr = rtnStr.Replace(string.Format("\\'{0:x2}", 0xc0 + i) // upper case Greek
, string.Format("\\u{0}?", 912 + i));
rtnStr = rtnStr.Replace(string.Format("\\'{0:x2}", 0xe0 + i) // lower case Greek
, string.Format("\\u{0}?", 944 + i));
}
}
rtnStr = rtnStr.Replace(@"\'a9", @"\u169?");
return rtnStr;
}
}

View File

@@ -1078,7 +1078,13 @@ namespace Volian.Controls.Library
}
else if (searchValue.Contains("#Link:ReferencedObject")) // RO Link (roid)
{
searchValue = searchValue.Replace("1[END>", string.Empty).Trim();
// we where only removing the END if the searchValue ended in "1[END>"
// but sometimes it ended in "2[END>" and cause a null reference error
// - was seen only running via Visual Studio debugger
// I cleaned up the code to remove in ether case so that we get the expected roid value - jsj 11-18-2024
string substr = searchValue.Substring(searchValue.LastIndexOf(" "));
if (substr.Contains("[END>"))
searchValue = searchValue.Substring(0, searchValue.Length - substr.Length);
string roid = ROFSTLookup.FormatRoidKey(searchValue.Substring(searchValue.LastIndexOf(" ")), true);
if (roid != selectedChld.roid)

View File

@@ -30,7 +30,8 @@ namespace Volian.Controls.Library
//We need to check to see if the current database has been updated with the necessary changes
//to the folder configuration value. If so then build the list of available to be returned
//to the calling code
if (fList == null)
// added check for a list count of zero. Was getting null error from data gotten from customer
if (fList == null || fList.Count == 0)
{
_MyLog.InfoFormat("Filtered format list not available: Database update needed for config value of top folder record");
return RawList;

View File

@@ -11,6 +11,7 @@ using System.Text.RegularExpressions;
using VEPROMS.CSLA.Library;
using Volian.Base.Library;
using JR.Utils.GUI.Forms;
using System.Linq;
namespace Volian.Controls.Library
{
@@ -2855,7 +2856,10 @@ namespace Volian.Controls.Library
return false;
}
public string GetPasteText(bool PasteNoReturnsSetting, IDataObject myDO)
//CSM B2023-095/U2022-004 When Copy/Pasting Symbols, some of the symbols paste in an incorrect font
// Changed this to put in the unicode code for any symbols outside the normal ascii range
// if supplied convertunicode flag is true
public string GetPasteText(bool PasteNoReturnsSetting, IDataObject myDO, bool convertunicode = false)
{
// B2021-0039: symbols not pasting correctly from ctrl-v:
// get base list of valid symbols, use base format if MyItemInfo is null. Use symbols from
@@ -2871,40 +2875,31 @@ namespace Volian.Controls.Library
ptext = ptext.TrimEnd("\r\n\t ".ToCharArray());
if (PasteNoReturnsSetting) ptext = ptext.Replace("\r\n", " ");
StringBuilder sb = new StringBuilder();
bool didCharReplace = false;
StringBuilder sb = new StringBuilder();
bool hasBadChar = false;
for (int i = 0; i < ptext.Length; i++)
{
didCharReplace = false;
string sym = string.Format(@"{0}", Convert.ToInt32(ptext[i]));
if ((ptext[i] > 0x7e))
foreach (char c in ptext)
{
if ((c > 0x7e))
{
// is this an allowable symbol/character:
for (int j = 0; j < sl.Count; j++)
{
if (sym == allowableSymbols[j])
{
sb = sb.Append((char)(Convert.ToInt32(allowableSymbols[j])));
didCharReplace = true;
break;
}
}
// if not allowable, put in a "?" and give a message to user (below)
if (!didCharReplace)
if (allowableSymbols.Any(x => x == $@"{(short)c}"))
{
if (convertunicode)
sb.Append($"\\u{(short) c}?");
else
sb.Append(c);
}
else
{
sb = sb.Append("?");
didCharReplace = true;
hasBadChar = true;
sb.Append("?");
}
}
if (!didCharReplace)
sb = sb.Append(ptext[i]);
}
if (!didCharReplace)
sb = sb.Append(ptext[i]);
}
ptext = sb.ToString();
ptext = ptext.Replace("\u2013", "-"); // Replace EN Dash with hyphen
else
sb.Append(c);
}
ptext = sb.ToString();
ptext = ptext.Replace("\u2013", "-"); // Replace EN Dash with hyphen
ptext = ptext.Replace("\u2014", "-"); // Replace EM Dash with hyphen
ptext = ptext.Replace("\u2011", "-"); // Replace non-breaking hyphen with hyphen
ptext = ptext.Replace("\u2572", "\\"); // Replace backslash symbol with backslash character

View File

@@ -1376,7 +1376,9 @@ namespace Volian.Controls.Library
public static String GetDefaultKeyValue(String key)
{
object xxx = null;
return Registry.GetValue(key, "", xxx).ToString();
// fixed null reference error - appeared only while debugged - for user was handled via Try/Catch and ignored
object gtval = Registry.GetValue(key, "", xxx);
return (string)((gtval != null) ? gtval.ToString() : gtval);
}
private EditItem FindStepAfter(string types, int contenttype)
{
@@ -1804,7 +1806,7 @@ namespace Volian.Controls.Library
//B20170-158 Don't allow a step to replace a linked step
//B2017-180: The fix for B2017-158 also needed the 'HasEnhancedLinkedStep' to check if the copied step is a source step
// C2017-031: Support for paste/replace an enhanced step, enable button
btnPasteReplace.Enabled = btnCMPasteReplace.Enabled = enable && ((!MyItemInfo.IsEnhancedStep && !MyItemInfo.HasEnhancedLinkedStep) || (MyItemInfo.IsEnhancedStep));
btnPasteReplace.Enabled = btnCMPasteReplace.Enabled = enable;
}
private void SetPasteButtonEnabled()
{
@@ -1864,25 +1866,6 @@ namespace Volian.Controls.Library
if (stepToCfg.MyEnhancedDocuments != null && stepToCfg.MyEnhancedDocuments.Count > 0 && stepToCfg.MyEnhancedDocuments[0].Type != 0) toSourceHasEnhancedLinks = true;
}
}
// enhanced: if 'from' step is not enhanced, only allow paste before/after
if (MyItemInfo.IsHigh && !MyItemInfo.IsEnhancedStep)
{
stepToCfg = MyItemInfo.MyConfig as StepConfig;
if (stepToCfg.MyEnhancedDocuments != null && stepToCfg.MyEnhancedDocuments.Count > 0 && stepToCfg.MyEnhancedDocuments[0].Type != 0)
{
// Current selected step is source (i.e. has enhanced links to enhanced steps)
// check if 'from' step is non. If so, allow paste before/after but not replace
if (tmp.MyDisplayTabControl.MyCopyStep.IsHigh)
{
StepConfig fromCfg = tmp.MyDisplayTabControl.MyCopyStep.MyConfig as StepConfig;
if (fromCfg != null && (fromCfg.MyEnhancedDocuments==null || fromCfg.MyEnhancedDocuments.Count==0))
{
btnPasteReplace.Enabled = btnCMPasteReplace.Enabled = false;
return;
}
}
}
}
//copy item is high level step
// Allow a High Level step to be pasted to a sub-step, but not to a table, figure, section or procedure type
if (tmp.MyDisplayTabControl.MyCopyStep.IsHigh && (MyItemInfo.IsTable || MyItemInfo.IsFigure || MyItemInfo.IsSection || MyItemInfo.IsProcedure))
@@ -2881,12 +2864,19 @@ namespace Volian.Controls.Library
tmpForLink = ItemInfo.ReplaceLinkWithNewID(tmpForLink);
myRtb.SelectedRtf = tmpForLink;
// Fix for B2014-071: if link, save after paste so that goto's don't crash (grid & step run through this code)
if (tmpForLink.Contains("<NewID>")) _MyStepRTB.OnDoSaveContents(this, new EventArgs());
if (tmpForLink.Contains("<NewID>")) _MyStepRTB.OnDoSaveContents(this, new EventArgs());
}
}
else if (myDO.GetDataPresent(DataFormats.Text))
myRtb.SelectedText = _MyStepRTB.GetPasteText(PasteNoReturnsSetting, myDO);
{
//CSM B2023-095/U2022-004 When Copy/Pasting Symbols, some of the symbols paste in an incorrect font
// Changed this to put in the unicode code for any symbols outside the normal ascii range
// Also need to input as an RTF so that correct font is used with these
// and unicode is converted to actual text
string clipboardtext = _MyStepRTB.GetPasteText(PasteNoReturnsSetting, myDO, true);
myRtb.SelectedRtf = _MyStepRTB.RtfPrefixForSymbols + clipboardtext + @"}";
}
if (myRtb.SelectionLength == 0 && myRtb is StepRTB) myRtb.SelectionFont = (myRtb as StepRTB).MyStyleFont.WindowsFont;
_PastePlainTextOvrRide = false;
_PasteStepTextOvrRide = false;
@@ -3132,7 +3122,13 @@ namespace Volian.Controls.Library
// a referenced object, bring up ReferencedObject Editor (for now, just put up a message box.
if (_MyStepRTB.MyLinkText != null && _MyStepRTB.MyLinkText.IndexOf("Transition") > -1)
{
_MyEditItem.MyStepPanel.OnLinkClicked(sender, new StepPanelLinkEventArgs(_MyStepRTB.MyLinkText));
// B2021-094 fix for <Shift><Ctrl><G> key stroke for GoTo Transition or RO link
// Needed to clear the selection of the link or it will be used the next time
// <Shift><Ctrl><G> is used
string lnkText = _MyStepRTB.MyLinkText; // save the transition link information
_MyStepRTB.SetSelection(0, 0); // Clear the selection of the transition link
// note _MyStepRTB.DeselectAll() did not work all the time
_MyEditItem.MyStepPanel.OnLinkClicked(sender, new StepPanelLinkEventArgs(lnkText));
}
else
{
@@ -3155,7 +3151,12 @@ namespace Volian.Controls.Library
}
else
{
LinkText lt = new LinkText(_MyStepRTB.MyLinkText);
LinkText lt = new LinkText(_MyStepRTB.MyLinkText); // save the RO link information
// B2021-094 fix for <Shift><Ctrl><G> key stroke for GoTo Transition or RO link
// Needed to clear the selection of the link or it will be used the next time
// <Shift><Ctrl><G> is used
_MyStepRTB.SetSelection(0, 0); // clear the selection of the RO link
// note _MyStepRTB.DeselectAll() did not work all the time
//B2023-104 If we could not get the MyRoUsageInfo then we have a bad RO Link. Tell user to re-link the RO
if (lt.MyRoUsageInfo != null)
{

View File

@@ -308,7 +308,7 @@ namespace Volian.Print.Library
h.Font = f3;
string actionWhat = (cai.ActionWhat == "Added" && cai.DTS <= MyProc.ChangeBarDate) ? "Original" : cai.ActionWhat != "Changed" ? cai.ActionWhat : cai.DTS <= maxDTS ? "Restored" : cai.DTS > MyProc.ChangeBarDate ? cai.ActionWhat : "Original";
if (actionWhat == "Deleted" || actionWhat == "Restored")
h.Add(actionWhat + "\r\n" + cai.ActionWhen.ToString());
h.Add(actionWhat + "\r\n" + (cai.ActionWhen < cai.DTS ? cai.DTS.ToString("M/dd/yyyy") : cai.ActionWhen.ToString()));
else
h.Add(actionWhat);
if (cai.DTS > maxDTS)
@@ -1465,7 +1465,7 @@ namespace Volian.Print.Library
// h.Add(cai.ActionWhen > MyProc.DTS ? cai.ActionWhat : "Original");
string actionWhat = ((cai.ActionWhat == "Added" || cai.ActionWhat == "Changed") && cai.DTS <= MyProc.ChangeBarDate) ? "Original" : cai.ActionWhat; //(cai.ActionWhat == "Added" && cai.DTS <= MyProc.DTS) ? "Original" : cai.ActionWhat != "Changed" ? cai.ActionWhat : cai.DTS <= maxDTS ? "Restored" : cai.DTS > MyProc.DTS ? cai.ActionWhat : "Original";
if (actionWhat == "Deleted" || actionWhat == "Restored")
h.Add(actionWhat + "\r\n" + cai.ActionWhen.ToString());
h.Add(actionWhat + "\r\n" + (cai.ActionWhen < cai.DTS ? cai.DTS.ToString("M/dd/yyyy") : cai.ActionWhen.ToString()));
else
h.Add(actionWhat);
c = new PdfPCell(h);

View File

@@ -2953,7 +2953,7 @@ namespace Volian.Print.Library
if (ii.Sections == null) return; // B2021-067 crash on null reference
foreach (SectionInfo si in ii.Sections)
{
if (MyPromsPrinter.PrtSectID == -1 || (MyPromsPrinter.PrtSectID > -1 && si.ItemID == MyPromsPrinter.PrtSectID))
if (MyPromsPrinter.PrtSectID == -1 || (MyPromsPrinter.PrtSectID > -1 && (ii.ItemID == MyPromsPrinter.PrtSectID || si.ItemID == MyPromsPrinter.PrtSectID)))
{
if (si.IsStepSection)
{

View File

@@ -6887,7 +6887,13 @@ namespace Volian.Print.Library
}
else if (itemInfo.IsSection)
{
Width = ToInt(formatInfo.MyStepSectionLayoutData.WidSTablePrint, maxRNO);
// B2023-074 The itemInfo we are processing is a section (number and title). Change maxRNO to zero to getting the width.
// The Width is used when printing the section number and title (when the check box on the properties page is checked)
// and is assumemed the section is a single column section (maxRNO = 0) and uses the format variable WidSTablePrint
// which holds the widths for then the section has one column, two column, or three column.
// For printing section numbers and titles like this, we always want to accomodate for lone section title text.
// So the initial width should always be set to the one column width value so that it can spane across the page.
Width = ToInt(formatInfo.MyStepSectionLayoutData.WidSTablePrint, 0);
float adjwidths = 0;
adjwidths = AdjustMetaWidth(itemInfo, formatInfo, adjwidths, false);
Width += (adjwidths + _WidthAdjust);