Compare commits

...

32 Commits

Author SHA1 Message Date
jjenko 1ce1a45ca6 B2026-036 Fixed issue where if a RO return value and a dash followed by numbers, the numbers following the dash would be truncated when inserting in step editor text. 2026-03-27 15:26:06 -04:00
jjenko 604b4d1751 Merge pull request 'C2026-031 - BNPP Cover Page Consolidation' (#748) from BNPP_CoverPage_Consolidation into Development
good for testing phase
2026-03-26 09:28:07 -04:00
mschill 874aaf2857 Merge branch 'Development' into BNPP_CoverPage_Consolidation 2026-03-26 09:15:23 -04:00
mschill 17a28def4e Update Copyright date 2026-03-26 09:17:13 -04:00
jjenko e72a1aa9e7 Merge pull request 'B2026-018_The_Disable_Initial_Line_check_box' (#747) from B2026-018_The_Disable_Initial_Line_check_box into Development
good for testing phase
2026-03-26 09:11:20 -04:00
mschill 7b96ef1b4c BNPP Cover Page Consolidation 2026-03-26 09:02:14 -04:00
plarsen ea048e6d82 B2026-018_The_Disable_Initial_Line_check_box 2026-03-26 07:55:27 -04:00
plarsen 109abfb4ad Merge branch 'Development' into B2026-018_The_Disable_Initial_Line_check_box 2026-03-26 07:53:21 -04:00
plarsen 3f662ab19d B2026-018_The_Disable_Initial_Line_check_box 2026-03-25 22:55:52 -04:00
jjenko b0de38909a Merge pull request 'B2026-023-Adding-RO-Editor-symbols-to-RO-X_Y_plots' (#746) from B2026-023-Adding-RO-Editor-symbols-to-RO-X_Y_plots into Development
good for testing phase
2026-03-25 13:26:02 -04:00
plarsen 267de44103 Merge branch 'Development' into B2026-023-Adding-RO-Editor-symbols-to-RO-X_Y_plots 2026-03-25 11:54:12 -04:00
plarsen b7b0e55d94 B2026-023-Adding-RO-Editor-symbols-to-RO-X_Y_plots 2026-03-25 11:41:39 -04:00
plarsen c0d12f5721 B2026-023-Adding-RO-Editor-symbols-to-RO-X_Y_plots 2026-03-25 11:34:58 -04:00
mschill 27a945485f Merge pull request 'B2026-034 Fixed issue where import of procedure set failed when it was deleting the temporary folders that are created during the process, preventing the importing code to try and fix transitions and foldout information (link).' (#745) from B2026-034 into Development
Looks Good. Ready for QA.
2026-03-25 06:04:23 -04:00
jjenko d76c81a9d8 B2026-034 Fixed issue where import of procedure set failed when it was deleting the temporary folders that are created during the process, preventing the importing code to try and fix transitions and foldout information (link). 2026-03-24 16:27:22 -04:00
jjenko 143a3622dd Merge pull request 'C2026-007_B2026-027' (#744) from C2026-007_B2026-027 into Development
good for continued  testing
2026-03-24 08:56:31 -04:00
mschill 75992293c6 Merge branch 'Development' into C2026-007_B2026-027 2026-03-24 08:45:28 -04:00
mschill 0e004828b3 Merge branch 'C2026-007_B2026-027' of https://git.volian.com/Volian/SourceCode into C2026-007_B2026-027 2026-03-24 08:46:04 -04:00
mschill 714751f404 C2026-007 Admin Tool Generate Word Attachments 2026-03-24 08:45:55 -04:00
jjenko 27576e946e Merge pull request 'C2026-007 - Handle case for Step Progress when all switchboxes are turned off and then Regen Word Attachments is turned back on.' (#743) from C2026-007_B2026-027 into Development
good for testing
2026-03-23 08:13:48 -04:00
mschill e548dddcbd Merge branch 'Development' into C2026-007_B2026-027 2026-03-23 08:04:33 -04:00
mschill 8cbc8c497e C2026-007 - Handle case for Step Progress when all switchboxes are turned off and then Regen Word Attachments is turned back on. 2026-03-23 06:30:41 -04:00
jjenko c328140441 Merge pull request 'B2026-033 Tooltip for Generate Word Attachments' (#742) from B2026-033 into Development
good for testing
2026-03-20 15:37:05 -04:00
mschill a10798c983 B2026-033 Tooltip for Generate Word Attachments 2026-03-20 15:30:51 -04:00
jjenko 06909e260f Merge pull request 'B2026-030 GoTo sometimes requires being pressed twice for ROs' (#741) from B2026-030 into Development
good for testing
2026-03-18 14:47:28 -04:00
mschill 5eca8a5150 B2026-030 GoTo sometimes requires being pressed twice for ROs 2026-03-18 14:44:45 -04:00
jjenko 88a13f9864 Merge pull request 'C2026-028 Update Tooltip for “Set All at Level” in Applicability.' (#740) from C2026-028 into Development
good for testing
2026-03-18 08:21:01 -04:00
mschill e03ae6195a C2026-028 Update Tooltip for “Set All at Level” in Applicability. 2026-03-18 07:53:17 -04:00
jjenko c3cacaf407 Merge pull request 'B2026-022-Adding-RO-Editor-symbols-to-RO-Tables' (#738) from B2026-022-Adding-RO-Editor-symbols-to-RO-Tables into Development
good for testing
2026-03-17 16:09:54 -04:00
jjenko c78cb805fb Merge pull request 'C2026-030 corrected the Alarm format cover page' (#739) from C2026-030_BNPP_CoverAdjustments into Development
format only change. good for tesing
2026-03-17 11:25:24 -04:00
jjenko d17688fc9d C2026-030 corrected the Alarm format cover page 2026-03-17 11:24:24 -04:00
plarsen 7b649c4a62 B2026-018_The_Disable_Initial_Line_check_box 2026-03-10 08:24:28 -04:00
12 changed files with 458 additions and 23 deletions
Binary file not shown.
@@ -0,0 +1,147 @@
/*****************************************************************************
Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
Copyright 2026 - Volian Enterprises, Inc. All rights reserved.
*****************************************************************************/
-- =============================================
-- Author: Matthew Schill
-- Create date: 03/20/2026
-- Description: Script to consolidate Cover Pages for Barakah
-- by Converting multi-unit procedures with Cover Pages
-- to use 1 Library Document Cover Page
-- =============================================
select Contents.ContentID
, Contenttext = Contents.Text
, Items.ItemID
, tblDocuments.DocID
, ParentContentID
, ParentItemID
, LibTitle = ISNULL(LibTitle,'')
, numLibCP
, numCP
,BaseFlag = 0
INTO #tmpUpdate
from Contents
inner join Entries on Contents.ContentID = Entries.ContentID
inner join tblDocuments on tblDocuments.DocID = Entries.DocID
inner join Items on Items.ContentID = Contents.ContentID
outer apply
(select ParentContentID=ContentID, ParentItemID = PItm.ItemID
FROM dbo.vefn_ParentItems(Items.ItemID) PItm
where PItm.ItemID <> Items.ItemID
) parent
outer apply
(select numLibCP = Count(*)
FROM dbo.vefn_ChildItems(ParentItemID) PItm
INNER JOIN Contents on Contents.ContentID = PItm.ContentID
INNER JOIN Entries on Contents.ContentID = Entries.ContentID
INNER JOIN tblDocuments on tblDocuments.DocID = Entries.DocID
where PItm.ItemID <> ParentItemID
AND Contents.text like 'Cover Page%' and ISNULL(tblDocuments.LibTitle,'') <> ''
) childWithLibTitle
outer apply
(select numCP = Count(*)
FROM dbo.vefn_ChildItems(ParentItemID) PItm
INNER JOIN Contents on Contents.ContentID = PItm.ContentID
where PItm.ItemID <> ParentItemID
AND Contents.text like 'Cover Page%'
) child
where Contents.text like 'Cover Page%'
order by ParentContentID asc, CASE WHEN ISNULL(LibTitle,'') <> '' THEN 1 ELSE 2 END asc, Contents.Text asc
UPDATE #tmpUpdate SET BaseFlag = 1 where LibTitle <> '' and numLibCP = 1
UPDATE #tmpUpdate SET BaseFlag = CASE WHEN tU.LibTitle <> '' THEN 1 ELSE 2 END FROM #tmpUpdate tU
where BaseFlag = 0 AND tU.ContentID IN
(
Select ContentID FROM
(SELECT sub.ContentID,
row_number() OVER(PARTITION BY sub.ParentContentID ORDER BY CASE WHEN ISNULL(sub.LibTitle,'') <> '' THEN 1 ELSE 2 END asc, sub.Contenttext asc) as pos
FROM #tmpUpdate sub
) x
WHERE x.pos = 1
)
declare @Cont TABLE
(
ContentID int,
ItemID int,
xConfig xml
)
insert into @Cont
SELECT tU.ContentID, ItemID, xConfig = CAST(tblContents.config AS xml) FROM
tblContents
INNER JOIN
#tmpUpdate tU ON tU.ContentID = tblContents.ContentID
where tU.BaseFlag > 0
Update @Cont Set xConfig.modify('delete //MasterSlave') From @Cont;
Update tblContents SET Text = 'Cover Page', Config = CAST(xConfig AS varchar(max)),
DTS = GETDATE(), UserID = 'CPVolian2026'
FROM
@Cont CNT INNER JOIN
tblContents ON CNT.ContentID = tblContents.ContentID;
--Update items PreviousIds
UPDATE tblItems Set PreviousID = IdToSwapTO.ItemID
FROM
tblItems
INNER JOIN
#tmpUpdate tU ON tblItems.PreviousID = tU.ItemID AND tU.BaseFlag = 0
INNER JOIN #tmpUpdate IdToSwapTO ON IdToSwapTO.ParentContentID = tU.ParentContentID AND IdToSwapTO.BaseFlag IN (1,2)
UPDATE tblItems Set DeleteStatus = 1, DTS = GETDATE(), UserID = 'CPVolian2026'
FROM
#tmpUpdate tU INNER JOIN
tblItems ON tU.ContentID = tblItems.ContentID
WHERE tU.BaseFlag = 0;
UPDATE tblContents Set DeleteStatus = 1, DTS = GETDATE(), UserID = 'CPVolian2026'
FROM
#tmpUpdate tU INNER JOIN
tblContents ON tU.ContentID = tblContents.ContentID
WHERE tU.BaseFlag = 0;
DELETE FROM
tblEntries
FROM
tblEntries
INNER JOIN
#tmpUpdate tU ON tU.ContentID = tblEntries.ContentID
WHERE tU.BaseFlag in (0,2);
INSERT INTO [dbo].[tblEntries]
([ContentID]
,[DocID]
,[DTS]
,[UserID]
,[DeleteStatus])
SELECT
DISTINCT tU.ContentID,
766, -- docid 766 "Cover Page 1"
GETDATE(),
'CPVolian2026',
0
FROM
#tmpUpdate tU
INNER JOIN
@Cont CNT ON tU.ContentID = CNT.ContentID
WHERE tU.BaseFlag = 2;
drop table #tmpUpdate;
IF (@@Error = 0) SELECT '[Barakah Cover Page Consolidation] Succeeded'
ELSE SELECT '[Barakah Cover Page Consolidation] Error'
go
@@ -0,0 +1,263 @@
-- =============================================
-- Author: Matthew Schill
-- Create date: 03/20/2026
-- Description: Script to consolidate Cover Pages for Barakah
-- by Converting multi-unit procedures with Cover Pages
-- to use 1 Library Document Cover Page
-- =============================================
----@isTest = 0 will change data
----@isTest = 1 for internal testing (no data will be changed)
DECLARE @isTest bit = 1;
----Per Cover Page, pull how many cover pages
----Each Cover Page's procedure has
----and how many of those are library documents
select Contents.ContentID
, Contenttext = Contents.Text
, Items.ItemID
, tblDocuments.DocID
, ParentContentID
, ParentItemID
, LibTitle = ISNULL(LibTitle,'')
, numLibCP
, numCP
,BaseFlag = 0
INTO #tmpUpdate
from Contents
inner join Entries on Contents.ContentID = Entries.ContentID
inner join tblDocuments on tblDocuments.DocID = Entries.DocID
inner join Items on Items.ContentID = Contents.ContentID
outer apply
(select ParentContentID=ContentID, ParentItemID = PItm.ItemID
FROM dbo.vefn_ParentItems(Items.ItemID) PItm
where PItm.ItemID <> Items.ItemID
) parent
outer apply
(select numLibCP = Count(*)
FROM dbo.vefn_ChildItems(ParentItemID) PItm
INNER JOIN Contents on Contents.ContentID = PItm.ContentID
INNER JOIN Entries on Contents.ContentID = Entries.ContentID
INNER JOIN tblDocuments on tblDocuments.DocID = Entries.DocID
where PItm.ItemID <> ParentItemID
AND Contents.text like 'Cover Page%' and ISNULL(tblDocuments.LibTitle,'') <> ''
) childWithLibTitle
outer apply
(select numCP = Count(*)
FROM dbo.vefn_ChildItems(ParentItemID) PItm
INNER JOIN Contents on Contents.ContentID = PItm.ContentID
where PItm.ItemID <> ParentItemID
AND Contents.text like 'Cover Page%'
) child
where Contents.text like 'Cover Page%'
order by ParentContentID asc, CASE WHEN ISNULL(LibTitle,'') <> '' THEN 1 ELSE 2 END asc, Contents.Text asc
--BaseFlag
-- 0 = a Cover Page that will be deleted
-- 1 = is base item (Cover Page will get renamed and applicability set to all)
-- 2 = would be base item but not linked to Lib document (Cover Page will get renamed and applicability set to all + will need linked to library doc)
---- If only 1 Library Doc CP for the CP's procedure and this is it, then mark this CP as the one we will keep
UPDATE #tmpUpdate SET BaseFlag = 1 where LibTitle <> '' and numLibCP = 1
---- If multiple Library Document CPs, pick the first one as the one we will keep (BaseFlag = 1)
---- If no Library Document CPs, pick the first one as the one we will repurpose (BaseFlag = 2)
UPDATE #tmpUpdate SET BaseFlag = CASE WHEN tU.LibTitle <> '' THEN 1 ELSE 2 END FROM #tmpUpdate tU
where BaseFlag = 0 AND tU.ContentID IN
(
Select ContentID FROM
(SELECT sub.ContentID,
row_number() OVER(PARTITION BY sub.ParentContentID ORDER BY CASE WHEN ISNULL(sub.LibTitle,'') <> '' THEN 1 ELSE 2 END asc, sub.Contenttext asc) as pos
FROM #tmpUpdate sub
) x
WHERE x.pos = 1
)
----BEGIN TESTS--
if(@isTest = 1)
BEGIN
select Count(*), 'Should be Zero - not exactly one BaseFlag set to non 0 for each Parent Item' FROM #tmpUpdate TU
OUTER APPLY
(select numBaseFlagSet = SUM(CASE WHEN sub.BaseFlag > 0 THEN 1 ELSE 0 END)
FROM #tmpUpdate sub
where sub.ParentContentID = TU.ParentContentID
) sub
where numBaseFlagSet <> 1
select Count(*), 'Should be Zero - 0 Lib Docs, BaseFlag is 1' FROM #tmpUpdate TU
where numLibCP = 0 and BaseFlag = 1
select Count(*), 'Should be Zero - at least 1 Lib Docs, BaseFlag is 2' FROM #tmpUpdate TU
where numLibCP > 0 and BaseFlag = 2
select Count(*), 'Should be Zero - 1 Lib Docs, BaseFlag not 1 for that Lib doc' FROM #tmpUpdate TU
where numLibCP = 1 and LibTitle <> '' and BaseFlag <> 1
select Count(*), 'Should be Zero - 1 Lib Docs, BaseFlag not 0 for ones without Lib Doc' FROM #tmpUpdate TU
where numLibCP = 1 and LibTitle = '' and BaseFlag <> 0
select Count(*), 'Should be Zero - 1 CP, no Lib Docs, BaseFlag not 2' FROM #tmpUpdate TU
where numLibCP = 0 and numCP = 1 and BaseFlag <> 2
select Count(*), 'Should be Zero - more than 1 Lib Docs, BaseFlag is 1' FROM #tmpUpdate TU
where numLibCP = 0 and BaseFlag = 1
select Count(*), 'Should be Zero - not exactly one BaseFlag set to non 0 for each Parent Item' FROM #tmpUpdate TU
OUTER APPLY
(select numBaseFlagSet = SUM(CASE WHEN sub.BaseFlag > 0 THEN 1 ELSE 0 END)
FROM #tmpUpdate sub
where sub.ParentContentID = TU.ParentContentID
) sub
where numBaseFlagSet <> 1
select Count(*), 'Should be Zero - 0 Lib Docs, BaseFlag is 1' FROM #tmpUpdate TU
where numLibCP = 0
and BaseFlag = 1
--all Parents should have exactly 1 Baseflag=1 or BaseFlage = 2
select 'Should be No Records where not a BaseFlag 1 or 2'
select NumNotBaseFlag12 = Count(*)
FROM #tmpUpdate TU
Group by ParentContentID
HAVING SUM(CASE WHEN BaseFlag in (1,2) THEN 1 ELSE 0 END) <> 1
select 'Should be No Records where with both a BaseFlag 1 and 2'
select NumBothBaseFlag12 = Count(*)
FROM #tmpUpdate TU
Group by ParentContentID
HAVING SUM(BaseFlag) > 2
END
--END TESTS--
--BaseFlag
-- 0 = a Cover Page that will be deleted
-- 1 = is base item (Cover Page will get renamed and applicability set to all)
-- 2 = would be base item but not linked to Lib document (Cover Page will get renamed and applicability set to all + will need linked to library doc)
----Update config for Coverpage 1 to remove <MasterSlave Applicability="1" />
----from that config
----cover page 1s
declare @Cont TABLE
(
ContentID int,
ItemID int,
xConfig xml
)
insert into @Cont
SELECT tU.ContentID, ItemID, xConfig = CAST(tblContents.config AS xml) FROM
tblContents
INNER JOIN
#tmpUpdate tU ON tU.ContentID = tblContents.ContentID
where tU.BaseFlag > 0
if(@isTest = 1)
BEGIN
select WRD='Have Masterslave in xconfig', NumwithMasterSlave = Count(*) FROM @Cont CNT
INNER JOIN
tblContents ON CNT.ContentID = tblContents.ContentID
where CAST(xConfig AS varchar(max)) like '%MasterSlave%'
END
Update @Cont Set xConfig.modify('delete //MasterSlave') From @Cont;
if(@isTest = 1)
BEGIN
select WRD='None should have Masterslave Removed in xconfig', NumwithMasterSlave = Count(*) FROM @Cont CNT
INNER JOIN
tblContents ON CNT.ContentID = tblContents.ContentID
where CAST(xConfig AS varchar(max)) like '%MasterSlave%'
select 'Show Records and how the ids will be re-linked'
Select tblItems.ItemID, tblItems.ContentID, tblItems.PreviousID, tblContents.Text,
PreviousItemID = tU.ItemID, PreviousContentID = tU.ContentID, PreviousText = tUCont.Text,
RelinkToItemID = IdToSwapTO.ItemID, RelinkToContentID = IdToSwapTO.ContentID, RelinkToText = IdToSwapTOCont.Text
FROM
tblItems
INNER JOIN
tblContents on tblContents.ContentID = tblItems.ContentID
INNER JOIN
#tmpUpdate tU ON tblItems.PreviousID = tU.ItemID AND tU.BaseFlag = 0
INNER JOIN
tblContents tUCont on tUCont.ContentID = tU.ContentID
LEFT OUTER JOIN #tmpUpdate IdToSwapTO ON IdToSwapTO.ParentContentID = tU.ParentContentID AND IdToSwapTO.BaseFlag IN (1,2)
LEFT OUTER JOIN tblContents IdToSwapTOCont on IdToSwapTOCont.ContentID = IdToSwapTO.ContentID
END
ELSE
BEGIN
--Update Config for Contents and set Text = 'Cover Page'
Update tblContents SET Text = 'Cover Page', Config = CAST(xConfig AS varchar(max)),
DTS = GETDATE(), UserID = 'CPVolian2026'
FROM
@Cont CNT INNER JOIN
tblContents ON CNT.ContentID = tblContents.ContentID;
--Update items PreviousIds
UPDATE tblItems Set PreviousID = IdToSwapTO.ItemID
FROM
tblItems
INNER JOIN
#tmpUpdate tU ON tblItems.PreviousID = tU.ItemID AND tU.BaseFlag = 0
INNER JOIN #tmpUpdate IdToSwapTO ON IdToSwapTO.ParentContentID = tU.ParentContentID AND IdToSwapTO.BaseFlag IN (1,2)
--delete where BaseFlag = 0 ---Items,Content,Entries, --set DeleteStatus = 1
--these are ones that will be replaced by a library document
UPDATE tblItems Set DeleteStatus = 1, DTS = GETDATE(), UserID = 'CPVolian2026'
FROM
#tmpUpdate tU INNER JOIN
tblItems ON tU.ContentID = tblItems.ContentID
WHERE tU.BaseFlag = 0;
UPDATE tblContents Set DeleteStatus = 1, DTS = GETDATE(), UserID = 'CPVolian2026'
FROM
#tmpUpdate tU INNER JOIN
tblContents ON tU.ContentID = tblContents.ContentID
WHERE tU.BaseFlag = 0;
--delete entries where Baseflag = 2
--create new entries where Baseflag = 2
DELETE FROM
tblEntries
FROM
tblEntries
INNER JOIN
#tmpUpdate tU ON tU.ContentID = tblEntries.ContentID
WHERE tU.BaseFlag in (0,2);
INSERT INTO [dbo].[tblEntries]
([ContentID]
,[DocID]
,[DTS]
,[UserID]
,[DeleteStatus])
SELECT
DISTINCT tU.ContentID,
766, -- docid 766 "Cover Page 1"
GETDATE(),
'CPVolian2026',
0
FROM
#tmpUpdate tU
INNER JOIN
@Cont CNT ON tU.ContentID = CNT.ContentID
WHERE tU.BaseFlag = 2;
END;
drop table #tmpUpdate;
+1 -1
View File
@@ -24753,7 +24753,7 @@ BEGIN
select Docs.DocID, UnitID, SectionID = MIN(SectionID) select Docs.DocID, UnitID, SectionID = MIN(SectionID)
FROM FROM
(SELECT DISTINCT [DocID] (SELECT DISTINCT [DocID]
FROM [VEPROMS_Barakah].[dbo].[tblDocuments]) Docs FROM [tblDocuments]) Docs
INNER JOIN Entries on Docs.DocID = Entries.DocID INNER JOIN Entries on Docs.DocID = Entries.DocID
INNER JOIN Contents on Entries.ContentID = Contents.ContentID INNER JOIN Contents on Entries.ContentID = Contents.ContentID
inner join Items on Items.ContentID = Contents.ContentID inner join Items on Items.ContentID = Contents.ContentID
@@ -947,14 +947,16 @@ namespace VEPROMS
pi = AddProcedure(xd.DocumentElement, dvi, pi); pi = AddProcedure(xd.DocumentElement, dvi, pi);
GC.Collect(); // need to cleanup memory after importing each procedure due to use of Regular Expressions in processing RO and Transition links GC.Collect(); // need to cleanup memory after importing each procedure due to use of Regular Expressions in processing RO and Transition links
} }
DirectoryInfo di = new DirectoryInfo(PEIPath);
DirectoryInfo[] dis = di.GetDirectories();
for (int d = 0; d < dis.Length; d++)
dis[d].Delete(true);
lblImportStatus.Text = "Updating Transitions"; lblImportStatus.Text = "Updating Transitions";
AddTransitions(); AddTransitions();
FixFloatingFoldouts(); FixFloatingFoldouts();
SaveTransitionAndItemContentIDs(); SaveTransitionAndItemContentIDs();
// B2026-034 remove the folders created from un-ziping the import set file - this was done prior to updating transitions
// so if there was an issue deleting these temporay folders and files, the actual importing will be completed
DirectoryInfo di = new DirectoryInfo(PEIPath);
DirectoryInfo[] dis = di.GetDirectories();
for (int d = 0; d < dis.Length; d++)
dis[d].Delete(true);
return true; return true;
} }
} }
+3 -2
View File
@@ -1317,11 +1317,12 @@
this.swRegenWordAttmts.Name = "swRegenWordAttmts"; this.swRegenWordAttmts.Name = "swRegenWordAttmts";
this.swRegenWordAttmts.Size = new System.Drawing.Size(91, 22); this.swRegenWordAttmts.Size = new System.Drawing.Size(91, 22);
this.swRegenWordAttmts.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; this.swRegenWordAttmts.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.superTooltip1.SetSuperTooltip(this.swRegenWordAttmts, new DevComponents.DotNetBar.SuperTooltipInfo("Generate Word Attachments", "", resources.GetString("swRegenWordAttmts.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(300, 200))); this.superTooltip1.SetSuperTooltip(this.swRegenWordAttmts, new DevComponents.DotNetBar.SuperTooltipInfo("Generate Word Attachments", "", resources.GetString("swRegenWordAttmts.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(300, 250)));
this.swRegenWordAttmts.SwitchClickTogglesValue = true; this.swRegenWordAttmts.SwitchClickTogglesValue = true;
this.swRegenWordAttmts.TabIndex = 34; this.swRegenWordAttmts.TabIndex = 34;
this.swRegenWordAttmts.Value = true; this.swRegenWordAttmts.Value = true;
this.swRegenWordAttmts.ValueObject = "Y"; this.swRegenWordAttmts.ValueObject = "Y";
this.swRegenWordAttmts.ValueChanged += new System.EventHandler(this.swCk_ValueChanged);
// //
// labelX1 // labelX1
// //
@@ -1334,7 +1335,7 @@
this.labelX1.Location = new System.Drawing.Point(107, 150); this.labelX1.Location = new System.Drawing.Point(107, 150);
this.labelX1.Name = "labelX1"; this.labelX1.Name = "labelX1";
this.labelX1.Size = new System.Drawing.Size(186, 22); this.labelX1.Size = new System.Drawing.Size(186, 22);
this.superTooltip1.SetSuperTooltip(this.labelX1, new DevComponents.DotNetBar.SuperTooltipInfo("Generate Word Attachments", "", resources.GetString("labelX1.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(300, 200))); this.superTooltip1.SetSuperTooltip(this.labelX1, new DevComponents.DotNetBar.SuperTooltipInfo("Generate Word Attachments", "", resources.GetString("labelX1.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(300, 250)));
this.labelX1.TabIndex = 33; this.labelX1.TabIndex = 33;
this.labelX1.Text = "Generate Missing Word Attachments"; this.labelX1.Text = "Generate Missing Word Attachments";
// //
@@ -121,15 +121,15 @@
<value>17, 17</value> <value>17, 17</value>
</metadata> </metadata>
<data name="swRegenWordAttmts.SuperTooltip" xml:space="preserve"> <data name="swRegenWordAttmts.SuperTooltip" xml:space="preserve">
<value>When Word attachments are modified and saved, PROMS will create a PDF of the attachment contents and save it in the database. When this is done, all the of the RO references are resolved as well as pagination of the attachment. This speeds up the overall printing of the procedure in that PROMS simply inserts the attachment contents. Certain actions like loading a new RO.FST require that these PDFs be regenerated which is normally done at print time. <value>When Word attachments are modified and saved, PROMS will create a PDF of the attachment contents and save it in the database. When this is done, all of the RO references are resolved as well as pagination of the attachment. This speeds up the overall printing of the procedure in that PROMS simply inserts the attachment contents. Certain actions like loading a new RO.FST require that these PDFs be regenerated which is normally done at print time.
This function will generate (and save) any missing saved attachment PDFS stored in the database (not the PDFs of the entire procedure that you had previous printed). This will cause printing to be faster when you print after this as the PDFs will be pre-genrated in those cases (and thus not require regeneration unless changes were made to the Word Sections or ROs after running this). This function will generate (and save) any missing saved attachment PDFs stored in the database (not the PDFs of the entire procedure that you had previous printed). This will cause printing to be faster when you print after this as the PDFs will be pre-genrated in those cases (and thus not require regeneration unless changes were made to the Word Sections or ROs after running this).
</value> </value>
</data> </data>
<data name="labelX1.SuperTooltip" xml:space="preserve"> <data name="labelX1.SuperTooltip" xml:space="preserve">
<value>When Word attachments are modified and saved, PROMS will create a PDF of the attachment contents and save it in the database. When this is done, all the of the RO references are resolved as well as pagination of the attachment. This speeds up the overall printing of the procedure in that PROMS simply inserts the attachment contents. Certain actions like loading a new RO.FST require that these PDFs be regenerated which is normally done at print time. <value>When Word attachments are modified and saved, PROMS will create a PDF of the attachment contents and save it in the database. When this is done, all of the RO references are resolved as well as pagination of the attachment. This speeds up the overall printing of the procedure in that PROMS simply inserts the attachment contents. Certain actions like loading a new RO.FST require that these PDFs be regenerated which is normally done at print time.
This function will generate (and save) any missing saved attachment PDFS stored in the database (not the PDFs of the entire procedure that you had previous printed). This will cause printing to be faster when you print after this as the PDFs will be pre-genrated in those cases (and thus not require regeneration unless changes were made to the Word Sections or ROs after running this). This function will generate (and save) any missing saved attachment PDFs stored in the database (not the PDFs of the entire procedure that you had previous printed). This will cause printing to be faster when you print after this as the PDFs will be pre-genrated in those cases (and thus not require regeneration unless changes were made to the Word Sections or ROs after running this).
</value> </value>
</data> </data>
<data name="swRefreshTblsForSrch.SuperTooltip" xml:space="preserve"> <data name="swRefreshTblsForSrch.SuperTooltip" xml:space="preserve">
@@ -183,7 +183,7 @@ RO paths, ROFST versions, and the contents of RO figures are stored in the datab
Be sure a current backup exists prior to running this function!!</value> Be sure a current backup exists prior to running this function!!</value>
</data> </data>
<data name="swRefreshWordAttmts.SuperTooltip" xml:space="preserve"> <data name="swRefreshWordAttmts.SuperTooltip" xml:space="preserve">
<value>When Word attachments are modified and saved, PROMS will create a PDF of the attachment contents and save it in the database. When this is done, all the of the RO references are resolved as well as pagination of the attachment. This speeds up the overall printing of the procedure in that PROMS simply inserts the attachment contents. <value>When Word attachments are modified and saved, PROMS will create a PDF of the attachment contents and save it in the database. When this is done, all of the RO references are resolved as well as pagination of the attachment. This speeds up the overall printing of the procedure in that PROMS simply inserts the attachment contents.
This function will remove all of the saved attachment PDFS stored in the database (not the PDFs of the entire procedure that you had previous printed). This will force PROMS to regenerate (and save) the word attachment PDFs the next time the procedure is printed. This function will remove all of the saved attachment PDFS stored in the database (not the PDFs of the entire procedure that you had previous printed). This will force PROMS to regenerate (and save) the word attachment PDFs the next time the procedure is printed.
</value> </value>
@@ -202,9 +202,9 @@ RO paths, ROFST versions, and the contents of RO figures are stored in the datab
Be sure a current backup exists prior to running this function!!</value> Be sure a current backup exists prior to running this function!!</value>
</data> </data>
<data name="labelX5.SuperTooltip" xml:space="preserve"> <data name="labelX5.SuperTooltip" xml:space="preserve">
<value>When Word attachments are modified and saved, PROMS will create a PDF of the attachment contents and save it in the database. When this is done, all the of the RO references are resolved as well as pagination of the attachment. This speeds up the overall printing of the procedure in that PROMS simply inserts the attachment contents. <value>When Word attachments are modified and saved, PROMS will create a PDF of the attachment contents and save it in the database. When this is done, all of the RO references are resolved as well as pagination of the attachment. This speeds up the overall printing of the procedure in that PROMS simply inserts the attachment contents.
This function will remove all of the saved attachment PDFS stored in the database (not the PDFs of the entire procedure that you had previous printed). This will force PROMS to regenerate (and save) the word attachment PDFs the next time the procedure is printed. This function will remove all of the saved attachment PDFs stored in the database (not the PDFs of the entire procedure that you had previous printed). This will force PROMS to regenerate (and save) the word attachment PDFs the next time the procedure is printed.
</value> </value>
</data> </data>
<data name="labelX9.SuperTooltip" xml:space="preserve"> <data name="labelX9.SuperTooltip" xml:space="preserve">
@@ -49,7 +49,7 @@ namespace Volian.Controls.Library
this.btnApplicabilitychg.Size = new System.Drawing.Size(80, 22); this.btnApplicabilitychg.Size = new System.Drawing.Size(80, 22);
this.btnApplicabilitychg.Margin = new System.Windows.Forms.Padding(2); this.btnApplicabilitychg.Margin = new System.Windows.Forms.Padding(2);
this.btnApplicabilitychg.RightToLeft = System.Windows.Forms.RightToLeft.No; this.btnApplicabilitychg.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.superTooltip1.SetSuperTooltip(this.btnApplicabilitychg, new DevComponents.DotNetBar.SuperTooltipInfo("Change applicability settings - All At Level", "", "When clicked, all steps at the level of the current step will have their applicability settings changed.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); this.superTooltip1.SetSuperTooltip(this.btnApplicabilitychg, new DevComponents.DotNetBar.SuperTooltipInfo("Change applicability settings - All At Level", "", "When clicked, all steps at the level of the current step will have their applicability settings changed. Note that for two column procedures, the left column and right column are handled separately.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
this.btnApplicabilitychg.TabIndex = 0; this.btnApplicabilitychg.TabIndex = 0;
this.btnApplicabilitychg.Text = "Set All at Level"; this.btnApplicabilitychg.Text = "Set All at Level";
this.btnApplicabilitychg.ColorTable = DevComponents.DotNetBar.eButtonColor.BlueOrb; this.btnApplicabilitychg.ColorTable = DevComponents.DotNetBar.eButtonColor.BlueOrb;
+12 -3
View File
@@ -1164,12 +1164,21 @@ namespace Volian.Controls.Library
tbROValue.Text = null; tbROValue.Text = null;
lbROId.Text = string.Empty; lbROId.Text = string.Empty;
// Disable all buttons by default // Disable all buttons by default
btnGoToRO.Enabled = false;
btnSaveRO.Enabled = false; btnSaveRO.Enabled = false;
btnCancelRO.Enabled = false; btnCancelRO.Enabled = false;
btnPreviewRO.Enabled = false; btnPreviewRO.Enabled = false;
}
//B2026-030 GoTo sometimes requires being pressed twice
if (MyUserInfo != null && MyDvi != null && selectedChld.value != null)
{
btnGoToRO.Enabled = UserInfo.CanEditROs(MyUserInfo, MyDvi); // Writers and Reviewers cannot edit ROs (run the RO Editor)
}
else
{
btnGoToRO.Enabled = false;
}
}
#endregion #endregion
} }
+4 -4
View File
@@ -215,7 +215,8 @@ namespace Volian.Controls.Library
this.groupPanelCheckoff.CanvasColor = System.Drawing.SystemColors.Control; this.groupPanelCheckoff.CanvasColor = System.Drawing.SystemColors.Control;
this.groupPanelCheckoff.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; this.groupPanelCheckoff.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007;
this.groupPanelCheckoff.Controls.Add(this.cmbCheckoff); this.groupPanelCheckoff.Controls.Add(this.cmbCheckoff);
this.groupPanelCheckoff.DisabledBackColor = System.Drawing.Color.Empty; this.groupPanelCheckoff.Controls.Add(this.cbInitialLine);
this.groupPanelCheckoff.DisabledBackColor = System.Drawing.Color.Empty;
this.groupPanelCheckoff.Dock = System.Windows.Forms.DockStyle.Top; this.groupPanelCheckoff.Dock = System.Windows.Forms.DockStyle.Top;
this.groupPanelCheckoff.Location = new System.Drawing.Point(0, 231); this.groupPanelCheckoff.Location = new System.Drawing.Point(0, 231);
this.groupPanelCheckoff.Margin = new System.Windows.Forms.Padding(2); this.groupPanelCheckoff.Margin = new System.Windows.Forms.Padding(2);
@@ -265,8 +266,7 @@ namespace Volian.Controls.Library
this.cbInitialLine.Margin = new System.Windows.Forms.Padding(2); this.cbInitialLine.Margin = new System.Windows.Forms.Padding(2);
this.cbInitialLine.Name = "cbInitialLine"; this.cbInitialLine.Name = "cbInitialLine";
this.cbInitialLine.Size = new System.Drawing.Size(112, 15); this.cbInitialLine.Size = new System.Drawing.Size(112, 15);
this.superTooltipTags.SetSuperTooltip(this.cbInitialLine, new DevComponents.DotNetBar.SuperTooltipInfo("Manual Page Break", "", "When set, starts this step at the top of a page.\r\n\r\nkeyboard command: <Ctrl><Ente" + this.superTooltipTags.SetSuperTooltip(this.cbInitialLine, new DevComponents.DotNetBar.SuperTooltipInfo("Disable Initial Line", "", "When set, The initial line will be removed from this step.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
"r>", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
this.cbInitialLine.TabIndex = 1; this.cbInitialLine.TabIndex = 1;
this.cbInitialLine.Text = "Disable Initial Line"; this.cbInitialLine.Text = "Disable Initial Line";
this.cbInitialLine.Visible = false; this.cbInitialLine.Visible = false;
@@ -276,7 +276,6 @@ namespace Volian.Controls.Library
// //
this.groupPanelcmbShwRplWds.CanvasColor = System.Drawing.SystemColors.Control; this.groupPanelcmbShwRplWds.CanvasColor = System.Drawing.SystemColors.Control;
this.groupPanelcmbShwRplWds.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; this.groupPanelcmbShwRplWds.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007;
this.groupPanelcmbShwRplWds.Controls.Add(this.cbInitialLine);
this.groupPanelcmbShwRplWds.Controls.Add(this.cmbShwRplWds); this.groupPanelcmbShwRplWds.Controls.Add(this.cmbShwRplWds);
this.groupPanelcmbShwRplWds.DisabledBackColor = System.Drawing.Color.Empty; this.groupPanelcmbShwRplWds.DisabledBackColor = System.Drawing.Color.Empty;
this.groupPanelcmbShwRplWds.Dock = System.Windows.Forms.DockStyle.Top; this.groupPanelcmbShwRplWds.Dock = System.Windows.Forms.DockStyle.Top;
@@ -880,3 +879,4 @@ namespace Volian.Controls.Library
private System.Windows.Forms.Button btnSaveChangeID; private System.Windows.Forms.Button btnSaveChangeID;
} }
} }
+11 -1
View File
@@ -1400,15 +1400,25 @@ namespace Volian.Controls.Library
if (SelectionLength > 0)HandleDeleteKeyWithSelectedText(new KeyEventArgs(Keys.None), null); if (SelectionLength > 0)HandleDeleteKeyWithSelectedText(new KeyEventArgs(Keys.None), null);
int position = SelectionStart; int position = SelectionStart;
SelectionLength = 0; SelectionLength = 0;
// B2026-036 fixed issue where numbers after a dash character (in an RO return value) were trucated
// Needed to add a space after the \f0 in the string replace below. RTF was getting confused
// when there are number right after the \f0. Note also remove the space charcter after
// the \f1 command, as it is not needed since the \u commdn follows it.
// Here is the old code prior to when the foreach loop was added to handle symbols in RO value:
//
// linkValue = linkValue.Replace("\\u8209?", "\\f1\\u8209?\\f0 "); // dash character
// linkValue = linkValue.Replace("\\u9586?", "\\f1\\u9586?\\f0 "); // backslash symbol
// linkValue = linkValue.Replace("\\u916?", "\\f1\\u916?\\f0 "); // delta symbol
var pattern = @"\\u([0-9]{1,4})\?"; // RO Editor add symbols C2022 - 003 var pattern = @"\\u([0-9]{1,4})\?"; // RO Editor add symbols C2022 - 003
foreach (Match match in Regex.Matches(linkValue, pattern, RegexOptions.IgnoreCase)) foreach (Match match in Regex.Matches(linkValue, pattern, RegexOptions.IgnoreCase))
{ {
linkValue = linkValue.Replace(match.Value, "\\f1 " + match.Value + "\\f0"); linkValue = linkValue.Replace(match.Value, "\\f1" + match.Value + "\\f0 ");
} }
linkValue = linkValue.Replace(@"{", @"\{"); linkValue = linkValue.Replace(@"{", @"\{");
linkValue = linkValue.Replace(@"}", @"\}"); linkValue = linkValue.Replace(@"}", @"\}");
SelectedRtf = @"{\rtf1\ansi" + FontTable + @"{\colortbl ;\red255\green0\blue0;\red0\green0\blue255;}\v" + FontSize + @" <START]\v0\cf1 " + linkValue + @"\cf0\v " + linkUrl + @"[END>\v0 }"; SelectedRtf = @"{\rtf1\ansi" + FontTable + @"{\colortbl ;\red255\green0\blue0;\red0\green0\blue255;}\v" + FontSize + @" <START]\v0\cf1 " + linkValue + @"\cf0\v " + linkUrl + @"[END>\v0 }";
this.SelectionLength = 0; this.SelectionLength = 0;
this.SelectionStart = position; this.SelectionStart = position;
+3
View File
@@ -491,10 +491,12 @@ namespace XYPlots
// remove an extra spaces between >< // remove an extra spaces between ><
//Buff = Regex.Replace(Buff, @"[ ]+<", "<"); //Buff = Regex.Replace(Buff, @"[ ]+<", "<");
Buff = Buff.Replace(">\r ", ">\r\n "); Buff = Buff.Replace(">\r ", ">\r\n ");
Buff = Buff.Replace(">\n ", ">\r\n "); // C2022-003 if RO has symbols
Buff = Regex.Replace(Buff, @"[ ]+<", "<"); Buff = Regex.Replace(Buff, @"[ ]+<", "<");
// some data only had carriage return, replace these with cr/nl so that following code // some data only had carriage return, replace these with cr/nl so that following code
// will work // will work
Buff = Buff.Replace(">\r<", ">\r\n<"); Buff = Buff.Replace(">\r<", ">\r\n<");
Buff = Buff.Replace(">\n<", ">\r\n<"); // C2022-003 if RO has symbols
Buff = Buff.Replace("><", ">\r\n<"); Buff = Buff.Replace("><", ">\r\n<");
// some data had cr/cr/nl, change to cr/nl // some data had cr/cr/nl, change to cr/nl
Buff = Buff.Replace("\r\r\n", "\r\n"); Buff = Buff.Replace("\r\r\n", "\r\n");
@@ -520,6 +522,7 @@ namespace XYPlots
Buff = Buff.Substring(0, Buff.Length - 2) + " \r\n\0x00"; // needs to end with null Buff = Buff.Substring(0, Buff.Length - 2) + " \r\n\0x00"; // needs to end with null
else if (Buff.EndsWith(">")) // doesn't end with return chars... else if (Buff.EndsWith(">")) // doesn't end with return chars...
Buff = Buff.Substring(0, Buff.Length - 1) + " \r\n\0x00"; // needs to end with null Buff = Buff.Substring(0, Buff.Length - 1) + " \r\n\0x00"; // needs to end with null
Buff = Regex.Replace(Buff, @"\\u([0-9]{1,4})\?", m => int.TryParse(m?.Groups[1]?.Value, out int result) ? Convert.ToChar(result).ToString() : ""); // C2022-003 RO Symbols. Convert unicode to character.
Buff = Regex.Replace(Buff, @"([0-9])\r\n([0-9])", "$1 $2"); Buff = Regex.Replace(Buff, @"([0-9])\r\n([0-9])", "$1 $2");
} }
private void CloseGraph() private void CloseGraph()