Compare commits
45 Commits
3cd4f4c5d9
...
B2025-009
Author | SHA1 | Date | |
---|---|---|---|
b4ccd682c3 | |||
dba1331556 | |||
8803ae2274 | |||
69d09b7fc2 | |||
8ddfc8654e | |||
7a3243e882 | |||
4fc3b89e06 | |||
a17419ac12 | |||
88905132e7 | |||
111bed58d6 | |||
bed61324d6 | |||
1a889352b8 | |||
5bba126a36 | |||
e01b955d46 | |||
e3431b0e1e | |||
b6d646b910 | |||
bb679a2790 | |||
e3af0a6426 | |||
b2108b9e5f | |||
d100002107 | |||
afd61303c5 | |||
d1c3e81a38 | |||
46419edfee | |||
81c91d7866 | |||
34ee092919 | |||
d07344a88a | |||
66ae1c632b | |||
7cc7b71edd | |||
a223dfd463 | |||
61e8bc5ffa | |||
bba52a736a | |||
c5d575a019 | |||
08f8441aca | |||
6bf116cbef | |||
cc96b3fa5b | |||
b489452bd1 | |||
fa4e3997e4 | |||
7659cbbee6 | |||
548b845f62 | |||
4f733656a0 | |||
f4ef244a10 | |||
839000d48c | |||
bcb8f419ee | |||
059c399240 | |||
13b3cd6bc4 |
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.
Binary file not shown.
@@ -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;
|
||||
|
@@ -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
|
||||
|
@@ -1129,7 +1129,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.
|
||||
@@ -1696,7 +1696,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 +1713,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");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
2760
PROMS/VEPROMS User Interface/frmBatchRefresh.Designer.cs
generated
2760
PROMS/VEPROMS User Interface/frmBatchRefresh.Designer.cs
generated
File diff suppressed because it is too large
Load Diff
@@ -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();
|
||||
}
|
||||
|
@@ -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">
|
||||
|
@@ -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]+ ?)");
|
||||
|
@@ -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)
|
||||
{
|
||||
|
@@ -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
|
||||
|
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -48,7 +48,6 @@ namespace VEPROMS.CSLA.Library
|
||||
catch (Exception ex)
|
||||
{
|
||||
Database.LogException("UserSettings_GetData", ex);
|
||||
throw new DbCslaException("UserSettings_GetData", ex);
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
|
@@ -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)
|
||||
|
@@ -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;
|
||||
|
@@ -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
|
||||
|
@@ -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)
|
||||
{
|
||||
|
@@ -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);
|
||||
|
@@ -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)
|
||||
{
|
||||
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user