Compare commits

..

162 Commits

Author SHA1 Message Date
7a3243e882 B2025-004 Remove dependency on stored procedure (GetDisplayTabdata). 2025-01-22 06:59:03 -05:00
a17419ac12 Merge pull request 'C2025-003 Enhanced Copy/Paste Upgrade - Add ability to copy/paste over enhanced master documents' (#487) from C2025-003 into Development
ready for testing phase
2025-01-21 10:48:00 -05:00
88905132e7 Merge branch 'Development' of https://git.volian.com/Volian/SourceCode into Development 2025-01-21 10:40:06 -05:00
111bed58d6 Merge pull request 'B2025-003 Chronology/Summary of Changes Reports' (#488) from B2025-003 into Development
Reviewed-on: #488

due to GIT restore from backup
2025-01-21 10:31:21 -05:00
bed61324d6 C2025-003 Enhanced Copy/Paste Upgrade - Add ability to copy/paste over enhanced master documents 2025-01-20 14:43:54 -05:00
1a889352b8 Merge pull request 'B2025-003 Chronology/Summary of Changes Reports' (#485) from B2025-003 into Development
ready for testing phase
2025-01-09 11:14:22 -05:00
5bba126a36 B2025-003 Chronology/Summary of Changes Reports 2025-01-09 11:08:30 -05:00
e01b955d46 Merge pull request 'F2024-088 - Per customer’s request, removed “Using”, “Faulted”, “Intact”, “Normal”, “On”, “Off”, “Locally”, “Manually”, “Fall”, “Rise”, and “Ruptured” from the ReplaceWords list' (#484) from F2024-088_FNP into Development
Format only change.  ready for testing phase
2024-12-17 09:48:30 -05:00
e3431b0e1e F2024-088 - Per customer’s request, removed “Using”, “Faulted”, “Intact”, “Normal”, “On”, “Off”, “Locally”, “Manually”, “Fall”, “Rise”, and “Ruptured” from the ReplaceWords list 2024-12-17 09:46:40 -05:00
b6d646b910 Merge pull request 'F2024-086 In the PROMS Manual format in the Attachments (Step Editor) With Border section type, the page number needs centered horizontally on the page (it's located between the section number and section title.' (#483) from F2024-086 into Development
good for testing phase
2024-12-12 08:44:08 -05:00
bb679a2790 F2024-086 In the PROMS Manual format in the Attachments (Step Editor) With Border section type, the page number needs centered horizontally on the page (it's located between the section number and section title. 2024-12-12 08:36:29 -05:00
e3af0a6426 Merge pull request 'B2024-094 - Carats (as Deltas) print as question marks in tables when unit <u> is used in RO Definition Value' (#482) from B2024-094 into Development
good for testing phase
2024-12-12 08:33:12 -05:00
b2108b9e5f B2024-094 - Carats (as Deltas) print as question marks in tables when unit <u> is used in RO Definition Value 2024-12-11 15:35:29 -05:00
d100002107 Merge pull request 'F2024-087 - Fixes printing sub-sections that go from continuous (single column sub-sections) to a separate (two column sub-section) so that the two column sub-section starts at the top of the page.' (#480) from F2024-097_Farley into Development
format only - good for testing phase
2024-12-11 11:14:44 -05:00
afd61303c5 F2024-087 - Fixes printing sub-sections that go from continuous (single column sub-sections) to a separate (two column sub-section) so that the two column sub-section starts at the top of the page. 2024-12-11 11:07:30 -05:00
d1c3e81a38 Merge pull request 'B2024-096 In the Ro Editor, allow <u> for a field name in the Referenced object Definition Return Value.' (#479) from B2024-096 into Development
good for testing phase
2024-12-10 09:00:22 -05:00
46419edfee B2024-096 In the Ro Editor, allow <u> for a field name in the Referenced object Definition Return Value. 2024-12-10 08:36:30 -05:00
81c91d7866 Merge pull request 'C2024-037 Enhanced Print Section so that it can now be utilized for Sections that contain subsections.' (#478) from C2024-037 into Development
good for testing phase
2024-12-09 16:07:53 -05:00
34ee092919 C2024-037 Enhanced Print Section so that it can now be utilized for Sections that contain subsections.
Farley uses subsections in some of their AOP procedures.   The "Print Section" feature did not work for these sections - instead returning a message as if the pdf was already open.
2024-12-09 15:24:34 -05:00
d07344a88a Merge pull request 'B2024-095 In Admin Tools, added minimum heights to the left side panels above selecting items in the trees. Previously when the windows were resized the trees would overlap with buttons and notes.' (#477) from B2024-095 into Development
good for testing phase
2024-12-09 10:34:58 -05:00
66ae1c632b B2024-095 In Admin Tools, added minimum heights to the left side panels above selecting items in the trees. Previously when the windows were resized the trees would overlap with buttons and notes. 2024-12-09 08:00:15 -05:00
7cc7b71edd Merge pull request 'B2024-067 Deleting Folders through Admin Tools missing some folders' (#476) from B2024-067 into Development
ready for testing phase
2024-12-05 15:51:32 -05:00
a223dfd463 B2024-067 Deleting Folders through Admin Tools missing some folders 2024-12-05 15:27:46 -05:00
61e8bc5ffa Merge pull request 'B2024-003_B2023-113_B2024-093 Updating RO Values inside a text Grid, adding a caret and/or dash into the RO value and then updating RO values changed to question marks in the UI. This also fixes restoring a deleted RO table column that has a hyphen in …' (#475) from B2024-003_B2023-113_B2024-093 into Development
good for testing phase
2024-12-03 15:22:47 -05:00
bba52a736a B2024-003_B2023-113_B2024-093 Updating RO Values inside a text Grid, adding a caret and/or dash into the RO value and then updating RO values changed to question marks in the UI. This also fixes restoring a deleted RO table column that has a hyphen in it. Also, Dashes/Hyphens and Carets in RO TABLES were behaving differently in different data sets due to different fonts – this fixes so that carats when ConvertCaretToDelta is set in the format, will properly restore/store as Deltas. 2024-12-03 15:12:04 -05:00
c5d575a019 Merge pull request 'F2019-011 Wide step tabs were printing into text. Shifted Left Justification slightly (roughly 2 characters) to account for these / this spacing.' (#474) from F2019-011 into Development
ok for testing phase
2024-11-27 09:28:22 -05:00
08f8441aca F2019-011 Wide step tabs were printing into text. Shifted Left Justification slightly (roughly 2 characters) to account for these / this spacing. 2024-11-27 09:19:42 -05:00
6bf116cbef Merge pull request 'B2023-095_U2022-004 - When Copy/Pasting Symbols, some of the symbols paste in an incorrect font' (#473) from B2023-095_U2022-004 into Development
good for testing phase
2024-11-25 14:51:35 -05:00
cc96b3fa5b B2023-095_U2022-004 - When Copy/Pasting Symbols, some of the symbols paste in an incorrect font 2024-11-25 14:44:50 -05:00
b489452bd1 Merge pull request 'B2023-029 - Added format flag to Continuous Action Note and Continuous Action Caution so that the check box to include on the generated Continuous Action Summary is automatically checked' (#472) from B2023-039_bwd_byr into Development
format only change.
Ready for testing phase
2024-11-22 14:56:17 -05:00
fa4e3997e4 B2023-029 - Added format flag to Continuous Action Note and Continuous Action Caution so that the check box to include on the generated Continuous Action Summary is automatically checked 2024-11-22 14:55:12 -05:00
7659cbbee6 Merge pull request 'B2023-074 - Fixed printing a section title, via the section properties check box, on a two-column step editor section.' (#471) from General_Debugging into Development
minor code change - no review needed.
OK for testing phase
2024-11-22 10:20:22 -05:00
548b845f62 B2023-074 - Fixed printing a section title, via the section properties check box, on a two-column step editor section. 2024-11-22 10:10:57 -05:00
4f733656a0 Merge pull request 'F2024-085 - Added a Conditional Time Critical Action high level step type to the EOP and AOP formats' (#470) from F2024-085_BVPS_ContTimeAction into Development
format only changes
2024-11-20 09:12:29 -05:00
f4ef244a10 F2024-085 - Added a Conditional Time Critical Action high level step type to the EOP and AOP formats 2024-11-20 09:10:46 -05:00
839000d48c Merge pull request 'B2024-003_ B2023-113 Updating RO Values inside a text Grid, adding a caret and/or dash into the RO value and then updating RO values changed to question marks in the UI. This also fixes restoring a deleted RO table column that has a hyphen in it.' (#469) from B2024-003_B2023_113_GIT into Development
good for testing phase
2024-11-18 16:24:13 -05:00
bcb8f419ee B2024-003_ B2023-113 Updating RO Values inside a text Grid, adding a caret and/or dash into the RO value and then updating RO values changed to question marks in the UI. This also fixes restoring a deleted RO table column that has a hyphen in it. 2024-11-18 16:17:07 -05:00
059c399240 Merge pull request 'B2021-094 - Fixed shortcut keystroke usage for the GoTo button <Shift><Ctrl><G> when used multiple times' (#468) from B2021-094_keystroke4GoTo into Development
Looks good - ready for QA
2024-11-18 14:59:13 -05:00
13b3cd6bc4 B2021-094 - Fixed shortcut keystroke usage for the GoTo button <Shift><Ctrl><G> when used multiple times 2024-11-18 14:54:34 -05:00
3cd4f4c5d9 Merge pull request 'C2024-028 Add an enhancement to Admin Tools -> Refresh Transitions. Transitions with bad links that cannot be auto-fixed, will now add an annotation of “Bad Transition Link” (which can then be searched for and manually resolved.)' (#467) from C2024-028 into Development
good for testing phase
2024-11-15 09:51:23 -05:00
02b20df652 C2024-028 Add an enhancement to Admin Tools -> Refresh Transitions. Transitions with bad links that cannot be auto-fixed, will now add an annotation of “Bad Transition Link” (which can then be searched for and manually resolved.) 2024-11-15 09:23:27 -05:00
416bdf16e0 Merge pull request 'B2021-043 Step numbering is out of order in RO usage report if RO values exist on steps 10 or higher.' (#466) from B2021-043 into Development
good for testing phase
2024-11-13 14:40:33 -05:00
75a4f66714 B2021-043 Step numbering is out of order in RO usage report if RO values exist on steps 10 or higher. 2024-11-13 14:10:39 -05:00
a5b9c26a97 Merge pull request 'F2024-078 - Adjust the spacing before and after the Note tab, along with the blank space (line) at the bottom of the Note box per the example supplied by the customer. Also made similar adjustments to the Caution tab and box.' (#465) from F2024-078_BVNoteSpacing into Development
Looks good - Ready for QA
2024-11-11 16:35:56 -05:00
0aa476d9dd F2024-078 - Adjust the spacing before and after the Note tab, along with the blank space (line) at the bottom of the Note box per the example supplied by the customer. Also made similar adjustments to the Caution tab and box. 2024-11-11 15:56:55 -05:00
0f4eec1df6 Merge pull request 'B2024-092 Add Initial Line/Ability to Disable to UI for South Texas' (#463) from B2024-092 into Development
good for testing phase
2024-11-11 08:28:36 -05:00
4bc73f847c B2024-092 Add Initial Line/Ability to Disable to UI for South Texas 2024-11-11 07:15:02 -05:00
e1271c16d9 Merge pull request 'B2024-090 If multiple tabs are left open, and Find is clicked before clicking on a tab, PROMS would crash.' (#462) from B2024-090 into Development
good for testing phase
2024-11-08 15:43:30 -05:00
c7d2140e16 B2024-090 If multiple tabs are left open, and Find is clicked before clicking on a tab, PROMS would crash. 2024-11-08 15:37:49 -05:00
ac6ee6ff83 Merge pull request 'C2024-022 Add option to select by unit when generating a Time Critical Action Summary from the ribbon in a Parent document.' (#461) from C2024-022 into Development
good for testing phase
2024-11-07 15:24:47 -05:00
1507cf31ce C2024-022 Add option to select by unit when generating a Time Critical Action Summary from the ribbon in a Parent document. 2024-11-07 15:06:38 -05:00
aad04647ac Merge pull request 'C2024-021 Update the tool tip on the Time Critical Action Summary option (Step Properties panel) to reflect the Time Critical Action Summary text rather than the Continuous Action Summary text.' (#460) from C2024-021 into Development
good for testing phase
2024-11-07 10:54:58 -05:00
934d3977d8 C2024-021 Update the tool tip on the Time Critical Action Summary option (Step Properties panel) to reflect the Time Critical Action Summary text rather than the Continuous Action Summary text. 2024-11-07 10:08:26 -05:00
03b0e52bef Merge pull request 'B2024-064 Improve user experience by providing more descriptive wording when cannot change the Applicability of a Step/Section.' (#459) from B2024-064 into Development
good for testing phase
2024-11-07 09:20:47 -05:00
1da2b8e87c B2024-064 Improve user experience by providing more descriptive wording when cannot change the Applicability of a Step/Section. 2024-11-07 09:13:40 -05:00
e3d16142ac Merge pull request 'C2024-025 Remove the tall box characters from the search results.' (#458) from C2024-025 into Development
Good for testing phase
2024-11-07 08:42:21 -05:00
b972e40a28 C2024-025 Remove the tall box characters from the search results. 2024-11-07 08:26:26 -05:00
c508255ab3 Merge pull request 'C2024-026 Add feature to the transitions panel to allow user to hold currently selected procedure/set in the panel.' (#457) from C2024-026 into Development
good for testing phase
2024-11-05 13:21:31 -05:00
e9ec884eb9 C2024-026 Add feature to the transitions panel to allow user to hold currently selected procedure/set in the panel. 2024-11-05 10:59:01 -05:00
592d28e898 Merge pull request 'B2024-080 Add Image Thumbnails to Find Submenu items to be consistent with elsewhere in the application' (#456) from B2024-080 into Development
Good for testing phase
2024-11-05 10:53:06 -05:00
b826fa6a20 B2024-080 Add Image Thumbnails to Find Submenu items to be consistent with elsewhere in the application 2024-11-05 10:48:52 -05:00
74c2a303da Merge pull request 'B2024-089 Loic to clean up transitioning to a section that does not have a section number. Also added and updated comments.' (#455) from B2024-089 into Development
Looks good to me.
Merging to Development - Ready for QA.
2024-11-04 16:46:34 -05:00
dcf50073e7 B2024-089 Loic to clean up transitioning to a section that does not have a section number. Also added and updated comments. 2024-11-04 14:39:41 -05:00
375871012c Merge pull request 'F2024-084 - Adjusted tab spacing in Beaver Valley’s AOP format and added a space after the bullet in the Bulleted High-level step in the Beaver Valley SAMG format. For the AOP format needed to remove the general tab format setting TabPtsPerChar (tha…' (#453) from F2024-084 into Development
Format only change
2024-11-01 10:15:00 -04:00
b7b67cce69 F2024-084 - Adjusted tab spacing in Beaver Valley’s AOP format and added a space after the bullet in the Bulleted High-level step in the Beaver Valley SAMG format. For the AOP format needed to remove the general tab format setting TabPtsPerChar (that affects all of the sub-step tab spacing) in order to have all of the AOP sub-step tab spacing the same as the EOP format. 2024-11-01 10:12:52 -04:00
6c22bff1fd Merge pull request 'C2024-034 RO Editor – Enhancement for when “Standard Fields” are modified.' (#452) from C2024-034 into Development
good for testing phase
2024-10-31 15:49:33 -04:00
0b12805d4a C2024-034 RO Editor – Enhancement for when “Standard Fields” are modified. 2024-10-31 15:44:28 -04:00
4bac1a4628 Merge pull request 'C2024-035 RO Editor – Enhancement to Handle renaming of Setpoint Value.' (#451) from C2024-035 into Development
good for testing phase
2024-10-31 15:17:38 -04:00
2cf164c445 C2024-035 RO Editor – Enhancement to Handle renaming of Setpoint Value. 2024-10-31 15:11:04 -04:00
11904e177b Merge pull request 'B2024-077 When searching Referenced Objects Reports, pick the RO and select a procedure set and the selection panel refreshes and you lose your selection. If the set has to be selected first then it should be at the top of the report panel.' (#449) from B2024-077 into Development
good for testing phase
2024-10-29 16:13:51 -04:00
527e6b5053 B2024-077 When searching Referenced Objects Reports, pick the RO and select a procedure set and the selection panel refreshes and you lose your selection. If the set has to be selected first then it should be at the top of the report panel.
Also fixed a small ancillary typo that I found while finding this.
2024-10-29 15:46:12 -04:00
053ebca267 Merge pull request 'C2024-033 RO Editor – Clarify wording presented to user when utilizing new Move RO feature in RO Editor.' (#447) from C2024-033 into Development
ready for testing phase
2024-10-29 09:54:06 -04:00
5e7fae9d47 Merge pull request 'F2024-082 - Added Dump, Modulate, Observe, Return, Proceed, Direct to the replace words list in all of the Farley formats' (#448) from F2024-082 into Development
format only change
2024-10-29 09:41:02 -04:00
0e4ce99612 F2024-082 - Added Dump, Modulate, Observe, Return, Proceed, Direct to the replace words list in all of the Farley formats 2024-10-29 09:40:00 -04:00
3c75637752 C2024-033 RO Editor – Clarify wording presented to user when utilizing new Move RO feature in RO Editor. 2024-10-29 07:54:50 -04:00
fb890ded1f Merge pull request 'C2024-031 Option to Disable reopen closed tabs on PROMS reentry' (#445) from C2024-031 into Development
good for testing phase
2024-10-28 14:40:05 -04:00
4399f31a83 Merge pull request 'F2024-079 - Set the flag to not uppercase the procedure and section titles in transitions in the background formats to make it consistent with the other Beaver Valley formats.' (#446) from F2024-079 into Development
format only change
2024-10-28 14:24:51 -04:00
ca4b21e593 F2024-079 - Set the flag to not uppercase the procedure and section titles in transitions in the background formats to make it consistent with the other Beaver Valley formats. 2024-10-28 13:59:14 -04:00
23a4edb610 C2024-031 Option to Disable reopen closed tabs on PROMS reentry 2024-10-28 13:28:35 -04:00
accc1c622c Merge pull request 'F2024-077 - Made the spacing between bullet tabs the step text consistent for bulleted sub-steps types and for multiple Cautions, Notes types' (#444) from F2024-077_BVtabs into Development
format only changes
2024-10-25 15:05:17 -04:00
e50ea6a5db F2024-077 - Made the spacing between bullet tabs the step text consistent for bulleted sub-steps types and for multiple Cautions, Notes types 2024-10-25 15:03:41 -04:00
04ce6f55db Merge pull request 'CSM B2024-087 Fix RO Editor Inconsistencies' (#443) from B2024-087 into Development
ready for testing phase
2024-10-25 14:39:24 -04:00
f0493e60d8 CSM B2024-087 Fix RO Editor Inconsistencies
Refresh issue in RO Definitions.  Modify an In Use field item that is not one of the Standard items, choose Continue, choose OK in the Text Definition Field. when prompted if want to Update Local or Generic definitions:

1. Prompt should contain table name (previously was not for Setpoint items)

2. If Select "Yes", Should refresh to new field name when return to previous screen / click ok to go back to RO Definition.
2024-10-25 14:33:20 -04:00
13edc9c9ff Merge pull request 'F2024-080 Add Initial Line/Ability to Disable to UI for South Texas' (#442) from F2024-080 into Development
good for testing phase.
2024-10-25 10:12:10 -04:00
fd0ea4404b F2024-080 Add Initial Line/Ability to Disable to UI for South Texas 2024-10-25 09:19:20 -04:00
df9d0f908a Merge pull request 'C2024-030 RO Editor Enhancement to include table name / explain the scope of changing a field definition Local vs Generic' (#441) from C2024-030 into Development
good for testing phase
2024-10-24 09:08:42 -04:00
779394ffd6 C2024-030 RO Editor Enhancement to include table name / explain the scope of changing a field definition Local vs Generic
When updating a field in a RO Definition, there is a prompt asking if changes should be Local or Generic --- Should change wording to explain that Local is local to that table (and include Table name in that wording)
2024-10-24 07:43:00 -04:00
a230ecef9b Merge pull request 'Just added space to a comment to force a new check-in of these Farely fomrat files' (#440) from General_Debugging into Development
no testing needed.  This is to try to resolve a Git and build issue with Farley format files on developer machines.
2024-10-23 16:42:06 -04:00
061bcfdc0f Just added space to a comment to force a new check-in of these Farely fomrat files 2024-10-23 16:37:04 -04:00
aced10498b Merge pull request 'B2024-084 Fix Refresh Issue in RO Definitions.' (#439) from B2024-084 into Development
good for testing phase
2024-10-23 16:09:42 -04:00
cd963d01e4 B2024-084 Fix Refresh Issue in RO Definitions.
Modify an In Use field item, choose Continue, choose OK in the Text Definition Field.  Hit Cancel in the next two windows, then open the RO Definition back up and the change is still there in the "In Use" column but not the Menu Value.    Close the RO Editor and re-open and the change was now gone as it's supposed to be.
2024-10-23 15:54:20 -04:00
458dd5fff4 Merge pull request 'B2024-085 Fix Object Reference Error when Getting Schema for a RO database in SQL' (#438) from B2024-085 into Development
good for testing phase
2024-10-23 14:56:21 -04:00
0c342fa188 B2024-085 Fix Object Reference Error when Getting Schema for a RO database in SQL
After converting the Robinson ROs to SQL, upon changing an In Use field and clicking Continue, an "Error on Schema" message box displayed with an unhandled error exception.
2024-10-23 14:07:20 -04:00
43b13443ab Merge pull request 'C2024-027 RO Editor – Add additional feature to allow Cut/Paste (Moving) a RO within the same table.' (#437) from CSM-C2024-027 into Development
Good for testing phase
2024-10-23 13:38:10 -04:00
c867d4e4b1 C2024-027 RO Editor – Add additional feature to allow Cut/Paste (Moving) a RO within the same table. 2024-10-23 13:20:20 -04:00
0f541142cc Merge pull request 'F2024-081- Removed the extra blank line after the Alternate High Level Step type. This was mistakenly changed during format cleanup. It is now restored to what it should be.' (#436) from F2024-081_Catawba into Development
Format only changes.
2024-10-23 12:01:19 -04:00
b0c55d09b0 F2024-081- Removed the extra blank line after the Alternate High Level Step type. This was mistakenly changed during format cleanup. It is now restored to what it should be. 2024-10-23 11:59:55 -04:00
ee71431210 Merge pull request 'F2024-076 - Added a line before the continue message in the background formats. Centered the bottom continue message for the step editor sections – all formats' (#435) from F2024-076_BV_ContinueMsg into Development
format only changes
2024-10-23 11:08:00 -04:00
a8196db676 F2024-076 - Added a line before the continue message in the background formats. Centered the bottom continue message for the step editor sections – all formats 2024-10-23 11:06:31 -04:00
8dc78d49eb Merge pull request 'Delete .gitattributes' (#434) from remove_gitattributes into Development
changes are good. This should allow us to compare format files again.
2024-10-17 09:27:10 -04:00
3999d1c49b Merge pull request 'C2020-049-Add-the-ability-for-PROMS-to-remember-open-procedure-tabs-fixed-print' (#433) from C2020-049-Add-the-ability-for-PROMS-to-remember-open-procedure-tabs-fixed-print into Development
good for testing phase
2024-10-17 09:25:22 -04:00
aceb928dba Delete .gitattributes
remove gitattributes file
2024-10-17 09:17:01 -04:00
f17db695d3 C2020-049-Add-the-ability-for-PROMS-to-remember-open-procedure-tabs-fixed-print 2024-10-16 16:23:31 -04:00
214dd8ec08 Merge pull request 'GIT_ATTRIBUTE_FILE - adjusting GIT settings so should be able to see diff of xml files in GIT (and not just Visual Studio history)' (#432) from GIT_ATTRIBUTE_FILE2 into Development
change approved - no testing needed for this.
2024-10-15 09:23:27 -04:00
2f974d7b52 Merge pull request 'C2024-029 RO Editor - Referenced Object Definition Form - Add check if items changed before prompting to possibly save' (#431) from C2024-029 into Development
good for testing phase
2024-10-15 09:22:16 -04:00
9f1dce896f GIT_ATTRIBUTE_FILE - adjusting GIT settings so should be able to see diff of xml files in GIT (and not just Visual Studio history) 2024-10-15 08:58:15 -04:00
a8294bb01a C2024-029 RO Editor - Referenced Object Definition Form - Add check if items changed before prompting to possibly save 2024-10-15 08:40:12 -04:00
28e4bdda29 Merge pull request 'B2024-079 Consistency of adding_editing_removing fields in RO Editor - Referenced Object Definition Form' (#430) from B2024-079 into Development
change are good.  Ready for testing phase.
2024-10-14 16:36:39 -04:00
7d408df904 B2024-079 Consistency of adding_editing_removing fields in RO Editor - Referenced Object Definition Form 2024-10-14 16:17:19 -04:00
caec6adf8d Merge pull request 'F2024-075 (Farley) Action verbs should be bolded no matter if title case or lower case - all formats' (#429) from F2024-075_FarlyRplWrds into Development
Format only change. OK to test.
2024-10-14 14:08:11 -04:00
a38c0dbe33 F2024-075 (Farley) Action verbs should be bolded no matter if title case or lower case - all formats 2024-10-14 14:06:17 -04:00
d779d4ad50 Merge pull request 'GIT_ATTRIBUTE_FILE - adjusting GIT settings so should be able to see diff of xml files in GIT (and not just Visual Studio' (#428) from GIT_ATRIBUTE_FILE into Development
No testing needed.  This is just a Git configuration setting for the developers.
2024-10-10 16:30:22 -04:00
9b71ce0fee GIT_ATTRIBUTE_FILE - adjusting GIT settings so should be able to see diff of xml files in GIT (and not just Visual Studio 2024-10-10 15:51:11 -04:00
8b18005b8e Merge pull request 'B2024-078 Bad Transition preventing editing of a substep. Can enter changed text, but then when move to another textbox, original text returns.' (#427) from B2024-078 into Development
changes good for testing phase.
2024-10-10 08:57:54 -04:00
a550ef1b50 B2024-078 Bad Transition preventing editing of a substep. Can enter changed text, but then when move to another textbox, original text returns. 2024-10-10 08:38:35 -04:00
63a60b32cc Merge pull request 'F2024-074 For Farley, Include the Cover Page in the total page count of the procedures' (#426) from F2024_074_FNP_CountCoverWithProcs into Development
format only change
2024-10-09 16:47:48 -04:00
ca4dc8d330 F2024-074 For Farley, Include the Cover Page in the total page count of the procedures 2024-10-09 16:45:38 -04:00
0a52aa5c53 Merge pull request 'C2024-024 Simple Selection of Fields to add to Return Values and Menu Values' (#423) from C2024-024 into Development
file changes look good - ready for testing phase.
2024-10-09 14:02:53 -04:00
591fc03ca2 C2024-024 Simple Selection of Fields to add to Return Values and Menu Values 2024-10-09 13:12:29 -04:00
ebd7b1249f Merge pull request 'C2024-023 Autocomplete on Group Definition Accessory Page Access Values.' (#422) from C2024-023 into Development
Ok for testing phase
2024-10-08 15:17:31 -04:00
1b6eeaf4ad C2024-023 Autocomplete on Group Definition Accessory Page Access Values. 2024-10-08 15:02:47 -04:00
1d3dac0e51 Merge pull request 'C2020-049-Add-the-ability-for-PROMS-to-remember-the-procedure-tabs-that-were-open-when-you-closed-PROMS-5' (#421) from C2020-049-Add-the-ability-for-PROMS-to-remember-the-procedure-tabs-that-were-open-when-you-closed-PROMS-4 into Development
good for testing phase
2024-10-08 09:29:13 -04:00
48da58b681 C2020-049-Add-the-ability-for-PROMS-to-remember-the-procedure-tabs-that-were-open-when-you-closed-PROMS-5 2024-10-08 08:54:32 -04:00
68639eadf0 Merge pull request 'C2020-049-Add-the-ability-for-PROMS-to-remember-the-procedure-tabs-that-were-open-when-you-closed-PROMS-4' (#420) from C2020-049-Add-the-ability-for-PROMS-to-remember-the-procedure-tabs-that-were-open-when-you-closed-PROMS-4 into Development
Looked Good. Ready for QA Testing.
2024-10-07 11:51:36 -04:00
dc77984c10 C2020-049-Add-the-ability-for-PROMS-to-remember-the-procedure-tabs-that-were-open-when-you-closed-PROMS-4 2024-10-07 11:40:26 -04:00
5b4e1cd694 C2020-049-Add-the-ability-for-PROMS-to-remember-the-procedure-tabs-that-were-open-when-you-closed-PROMS-4 2024-10-04 14:55:04 -04:00
3fbd974fa9 C2020-049-Add-the-ability-for-PROMS-to-remember-the-procedure-tabs-that-were-open-when-you-closed-PROMS-4 2024-10-04 14:38:59 -04:00
b457496297 Merge pull request 'B2024-076 Correct Linking / Numbering when utilizing Paste Replace with Enhanced Steps over unlinked steps' (#419) from B2024-076 into Development
ready for testing phase
2024-10-04 13:20:09 -04:00
dd83491169 B2024-076 Correct Linking / Numbering when utilizing Paste Replace with Enhanced Steps over unlinked steps 2024-10-04 12:46:23 -04:00
a73a8fb993 Merge pull request 'C2020-049-Add-the-ability-for-PROMS-to-remember-the-procedure-tabs-that-were-open-when-you-closed-PROMS-2' (#418) from C2020-049-Add-the-ability-for-PROMS-to-remember-the-procedure-tabs-that-were-open-when-you-closed-PROMS-2 into Development
Code looked good. Ready for QA Testing.
2024-10-04 09:42:55 -04:00
fb7a99653d C2020-049-Add-the-ability-for-PROMS-to-remember-the-procedure-tabs-that-were-open-when-you-closed-PROMS-2 2024-10-03 15:11:15 -04:00
297d75a2b3 Merge pull request 'B2024-075 Correct Linking and Numbering when utilizing Paste Before and Paste After with Enhanced Steps as well as some related UI refresh issues.' (#415) from B2024-075 into Development
Good for testing phase
2024-10-02 11:48:58 -04:00
47c5bb159a B2024-075 Correct Linking and Numbering when utilizing Paste Before and Paste After with Enhanced Steps as well as some related UI refresh issues. 2024-10-02 11:31:04 -04:00
610b2d178c Merge pull request 'C2017-031 Extend Copy / Paste Replace Functionality for Enhanced Background Steps' (#414) from C2017-031 into Development
Code changes look good. OK for testing phase.
2024-09-30 15:14:10 -04:00
bb45e551a3 C2017-031 Extend Copy / Paste Replace Functionality for Enhanced Background Steps 2024-09-30 15:02:35 -04:00
77cf6177dc Merge pull request 'F2023-136 Adjust formats to not count the cover page when calculating the page numbers for the Automatic Table of Contents.' (#412) from F2023-136_Farley into Development
Format only  changes - ready for testing
2024-09-27 10:41:26 -04:00
a830856df2 F2023-136 Adjust formats to not count the cover page when calculating the page numbers for the Automatic Table of Contents. 2024-09-27 10:34:16 -04:00
efe215f4d0 Merge pull request 'B2024-074 When Deleting annotations via the Administrative Tools -> Delete -> Delete Annotations, and checking if a procedure is checked out prior to deletion:' (#411) from B2024-074 into Development
code changes look good. ready for testing phase
2024-09-24 11:04:40 -04:00
5e2e2f841c B2024-074 When Deleting annotations via the Administrative Tools -> Delete -> Delete Annotations, and checking if a procedure is checked out prior to deletion:
1. If no Number for Procedure, Display Title.
2. If only deleting annotations from an individual procedure, verify can check out procedure.
2024-09-24 10:47:44 -04:00
9da436ab2d Merge pull request 'B2024-070_072_Correct_Typos__Setpoint_ID__and__Category_of_Transitions' (#408) from B2024-070_072 into Development
Reviewed-on: #408
2024-09-16 15:05:15 -04:00
5333b96c88 Merge pull request 'B2024-073 Correct Object Reference Error that can occur in debug mode when utilizing Edit item from the Debug toolbar at the bottom of the application. Note - this bug is only in Debug Mode / Is not customer facing.' (#409) from B2024-073_DebugMode_EditItem_ActiveParent_ObjectReferenceError into Development
Reviewed-on: #409
2024-09-16 15:00:50 -04:00
6561a11661 B2024-073 Correct Object Reference Error that can occur in debug mode when utilizing Edit item from the Debug toolbar at the bottom of the application. Note - this bug is only in Debug Mode / Is not customer facing. 2024-09-16 13:10:52 -04:00
1c9334a52b B2024-070_072_Correct_Typos__Setpoint_ID__and__Category_of_Transitions 2024-09-16 11:53:20 -04:00
2e00693a33 Merge pull request 'B2024-068_069_check_if_current_annotation_is_not_selected_before_removal_of_annotation' (#407) from B2024-068_and_069 into Development
Ready for testing phase
2024-09-11 15:40:25 -04:00
8617ce4562 B2024-068_069_check_if_current_annotation_is_not_selected_before_removal_of_annotation 2024-09-11 15:34:22 -04:00
78416ef452 Merge pull request 'F2024-071, F2024-072, F2024-073 for Farley added Action Verbs bolding, sub-section attachment types, paginate attachmens with procedure' (#406) from FarleyFormatChanges into Development
format only change
2024-09-11 14:36:36 -04:00
9ad50af4dd F2024-071, F2024-072, F2024-073 for Farley added Action Verbs bolding, sub-section attachment types, paginate attachmens with procedure 2024-09-11 14:34:17 -04:00
a6f3d62a01 Merge pull request 'C2021-038-No-and_Cancel-button-2' (#405) from C2021-038-No-and_Cancel-button-2 into Development
ready for testing phase.
2024-09-11 10:47:39 -04:00
a25b5fc6b8 C2021-038-No-and_Cancel-button-2 2024-09-10 17:54:54 -04:00
9e26e94e97 Merge pull request 'C2021-040-Change-dialog-box-when-canceling-import-procedure' (#403) from C2021-040-Change-dialog-box-when-canceling-import-procedure into Development
ready for testing phase
2024-09-09 15:12:08 -04:00
a571cb5f15 C2021-040-Change-dialog-box-when-canceling-import-procedure 2024-09-09 14:58:03 -04:00
2e00c94d34 C2021-040-Change-dialog-box-when-canceling-import-procedure 2024-09-09 13:47:44 -04:00
f1506b9aee Merge pull request 'C2021-034-Change-applicability-dialog-box-response-from-Yes_No_Cancel-to-Yes_No' (#401) from C2021-034-Change-applicability-dialog-box-response-from-Yes_No_Cancel-to-Yes_No into Development
ready for testing phase
2024-09-06 08:37:45 -04:00
2805471301 C2021-034-Change-applicability-dialog-box-response-from-Yes_No_Cancel-to-Yes_No 2024-09-05 16:50:06 -04:00
89f55e091f Merge pull request 'B2024-065-Print-dialog-initalize-to-Working-Default-Level-Setting' (#400) from B2024-065-Print-dialog-initalize-to-Working-Default-Level-Setting into Development
ready for testing phase
2024-09-04 14:16:52 -04:00
da6c47d0ff B2024-065-Print-dialog-initalize-to-Working-Default-Level-Setting 2024-09-04 11:59:48 -04:00
63cac73de3 Merge pull request 'B2024-063-Invalid-Format-message-box-displays-when-rev-date-empty-2' (#398) from B2024-063-Invalid-Format-message-box-displays-when-rev-date-empty-2 into Development
OK for testing phase
2024-08-27 11:08:30 -04:00
c8ed5b0565 B2024-063-Invalid-Format-message-box-displays-when-rev-date-empty-2 2024-08-27 11:04:23 -04:00
c6342fea49 Merge pull request 'B2024-060-Adding-a-picture-PROMS-crashes' (#396) from B2024-060-Adding-a-picture-PROMS-crashes into Development
Ok for testing phase
2024-08-27 10:33:56 -04:00
7a3748f7e0 B2024-060-Adding-a-picture-PROMS-crashes 2024-08-26 11:11:03 -04:00
516b479c0c B2024-060-Adding-a-picture-PROMS-crashes 2024-08-26 10:00:31 -04:00
c06744b3bb B2024-060-Adding-a-picture-PROMS-crashes 2024-08-22 08:19:20 -04:00
92 changed files with 7832 additions and 4957 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -23,8 +23,8 @@ using System.Runtime.CompilerServices;
// Build YYMM (two digit year, two digit month) // Build YYMM (two digit year, two digit month)
// Revision DHH (day - no leading zero, two digit hour - military time // Revision DHH (day - no leading zero, two digit hour - military time
// //
[assembly: AssemblyVersion("2.3.2404.1611")] [assembly: AssemblyVersion("2.3.2410.907")]
[assembly: AssemblyFileVersion("2.3.2404.1611")] [assembly: AssemblyFileVersion("2.3.2410.907")]
// //
// In order to sign your assembly you must specify a key to use. Refer to the // In order to sign your assembly you must specify a key to use. Refer to the
@@ -91,6 +91,8 @@ using System.Runtime.CompilerServices;

View File

@@ -377,6 +377,7 @@ namespace ROEditor
this.btnOK.TabIndex = 3; this.btnOK.TabIndex = 3;
this.btnOK.Text = "OK"; this.btnOK.Text = "OK";
this.btnOK.Click += new System.EventHandler(this.btnOK_Click); this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK;
// //
// btnCancel // btnCancel
// //
@@ -553,6 +554,7 @@ namespace ROEditor
// update the local/internal copy of the schema. // update the local/internal copy of the schema.
if (success != true) if (success != true)
{ {
this.DialogResult = DialogResult.Cancel;
return; // DO YET process an error. return; // DO YET process an error.
} }
else else

View File

@@ -266,6 +266,7 @@ namespace ROEditor
if (success != true) if (success != true)
{ {
this.DialogResult = DialogResult.Cancel;
return; // DO YET process an error. return; // DO YET process an error.
} }
else else
@@ -367,6 +368,7 @@ namespace ROEditor
// //
// btnOK // btnOK
// //
this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK;
this.btnOK.Location = new System.Drawing.Point(216, 72); this.btnOK.Location = new System.Drawing.Point(216, 72);
this.btnOK.Name = "btnOK"; this.btnOK.Name = "btnOK";
this.btnOK.Size = new System.Drawing.Size(88, 24); this.btnOK.Size = new System.Drawing.Size(88, 24);

View File

@@ -220,6 +220,7 @@ namespace ROEditor
return; return;
} }
string origFieldName = myrof.GetFieldname;
myrof.SetFieldname(this.tbFieldName.Text); myrof.SetFieldname(this.tbFieldName.Text);
uint ftype=0; uint ftype=0;
if (this.rbSingleLine.Checked == true) if (this.rbSingleLine.Checked == true)
@@ -247,6 +248,7 @@ namespace ROEditor
if (success != true) if (success != true)
{ {
this.DialogResult = DialogResult.Cancel;
return; // DO YET process an error. return; // DO YET process an error.
} }
return; return;
@@ -270,7 +272,9 @@ namespace ROEditor
} }
myrof.SetFieldType(ftype); myrof.SetFieldType(ftype);
FieldTextFrm ftxt = new FieldTextFrm(myrof, myrodb, myelem, original_type, editlevel, origname, avlist, iulist); FieldTextFrm ftxt = new FieldTextFrm(myrof, myrodb, myelem, original_type, editlevel, origname, avlist, iulist);
ftxt.ShowDialog(); if (ftxt.ShowDialog() == DialogResult.Cancel)
myrof.SetFieldname(origFieldName);
this.Close(); this.Close();
} }
#region Windows Form Designer generated code #region Windows Form Designer generated code

View File

@@ -100,6 +100,7 @@ using System.Text;
using RODBInterface; using RODBInterface;
using ROFields; using ROFields;
using VlnStatus; using VlnStatus;
using System.Linq;
namespace ROEditor namespace ROEditor
{ {
@@ -245,6 +246,37 @@ namespace ROEditor
return CvtFldToUserFld(origGroup); return CvtFldToUserFld(origGroup);
} }
} }
//CSM C2024-023
//Part of 2024 PROMS Upgrades
//When the Overall Form is activated
//if there are any items that are Fields that are in use
//add them as auto-complete options to the
//Accessory Page Access - Value Textbox
//Typing < will bring up the auto-complete options
protected void tbValue_AddAutoComplete(object sender, EventArgs e)
{
string dummy = ""; // need for RODB_GetFIeldsInUse call, won't be used.
ArrayList AvailList, InUseList;
//first see if it is a valid 'InUse' Field.
AvailList = myrodb.RODB_GetFields(elem, (uint)RecordType.Schema);
InUseList = myrodb.RODB_GetFieldsInUse(elem, AvailList, "FieldsInUse", ref dummy, false);
//if any ROField items are in use,
//use LINQ to get a string array of the FieldNames
if (InUseList.Count > 0)
{
string[] InUseListFieldNames = InUseList.OfType<ROField>().Select(x => $"<{x.GetFieldname}>").ToArray();
AutoCompleteStringCollection allowedTypes = new AutoCompleteStringCollection();
allowedTypes.AddRange(InUseListFieldNames);
tbValue.AutoCompleteCustomSource = allowedTypes;
tbValue.AutoCompleteMode = AutoCompleteMode.Suggest;
tbValue.AutoCompleteSource = AutoCompleteSource.CustomSource;
}
}
private void FillInData() private void FillInData()
{ {
this.tbGroup.Text = DetermineGroupName(); this.tbGroup.Text = DetermineGroupName();
@@ -401,6 +433,7 @@ namespace ROEditor
// //
// btnOK // btnOK
// //
this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK;
this.btnOK.Location = new System.Drawing.Point(24, 248); this.btnOK.Location = new System.Drawing.Point(24, 248);
this.btnOK.Name = "btnOK"; this.btnOK.Name = "btnOK";
this.btnOK.Size = new System.Drawing.Size(144, 24); this.btnOK.Size = new System.Drawing.Size(144, 24);
@@ -432,6 +465,7 @@ namespace ROEditor
this.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); this.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
this.Name = "GroupDefFrm"; this.Name = "GroupDefFrm";
this.Text = "Group Definition"; this.Text = "Group Definition";
this.Activated += new EventHandler(tbValue_AddAutoComplete);
this.groupBox1.ResumeLayout(false); this.groupBox1.ResumeLayout(false);
this.ResumeLayout(false); this.ResumeLayout(false);

View File

@@ -151,7 +151,7 @@ namespace ROEditor
private string origMenuItem; private string origMenuItem;
StringBuilder parseerror; StringBuilder parseerror;
private int hi, lo; private int hi, lo;
private Label lb_chkApplc; private Label lb_chkApplc;
private int dbtype; private int dbtype;
// C2021-026 returns true is Parent/Child info was passed into the RO Editor // C2021-026 returns true is Parent/Child info was passed into the RO Editor
public bool PCApplicabilityEnabled public bool PCApplicabilityEnabled
@@ -188,33 +188,33 @@ namespace ROEditor
lboxInUse.Visible = true; lboxInUse.Visible = true;
lb_chkApplc.Visible = false; lb_chkApplc.Visible = false;
} }
if (editlevel==(uint)RecordType.GroupSchema)this.Text = "Subgroup Definition"; if (editlevel == (uint)RecordType.GroupSchema) this.Text = "Subgroup Definition";
FillInData(grptxt); FillInData(grptxt);
} }
/// <summary> /// <summary>
/// Clean up any resources being used. /// Clean up any resources being used.
/// </summary> /// </summary>
protected override void Dispose( bool disposing ) protected override void Dispose(bool disposing)
{ {
if( disposing ) if (disposing)
{ {
if(components != null) if (components != null)
{ {
components.Dispose(); components.Dispose();
} }
} }
base.Dispose( disposing ); base.Dispose(disposing);
} }
private void FillInAvailable() private void FillInAvailable()
{ {
ROField rof; ROField rof;
// put the items in the AvailList box. // put the items in the AvailList box.
for (int i=0; i< AvailList.Count; i++) for (int i = 0; i < AvailList.Count; i++)
{ {
rof = (ROField) AvailList[i]; rof = (ROField)AvailList[i];
if (rof.GetFieldname != null) // DO YET: Why null? if (rof.GetFieldname != null) // DO YET: Why null?
this.lboxAvail.Items.Add(rof.GetFieldname); this.lboxAvail.Items.Add(rof.GetFieldname);
} }
@@ -277,7 +277,7 @@ namespace ROEditor
_initializing = false; _initializing = false;
} }
private void DoValueTextBoxes() private void DoValueTextBoxes()
{ {
string menuitm, retval; string menuitm, retval;
@@ -297,7 +297,7 @@ namespace ROEditor
else else
parent = null; parent = null;
} }
if (menuitm !="") if (menuitm != "")
this.tbMenuVal.Text = CvtFldToUserFld(menuitm); this.tbMenuVal.Text = CvtFldToUserFld(menuitm);
else else
this.tbMenuVal.Text = ""; this.tbMenuVal.Text = "";
@@ -310,21 +310,21 @@ namespace ROEditor
this.lblRetVal.Visible = true; this.lblRetVal.Visible = true;
VlnXmlElement parent; VlnXmlElement parent;
parent = (VlnXmlElement) elem.ParentNode; parent = (VlnXmlElement) elem.ParentNode;
while (parent != null && (menuitm == "" || retval=="")) while (parent != null && (menuitm == "" || retval == ""))
{ {
// walk up tree to get parent and check for data there // walk up tree to get parent and check for data there
if (menuitm == "") menuitm = parent.GetAttribute("MenuItem"); if (menuitm == "") menuitm = parent.GetAttribute("MenuItem");
if (retval == "") retval = parent.GetAttribute("RetVal"); if (retval == "") retval = parent.GetAttribute("RetVal");
if (parent.Name != "RO_Root") if (parent.Name != "RO_Root")
parent = (VlnXmlElement) parent.ParentNode; parent = (VlnXmlElement)parent.ParentNode;
else else
parent = null; parent = null;
} }
if (menuitm!="") if (menuitm != "")
this.tbMenuVal.Text = CvtFldToUserFld(menuitm); this.tbMenuVal.Text = CvtFldToUserFld(menuitm);
else else
this.tbMenuVal.Text = ""; this.tbMenuVal.Text = "";
if (retval!="") if (retval != "")
this.tbRetVal.Text = CvtFldToUserFld(retval); this.tbRetVal.Text = CvtFldToUserFld(retval);
else else
this.tbRetVal.Text = ""; this.tbRetVal.Text = "";
@@ -332,7 +332,7 @@ namespace ROEditor
} }
private void FillInData(string grptxt) private void FillInData(string grptxt)
{ {
this.lblGroupText.Text = grptxt; this.lblGroupText.Text = grptxt;
DoValueTextBoxes(); DoValueTextBoxes();
SetUpListBoxes(); SetUpListBoxes();
@@ -344,24 +344,27 @@ namespace ROEditor
lboxAvail.GotFocus += new EventHandler(this.lboxAvail_GotFocus); lboxAvail.GotFocus += new EventHandler(this.lboxAvail_GotFocus);
lboxInUse.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lboxInUse_MouseUp);
lboxInUseCB.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lboxInUseCB_MouseUp);
// save copies of local data, so if there is a change, we know we must save them. // save copies of local data, so if there is a change, we know we must save them.
origRetVal=this.tbRetVal.Text; origRetVal = this.tbRetVal.Text;
origMenuItem=this.tbMenuVal.Text; origMenuItem = this.tbMenuVal.Text;
// if this is a database level definition & it's a user defined database, // if this is a database level definition & it's a user defined database,
// the okay button is disabled until a field is used. // the okay button is disabled until a field is used.
if (elem.ParentNode.Name == "RO_Root" && dbtype==3) if (elem.ParentNode.Name == "RO_Root" && dbtype == 3)
{ {
string attr; string attr;
if (editlevel==(uint)RecordType.Schema) if (editlevel == (uint)RecordType.Schema)
attr = elem.GetAttribute("FieldsInUse"); attr = elem.GetAttribute("FieldsInUse");
else else
attr = elem.GetAttribute("GroupFieldsInUse"); attr = elem.GetAttribute("GroupFieldsInUse");
if (attr==null || attr=="") btnOK.Enabled=false; if (attr == null || attr == "") btnOK.Enabled = false;
} }
} }
protected void lboxInUse_GotFocus (object sender, EventArgs e) protected void lboxInUse_GotFocus(object sender, EventArgs e)
{ {
lboxAvail.ClearSelected(); lboxAvail.ClearSelected();
this.btnRemove.Enabled = true; this.btnRemove.Enabled = true;
@@ -375,7 +378,7 @@ namespace ROEditor
this.btnAdd.Enabled = false; this.btnAdd.Enabled = false;
this.btnEdit.Enabled = true; this.btnEdit.Enabled = true;
} }
protected void lboxAvail_GotFocus (object sender, EventArgs e) protected void lboxAvail_GotFocus(object sender, EventArgs e)
{ {
if (PCApplicabilityEnabled) if (PCApplicabilityEnabled)
lboxInUseCB.ClearSelected(); lboxInUseCB.ClearSelected();
@@ -385,6 +388,103 @@ namespace ROEditor
this.btnRemove.Enabled = false; this.btnRemove.Enabled = false;
this.btnEdit.Enabled = true; this.btnEdit.Enabled = true;
} }
//CSM C2024-024
//Simple Selection of Fields to add to Return Values and Menu Values.
//Part of 2024 PROMS Upgrades
//Add Context Menu for In Use Listbox
//Will allow user to right click Selected Items
//and add then to the Return Value / Menu Value Text Boxes
//without re-typing them
protected void lboxInUse_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right && lboxInUse.SelectedItems.Count > 0)
{
ContextMenuStrip cn = new ContextMenuStrip();
if (tbRetVal.Visible)
{
var AddToReturnItem = new ToolStripMenuItem("Add to Return Value");
AddToReturnItem.Click += new EventHandler(lboxInUse_Click);
AddToReturnItem.Name = "Add to Return Value";
cn.Items.Add(AddToReturnItem);
}
var AddToMenuItem = new ToolStripMenuItem("Add to Menu Value");
AddToMenuItem.Click += new EventHandler(lboxInUse_Click);
AddToMenuItem.Name = "Add to Menu Value";
cn.Items.Add(AddToMenuItem);
this.lboxInUse.ContextMenuStrip = cn;
cn.Show(Control.MousePosition.X, Control.MousePosition.Y);
}
}
private void lboxInUse_Click(object sender, EventArgs e)
{
switch (((ToolStripMenuItem)sender).Name)
{
case "Add to Return Value":
if (tbRetVal.Text == "")
tbRetVal.Text += $"<{lboxInUse.SelectedItem}>";
else
tbRetVal.Text += $" - <{lboxInUse.SelectedItem}>";
break;
case "Add to Menu Value":
if (tbMenuVal.Text == "")
tbMenuVal.Text += $"<{lboxInUse.SelectedItem}>";
else
tbMenuVal.Text += $" - <{lboxInUse.SelectedItem}>";
break;
}
}
//CSM C2024-024
//Simple Selection of Fields to add to Return Values and Menu Values.
//Part of 2024 PROMS Upgrades
//Add Context Menu for In Use ComboBox
//(Replaces In Use Listbox when Applicability
//to allow for selection of items per Unit)
//Will allow user to right click Selected Items
//and add then to the Return Value / Menu Value Text Boxes
//without re-typing them
protected void lboxInUseCB_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right && lboxInUseCB.SelectedItems.Count > 0)
{
ContextMenuStrip cn = new ContextMenuStrip();
if (tbRetVal.Visible)
{
var AddToReturnItem = new ToolStripMenuItem("Add to Return Value");
AddToReturnItem.Click += new EventHandler(lboxInUseCB_Click);
AddToReturnItem.Name = "Add to Return Value";
cn.Items.Add(AddToReturnItem);
}
var AddToMenuItem = new ToolStripMenuItem("Add to Menu Value");
AddToMenuItem.Click += new EventHandler(lboxInUseCB_Click);
AddToMenuItem.Name = "Add to Menu Value";
cn.Items.Add(AddToMenuItem);
this.lboxInUseCB.ContextMenuStrip = cn;
cn.Show(Control.MousePosition.X, Control.MousePosition.Y);
}
}
private void lboxInUseCB_Click(object sender, EventArgs e)
{
switch (((ToolStripMenuItem)sender).Name)
{
case "Add to Return Value":
if (tbRetVal.Text == "")
tbRetVal.Text += $"<{lboxInUseCB.SelectedItem}>";
else
tbRetVal.Text += $" - <{lboxInUseCB.SelectedItem}>";
break;
case "Add to Menu Value":
if (tbMenuVal.Text == "")
tbMenuVal.Text += $"<{lboxInUseCB.SelectedItem}>";
else
tbMenuVal.Text += $" - <{lboxInUseCB.SelectedItem}>";
break;
}
}
private void btnRemove_Click(object sender, System.EventArgs e) private void btnRemove_Click(object sender, System.EventArgs e)
{ {
//get item in lboxInUse (in use list) and remove it from there //get item in lboxInUse (in use list) and remove it from there
@@ -404,7 +504,7 @@ namespace ROEditor
ROField copyrof = new ROField(rof.GetFieldname, rof.GetRecID, rof.GetMasterRecID, rof.GetFieldType); ROField copyrof = new ROField(rof.GetFieldname, rof.GetRecID, rof.GetMasterRecID, rof.GetFieldType);
AvailList.Add(copyrof); AvailList.Add(copyrof);
lboxAvail.Items.Add(copyrof.GetFieldname); lboxAvail.Items.Add(CvtFldToUserFld(copyrof.GetFieldname));
InUseList.RemoveAt(indx); InUseList.RemoveAt(indx);
if (InUseApplcList.Contains(rof)) // C2021-026 remove from the field applicability list if (InUseApplcList.Contains(rof)) // C2021-026 remove from the field applicability list
InUseApplcList.Remove(rof); InUseApplcList.Remove(rof);
@@ -427,7 +527,7 @@ namespace ROEditor
ROField copyrof = new ROField(rof.GetFieldname, rof.GetRecID, rof.GetMasterRecID, rof.GetFieldType); ROField copyrof = new ROField(rof.GetFieldname, rof.GetRecID, rof.GetMasterRecID, rof.GetFieldType);
AvailList.Add(copyrof); AvailList.Add(copyrof);
lboxAvail.Items.Add(copyrof.GetFieldname); lboxAvail.Items.Add(CvtFldToUserFld(copyrof.GetFieldname));
InUseList.RemoveAt(indx); InUseList.RemoveAt(indx);
if (InUseApplcList.Contains(rof)) // C2021-026 remove from the field applicability list if (InUseApplcList.Contains(rof)) // C2021-026 remove from the field applicability list
InUseApplcList.Remove(rof); InUseApplcList.Remove(rof);
@@ -455,7 +555,7 @@ namespace ROEditor
ROField copyrof = new ROField(rof.GetFieldname, rof.GetRecID, rof.GetMasterRecID, rof.GetFieldType); ROField copyrof = new ROField(rof.GetFieldname, rof.GetRecID, rof.GetMasterRecID, rof.GetFieldType);
InUseList.Add(copyrof); InUseList.Add(copyrof);
lboxInUseCB.Items.Add(copyrof.GetFieldname); lboxInUseCB.Items.Add(CvtFldToUserFld(copyrof.GetFieldname));
AvailList.RemoveAt(indx); AvailList.RemoveAt(indx);
lboxAvail.Refresh(); lboxAvail.Refresh();
lboxInUseCB.Refresh(); lboxInUseCB.Refresh();
@@ -477,7 +577,7 @@ namespace ROEditor
ROField copyrof = new ROField(rof.GetFieldname, rof.GetRecID, rof.GetMasterRecID, rof.GetFieldType); ROField copyrof = new ROField(rof.GetFieldname, rof.GetRecID, rof.GetMasterRecID, rof.GetFieldType);
InUseList.Add(copyrof); InUseList.Add(copyrof);
lboxInUse.Items.Add(copyrof.GetFieldname); lboxInUse.Items.Add(CvtFldToUserFld(copyrof.GetFieldname));
AvailList.RemoveAt(indx); AvailList.RemoveAt(indx);
lboxAvail.Refresh(); lboxAvail.Refresh();
lboxInUse.Refresh(); lboxInUse.Refresh();
@@ -640,12 +740,13 @@ namespace ROEditor
{ {
ROField rof = (ROField) InUseList[i]; ROField rof = (ROField) InUseList[i];
rofname = rof.GetFieldname; rofname = rof.GetFieldname;
if (inusename == rofname) if (inusename == rofname || inusename == CvtFldToUserFld(rofname))
{ {
found = true; found = true;
break; break;
} }
} }
if (inusename == "u") found = true; //to handle unit designation
if (found == false)syntax(inusename+" invalid field name",strt,where); if (found == false)syntax(inusename+" invalid field name",strt,where);
// used to have procini def stuff here. // used to have procini def stuff here.
start=where+1; start=where+1;
@@ -745,7 +846,7 @@ namespace ROEditor
{ {
ROField rof = (ROField) InUseList[i]; ROField rof = (ROField) InUseList[i];
rofname = rof.GetFieldname; rofname = rof.GetFieldname;
if (inusename == rofname) if (inusename == rofname || inusename == CvtFldToUserFld(rofname))
{ {
found = true; found = true;
break; break;
@@ -1096,7 +1197,8 @@ namespace ROEditor
return; return;
} }
} }
string origname = CvtFldToUserFld(rof.GetFieldname);
uint ftype = rof.GetFieldType; uint ftype = rof.GetFieldType;
if (ftype == (uint)FieldTypes.FrmtSingleTxt || ftype == (uint)FieldTypes.VariableTxt || if (ftype == (uint)FieldTypes.FrmtSingleTxt || ftype == (uint)FieldTypes.VariableTxt ||
ftype == (uint)FieldTypes.SingleTxt || ftype == (uint)FieldTypes.Table || ftype == (uint)FieldTypes.SingleTxt || ftype == (uint)FieldTypes.Table ||
@@ -1112,6 +1214,10 @@ namespace ROEditor
nwcomb.ShowDialog(); nwcomb.ShowDialog();
} }
//need to refresh pull from table for fields in use.
_ = myrodb.RODB_GetFields(elem, 0, true);
string newname = CvtFldToUserFld(rof.GetFieldname);
// Update Lists & Text boxes to represent any modified text. // Update Lists & Text boxes to represent any modified text.
if (isInSelList) if (isInSelList)
{ {
@@ -1125,20 +1231,31 @@ namespace ROEditor
rof = (ROField) InUseList[i]; rof = (ROField) InUseList[i];
if (rof.GetFieldname != null) if (rof.GetFieldname != null)
{ {
string fieldname = CvtFldToUserFld(rof.GetFieldname);
// C2021-026 if doing Parent/Child enabled RO Editor, put the In Use fields in the Check Box List instead of the normal list // C2021-026 if doing Parent/Child enabled RO Editor, put the In Use fields in the Check Box List instead of the normal list
if (PCApplicabilityEnabled) if (PCApplicabilityEnabled)
{ {
this.lboxInUseCB.Items.Add(rof.GetFieldname); this.lboxInUseCB.Items.Add(fieldname);
if (rof.FieldTypeCanDoApplicability()) if (rof.FieldTypeCanDoApplicability())
{ {
if (ContainedInUseApplicList(rof)) if (ContainedInUseApplicList(rof))
this.lboxInUseCB.SetItemCheckState(lboxInUseCB.Items.IndexOf(rof.GetFieldname), CheckState.Checked); this.lboxInUseCB.SetItemCheckState(lboxInUseCB.Items.IndexOf(fieldname), CheckState.Checked);
} }
} }
else else
this.lboxInUse.Items.Add(rof.GetFieldname); this.lboxInUse.Items.Add(fieldname);
} }
} }
if (origname != newname)
{
tbMenuVal.Text = tbMenuVal.Text.Replace($"<{origname}>", $"<{newname}>");
tbRetVal.Text = tbRetVal.Text.Replace($"<{origname}>", $"<{newname}>");
//CSM-C2024-035 This is needed for items like Setpoint Value that may have commas with field lengths in them
tbMenuVal.Text = tbMenuVal.Text.Replace($"<{origname},", $"<{newname},");
tbRetVal.Text = tbRetVal.Text.Replace($"<{origname},", $"<{newname},");
}
} }
else else
{ {
@@ -1148,7 +1265,7 @@ namespace ROEditor
{ {
rof = (ROField) AvailList[i]; rof = (ROField) AvailList[i];
if (rof.GetFieldname != null) if (rof.GetFieldname != null)
this.lboxAvail.Items.Add(rof.GetFieldname); this.lboxAvail.Items.Add(CvtFldToUserFld(rof.GetFieldname));
} }
} }
} }
@@ -1162,8 +1279,11 @@ namespace ROEditor
if (rof.GetFieldname != null) if (rof.GetFieldname != null)
{ {
AvailList.Add(rof); AvailList.Add(rof);
lboxAvail.Items.Add(rof.GetFieldname); lboxAvail.Items.Add(CvtFldToUserFld(rof.GetFieldname));
} }
//need to refresh pull from table for fields in use.
_ = myrodb.RODB_GetFields(elem, 0, true);
} }
// C2021-026 Check/un-check field for Parent/Child values // C2021-026 Check/un-check field for Parent/Child values
private void lboxInUseCB_ItemCheck(object sender, ItemCheckEventArgs e) private void lboxInUseCB_ItemCheck(object sender, ItemCheckEventArgs e)
@@ -1397,6 +1517,7 @@ namespace ROEditor
this.btnCancel.Size = new System.Drawing.Size(80, 24); this.btnCancel.Size = new System.Drawing.Size(80, 24);
this.btnCancel.TabIndex = 10; this.btnCancel.TabIndex = 10;
this.btnCancel.Text = "Cancel"; this.btnCancel.Text = "Cancel";
// //
// RODefFrm // RODefFrm
// //
@@ -1419,6 +1540,71 @@ namespace ROEditor
this.PerformLayout(); this.PerformLayout();
} }
//if User clicked save (DialogResult.OK) close the form
//if use did not click save, ask if they are sure they want to close the form
//only close if they say "Yes, they want to"
protected override void OnFormClosing(FormClosingEventArgs e)
{
if (this.DialogResult != System.Windows.Forms.DialogResult.OK && IsPendingChange() && !CloseCancel())
{
e.Cancel = true;
}
}
public static bool CloseCancel()
{
const string message = "Are you sure that you would like to cancel? Information may not be saved.";
const string caption = "Cancel";
var result = MessageBox.Show(message, caption,
MessageBoxButtons.YesNo,
MessageBoxIcon.Question);
return result == DialogResult.Yes;
}
//return true if a field has been modified
private bool IsPendingChange()
{
if (origRetVal != this.tbRetVal.Text)
return true;
if (origMenuItem != this.tbMenuVal.Text)
return true;
// check if in use records have changed
string inuserecs = null;
ROField rof;
for (int i = 0; i < InUseList.Count; i++)
{
rof = (ROField)InUseList[i];
if (rof.GetFieldname != null) //DO YET: why null?
{
inuserecs = inuserecs + rof.GetRecID;
if (i + 1 < InUseList.Count) inuserecs = inuserecs + " ";
}
}
if (inuserecs != origFieldsInUse)
return true;
//check if applicability fields have changed
string applicfieldrecs = null;
for (int i = 0; i < InUseApplcList.Count; i++)
{
rof = (ROField)InUseApplcList[i];
if (rof.GetFieldname != null)
{
applicfieldrecs = applicfieldrecs + rof.GetRecID;
if (i + 1 < InUseApplcList.Count) applicfieldrecs = applicfieldrecs + " ";
}
}
if (applicfieldrecs != origApplicFields)
return true;
//nothing has changed
return false;
}
#endregion #endregion
} }
} }

File diff suppressed because it is too large Load Diff

View File

@@ -125,7 +125,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACE ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACE
CAAAAk1TRnQBSQFMAgEBAgEAARwBAAEcAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo CAAAAk1TRnQBSQFMAgEBAgEAASwBAAEsAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@@ -175,7 +175,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAe ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAe
CwAAAk1TRnQBSQFMAgEBBgEAARwBAAEcAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo CwAAAk1TRnQBSQFMAgEBBgEAASwBAAEsAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA

View File

@@ -336,10 +336,10 @@ namespace RODBInterface
public abstract bool RODB_GetChildData(VlnXmlElement node, bool CheckChildCount); public abstract bool RODB_GetChildData(VlnXmlElement node, bool CheckChildCount);
public abstract bool IsDuplicateAccPageID(VlnXmlElement ro, string newacc); public abstract bool IsDuplicateAccPageID(VlnXmlElement ro, string newacc);
public abstract VlnXmlElement RODB_ReadRO(string tbl, string recid); public abstract VlnXmlElement RODB_ReadRO(string tbl, string recid);
public abstract bool RODB_WriteRO(VlnXmlElement ro); public abstract bool RODB_WriteRO(VlnXmlElement ro, bool movedRO = false);
public abstract bool RODB_InsertRO(VlnXmlElement ro); public abstract bool RODB_InsertRO(VlnXmlElement ro);
public abstract ushort RODB_GetFieldType(VlnXmlElement elem, string TableName, string Fld); public abstract ushort RODB_GetFieldType(VlnXmlElement elem, string TableName, string Fld);
public abstract ArrayList RODB_GetFields(VlnXmlElement elem, uint rtype); public abstract ArrayList RODB_GetFields(VlnXmlElement elem, uint rtype, bool refresh = false);
public abstract string RODB_GetSchemaPiece(string Recid, string table); public abstract string RODB_GetSchemaPiece(string Recid, string table);
public abstract bool RODB_NewSchemaPiece(string recid, string parentid, string table, string schpiece, uint rtype); public abstract bool RODB_NewSchemaPiece(string recid, string parentid, string table, string schpiece, uint rtype);
public abstract bool RODB_WriteSchemaPiece(string Recid, string table, string schpiece); public abstract bool RODB_WriteSchemaPiece(string Recid, string table, string schpiece);
@@ -2120,7 +2120,7 @@ namespace RODBInterface
return retele; return retele;
} }
public override bool RODB_WriteRO(VlnXmlElement ro) public override bool RODB_WriteRO(VlnXmlElement ro, bool movedRO = false)
{ {
bool success; bool success;
if (ro.Name == "vlnGroup") if (ro.Name == "vlnGroup")
@@ -2140,6 +2140,13 @@ namespace RODBInterface
string dt = string.Format("{0:yyyyMMddHHmmss}", System.DateTime.Now); string dt = string.Format("{0:yyyyMMddHHmmss}", System.DateTime.Now);
string xmlstr = GenerateXmlString(ro, false); string xmlstr = GenerateXmlString(ro, false);
string strUpdate = "UPDATE " + ro.GetAttribute("Table") + " SET Info = '" + xmlstr + "'"; string strUpdate = "UPDATE " + ro.GetAttribute("Table") + " SET Info = '" + xmlstr + "'";
if (movedRO)
{
VlnXmlElement parent = (VlnXmlElement)ro.ParentNode;
ro.SetAttribute("ParentID", parent.GetAttribute("RecID"));
strUpdate += ", ParentID = '" + ro.GetAttribute("ParentID") + "'";
}
strUpdate = strUpdate + ", ModDateTime = '" + dt + "', AccPageID = '" + wraccid + "' WHERE RecID='" + ro.GetAttribute("RecID") + "'"; strUpdate = strUpdate + ", ModDateTime = '" + dt + "', AccPageID = '" + wraccid + "' WHERE RecID='" + ro.GetAttribute("RecID") + "'";
try try
{ {
@@ -2192,6 +2199,8 @@ namespace RODBInterface
ro.SetAttribute("HasChild", "False"); ro.SetAttribute("HasChild", "False");
if (ro.HasAttribute("AccPageID")) if (ro.HasAttribute("AccPageID"))
{ {
// Code is never reached, but this was noticed - this next line should likely be:
// strInsert = "INSERT INTO " + parent.GetAttribute("Table") + "( RecID, RecType, ParentID, AccPageID, ModDateTime, Info ) ";
strInsert = "INSERT INTO " + parent.GetAttribute("Table") + "( RecID, RecType, ParentID, ModDateTime, AccPageID, Info ) "; strInsert = "INSERT INTO " + parent.GetAttribute("Table") + "( RecID, RecType, ParentID, ModDateTime, AccPageID, Info ) ";
strInsert = strInsert + " VALUES ('" + ro.GetAttribute("RecID") + "'," + (uint)RecordType.Group + ",'" + ro.GetAttribute("ParentID"); strInsert = strInsert + " VALUES ('" + ro.GetAttribute("RecID") + "'," + (uint)RecordType.Group + ",'" + ro.GetAttribute("ParentID");
strInsert = strInsert + "','" + wraccid + "','" + dt + "','" + xmlstr + "');"; strInsert = strInsert + "','" + wraccid + "','" + dt + "','" + xmlstr + "');";
@@ -2294,11 +2303,16 @@ namespace RODBInterface
} }
// For the given element's table, get all of the RO fields defined in this table. // For the given element's table, get all of the RO fields defined in this table.
public override ArrayList RODB_GetFields(VlnXmlElement elem, uint rtype) public override ArrayList RODB_GetFields(VlnXmlElement elem, uint rtype, bool refresh = false)
{ {
string table = elem.GetAttribute("Table"); string table = elem.GetAttribute("Table");
if (!FieldDefinitions.ContainsKey(table)) if (!FieldDefinitions.ContainsKey(table))
FieldDefinitions.Add(table, RODB_GetFieldsFromDB(elem)); FieldDefinitions.Add(table, RODB_GetFieldsFromDB(elem));
else if (refresh)
{
FieldDefinitions.Remove(table);
FieldDefinitions.Add(table, RODB_GetFieldsFromDB(elem));
}
return FieldDefinitions[table]; return FieldDefinitions[table];
} }
private Dictionary<string, ArrayList> _FieldDefinitions = null; private Dictionary<string, ArrayList> _FieldDefinitions = null;
@@ -2391,7 +2405,7 @@ namespace RODBInterface
Info = null; Info = null;
DBE.ReaderClose(); DBE.ReaderClose();
DBE.CommandDispose(); DBE.CommandDispose();
return Info.Replace("&apos;", "\'"); return Info?.Replace("&apos;", "\'");
} }
public override bool RODB_NewSchemaPiece(string recid, string parentid, string table, string schpiece, uint rtype) public override bool RODB_NewSchemaPiece(string recid, string parentid, string table, string schpiece, uint rtype)
@@ -2653,8 +2667,9 @@ namespace RODBInterface
bool isused = RODB_CheckForStandardName(oldname); bool isused = RODB_CheckForStandardName(oldname);
if (isused == true) if (isused == true)
{ {
MessageBox.Show("The field name is used to define new Setpoints or Graphics Database.\n The update will be for this local (database) group only.", "Field name modification."); DialogResult result = MessageBox.Show($"The field name is used to define new Setpoints or Graphics Database.\n\n The update will be for this local (database) group only.\n\n Select OK to update local definition for all items in that table ({GetTopParentName(myelem)}).", "Field name modification.", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
changegeneric = false; changegeneric = false;
if(result == DialogResult.Cancel) return false;
} }
} }
@@ -2666,8 +2681,8 @@ namespace RODBInterface
// Generic definition, i.e. all Groups, and No updates only Local definition, i.e. just this Group Added a // Generic definition, i.e. all Groups, and No updates only Local definition, i.e. just this Group Added a
// Cancel button to Cancel from this dialog and return to previous dialog. Added more information to the // Cancel button to Cancel from this dialog and return to previous dialog. Added more information to the
// dialog to inform user of this // dialog to inform user of this
string dmsg = "Update Generic definition?\r\n\r\n Yes - updates Generic definitions, \r\n No - updates Local definitions, \r\n Cancel - returns to previous dialog." + string dmsg = $"Update Generic definition?\r\n\r\n Yes - updates Generic definitions, \r\n No - updates Local definitions, \r\n Cancel - returns to previous dialog." +
"\r\n\r\n 'Generic' updates definition in ALL groups that use the name\r\n 'Local' updates definition only in the selected group."; $"\r\n\r\n 'Generic' updates definition in ALL groups that use the name\r\n 'Local' updates definition only in the selected group, and will change the definition for all items in that table ({GetTopParentName(myelem)}).";
System.Windows.Forms.DialogResult result = MessageBox.Show(dmsg, "Referenced Object Definition", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); System.Windows.Forms.DialogResult result = MessageBox.Show(dmsg, "Referenced Object Definition", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
if (result == DialogResult.Cancel) return false; if (result == DialogResult.Cancel) return false;
if (result == DialogResult.No) changegeneric = false; if (result == DialogResult.No) changegeneric = false;
@@ -2772,6 +2787,19 @@ namespace RODBInterface
return success; return success;
} }
//CSM-C2024-030
//Explain that Local is local to that table (and include Table name in wording displayed to user)
public string GetTopParentName(VlnXmlElement elem)
{
VlnXmlElement nodetocheck = elem;
while (nodetocheck.GetAttribute("ParentID") != "00000000" && nodetocheck.ParentNode != null)
{
nodetocheck = (VlnXmlElement) nodetocheck.ParentNode;
}
return nodetocheck.FirstChild.InnerText;
}
public override XmlSchema RODB_GetGroupSchema(VlnXmlElement elem) public override XmlSchema RODB_GetGroupSchema(VlnXmlElement elem)
{ {
XmlSchema myschema; XmlSchema myschema;

View File

@@ -1557,7 +1557,7 @@ namespace RODBInterface
} }
return retele; return retele;
} }
public override bool RODB_WriteRO(VlnXmlElement ro) public override bool RODB_WriteRO(VlnXmlElement ro, bool movedRO = false)
{ {
bool success; bool success;
if (ro.Name == "vlnGroup") if (ro.Name == "vlnGroup")
@@ -1589,6 +1589,13 @@ namespace RODBInterface
command.Parameters.AddWithValue("@ModDateTime", dt); command.Parameters.AddWithValue("@ModDateTime", dt);
command.Parameters.AddWithValue("@AccPageID", wraccid); // B2020-003: set accpageid to correct value command.Parameters.AddWithValue("@AccPageID", wraccid); // B2020-003: set accpageid to correct value
command.Parameters.AddWithValue("@RecID", ro.GetAttribute("RecID")); command.Parameters.AddWithValue("@RecID", ro.GetAttribute("RecID"));
if (movedRO)
{
VlnXmlElement parent = (VlnXmlElement)ro.ParentNode;
ro.SetAttribute("ParentID", parent.GetAttribute("RecID"));
command.Parameters.AddWithValue("@ParentID", ro.GetAttribute("ParentID"));
}
using (SqlDataReader reader = command.ExecuteReader()) using (SqlDataReader reader = command.ExecuteReader())
{ {
success = true; success = true;
@@ -1744,13 +1751,18 @@ namespace RODBInterface
return ftype; return ftype;
} }
// For the given element's table, get all of the RO fields defined in this table. // For the given element's table, get all of the RO fields defined in this table.
public override ArrayList RODB_GetFields(VlnXmlElement elem, uint rtype) public override ArrayList RODB_GetFields(VlnXmlElement elem, uint rtype, bool refresh = false)
{ {
string table = elem.GetAttribute("Table"); string table = elem.GetAttribute("Table");
if (!FieldDefinitions.ContainsKey(table)) if (!FieldDefinitions.ContainsKey(table))
{ {
FieldDefinitions.Add(table, RODB_GetFieldsFromDB(elem)); FieldDefinitions.Add(table, RODB_GetFieldsFromDB(elem));
} }
else if (refresh)
{
FieldDefinitions.Remove(table);
FieldDefinitions.Add(table, RODB_GetFieldsFromDB(elem));
}
return FieldDefinitions[table]; return FieldDefinitions[table];
} }
private Dictionary<string, ArrayList> _FieldDefinitions = null; private Dictionary<string, ArrayList> _FieldDefinitions = null;
@@ -1909,7 +1921,7 @@ namespace RODBInterface
command.Parameters.AddWithValue("@RecID", Recid); command.Parameters.AddWithValue("@RecID", Recid);
using (SqlDataReader reader = command.ExecuteReader()) using (SqlDataReader reader = command.ExecuteReader())
{ {
if (DBE.Read()) if (reader.Read())
Info = reader.GetString(0); Info = reader.GetString(0);
else else
Info = null; Info = null;

View File

@@ -85,7 +85,7 @@ namespace VlnStatus
this.lblStatMsg.Name = "lblStatMsg"; this.lblStatMsg.Name = "lblStatMsg";
this.lblStatMsg.Size = new System.Drawing.Size(420, 81); this.lblStatMsg.Size = new System.Drawing.Size(420, 81);
this.lblStatMsg.TabIndex = 0; this.lblStatMsg.TabIndex = 0;
this.lblStatMsg.Text = "Put Satus Message Here"; this.lblStatMsg.Text = "Put Status Message Here";
this.lblStatMsg.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.lblStatMsg.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
// //
// StatusMessageFrm // StatusMessageFrm

View File

@@ -231,7 +231,6 @@ namespace VEPROMS
cbxOpenAfterCreate2.Visible = oneProcedure; cbxOpenAfterCreate2.Visible = oneProcedure;
cbxOpenAfterCreate2.Checked = false; cbxOpenAfterCreate2.Checked = false;
cbxOverwritePDF2.Visible = oneProcedure; cbxOverwritePDF2.Visible = oneProcedure;
cbxOverwritePDF2.Checked = true;
gpnlDebug.Visible = Volian.Base.Library.VlnSettings.DebugMode; gpnlDebug.Visible = Volian.Base.Library.VlnSettings.DebugMode;
swtbtnGeneratePlacekeeper.Value = false; swtbtnGeneratePlacekeeper.Value = false;
cbxGenerateConActSum.Checked = false; cbxGenerateConActSum.Checked = false;
@@ -1225,9 +1224,6 @@ namespace VEPROMS
return true; return true;
} }
private void txbRevDate_Enter(object sender, EventArgs e) private void txbRevDate_Enter(object sender, EventArgs e)
{ {
txbDate = txbRevDate; txbDate = txbRevDate;

File diff suppressed because it is too large Load Diff

View File

@@ -674,7 +674,8 @@ CREATE PROCEDURE [dbo].[updateInfoAccidByRecid]
@RecID char(8), @RecID char(8),
@AccPageID char(32), @AccPageID char(32),
@Info nvarchar(max), @Info nvarchar(max),
@ModDateTime char(14) @ModDateTime char(14),
@ParentID varchar(8) = NULL
) )
WITH EXECUTE AS OWNER WITH EXECUTE AS OWNER
AS AS
@@ -684,7 +685,8 @@ BEGIN TRY -- Try Block
SET SET
[Info]=@Info, [Info]=@Info,
[ModDateTime]=@ModDateTime, [ModDateTime]=@ModDateTime,
[AccPageID]=@AccPageID [AccPageID]=@AccPageID,
[ParentID]=ISNULL(@ParentID, ParentID)
WHERE [ROTable]=@ROTable AND [RecID]=@RecID WHERE [ROTable]=@ROTable AND [RecID]=@RecID
IF @@ROWCOUNT = 0 IF @@ROWCOUNT = 0
BEGIN BEGIN

View File

@@ -163,6 +163,12 @@
<Compile Include="dlgCheckedOutProcedure.designer.cs"> <Compile Include="dlgCheckedOutProcedure.designer.cs">
<DependentUpon>dlgCheckedOutProcedure.cs</DependentUpon> <DependentUpon>dlgCheckedOutProcedure.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="dlgCheckOpenTabs.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="dlgCheckOpenTabs.Designer.cs">
<DependentUpon>dlgCheckOpenTabs.cs</DependentUpon>
</Compile>
<Compile Include="DlgCloseTabsOrExit.cs"> <Compile Include="DlgCloseTabsOrExit.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
@@ -324,6 +330,9 @@
<SubType>Designer</SubType> <SubType>Designer</SubType>
<DependentUpon>AboutVEPROMS.cs</DependentUpon> <DependentUpon>AboutVEPROMS.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="dlgCheckOpenTabs.resx">
<DependentUpon>dlgCheckOpenTabs.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="DlgCloseTabsOrExit.resx"> <EmbeddedResource Include="DlgCloseTabsOrExit.resx">
<DependentUpon>DlgCloseTabsOrExit.cs</DependentUpon> <DependentUpon>DlgCloseTabsOrExit.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
@@ -626,4 +635,4 @@
<PropertyGroup> <PropertyGroup>
<PreBuildEvent>cmd /c "$(ProjectDir)FixRev.bat"</PreBuildEvent> <PreBuildEvent>cmd /c "$(ProjectDir)FixRev.bat"</PreBuildEvent>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View File

@@ -0,0 +1,116 @@

namespace VEPROMS
{
partial class dlgCheckOpenTabs
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.labelX1 = new DevComponents.DotNetBar.LabelX();
this.cbRemember = new DevComponents.DotNetBar.Controls.CheckBoxX();
this.btnOpenTabs = new DevComponents.DotNetBar.ButtonX();
this.btnNoTabs = new DevComponents.DotNetBar.ButtonX();
this.SuspendLayout();
//
// labelX1
//
//
//
//
this.labelX1.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.labelX1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.labelX1.Location = new System.Drawing.Point(23, 2);
this.labelX1.Name = "labelX1";
this.labelX1.Size = new System.Drawing.Size(363, 78);
this.labelX1.TabIndex = 0;
this.labelX1.Text = "Would you like for PROMS to reopen the tabs that you had open during your last se" +
"ssion?";
this.labelX1.WordWrap = true;
//
// cbRemember
//
//
//
//
this.cbRemember.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbRemember.Location = new System.Drawing.Point(23, 75);
this.cbRemember.Name = "cbRemember";
this.cbRemember.Size = new System.Drawing.Size(376, 47);
this.cbRemember.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.cbRemember.TabIndex = 1;
this.cbRemember.Text = "Check this box to not be prompted in the future when opening PROMS. \nNote that th" +
"ese settings can be adjusted at any time from the \nOPTIONS menu for PROMS.";
//
// btnOpenTabs
//
this.btnOpenTabs.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
this.btnOpenTabs.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
this.btnOpenTabs.DialogResult = System.Windows.Forms.DialogResult.Yes;
this.btnOpenTabs.Location = new System.Drawing.Point(23, 139);
this.btnOpenTabs.Name = "btnOpenTabs";
this.btnOpenTabs.Size = new System.Drawing.Size(150, 42);
this.btnOpenTabs.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnOpenTabs.TabIndex = 2;
this.btnOpenTabs.Text = "Yes, Open Tabs from Last Session";
this.btnOpenTabs.Click += new System.EventHandler(this.btnTabs_Click);
//
// btnNoTabs
//
this.btnNoTabs.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
this.btnNoTabs.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
this.btnNoTabs.DialogResult = System.Windows.Forms.DialogResult.No;
this.btnNoTabs.Location = new System.Drawing.Point(216, 139);
this.btnNoTabs.Name = "btnNoTabs";
this.btnNoTabs.Size = new System.Drawing.Size(150, 42);
this.btnNoTabs.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnNoTabs.TabIndex = 3;
this.btnNoTabs.Text = "No, Do Not Open Tabs from Previous Session";
this.btnNoTabs.Click += new System.EventHandler(this.btnTabs_Click);
//
// dlgCheckOpenTabs
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(411, 193);
this.ControlBox = false;
this.Controls.Add(this.btnNoTabs);
this.Controls.Add(this.btnOpenTabs);
this.Controls.Add(this.cbRemember);
this.Controls.Add(this.labelX1);
this.Name = "dlgCheckOpenTabs";
this.Text = "Open Tabs from Previous Session";
this.ResumeLayout(false);
}
#endregion
private DevComponents.DotNetBar.LabelX labelX1;
private DevComponents.DotNetBar.Controls.CheckBoxX cbRemember;
private DevComponents.DotNetBar.ButtonX btnOpenTabs;
private DevComponents.DotNetBar.ButtonX btnNoTabs;
}
}

View File

@@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace VEPROMS
{
public partial class dlgCheckOpenTabs : Form
{
public dlgCheckOpenTabs()
{
InitializeComponent();
}
public bool Remember { get; set; } = false;
private void btnTabs_Click(object sender, EventArgs e)
{
Remember = this.cbRemember.Checked;
this.Close();
}
}
}

View File

@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -425,9 +425,9 @@ namespace VEPROMS
MessageBox.Show(msg, "Import Completed", MessageBoxButtons.OK, MessageBoxIcon.Information); // C2020-042 changed mesage box title MessageBox.Show(msg, "Import Completed", MessageBoxButtons.OK, MessageBoxIcon.Information); // C2020-042 changed mesage box title
//MessageBox.Show(string.Format("Finished Importing:\n\n{0}", txtImport.Text.Substring(txtImport.Text.LastIndexOf("\\") + 1)), "Import", MessageBoxButtons.OK, MessageBoxIcon.Information); //MessageBox.Show(string.Format("Finished Importing:\n\n{0}", txtImport.Text.Substring(txtImport.Text.LastIndexOf("\\") + 1)), "Import", MessageBoxButtons.OK, MessageBoxIcon.Information);
} }
if (canceledPressed) if (canceledPressed || !isImported)
{ {
MessageBox.Show(string.Format("Canceling the import of:\n\n{0}", txtImport.Text.Substring(txtImport.Text.LastIndexOf("\\") + 1)), "Import", MessageBoxButtons.OK, MessageBoxIcon.Information); MessageBox.Show(string.Format("Cancelling the import of:\n\n{0}", txtImport.Text.Substring(txtImport.Text.LastIndexOf("\\") + 1)), "Cancelling Import", MessageBoxButtons.OK, MessageBoxIcon.Information);
btnCloseImport.PerformClick(); btnCloseImport.PerformClick();
} }
} }
@@ -906,8 +906,8 @@ namespace VEPROMS
// C2020-032: Import Procedure set when existing name exists, allow user to import with 'Copy (#) of'. // C2020-032: Import Procedure set when existing name exists, allow user to import with 'Copy (#) of'.
// This is similar functionality to the import of a procedure without the overwrite part. // This is similar functionality to the import of a procedure without the overwrite part.
string msg = string.Format("The procedure set you are importing, {0}, already exists.\n\nDo you want to import {0} as a COPY of the existing set?\n\nThis will prefix the name with \"Copy (#) of\"", name); string msg = string.Format("The procedure set you are importing, {0}, already exists.\n\nDo you want to import {0} as a COPY of the existing set?\n\nThis will prefix the name with \"Copy (#) of\"", name);
DialogResult dr = MessageBox.Show(this, msg, "Create Copy Of Existing Procedure Set", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Stop); DialogResult dr = MessageBox.Show(this, msg, "Create Copy Of Existing Procedure Set", MessageBoxButtons.OKCancel, MessageBoxIcon.Stop);
if (dr == DialogResult.Yes) if (dr == DialogResult.OK)
{ {
string number = ""; string number = "";
int max = -1; int max = -1;
@@ -931,6 +931,11 @@ namespace VEPROMS
ff = AddFolder(Folder.Get(MyFolder.FolderID), xd, name); ff = AddFolder(Folder.Get(MyFolder.FolderID), xd, name);
} }
//else if (dr == System.Windows.Forms.DialogResult.Cancel)
//{
// //canceledPressed = true;
// //resolvedProcNum = false;
//}
else else
return false; return false;
} }

File diff suppressed because it is too large Load Diff

View File

@@ -11,6 +11,7 @@ using Volian.Controls.Library;
using DevComponents.DotNetBar; using DevComponents.DotNetBar;
using JR.Utils.GUI.Forms; using JR.Utils.GUI.Forms;
using Volian.Controls.Library; using Volian.Controls.Library;
using System.Linq;
namespace VEPROMS namespace VEPROMS
{ {
@@ -177,6 +178,8 @@ namespace VEPROMS
myDocVersions.Clear(); myDocVersions.Clear();
FolderInfo fi = FolderInfo.GetTop(); FolderInfo fi = FolderInfo.GetTop();
fi.RefreshChildFolders();
if (fi.ChildFolderCount > 0) if (fi.ChildFolderCount > 0)
{ {
TreeNode tn = new TreeNode(fi.Name); TreeNode tn = new TreeNode(fi.Name);
@@ -232,7 +235,7 @@ namespace VEPROMS
loadedWorkingDraft = true; loadedWorkingDraft = true;
} }
if (tn.Parent != null && !loadedWorkingDraft) if (tn.Parent != null && !loadedWorkingDraft && fi.FolderDocVersionCount == 0)
{ {
tn.Remove(); tn.Remove();
} }
@@ -480,12 +483,14 @@ namespace VEPROMS
// B2018-002 - Invalid Transitions - Define Transition Refresh Statistics // B2018-002 - Invalid Transitions - Define Transition Refresh Statistics
private int numTransProcessed = 0; private int numTransProcessed = 0;
private int numTransFixed = 0; private int numTransFixed = 0;
private int numTransCantFix = 0;
private int numTransConverted = 0; private int numTransConverted = 0;
// B2018-002 - Invalid Transitions - Initialize Transition Refresh Statistics // B2018-002 - Invalid Transitions - Initialize Transition Refresh Statistics
private void ResetTransNumbers() private void ResetTransNumbers()
{ {
numTransProcessed = 0; numTransProcessed = 0;
numTransFixed = 0; numTransFixed = 0;
numTransCantFix = 0;
numTransConverted = 0; numTransConverted = 0;
} }
private void RefreshTransitions() private void RefreshTransitions()
@@ -534,11 +539,12 @@ namespace VEPROMS
numTransConverted += ProcedureInfo.TranConvertCount; numTransConverted += ProcedureInfo.TranConvertCount;
numTransProcessed += ProcedureInfo.TranCheckCount; numTransProcessed += ProcedureInfo.TranCheckCount;
numTransFixed += ProcedureInfo.TranFixCount; numTransFixed += ProcedureInfo.TranFixCount;
numTransCantFix += ProcedureInfo.TranCantFixCount; //Bad Transition Link
pbProcess.PerformStep(); pbProcess.PerformStep();
Application.DoEvents(); Application.DoEvents();
} }
} }
if (numTransFixed == 0 && numTransConverted == 0) if (numTransFixed == 0 && numTransConverted == 0 && numTransCantFix == 0)
{ {
txtResults.AppendText("No Transitions Needed Updated."); txtResults.AppendText("No Transitions Needed Updated.");
txtResults.AppendText(Environment.NewLine); txtResults.AppendText(Environment.NewLine);
@@ -550,16 +556,18 @@ namespace VEPROMS
txtProcess.AppendText(string.Format("Transitions Checked: {0}", numTransProcessed)); txtProcess.AppendText(string.Format("Transitions Checked: {0}", numTransProcessed));
txtProcess.AppendText(Environment.NewLine); txtProcess.AppendText(Environment.NewLine);
// B2018-002 - Invalid Transitions - Display Transition Refresh Statistics // B2018-002 - Invalid Transitions - Display Transition Refresh Statistics
txtProcess.AppendText(string.Format("Transitions Correct As Is: {0}", numTransProcessed - (numTransConverted + numTransFixed))); txtProcess.AppendText(string.Format("Transitions Correct As Is: {0}", numTransProcessed - (numTransConverted + numTransFixed + numTransCantFix)));
txtProcess.AppendText(Environment.NewLine); txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(string.Format("Transitions Modified: {0}", numTransFixed)); txtProcess.AppendText(string.Format("Transitions Modified: {0}", numTransFixed));
txtProcess.AppendText(Environment.NewLine); txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(string.Format("Transitions Converted to text: {0}", numTransConverted)); txtProcess.AppendText(string.Format("Transitions Converted to text: {0}", numTransConverted));
txtProcess.AppendText(Environment.NewLine);
txtProcess.AppendText(string.Format("Transitions Unable to be Automatically Fixed (Annotation: Bad Transition Link): {0}", numTransCantFix));
Application.DoEvents(); Application.DoEvents();
if (pil.Count > 0) if (pil.Count > 0)
{ {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.AppendLine("The batch refresh process was not usccessful for all procedures selected."); sb.AppendLine("The batch refresh process was not successful for all procedures selected.");
sb.AppendLine("The following procedures were not able to be refreshed..."); sb.AppendLine("The following procedures were not able to be refreshed...");
sb.AppendLine(); sb.AppendLine();
sb.AppendLine(sbProcs.ToString()); sb.AppendLine(sbProcs.ToString());
@@ -578,11 +586,11 @@ namespace VEPROMS
} }
} }
this.Cursor = Cursors.Default; this.Cursor = Cursors.Default;
// B2018-002 - Invalid Transitions - Display Transition Refresh Statisitic // B2018-002 - Invalid Transitions - Display Transition Refresh Statistic
if (numTransFixed == 0 && numTransConverted == 0) if (numTransFixed == 0 && numTransConverted == 0 && numTransCantFix == 0)
MessageBox.Show(string.Format("{0} Transitions Checked.\n\nNo Transitions Modified.", numTransProcessed), "Refresh Transitions Completed"); MessageBox.Show(string.Format("{0} Transitions Checked.\n\nNo Transitions Modified.", numTransProcessed), "Refresh Transitions Completed");
else else
MessageBox.Show(string.Format("{0} Transitions Checked.\n\n {1} Correct as is.\n\n {2} Transitions modified.\n\n {3} Transitions converted to text.", numTransProcessed, numTransProcessed - (numTransFixed + numTransConverted), numTransFixed, numTransConverted), "Refresh Transitions Completed"); MessageBox.Show(string.Format("{0} Transitions Checked.\n\n {1} Correct as is.\n\n {2} Transitions modified.\n\n {3} Transitions converted to text.\n\n {4} Transitions unable to be automatically fixed (Annotation: Bad Transition Link).", numTransProcessed, numTransProcessed - (numTransFixed + numTransConverted + numTransCantFix), numTransFixed, numTransConverted, numTransCantFix), "Refresh Transitions Completed");
} }
// C2017-030 - new Admin Tools user interface // C2017-030 - new Admin Tools user interface
@@ -1102,8 +1110,7 @@ namespace VEPROMS
ProcedureInfo.RefreshTransitions(pq);//, transitionsToDisconnected, transitionsToNonEditable); ProcedureInfo.RefreshTransitions(pq);//, transitionsToDisconnected, transitionsToNonEditable);
TimeSpan ts = DateTime.Now - start; TimeSpan ts = DateTime.Now - start;
// B2018-002 - Invalid Transitions - Display Transition Refresh Statistics // B2018-002 - Invalid Transitions - Display Transition Refresh Statistics
txtProcess.AppendText(string.Format("Procedure: {1}{0}Checked {2} Transitions{0}Fixed {3} Transitions{0}Converted to Text {4} Transitions{0}Elapsed Seconds:{5}{0}{0}", Environment.NewLine, pq.DisplayNumber, ProcedureInfo.TranCheckCount, ProcedureInfo.TranFixCount, ProcedureInfo.TranConvertCount, ts.TotalSeconds)); txtProcess.AppendText(string.Format("Procedure: {1}{0}Checked {2} Transitions{0}Fixed {3} Transitions{0}Converted to Text {4} Transitions{0}Cant Fix (Annotation: Bad Transition Link) {5} Transitions{0}Elapsed Seconds:{6}{0}{0}", Environment.NewLine, pq.DisplayNumber, ProcedureInfo.TranCheckCount, ProcedureInfo.TranFixCount, ProcedureInfo.TranConvertCount, ProcedureInfo.TranCantFixCount, ts.TotalSeconds));
//Console.WriteLine("\"{0}\"\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}\t{7}", pq.DisplayNumber, ProcedureInfo.TranCheckCount, ProcedureInfo.TranFixCount, ProcedureInfo.TranConvertCount, ts.TotalSeconds, numTransProcessed, numTransFixed, numTransConverted);
if (myFixes.Length > 0) if (myFixes.Length > 0)
{ {
txtResults.AppendText(myFixes.ToString()); txtResults.AppendText(myFixes.ToString());
@@ -1799,6 +1806,21 @@ namespace VEPROMS
} }
} }
//B2024-074 If only deleting annotations from an individual procedure, verify can check out procedure.
string msgpi = string.Empty;
foreach (ProcedureInfo pi in pil)
{
//LINQ used for 1st check of if statement
//basically check if procedure was already part of a docVersionsFolder
//before checking if procedure was checked out already
//to avoid duplicate messages for checked out procedures
if (!dvil.Any(x => x.Procedures.Any(y => y.ItemID == pi.ItemID)) && !MySessionInfo.CanCheckOutItem(pi.ItemID, CheckOutType.Procedure, ref msgpi))
{
sbDocVersions.AppendLine(msgpi);
cancelledOut = true;
}
}
if (cancelledOut) if (cancelledOut)
{ {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();

View File

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

File diff suppressed because it is too large Load Diff

View File

@@ -11,6 +11,7 @@ using DevComponents.DotNetBar;
using VEPROMS.Properties; using VEPROMS.Properties;
using Volian.Base.Library; using Volian.Base.Library;
using DescriptiveEnum; using DescriptiveEnum;
using VEPROMS.CSLA.Library;
namespace VEPROMS namespace VEPROMS
{ {
@@ -24,6 +25,9 @@ namespace VEPROMS
get { return _CanChangeSeparateWindowsSetting; } get { return _CanChangeSeparateWindowsSetting; }
set { _CanChangeSeparateWindowsSetting = value; } set { _CanChangeSeparateWindowsSetting = value; }
} }
private UserSettings _usersettings;
public frmSysOptions() public frmSysOptions()
{ {
_initializing = true; _initializing = true;
@@ -89,6 +93,13 @@ namespace VEPROMS
break; break;
} }
//CSM - C2024-031 - Getting User Settings
//and set checkboxes based on what they are set to
_usersettings = new UserSettings(VlnSettings.UserID);
cbOTRemember.Checked = _usersettings.UserSetting_OpenTabs_Remember;
cbOTAutoOpen.Enabled = cbOTAutoOpen.Visible = cbOTRemember.Checked;
cbOTAutoOpen.Checked = _usersettings.UserSetting_OpenTabs_AutoOpen || !cbOTRemember.Checked;
} }
private void cbEnhancedDocumentSync_CheckedChanged(object sender, System.EventArgs e) private void cbEnhancedDocumentSync_CheckedChanged(object sender, System.EventArgs e)
{ {
@@ -151,6 +162,15 @@ namespace VEPROMS
Settings.Default.PropPageStyle = 3; Settings.Default.PropPageStyle = 3;
Settings.Default.Save(); Settings.Default.Save();
//CSM - C2024-031 - Save User Settings
//based on what checkboxes are set to
bool? OTAuto = null;
if (cbOTRemember.Checked)
{
OTAuto = cbOTAutoOpen.Checked;
}
_usersettings.SetUserSettings(cbOTRemember.Checked, OTAuto);
this.DialogResult = DialogResult.OK; this.DialogResult = DialogResult.OK;
this.Close(); this.Close();
} }
@@ -324,5 +344,10 @@ namespace VEPROMS
Settings.Default.UCFImportOpt = 4; Settings.Default.UCFImportOpt = 4;
} }
} }
}
private void cbOTRemember_CheckedChanged(object sender, EventArgs e)
{
cbOTAutoOpen.Enabled = cbOTAutoOpen.Visible = cbOTRemember.Checked;
}
}
} }

View File

@@ -112,21 +112,20 @@
<value>2.0</value> <value>2.0</value>
</resheader> </resheader>
<resheader name="reader"> <resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<metadata name="superTooltip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="superTooltip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value> <value>17, 17</value>
</metadata> </metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="colorPickerButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="colorPickerButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABJxAAAScQHz3HqOAAAAKklE
EnEB89x6jgAAACpJREFUOE9j+P//P0UYQgApcjCKASCaFDxqwKgBIDwcDSAHww0gH/9nAACxLJWH1IMf QVQ4T2P4//8/RRhCAClyMIoBIJoUPGrAqAEgPBwNIAfDDSAf/2cAALEslYfUgx+eAAAAAElFTkSuQmCC
ngAAAABJRU5ErkJggg==
</value> </value>
</data> </data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">

View File

@@ -1654,6 +1654,10 @@ namespace VEPROMS
// B2017-214 added a null reference check // B2017-214 added a null reference check
// B2010-071 Since we cannot tell if the user click on the X in Word or the X in PROMS, ask if the current tab // B2010-071 Since we cannot tell if the user click on the X in Word or the X in PROMS, ask if the current tab
// should be closed or if we should exit PROMS or just Cancel to continue working // should be closed or if we should exit PROMS or just Cancel to continue working
if (tc._MyDisplayTabItems.Count < 1) // If all thabs are closed in the editor will indicate that in the database.
{
VEPROMS.CSLA.Library.Item.DeactivateStateDisplayTabTmp(MySessionInfo.UserID);
}
if (!_WeAreExitingPROMS && !ClosingWithError && tc.SelectedDisplayTabItem != null && tc._MyDisplayTabItems.Count > 0) if (!_WeAreExitingPROMS && !ClosingWithError && tc.SelectedDisplayTabItem != null && tc._MyDisplayTabItems.Count > 0)
{ {
// B2019-071 dialog to ask user if we are to close one tab or exit // B2019-071 dialog to ask user if we are to close one tab or exit
@@ -1670,16 +1674,38 @@ namespace VEPROMS
return; return;
} }
string stk = Volian.Base.Library.vlnStackTrace.StackToString(); string stk = Volian.Base.Library.vlnStackTrace.StackToString();
if (!stk.Contains("Exception")) if (!stk.Contains("Exception"))
{ {
// B2018-091 Allow PROMS to close if only MSWord sections have been opened. // B2018-091 Allow PROMS to close if only MSWord sections have been opened.
// B2019-071 we will now close one or all of the tabs (even step editor ones) // B2019-071 we will now close one or all of the tabs (even step editor ones)
if (_WeAreExitingPROMS)
{
string DisplayTabID = "";
int pos;
int TabItemID;
string DisplayTabName = "";
int cnt = 0;
// Deactivate previous procedure tab state by user
VEPROMS.CSLA.Library.Item.DeactivateStateDisplayTabTmp(MySessionInfo.UserID);
// Save current procedure tab state
foreach (KeyValuePair<string, DisplayTabItem> pgTab in tc._MyDisplayTabItems)
{
cnt++;
DisplayTabID = pgTab.Key;
TabItemID = Int32.Parse(DisplayTabID.Substring(DisplayTabID.IndexOf("Item - ") + 7));
DisplayTabName = pgTab.Value.ToString();
//tc.SelectedDisplayTabItem.MyStepTabPanel.ToString()
VEPROMS.CSLA.Library.Item.AddDisplayTabsState(TabItemID, DisplayTabID, DisplayTabName, MySessionInfo.UserID, cnt);
}
}
int n = tc._MyDisplayTabItems.Count; int n = tc._MyDisplayTabItems.Count;
while (n-- > 0 && tc._MyDisplayTabItems.Count > 0) while (n-- > 0 && tc._MyDisplayTabItems.Count > 0)
{ {
tc.CloseTabItem(tc.SelectedDisplayTabItem); tc.CloseTabItem(tc.SelectedDisplayTabItem);
// B2019-071 close just the current tab and continue working // B2019-071 close just the current tab and continue working
@@ -2320,6 +2346,58 @@ namespace VEPROMS
CurrentID = txtSearch.Text; CurrentID = txtSearch.Text;
} }
} }
// Add retrieve displaytabs state here.
openDisplaytabstate();
}
public void openDisplaytabstate()
{
// Retrieve edit tab state from database.
DataTable DisPlayTabState = VEPROMS.CSLA.Library.Item.GetDisplayTabs(VlnSettings.UserID);
//CSM - C2024-031 - Getting User Settings
//and set checkboxes based on what they are set to
UserSettings usersettings = new UserSettings(VlnSettings.UserID);
if (DisPlayTabState.Rows.Count > 0 && (usersettings.UserSetting_OpenTabs_AutoOpen || !usersettings.UserSetting_OpenTabs_Remember))
{
//will open tabs by default / ask by default
DialogResult result = DialogResult.Yes;
if (!usersettings.UserSetting_OpenTabs_Remember)
{
dlgCheckOpenTabs checkOpenTabs = new dlgCheckOpenTabs();
result = checkOpenTabs.ShowDialog();
//if checkbox was checked in form, then update User Settings in database
if (checkOpenTabs.Remember)
usersettings.SetUserSettings(true, result == DialogResult.Yes);
}
if (result == DialogResult.Yes)
{
foreach (DataRow TabState in DisPlayTabState.Rows)
{
int _ItemID = (int)TabState["ItemID"];
ItemInfo _Procedure = ItemInfo.Get(_ItemID);
// Open procedure in the editor.
OpenItem(_Procedure);
// SelectedStepTabPanel needs to be set so the print buttons on the ribbon will work.
SelectedStepTabPanel = tc.MyEditItem.MyStepPanel.MyStepTabPanel;
//CSM B2024-090 - if last displaytab item,
//select the steptab panel for it
//and set the EditItem for Find/Replace
//otherwise will cause PROMS to crash if Find clicked before a Tab is given Focus
if ((DisPlayTabState.Rows.IndexOf(TabState) == DisPlayTabState.Rows.Count - 1))
{
SelectedStepTabPanel.Select();
dlgFindReplace.MyEditItem = tc.MyEditItem;
}
}
}
}
} }
void tc_RefreshEnhancedDocument(object sender, ItemSelectedChangedEventArgs args) void tc_RefreshEnhancedDocument(object sender, ItemSelectedChangedEventArgs args)

View File

@@ -511,7 +511,7 @@ namespace VEPROMS
private void btnPC_Click(object sender, EventArgs e) private void btnPC_Click(object sender, EventArgs e)
{ {
if (MessageBox.Show(this, "Are you sure you want to add Applicability to this Working Draft?", "Add Applicability", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Stop) == DialogResult.Yes) if (MessageBox.Show(this, "Are you sure you want to add Applicability to this Working Draft?", "Add Applicability", MessageBoxButtons.YesNo, MessageBoxIcon.Stop) == DialogResult.Yes)
{ {
btnApplicability.Visible = true; btnApplicability.Visible = true;
tiApplicability.Visible = true; tiApplicability.Visible = true;

View File

@@ -474,6 +474,25 @@ namespace VEPROMS.CSLA.Library
OnPropertyChanged("Step_FixedTblForSrch"); OnPropertyChanged("Step_FixedTblForSrch");
} }
} }
//CSM F2024-080: For South Texas - Ability to toggle off Initial Line
public bool Step_DisableInitialLine
{
get
{
string s = _Xp["Step", "DisableInitialLine"];
if (s == string.Empty) return false;
if (s == "True") return true;
return false;
}
set
{
string s = _Xp["Step", "DisableInitialLine"];
if (value.ToString() == s) return;
_Xp["Step", "DisableInitialLine"] = value.ToString();
OnPropertyChanged("Step_DisableInitialLine");
}
}
#region RO image sizing #region RO image sizing
// if the RO image (figure) is resized, save it in the step config, not in the ROImageConfig. If stored in ROImageConfig // if the RO image (figure) is resized, save it in the step config, not in the ROImageConfig. If stored in ROImageConfig
// the size is set for ALL uses. // the size is set for ALL uses.

View File

@@ -687,19 +687,46 @@ namespace VEPROMS.CSLA.Library
myLength += mg.Groups[3].Length; myLength += mg.Groups[3].Length;
} }
string gg = MyGrid.Data.Substring(myIndex, myLength); 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?")) if (newvalue.Contains(@"\u8209?"))
{ {
Match m = Regex.Match(newvalue, @"(\\f[0-9]+)(\\u[0-9]{1,4}\?)(\\f[0-9]+ ?)"); Match m = Regex.Match(newvalue, @"(\\f[0-9]+)(\\u[0-9]{1,4}\?)(\\f[0-9]+ ?)");
if (m == null) if (m == null)
newvalue = newvalue.Replace(@"\u8209?", "-"); newvalue = newvalue.Replace(@"\u8209?", "-");
else if (m.Groups[1].Value == "")
newvalue = newvalue.Replace(@"\u8209?", "-");
else else
newvalue = newvalue.Replace(@"\u8209?", m.Groups[1].Value + @"\u8209?" + m.Groups[3].Value); 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?")) if (newvalue.Contains(@"\u8593?"))
{ {
Match m = Regex.Match(newvalue, @"(\\f[0-9]+)(\\u[0-9]{1,4}\?)(\\f[0-9]+ ?)"); Match m = Regex.Match(newvalue, @"(\\f[0-9]+)(\\u[0-9]{1,4}\?)(\\f[0-9]+ ?)");
if (m == null) if (m == null)
newvalue = newvalue.Replace(@"\u8593?", "^"); newvalue = newvalue.Replace(@"\u8593?", "^");
else if (m.Groups[1].Value == "")
newvalue = newvalue.Replace(@"\u8593?", "^");
else else
newvalue = newvalue.Replace(@"\u8593?", m.Groups[1].Value + @"\u8593?" + m.Groups[3].Value); 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]+ ?)"); Match m = Regex.Match(newvalue, @"(\\f[0-9]+)(\\u[0-9]{1,4}\?)(\\f[0-9]+ ?)");
if (m == null) if (m == null)
newvalue = newvalue.Replace(@"\u9586?", @"\\"); newvalue = newvalue.Replace(@"\u9586?", @"\\");
else if (m.Groups[1].Value == "")
newvalue = newvalue.Replace(@"\u9586?", @"\\");
else else
newvalue = newvalue.Replace(@"\u9586?", m.Groups[1].Value + @"\u9586?" + m.Groups[3].Value); newvalue = newvalue.Replace(@"\u9586?", m.Groups[1].Value + @"\u9586?" + m.Groups[3].Value);
} }
@@ -719,7 +748,17 @@ namespace VEPROMS.CSLA.Library
if (gg != newvalue) if (gg != newvalue)
{ {
retval = gg; 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; break;
} }
} }
@@ -729,6 +768,64 @@ namespace VEPROMS.CSLA.Library
return retval; 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) public static string MakeConsistentFormat(string gg)
{ {
// replace degree, bullet dash, hardspace // replace degree, bullet dash, hardspace
@@ -1255,6 +1352,16 @@ namespace VEPROMS.CSLA.Library
{ {
gg = ItemInfo.ConvertToDisplayText(gg); gg = ItemInfo.ConvertToDisplayText(gg);
newvalue = ItemInfo.ConvertToDisplayText(newvalue); 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 // 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_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", " "); //string xx_nv = newval_org.Replace(@"\'b0", @"\'B0").Replace(@"\u8209?", "-").Replace(@"\u160?", " ").Replace("\xA0", " ");
@@ -1307,7 +1414,19 @@ namespace VEPROMS.CSLA.Library
else else
newvalue = newvalue.Replace(@"\u8209?", m.Groups[1].Value + @"\u8209?" + m.Groups[3].Value); 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?")) if (newvalue.Contains(@"\u8593?"))
{ {
Match m = Regex.Match(newvalue, @"(\\f[0-9]+)(\\u[0-9]{1,4}\?)(\\f[0-9]+ ?)"); Match m = Regex.Match(newvalue, @"(\\f[0-9]+)(\\u[0-9]{1,4}\?)(\\f[0-9]+ ?)");

View File

@@ -1165,13 +1165,17 @@ namespace VEPROMS.CSLA.Library
{ {
int sp = odte.Link.IndexOf(" ") + 1; // get past tran type int sp = odte.Link.IndexOf(" ") + 1; // get past tran type
string srecid = odte.Link.Substring(sp, odte.Link.IndexOf(" ", sp) - sp); string srecid = odte.Link.Substring(sp, odte.Link.IndexOf(" ", sp) - sp);
recid = System.Convert.ToInt32(srecid);
foreach (ContentTransition ct in itm.MyContent.ContentTransitions) //CSM B2024-078 - when a bad transition link / does not contain a number, simply return the text as-is
if (int.TryParse(srecid, out recid))
{ {
if (ct.TransitionID == recid) foreach (ContentTransition ct in itm.MyContent.ContentTransitions)
{ {
itm.MyContent.ContentTransitions.Remove(ct); if (ct.TransitionID == recid)
break; {
itm.MyContent.ContentTransitions.Remove(ct);
break;
}
} }
} }
} }
@@ -1656,7 +1660,15 @@ namespace VEPROMS.CSLA.Library
private string FixTransition(string link, string text) private string FixTransition(string link, string text)
{ {
if (link.IndexOf("<NewID>") != -1) return text; if (link.IndexOf("<NewID>") != -1) return text;
int transitionID = Convert.ToInt32(link.Split(" ".ToCharArray())[1]);
//CSM B2024-078 - when a bad transition link / does not contain a number, simply return the text as-is
int transitionID;
string[] splt_link = link.Split(' ');
if (splt_link.Length < 2 || !int.TryParse(splt_link[1], out transitionID))
{
return text;
}
// Find the transition // Find the transition
if (_MyItemInfo.MyContent.ContentTransitionCount <= 0) if (_MyItemInfo.MyContent.ContentTransitionCount <= 0)
{ {

View File

@@ -11,6 +11,7 @@ using System.Xml;
using System.Drawing; using System.Drawing;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using Volian.Base.Library; using Volian.Base.Library;
using System.Linq;
namespace VEPROMS.CSLA.Library namespace VEPROMS.CSLA.Library
{ {
@@ -402,6 +403,99 @@ namespace VEPROMS.CSLA.Library
return tmpForLink; return tmpForLink;
} }
//CSM B2021-043 Step numbering is out of order in RO usage report if RO values exist on steps 10 or higher.
// This will be used to simulate the non-high level part of a tab
// for case where sorting and all other fields match
// Note: This is cut down to improve the sort's performance
// but congruent to Volian.Print.Library.PDFReport-> BuildStepTab(ItemInfo item)
public string BuildStepTab()
{
StringBuilder sret = new StringBuilder();
ItemInfo pitem = this;
while (!pitem.IsSection && !pitem.IsHigh)
{
using (StepInfo stpinfo = StepInfo.Get(pitem.ItemID))
{
string thisTab = stpinfo.MyTab.CleanText;
string typeName = stpinfo.FormatStepData.StepEditData.TypeMenu.MenuItem;
if (!string.IsNullOrEmpty(thisTab))
{
thisTab = thisTab.Trim();
}
// if the tab is null or
// if the the tab is not a letter or number OR
// the tab is an AND or OR type and is the letter "o"
// then reset the tab an empty string so that the type name along with the count of that type
// (ex. "AND 2", "OR 3")
if (string.IsNullOrEmpty(thisTab) || (thisTab != string.Empty && (!(char.IsLetterOrDigit(thisTab[0])) || ((pitem.IsAnd || pitem.IsOr || pitem.IsCaution || pitem.IsNote) && thisTab.Contains("o")))))
{
thisTab = string.Empty;
}
if (pitem.IsRNOPart)
{
if (string.IsNullOrEmpty(thisTab))
{
sret.Insert(0, "RNO.");
}
else
{
thisTab = thisTab.Trim();
if (!thisTab.EndsWith(".") && !thisTab.EndsWith(")"))
{
thisTab += ".";
}
sret.Insert(0, "RNO." + thisTab);
}
}
else if (pitem.IsCaution || pitem.IsNote)
{
// add the Caution or Note count to the tab (ex "Caution 1", "Note 2")
if (string.IsNullOrEmpty(thisTab))
{
sret.Append("{" + typeName + " " + pitem.Ordinal.ToString() + "}");
}
else
{
thisTab = thisTab.Trim(" ".ToCharArray());
sret.Append(thisTab + " " + pitem.Ordinal.ToString() + sret);
}
}
else
{
if (!string.IsNullOrEmpty(thisTab))
{
thisTab = thisTab.Trim(" ".ToCharArray());
if (!thisTab.EndsWith(".") && !thisTab.EndsWith(")"))
{
thisTab += ".";
}
}
else
{
thisTab = "{" + typeName + " " + pitem.Ordinal.ToString() + "}.";
}
sret.Insert(0, thisTab);
}
}
pitem = pitem.ActiveParent as ItemInfo;
if (pitem == null)
break;
}
return sret.ToString().Trim(" .)".ToCharArray());
}
public void SetHeader(VE_Font myFont, string myText) public void SetHeader(VE_Font myFont, string myText)
{ {
_MyHeader = new MetaTag(myFont); _MyHeader = new MetaTag(myFont);
@@ -619,12 +713,14 @@ namespace VEPROMS.CSLA.Library
{ {
TranCheckCount = 0; TranCheckCount = 0;
TranFixCount = 0; TranFixCount = 0;
TranCantFixCount = 0;
TranConvertCount = 0;// B2018-002 - Invalid Transitions - Initialize Transition Conversion Count TranConvertCount = 0;// B2018-002 - Invalid Transitions - Initialize Transition Conversion Count
} }
public static int TranCheckCount = 0; public static int TranCheckCount = 0;
public static int TranFixCount = 0; public static int TranFixCount = 0;
public static int TranConvertCount = 0;// B2018-002 - Invalid Transitions - Declare Transition Conversion Count public static int TranConvertCount = 0;// B2018-002 - Invalid Transitions - Declare Transition Conversion Count
public static int TranCantFixCount = 0;
internal static TransitionInfoList TransitionsToDisconnected; internal static TransitionInfoList TransitionsToDisconnected;
internal static TransitionInfoList TransitionsToNonEditable; internal static TransitionInfoList TransitionsToNonEditable;
@@ -731,6 +827,15 @@ namespace VEPROMS.CSLA.Library
content.Save(); content.Save();
} }
} }
else if (newText.Contains("<CTID=-"))
{
//CSM C2024-028 - Bad Transition Link - Make an annotation
using (Item itm = Item.Get(itemInfo.ItemID))
{
TranCantFixCount++;
Annotation.MakeAnnotation(itm, AnnotationType.GetByNameOrCreate("Bad Transition Link"), "", $"Invalid Transition Link: ({ItemInfo.ConvertToDisplayText(newValue)})", null);
}
}
} }
} }
} }
@@ -2752,6 +2857,29 @@ namespace VEPROMS.CSLA.Library
} }
#endregion UnlinkEnhanced #endregion UnlinkEnhanced
#region Search #region Search
//CSM C2024-025 Removing the strange tall box characters that appear in the search results tree
//Create cleaned version of variable for use in DisplaySearch
//This is the Function that does the cleaning
public string CleanSearchString(string value)
{
// \u000C = PageBreak
// \u0009 = Tab
// \u160? = Hard Space
// \u0007 = Bell (Separates Parent Path and Child Path)
// \u0011 - Separates DisplayNumber & DisplayText of Step
if (value == null)
return null;
string tmp = value.Replace("\a", "\\").Replace("\u0007", "\\");
tmp = tmp.Replace("\u000C", " ").Replace("\u0009", " ").Replace(@"\u160?", " ").Replace("\u0011", " ");
if (tmp.StartsWith("\\"))
tmp = tmp.Substring(1);
return tmp;
}
internal string _SearchDVPath; internal string _SearchDVPath;
public string SearchDVPath public string SearchDVPath
{ {
@@ -2767,7 +2895,11 @@ namespace VEPROMS.CSLA.Library
return _SearchDVPath; return _SearchDVPath;
} }
} }
internal string _SearchPath; //CSM C2024-025 Removing the strange tall box characters that appear in the search results tree
//Create cleaned version of variable for use in DisplaySearch
public string SearchDVPath_clean => CleanSearchString(SearchDVPath);
internal string _SearchPath;
public string SearchPath public string SearchPath
{ {
get get
@@ -2790,6 +2922,10 @@ namespace VEPROMS.CSLA.Library
return _SearchPath; return _SearchPath;
} }
} }
//CSM C2024-025 Removing the strange tall box characters that appear in the search results tree
//Create cleaned version of variable for use in DisplaySearch
public string SearchPath_clean => CleanSearchString(SearchPath);
public string ShortSearchPath public string ShortSearchPath
{ {
get get
@@ -2800,6 +2936,9 @@ namespace VEPROMS.CSLA.Library
return dtext; return dtext;
} }
} }
//CSM C2024-025 Removing the strange tall box characters that appear in the search results tree
//Create cleaned version of variable for use in DisplaySearch
public string ShortSearchPath_clean => CleanSearchString(ShortSearchPath);
// B2021-076: Proms search results are not presented in order when printed to PDF // B2021-076: Proms search results are not presented in order when printed to PDF
internal string _SearchDefaultSort; internal string _SearchDefaultSort;
@@ -3100,6 +3239,24 @@ namespace VEPROMS.CSLA.Library
//get { return ConvertToDisplayText(MyContent.Number); } //get { return ConvertToDisplayText(MyContent.Number); }
} }
//CSM B2021-043 Step numbering is out of order in RO usage report if RO values exist on steps 10 or higher.
//Get Numeric part of HLS Tab
//Used for Certain sorting situations
//If no numeric part then use 999 (will be at end of that level of the sort if there are other items with numbered HLS)
public int NumericSortNumber
{
get
{
string numericpart = null;
if (MyHLS != null)
numericpart = new string(MyHLS?.MyTab?.CleanTextNoSymbols.TakeWhile(Char.IsDigit).ToArray());
if (!string.IsNullOrEmpty(numericpart) && numericpart.All(char.IsNumber))
return int.Parse(numericpart);
else
return 999;
}
}
// for step designators (a redefined caution type used in Comanche Peak with the SameRowAsParentMultiLines format flag) // for step designators (a redefined caution type used in Comanche Peak with the SameRowAsParentMultiLines format flag)
// we what to allow for a hard return to allow for multiple designator lines - jsj 5/21/2015 // we what to allow for a hard return to allow for multiple designator lines - jsj 5/21/2015
public static string ConvertToMulitLineStepDesignatorDisplayText(string txt) public static string ConvertToMulitLineStepDesignatorDisplayText(string txt)
@@ -4251,6 +4408,13 @@ namespace VEPROMS.CSLA.Library
if (tbformat.Contains("{!.+?}")) if (tbformat.Contains("{!.+?}"))
tstr = tbformat.Replace("{!.+?}", " "); // Comanche Peak Indented Paragraph tstr = tbformat.Replace("{!.+?}", " "); // Comanche Peak Indented Paragraph
_MyTab.Text = tstr; _MyTab.Text = tstr;
//CSM F2024 - 080: For South Texas - if format contains initial line and it is not disabled, show an initial line
if (!string.IsNullOrEmpty(FormatStepData?.TabData?.MacroEditTag) && FormatStepData.TabData.MacroList != null && FormatStepData.TabData.MacroList.Count > 0 && !(this.IsRNOPart && FormatStepData.TabData.MacroList[0].NotInRNO) && !IsInitialLineDisabled)
{
if (tstr.StartsWith(" "))
tstr = tstr.Substring(1);
tstr = FormatStepData.TabData.MacroEditTag + tstr;
}
_MyTab.CleanText = tstr; _MyTab.CleanText = tstr;
return; return;
} }
@@ -4341,25 +4505,73 @@ namespace VEPROMS.CSLA.Library
incSub = (ord + 1).ToString(); incSub = (ord + 1).ToString();
if (MyParent.MyTab.CleanText.Trim().EndsWith(")")) if (MyParent.MyTab.CleanText.Trim().EndsWith(")"))
{ {
_MyTab.CleanText = MyParent.MyTab.CleanText.Trim() + "." + incSub; //CSM F2024 - 080: For South Texas - if format contains initial line and it is not disabled, show an initial line
string tstr = MyParent.MyTab.CleanText.Trim() + "." + incSub;
if (!string.IsNullOrEmpty(FormatStepData?.TabData?.MacroEditTag) && FormatStepData.TabData.MacroList != null && FormatStepData.TabData.MacroList.Count > 0 && !(this.IsRNOPart && FormatStepData.TabData.MacroList[0].NotInRNO) && !IsInitialLineDisabled && !tstr.StartsWith("_"))
{
if (tstr.StartsWith(" "))
tstr = tstr.Substring(1);
tstr = FormatStepData.TabData.MacroEditTag + tstr;
}
else if (IsInitialLineDisabled && tstr.StartsWith("_"))
tstr = tstr.Substring(1);
_MyTab.CleanText = tstr;
_MyTab.Text = _MyTab.CleanText; _MyTab.Text = _MyTab.CleanText;
return; return;
} }
if (MyParent.MyTab.CleanText.Contains(ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.IdentB)) if (MyParent.MyTab.CleanText.Contains(ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.IdentB))
{ {
_MyTab.CleanText = MyParent.MyTab.CleanText.Trim() + "." + incSub + " "; //CSM F2024 - 080: For South Texas - if format contains initial line and it is not disabled, show an initial line
string tstr = MyParent.MyTab.CleanText.Trim() + "." + incSub + " ";
if (!string.IsNullOrEmpty(FormatStepData?.TabData?.MacroEditTag) && FormatStepData.TabData.MacroList != null && FormatStepData.TabData.MacroList.Count > 0 && !(this.IsRNOPart && FormatStepData.TabData.MacroList[0].NotInRNO) && !IsInitialLineDisabled && !tstr.StartsWith("_"))
{
if (tstr.StartsWith(" "))
tstr = tstr.Substring(1);
tstr = FormatStepData.TabData.MacroEditTag + tstr;
}
else if(IsInitialLineDisabled && tstr.StartsWith("_"))
tstr = tstr.Substring(1);
_MyTab.CleanText = tstr;
_MyTab.Text = _MyTab.CleanText; _MyTab.Text = _MyTab.CleanText;
return; return;
} }
string tmprnotab = MyParent.MyTab.CleanText.Substring(0, MyParent.MyTab.CleanText.IndexOf(".") + 1) + incSub; string tmprnotab = MyParent.MyTab.CleanText.Substring(0, MyParent.MyTab.CleanText.IndexOf(".") + 1) + incSub;
_MyTab.CleanText = tmprnotab.TrimStart(); //CSM F2024 - 080: For South Texas - if format contains initial line and it is not disabled, show an initial line
_MyTab.Text = tmprnotab.TrimStart(); tmprnotab = tmprnotab.TrimStart();
if (!string.IsNullOrEmpty(FormatStepData?.TabData?.MacroEditTag) && FormatStepData.TabData.MacroList != null && FormatStepData.TabData.MacroList.Count > 0 && !(this.IsRNOPart && FormatStepData.TabData.MacroList[0].NotInRNO) && !IsInitialLineDisabled && !tmprnotab.StartsWith("_"))
{
if (tmprnotab.StartsWith(" "))
tmprnotab = tmprnotab.Substring(1);
tmprnotab = FormatStepData.TabData.MacroEditTag + tmprnotab;
}
else if (IsInitialLineDisabled && tmprnotab.StartsWith("_"))
tmprnotab = tmprnotab.Substring(1);
_MyTab.CleanText = tmprnotab;
_MyTab.Text = tmprnotab;
return; return;
} }
if ((((ItemInfo)ActiveParent).IsHigh && FormatStepData.NumberHighLevel) || ((!((ItemInfo)ActiveParent).IsHigh) && ((tbformat == null || tbformat == "") && (RNOLevel <= ColumnMode)))) if ((((ItemInfo)ActiveParent).IsHigh && FormatStepData.NumberHighLevel) || ((!((ItemInfo)ActiveParent).IsHigh) && ((tbformat == null || tbformat == "") && (RNOLevel <= ColumnMode))))
{ {
_MyTab.CleanText = ((ItemInfo)ActiveParent).MyTab.CleanText; _MyTab.CleanText = ((ItemInfo)ActiveParent).MyTab.CleanText;
_MyTab.Text = ((ItemInfo)ActiveParent).MyTab.Text; _MyTab.Text = ((ItemInfo)ActiveParent).MyTab.Text;
//CSM F2024 - 080: For South Texas - if format contains initial line and it is not disabled, show an initial line
if (!string.IsNullOrEmpty(FormatStepData?.TabData?.MacroEditTag) && FormatStepData.TabData.MacroList != null && FormatStepData.TabData.MacroList.Count > 0 && !(this.IsRNOPart && FormatStepData.TabData.MacroList[0].NotInRNO) && !IsInitialLineDisabled && !_MyTab.CleanText.StartsWith("_"))
{
if (_MyTab.CleanText.StartsWith(" "))
_MyTab.CleanText = _MyTab.CleanText.Substring(1);
_MyTab.CleanText = FormatStepData.TabData.MacroEditTag + _MyTab.CleanText;
}
if (IsInitialLineDisabled && _MyTab.CleanText.StartsWith("_"))
{
_MyTab.CleanText = _MyTab.CleanText.Substring(1);
}
if (IsInitialLineDisabled && _MyTab.Text.StartsWith("_"))
{
_MyTab.Text = _MyTab.Text.Substring(1);
}
_MyTab.RNOTabWidthAdjust = ((ItemInfo)ActiveParent).FormatStepData.TabData.RNOAdjustTabSize ?? 0; _MyTab.RNOTabWidthAdjust = ((ItemInfo)ActiveParent).FormatStepData.TabData.RNOAdjustTabSize ?? 0;
if (((ItemInfo)ActiveParent).MyTab.Offset != 0) _MyTab.Offset = ((ItemInfo)ActiveParent).MyTab.Offset; if (((ItemInfo)ActiveParent).MyTab.Offset != 0) _MyTab.Offset = ((ItemInfo)ActiveParent).MyTab.Offset;
if (((ItemInfo)ActiveParent).FormatStepData.TabData.RNOExcludeMacros) if (((ItemInfo)ActiveParent).FormatStepData.TabData.RNOExcludeMacros)
@@ -4694,7 +4906,7 @@ namespace VEPROMS.CSLA.Library
// Note could have modified logic for clock macro (above) but older logic uses the IdentEdit setting // Note could have modified logic for clock macro (above) but older logic uses the IdentEdit setting
// for CAS (Continuous Action Summary steps) that have a circle printed around the step number // for CAS (Continuous Action Summary steps) that have a circle printed around the step number
// this is the least impact of current code/formats // this is the least impact of current code/formats
if (!string.IsNullOrEmpty(FormatStepData.TabData.MacroEditTag)) if (!string.IsNullOrEmpty(FormatStepData?.TabData?.MacroEditTag))
{ {
int eidx = tbformat.IndexOf("}", macroindx); int eidx = tbformat.IndexOf("}", macroindx);
if (eidx > -1) if (eidx > -1)
@@ -4716,6 +4928,17 @@ namespace VEPROMS.CSLA.Library
cltext = cltext + " "; cltext = cltext + " ";
} }
} }
//CSM F2024 - 080: For South Texas - if format contains initial line and it is not disabled, show an initial line
else if (macroindx == -1 && !string.IsNullOrEmpty(FormatStepData?.TabData?.MacroEditTag) && FormatStepData.TabData.MacroList != null && FormatStepData.TabData.MacroList.Count > 0 && !(this.IsRNOPart && FormatStepData.TabData.MacroList[0].NotInRNO) && !IsInitialLineDisabled)
{
if (cltext == null)
cltext = tbformat;
if (cltext.StartsWith(" "))
cltext = cltext.Substring(1);
if (tbformat.StartsWith(" "))
tbformat = tbformat.Substring(1);
cltext = FormatStepData.TabData.MacroEditTag + cltext;
}
} }
macroindx = tbformat.IndexOf("{!diamond1}"); macroindx = tbformat.IndexOf("{!diamond1}");
if (macroindx > -1) //i found it if (macroindx > -1) //i found it
@@ -5520,15 +5743,32 @@ namespace VEPROMS.CSLA.Library
} }
if (count <= macro.Grouping) addToList = false; if (count <= macro.Grouping) addToList = false;
} }
//CSM F2024 - 080: For South Texas - if initial line is disabled for this step, do not add the macro
if (macro.Name.ToUpper() == "CHECKOFF" && ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ShowInitialLineDisable && !string.IsNullOrEmpty(FormatStepData?.TabData?.MacroEditTag) && FormatStepData.TabData.MacroEditTag == "_" && IsInitialLineDisabled)
addToList = false;
if (addToList) tmp.Add(macro); if (addToList) tmp.Add(macro);
} }
if (tmp.Count > 0) _MyMacros = tmp; if (tmp.Count > 0) _MyMacros = tmp;
} }
#endregion
#region UseSmartTemplate
// TemplateIndex is for Calvert only: //CSM F2024 - 080: For South Texas - check if initial line is disabled for this step
private int _TemplateIndex = -2; // -2 not set; -1 not a template public bool IsInitialLineDisabled
{
get
{
if (!IsStep) return false;
StepConfig sc = MyConfig as StepConfig;
return sc.Step_DisableInitialLine;
}
}
#endregion
#region UseSmartTemplate
// TemplateIndex is for Calvert only:
private int _TemplateIndex = -2; // -2 not set; -1 not a template
public int TemplateIndex public int TemplateIndex
{ {
get get
@@ -6022,6 +6262,168 @@ namespace VEPROMS.CSLA.Library
throw new DbCslaException("Error on ItemInfoList.GetChildren", ex); throw new DbCslaException("Error on ItemInfoList.GetChildren", ex);
} }
} }
//CSM B2021-043 Step numbering is out of order in RO usage report if RO values exist on steps 10 or higher.
// Found various inconsistencies in the reports so adding this to manually sort
//instead of binding the sort to 1 or 2 individual fields
public List<ItemInfo> SortedList(bool sortbyFoundRoid = false)
{
List<ItemInfo> tmp = new List<ItemInfo>(this);
if (sortbyFoundRoid)
{
// Priority of Sorting order:
// 1. FoundRoid (by Referenced Object ID)
// 2. SearchDVPath_clean (Which Procedure Set it is in - I.E. EOPs, Background, SAMGs, etc...)
// 3. Keep in order of the Procedures within the set
// 4. Keep in the order of the Section within the Procedure
// 5. NumericSortNumber - numeric part of the HLS if there is one
// 6. Substep Tab - will sort as a string since combined numbers/text
tmp.Sort(comparison: delegate (ItemInfo x, ItemInfo y)
{
int cmp = 0;
int FoundROID_cmp = x.FoundROID.CompareTo(y.FoundROID);
switch (FoundROID_cmp)
{
case int result when result < 0:
cmp -= 10000000;
break;
case int result when result == 0:
break;
case int result when result > 0:
cmp += 10000000;
break;
default:
break;
}
int DVPath_cmp = x.SearchDVPath_clean.CompareTo(y.SearchDVPath_clean);
switch (DVPath_cmp)
{
case int result when result < 0:
cmp -= 1000000;
break;
case int result when result == 0:
break;
case int result when result > 0:
cmp += 1000000;
break;
default:
break;
}
if (x.MyProcedure != null && y.MyProcedure != null)
{
cmp += (x.MyProcedure.Ordinal.CompareTo(y.MyProcedure.Ordinal) * 100000);
}
if (x.ActiveSection != null && y.ActiveSection != null)
{
cmp += (x.ActiveSection.Ordinal.CompareTo(y.ActiveSection.Ordinal) * 100000);
}
cmp += x.NumericSortNumber.CompareTo(y.NumericSortNumber) * 10;
if (cmp == 0)
{
int StepTab_cmp = (x.BuildStepTab()).CompareTo(y.BuildStepTab());
switch (StepTab_cmp)
{
case int result when result < 0:
cmp -= 1;
break;
case int result when result == 0:
break;
case int result when result > 0:
cmp += 1;
break;
default:
break;
}
}
return cmp;
});
}
else
{
// Priority of Sorting order:
// 1. SearchDVPath_clean (Which Procedure Set it is in - I.E. EOPs, Background, SAMGs, etc...)
// 2. Keep in order of the Procedures within the set
// 3. Keep in the order of the Section within the Procedure
// 4. NumericSortNumber - numeric part of the HLS if there is one
// 5. Substep Tab - will sort as a string since combined numbers/text
// 6. FoundRoid (by Referenced Object ID)
tmp.Sort(comparison: delegate (ItemInfo x, ItemInfo y)
{
int cmp = 0;
int DVPath_cmp = x.SearchDVPath_clean.CompareTo(y.SearchDVPath_clean);
switch (DVPath_cmp)
{
case int result when result < 0:
cmp -= 10000000;
break;
case int result when result == 0:
break;
case int result when result > 0:
cmp += 10000000;
break;
default:
break;
}
if (x.MyProcedure != null && y.MyProcedure != null)
{
cmp += (x.MyProcedure.Ordinal.CompareTo(y.MyProcedure.Ordinal) * 1000000);
}
if (x.ActiveSection != null && y.ActiveSection != null)
{
cmp += (x.ActiveSection.Ordinal.CompareTo(y.ActiveSection.Ordinal) * 100000);
}
cmp += (x.NumericSortNumber.CompareTo(y.NumericSortNumber) * 100);
if (cmp == 0)
{
int StepTab_cmp = (x.BuildStepTab()).CompareTo(y.BuildStepTab());
switch (StepTab_cmp)
{
case int result when result < 0:
cmp -= 10;
break;
case int result when result == 0:
break;
case int result when result > 0:
cmp += 10;
break;
default:
break;
}
}
int FoundROID_cmp = x.FoundROID.CompareTo(y.FoundROID);
switch (FoundROID_cmp)
{
case int result when result < 0:
cmp -= 1;
break;
case int result when result == 0:
break;
case int result when result > 0:
cmp += 1;
break;
default:
break;
}
return cmp;
});
}
return tmp;
}
[Serializable()] [Serializable()]
private class MoveItemCriteria private class MoveItemCriteria
{ {
@@ -7197,11 +7599,11 @@ namespace VEPROMS.CSLA.Library
} }
this.RaiseListChangedEvents = true; this.RaiseListChangedEvents = true;
} }
#endregion #endregion
} }
#endregion #endregion
#region new class TransitionLookup #region new class TransitionLookup
public delegate ProcedureInfo TransitionLookupEvent(object sender, TransitionLookupEventArgs args); public delegate ProcedureInfo TransitionLookupEvent(object sender, TransitionLookupEventArgs args);
public class TransitionLookupEventArgs public class TransitionLookupEventArgs
{ {
private int _ProcID; private int _ProcID;
@@ -8004,6 +8406,81 @@ namespace VEPROMS.CSLA.Library
MyContent.Config = _ProcedureConfig.ToString(); MyContent.Config = _ProcedureConfig.ToString();
} }
#endregion #endregion
public class DisplayTabs
{
private int _ItemID;
public int ItemID
{
get { return _ItemID; }
set { _ItemID = value; }
}
private string _DisplayTabID;
public string DisplayTabID
{
get { return _DisplayTabID; }
set { _DisplayTabID = value; }
}
private string _DisplayTabName;
public string DisplayTabName
{
get { return _DisplayTabName; }
set { _DisplayTabName = value; }
}
public SafeDataReader Dr { get; }
public DisplayTabs()
{
}
public DisplayTabs(int itemID, String displayTabID, String displayTabName)
{
_ItemID = itemID;
_DisplayTabID = displayTabID;
_DisplayTabName = displayTabName;
}
public DisplayTabs(SafeDataReader dr)
{
Dr = dr;
}
}
public static void AddDisplayTabsState(int itemID, string displayTabID, string displayTabName)
//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.AddDisplayTabsState", ex);
throw new DbCslaException("ItemExt.AddDisplayTabsState", ex);
}
}
}
}
} }
#endregion #endregion
#region SectionInfo #region SectionInfo

View File

@@ -1876,6 +1876,10 @@ namespace VEPROMS.CSLA.Library
if (IsCaution) enhType = 20006; if (IsCaution) enhType = 20006;
return enhType; return enhType;
} }
// B2024-075: Paste Before/After with Enhanced Documents is creating situation
//where Background item is linked to Source but Source is not linked to Background
//When Fixing the linking, need to not create a duplicate link if one already exists
public void DoCreateLinksEnhancedSingleItem(ItemInfo enhii, int enhtype) public void DoCreateLinksEnhancedSingleItem(ItemInfo enhii, int enhtype)
{ {
// Link the 2 items, srcII & enhii: // Link the 2 items, srcII & enhii:
@@ -1893,12 +1897,15 @@ namespace VEPROMS.CSLA.Library
using (Item ei = Item.Get(enhii.ItemID)) using (Item ei = Item.Get(enhii.ItemID))
{ {
StepConfig sc = enhii.MyConfig as StepConfig; StepConfig sc = enhii.MyConfig as StepConfig;
sc.AddEnhancedDocument(0, this.ItemID); if (!sc.MyEnhancedDocuments.Exists(x => x.Type == 0))
sc.SaveEnhancedDocuments(); {
ei.MyContent.Text = DisplayText; sc.AddEnhancedDocument(0, this.ItemID);
ei.MyContent.Config = sc.ToString(); sc.SaveEnhancedDocuments();
ei.Save(); ei.MyContent.Text = DisplayText;
enhii.RefreshConfig(); ei.MyContent.Config = sc.ToString();
ei.Save();
enhii.RefreshConfig();
}
} }
} }
else if (IsSection) else if (IsSection)
@@ -1916,12 +1923,15 @@ namespace VEPROMS.CSLA.Library
using (Item ei = Item.Get(enhii.ItemID)) using (Item ei = Item.Get(enhii.ItemID))
{ {
SectionConfig sc = enhii.MyConfig as SectionConfig; SectionConfig sc = enhii.MyConfig as SectionConfig;
sc.AddEnhancedDocument(0, this.ItemID); if (!sc.MyEnhancedDocuments.Exists(x => x.Type == 0))
sc.SaveEnhancedDocuments(); {
ei.MyContent.Text = DisplayText; sc.AddEnhancedDocument(0, this.ItemID);
ei.MyContent.Config = sc.ToString(); sc.SaveEnhancedDocuments();
ei.Save(); ei.MyContent.Text = DisplayText;
enhii.RefreshConfig(); ei.MyContent.Config = sc.ToString();
ei.Save();
enhii.RefreshConfig();
}
} }
} }
else if (IsProcedure) else if (IsProcedure)
@@ -1942,16 +1952,66 @@ namespace VEPROMS.CSLA.Library
using (Item ii = this.Get()) using (Item ii = this.Get())
{ {
ProcedureConfig sc = this.MyConfig as ProcedureConfig; ProcedureConfig sc = this.MyConfig as ProcedureConfig;
sc.AddEnhancedDocument(enhtype, enhii.ItemID); if (!sc.MyEnhancedDocuments.Exists(x => x.Type == 0))
sc.SaveEnhancedDocuments(); {
ii.MyContent.Config = sc.ToString(); sc.AddEnhancedDocument(enhtype, enhii.ItemID);
ii.Save(); sc.SaveEnhancedDocuments();
RefreshConfig(); ii.MyContent.Config = sc.ToString();
ii.Save();
RefreshConfig();
}
} }
} }
} }
#endregion #endregion
#region DataPortal #region DataPortal
// C2017-031: Support for paste/replace an enhanced step
private void DataPortal_Fetch(PastingPartEnhancedCriteria criteria)
{
if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemInfo.DataPortal_Fetch", GetHashCode());
try
{
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
{
Csla.ApplicationContext.LocalContext["cn"] = cn;
using (SqlCommand cm = cn.CreateCommand())
{
cm.CommandType = CommandType.StoredProcedure;
cm.Parameters.AddWithValue("@StartItemID", criteria.StartItemID); // copy children
cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); //copy to
cm.Parameters.AddWithValue("@Type", criteria.Type);
cm.Parameters.AddWithValue("@DTS", criteria.DTS);
cm.Parameters.AddWithValue("@UserID", criteria.UserID);
SqlParameter param_ContentID = new SqlParameter("@NewItemID", SqlDbType.Int);
param_ContentID.Direction = ParameterDirection.Output;
cm.Parameters.Add(param_ContentID);
cm.CommandText = "PasteItemEnhancedReplace";
cm.CommandTimeout = Database.DefaultTimeout;
using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
{
if (!dr.Read())
{
_ErrorMessage = "No Record Found";
return;
}
ReadData(dr);
}
}
// removing of item only needed for local data portal
if (Csla.ApplicationContext.ExecutionLocation == Csla.ApplicationContext.ExecutionLocations.Client)
Csla.ApplicationContext.LocalContext.Remove("cn");
}
}
catch (Exception ex)
{
if (!ex.Message.Contains("This step has been deleted") && !ex.Message.Contains("This current step has been deleted in another session"))
{
if (_MyLog.IsErrorEnabled) _MyLog.Error("ItemInfo.DataPortal_Fetch", ex);
}
_ErrorMessage = ex.Message;
throw new DbCslaException("ItemInfo.DataPortal_Fetch", ex);
}
}
private void DataPortal_Fetch(PastingPartCriteria criteria) private void DataPortal_Fetch(PastingPartCriteria criteria)
{ {
if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemInfo.DataPortal_Fetch", GetHashCode()); if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemInfo.DataPortal_Fetch", GetHashCode());
@@ -2073,9 +2133,72 @@ namespace VEPROMS.CSLA.Library
throw new DbCslaException("ItemInfo.DataPortal_Fetch", ex); throw new DbCslaException("ItemInfo.DataPortal_Fetch", ex);
} }
} }
#endregion
#region PastingPartEnhancedCriteria
// C2017-031: Support for paste/replace an enhanced step
[Serializable()]
public class PastingPartEnhancedCriteria
{
#region Properties
private int _StartItemID;
public int StartItemID
{
get { return _StartItemID; }
set { _StartItemID = value; }
}
private int _ItemID; // paste relative to this itemid
public int ItemID
{
get { return _ItemID; }
set { _ItemID = value; }
}
private EAddpingPart _AddType;
public EAddpingPart AddType
{
get { return _AddType; }
set { _AddType = value; }
}
private int? _FromType = null;
public int? FromType
{
get { return _FromType; }
set { _FromType = value; }
}
private int? _Type = null;
public int? Type
{
get { return _Type; }
set { _Type = value; }
}
private DateTime _DTS;
public DateTime DTS
{
get { return _DTS; }
set { _DTS = value; }
}
private string _UserID;
public string UserID
{
get { return _UserID; }
set { _UserID = value; }
}
#endregion
#region Constructor
public PastingPartEnhancedCriteria(int startItemid, int itemID, EAddpingPart addType, int? type, int? fromType, DateTime dts, string userID)
{
_StartItemID = startItemid;
_ItemID = itemID;
_AddType = addType;
_Type = type;
_FromType = fromType;
_DTS = dts;
_UserID = userID;
}
#endregion #endregion
#region PastingPartCriteria }
[Serializable()] #endregion
#region PastingPartCriteria
[Serializable()]
public class PastingPartCriteria public class PastingPartCriteria
{ {
#region Properties #region Properties
@@ -2364,6 +2487,14 @@ namespace VEPROMS.CSLA.Library
_MyPrevious = null; // Reset list so that the next line gets a new list _MyPrevious = null; // Reset list so that the next line gets a new list
if (MyPrevious != null) MyPrevious.RefreshNextItems(); // Update List for new value if (MyPrevious != null) MyPrevious.RefreshNextItems(); // Update List for new value
} }
// C2017-031: Support for paste/replace an enhanced step
internal static ItemInfo CopyPasteReplaceEnhancedItemInfoFetch(int copyStartID, ItemInfo itemInfo)
{
ItemInfo tmp = null;
tmp = DataPortal.Fetch<StepInfo>(new ItemInfo.PastingPartEnhancedCriteria(copyStartID, itemInfo.ItemID, ItemInfo.EAddpingPart.Replace, itemInfo.MyContent.Type, itemInfo.MyContent.Type, DateTime.Now, Volian.Base.Library.VlnSettings.UserID));
AddToCache(tmp);
return tmp;
}
internal static ItemInfo CopyPasteReplaceItemInfoFetch(int copyStartID, ItemInfo itemInfo) // int itemID, int? type, int? fromType) internal static ItemInfo CopyPasteReplaceItemInfoFetch(int copyStartID, ItemInfo itemInfo) // int itemID, int? type, int? fromType)
{ {
ItemInfo tmp = null; ItemInfo tmp = null;
@@ -2519,89 +2650,174 @@ namespace VEPROMS.CSLA.Library
firstTrans = false; firstTrans = false;
if (!CanDeleteObject()) if (!CanDeleteObject())
throw new System.Security.SecurityException("User not authorized to remove a Item"); 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 // 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 // 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; ItemInfo newItemInfo = null;
try using (ItemInfo copyItemInfo = ItemInfo.Get(copyStartID))
{ {
newItemInfo = ItemInfo.CopyPasteReplaceItemInfoFetch(copyStartID, itemInfo); //itemInfo.ItemID, itemInfo.MyContent.Type, itemInfo.MyContent.Type); try
if (newItemInfo == null) return null; {
} // C2017-031: Support for paste/replace an enhanced step, if this is replacing enhanced, do a specific query
catch (Exception ex1) if (itemInfo.IsEnhancedStep)
{ {
if (ex1.Message.Contains("has External Transitions and has no next step") 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;
}
}
catch (Exception ex1)
{
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 Procedure")
|| ex1.Message.Contains("has External Transitions to it's children")) || 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); 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; return null;
}
} }
} try
try {
{ // Delete business objects, including remove from tree
// Delete business objects, including remove from tree ItemInfo.DeleteItemInfoAndChildren(itemInfo.ItemID); // Dispose ItemInfo and Children
ItemInfo.DeleteItemInfoAndChildren(itemInfo.ItemID); // Dispose ItemInfo and Children using (Item item = Get(newItemInfo.ItemID)) ItemInfo.Refresh(item);
using (Item item = Get(newItemInfo.ItemID)) ItemInfo.Refresh(item); ItemInfo.PasteSetChangeId(newItemInfo, chgid);
ItemInfo.PasteSetChangeId(newItemInfo, chgid); if (!copyItemInfo.HasEnhancedLinkedStep && !itemInfo.HasEnhancedLinkedStep) ItemInfo.PasteClearEnhanced(newItemInfo);
ItemInfo.PasteClearEnhanced(newItemInfo); if (newItemInfo.NextItem != null) using (Item item = newItemInfo.NextItem.Get()) ItemInfo.Refresh(item);
if (newItemInfo.NextItem != null) using (Item item = newItemInfo.NextItem.Get()) ItemInfo.Refresh(item); newItemInfo.RefreshNextItems();
newItemInfo.RefreshNextItems(); // if inserting after a caution or note, refreshes tabs. This will adjust bullets
// if inserting after a caution or note, refreshes tabs. This will adjust bullets // of any previous cautions or notes.
// of any previous cautions or notes. if (newItemInfo.IsCaution || newItemInfo.IsNote) newItemInfo.ResetOrdinal();
if (newItemInfo.IsCaution || newItemInfo.IsNote) newItemInfo.ResetOrdinal(); newItemInfo.UpdateTransitionText();
newItemInfo.UpdateTransitionText(); newItemInfo.UpdateROText();
newItemInfo.UpdateROText(); newItemInfo.UpdatePastedStepTransitionText();
newItemInfo.UpdatePastedStepTransitionText();
// Add to tree // Add to tree
if (newItemInfo.NextItem != null) if (newItemInfo.NextItem != null)
{
using (ItemInfo itm = ItemInfo.GetNonCached(newItemInfo.NextItem.ItemID))
{ {
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)
else if (newItemInfo.PreviousID != null)
{
using (ItemInfo itm2 = ItemInfo.GetNonCached((int)newItemInfo.PreviousID))
{ {
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 ItemInfo iii = itemInfo.HandleSqlExceptionOnDelete(ex);
// procedure's MyParent is null because its parent is a working draft (docversion) since MyParent's type is iteminfo. if (iii == itemInfo) return null;// If self returned then return null
// For the single procedure case, the user interface code in vlntreeview will update the tree. if (iii != null)
if (newItemInfo.MyParent != null) {
newItemInfo.MyParent.OnNewChild(new ItemInfoInsertEventArgs(newItemInfo, ItemInfo.EAddpingPart.Child)); 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 #endregion

View File

@@ -156,32 +156,38 @@ namespace VEPROMS.CSLA.Library
SessionInfoList sil = DataPortal.Fetch<SessionInfoList>(new SessionInfoList.CanCheckOutItemCriteria(objectID, objectType)); SessionInfoList sil = DataPortal.Fetch<SessionInfoList>(new SessionInfoList.CanCheckOutItemCriteria(objectID, objectType));
if (sil.Count == 0) if (sil.Count == 0)
return true; return true;
if (objectType == CheckOutType.Session) if (objectType == CheckOutType.Session)
{ {
if (sil.Count == 1) if (sil.Count == 1)
{ {
OwnerInfoList oil = OwnerInfoList.GetBySessionID(sil[0].SessionID); OwnerInfoList oil = OwnerInfoList.GetBySessionID(sil[0].SessionID);
if (oil.Count == 0) if (oil.Count == 0)
return true; return true;
else else
{ {
message = "Export Procedure Set and Import Procedure Set are not available because you have open procedures or documents"; message = "Export Procedure Set and Import Procedure Set are not available because you have open procedures or documents";
return false; return false;
} }
} }
else else
{ {
message = "Export Procedure Set and Import Procedure Set are not available because there are other sessions open in the database"; message = "Export Procedure Set and Import Procedure Set are not available because there are other sessions open in the database";
return false; return false;
} }
} }
bool rv = true; bool rv = true;
// C2015-022 part of separate windows logic, check the processID instead of the sessionID // C2015-022 part of separate windows logic, check the processID instead of the sessionID
foreach (SessionInfo si in sil) foreach (SessionInfo si in sil)
{ {
if (si.ProcessID != this.ProcessID && objectType == CheckOutType.Procedure) if (si.ProcessID != this.ProcessID && objectType == CheckOutType.Procedure)
{ {
message = string.Format("The procedure {0} is already checked out to {1}", ItemInfo.Get(objectID).MyProcedure.DisplayNumber, si.UserID); //B2024-074 If no Number for Procedure, Display Title
ProcedureInfo tmpproc = ItemInfo.Get(objectID).MyProcedure;
string name = tmpproc.DisplayNumber;
if (string.IsNullOrEmpty(name))
{ name = tmpproc.DisplayText; }
message = string.Format("The procedure {0} is already checked out to {1}", name, si.UserID);
rv = rv && false; rv = rv && false;
} }
else if (si.ProcessID != this.ProcessID && objectType == CheckOutType.Document) else if (si.ProcessID != this.ProcessID && objectType == CheckOutType.Document)
@@ -195,8 +201,16 @@ namespace VEPROMS.CSLA.Library
OwnerInfo oi = OwnerInfo.GetBySessionIDandVersionID(si.SessionID, objectID); OwnerInfo oi = OwnerInfo.GetBySessionIDandVersionID(si.SessionID, objectID);
if (oi == null) if (oi == null)
message = message + string.Format("The working draft is already checked out to {0}", si.UserID) + Environment.NewLine; message = message + string.Format("The working draft is already checked out to {0}", si.UserID) + Environment.NewLine;
else if(oi.OwnerType == 0) else if (oi.OwnerType == 0)
message = message + string.Format("The procedure {0} is already checked out to {1}", ItemInfo.Get(oi.OwnerItemID).MyProcedure.DisplayNumber, si.UserID) + Environment.NewLine; {
//B2024-074 If no Number for Procedure, Display Title
ProcedureInfo tmpproc = ItemInfo.Get(oi.OwnerItemID).MyProcedure;
string name = tmpproc.DisplayNumber;
if (string.IsNullOrEmpty(name))
{ name = tmpproc.DisplayText; }
message = message + string.Format("The procedure {0} is already checked out to {1}", name, si.UserID) + Environment.NewLine;
}
else if (oi.OwnerType == 1) else if (oi.OwnerType == 1)
message = message + string.Format("The document {0} is already checked out to {1}", DocumentInfo.Get(oi.OwnerItemID).DocumentEntries[0].MyContent.Text, si.UserID) + Environment.NewLine; message = message + string.Format("The document {0} is already checked out to {1}", DocumentInfo.Get(oi.OwnerItemID).DocumentEntries[0].MyContent.Text, si.UserID) + Environment.NewLine;
else if (oi.OwnerType == 2) else if (oi.OwnerType == 2)
@@ -211,7 +225,15 @@ namespace VEPROMS.CSLA.Library
if (oi != null) if (oi != null)
{ {
if (oi.OwnerType == 0) if (oi.OwnerType == 0)
message = message + string.Format("The procedure {0} is already checked out to {1}", ItemInfo.Get(oi.OwnerItemID).MyProcedure.DisplayNumber, si.UserID) + Environment.NewLine; {
//B2024-074 If no Number for Procedure, Display Title
ProcedureInfo tmpproc = ItemInfo.Get(oi.OwnerItemID).MyProcedure;
string name = tmpproc.DisplayNumber;
if (string.IsNullOrEmpty(name))
{ name = tmpproc.DisplayText; }
message = message + string.Format("The procedure {0} is already checked out to {1}", name, si.UserID) + Environment.NewLine;
}
else if (oi.OwnerType == 1) else if (oi.OwnerType == 1)
message = message + string.Format("The document {0} is already checked out to {1}", DocumentInfo.Get(oi.OwnerItemID).DocumentEntries[0].MyContent.Text, si.UserID) + Environment.NewLine; message = message + string.Format("The document {0} is already checked out to {1}", DocumentInfo.Get(oi.OwnerItemID).DocumentEntries[0].MyContent.Text, si.UserID) + Environment.NewLine;
else if (oi.OwnerType == 2) else if (oi.OwnerType == 2)

View File

@@ -676,37 +676,47 @@ namespace VEPROMS.CSLA.Library
} }
public void AppendPrefix() public void AppendPrefix()
{ {
if (HasText && Prefix != null) if (Prefix == null) return; // no Prefix text to add
if (HasText)
{ {
if (!_Results.ToString().EndsWith(_Prefix)) if (!_Results.ToString().EndsWith(_Prefix)) //existing transition text does not end with Prefix text, OK to append
_Results.Append(Prefix); _Results.Append(Prefix);
_Prefix = null; _Prefix = null;
} }
else if (_TranType == 4 && _ToItem.MoreThanOneStepSection()) else if (_TranType == 4 && _ToItem.MoreThanOneStepSection())
{ {
if (!HasText && Prefix != null && Prefix.ToUpper().StartsWith(", STEP") // WEP (Point Beach) is no longer a customer - commented out
&& _FromItem.ActiveFormat.Name.StartsWith("WEP")) //if (!HasText && Prefix.ToUpper().StartsWith(", STEP")
{ // && _FromItem.ActiveFormat.Name.StartsWith("WEP"))
Console.WriteLine("Format,'{0}'", _FromItem.ActiveFormat.Name); //{
_Prefix = null; // Console.WriteLine("Format,'{0}'", _FromItem.ActiveFormat.Name);
return; // _Prefix = null;
} // return;
//}
_Results.Append(Prefix); _Results.Append(Prefix);
_Prefix = null; _Prefix = null;
} }
else if (_TranType == 5 && Prefix != null)
{
if (!HasText && Prefix.StartsWith(", "))
_Results.Append(Prefix.TrimStart(", ".ToCharArray()));
else
_Results.Append(Prefix);
_Prefix = null;
}
// If the prefix contains an open paren, we want to add the open paren regardless // If the prefix contains an open paren, we want to add the open paren regardless
// of whether there already is text in the resulting string. // of whether there already is text in the resulting string.
else if (!HasText && Prefix != null && Prefix.Contains("(")) else if (!HasText && Prefix.Contains("("))
{ {
_Results.Append(Prefix.TrimStart(" ".ToCharArray())); // since no text in result, trim starting space. _Results.Append(Prefix.TrimStart(" ".ToCharArray())); // since no text in result, trim starting space.
_Prefix = null;
}
else if (!HasText && Prefix.StartsWith(", "))
{
_Results.Append(Prefix.TrimStart(", ".ToCharArray()));// no preceeding text, remove comma and space
_Prefix = null;
}
else if (!HasText && Prefix.StartsWith(","))
{
_Results.Append(Prefix.TrimStart(",".ToCharArray())); // no preceeding text, remove comma
_Prefix = null;
}
else
{
_Results.Append(Prefix); // append prefix as is
_Prefix = null;
} }
} }
public string OverridePrefix public string OverridePrefix

View File

@@ -3175,6 +3175,17 @@ namespace VEPROMS.CSLA.Library
return LazyLoad(ref _ChangeFontUpperCaseIinArial, "@ChangeFontUpperCaseIinArial"); return LazyLoad(ref _ChangeFontUpperCaseIinArial, "@ChangeFontUpperCaseIinArial");
} }
} }
// F2024-080 South Texas
// Used to show if "Initial Line Disable" checkbox should show in the DisplayTab
private LazyLoad<bool> _ShowInitialLineDisable;
public bool ShowInitialLineDisable
{
get
{
return LazyLoad(ref _ShowInitialLineDisable, "@ShowInitialLineDisable");
}
}
} }
#endregion - StepSectionData #endregion - StepSectionData
#region TextTypeValue #region TextTypeValue
@@ -6202,6 +6213,36 @@ public StepData Equation // equation has a parent of embedded object.
} }
} }
// F2024-078 adjusts the the spacing before the Note/Caution tab - the space betwee the top of the box and the tab text
private LazyLoad<float?> _AdjSpB4Tab;
public float? AdjSpB4Tab
{
get
{
return LazyLoad(ref _AdjSpB4Tab, "@AdjSpB4Tab");
}
}
// F2024-078 adjusts the the spacing after the Note/Caution tab - the space betwee the tab text and the first line of of Note/Caution text
private LazyLoad<float?> _AdjSpAftTab;
public float? AdjSpAftTab
{
get
{
return LazyLoad(ref _AdjSpAftTab, "@AdjSpAftTab");
}
}
// F2024-078 adjusts the the spacing after the last line of Note/Caution text - between the last line of text and the bottom of the box
private LazyLoad<float?> _AdjLastBlnkLn;
public float? AdjLastBlnkLn
{
get
{
return LazyLoad(ref _AdjLastBlnkLn, "@AdjLastBlnkLn");
}
}
// this will adjust the line spacing when an extra thick line is used for a box, so that the text below the box doesn't hit up against the bottom of the box // this will adjust the line spacing when an extra thick line is used for a box, so that the text below the box doesn't hit up against the bottom of the box
private LazyLoad<bool> _ThickDouble; // F2021-026: Barakah single column 2 thick double lines around Warnings private LazyLoad<bool> _ThickDouble; // F2021-026: Barakah single column 2 thick double lines around Warnings
public bool ThickDouble public bool ThickDouble
@@ -6396,7 +6437,7 @@ public StepData Equation // equation has a parent of embedded object.
} }
public TransData(XmlNode xmlNode) : base(xmlNode) { } public TransData(XmlNode xmlNode) : base(xmlNode) { }
// a character that is placed before and after the title that's in the transition text // a character that is placed before and after the procedure title that's in the transition text
private LazyLoad<string> _DelimiterForTransitionTitle; private LazyLoad<string> _DelimiterForTransitionTitle;
public string DelimiterForTransitionTitle public string DelimiterForTransitionTitle
{ {
@@ -6673,7 +6714,9 @@ public StepData Equation // equation has a parent of embedded object.
} }
} }
// holdover from 16bit, used to define whether transitions are range (types 2 & 3). this is used in the logic for transitions with page numbers // Holdover from 16bit, used to define whether transitions are range (types 2 & 3).
// This is used in the logic for transitions with page numbers. This gets defined as "Type" in the code for the transition class.
// NOTE: the TransType you see in the code is actually the index into the list of transition definitions for given format.
private LazyLoad<int?> _Type; private LazyLoad<int?> _Type;
public int? Type public int? Type
{ {

View File

@@ -1132,6 +1132,88 @@ namespace VEPROMS.CSLA.Library
throw new DbCslaException("Item.Add", ex); throw new DbCslaException("Item.Add", ex);
} }
} }
public static void DeactivateStateDisplayTabTmp(string UserID)
{
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
{
using (SqlCommand cm = cn.CreateCommand())
{
try
{
cm.CommandType = CommandType.StoredProcedure;
cm.CommandText = "DeactivateStateDisplayTabTmp";
cm.CommandTimeout = Database.DefaultTimeout;
cm.Parameters.AddWithValue("@UserID", UserID);
cm.ExecuteNonQuery();
}
catch (Exception ex)
{
//if (_MyLog.IsErrorEnabled) _MyLog.Error("ItemExt.DeactivateStateDisplayTabTmp", ex);
throw new DbCslaException("ItemExt.DeactivateStateDisplayTabTmp", ex);
}
}
}
}
public static void AddDisplayTabsState(int itemID, string displayTabID, string displayTabName, string UserID, int order)
//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.Parameters.AddWithValue("@UserID", UserID);
cm.Parameters.AddWithValue("@order", order);
cm.ExecuteNonQuery();
}
catch (Exception ex)
{
//if (_MyLog.IsErrorEnabled) _MyLog.Error("ItemExt.AddDisplayTabsState", ex);
throw new DbCslaException("ItemExt.AddDisplayTabsState", ex);
}
}
}
}
public static DataTable GetDisplayTabs(string UserID) //, string displayTabID, string displayTabName)
//public static void DeactivateStateDisplayTabTmp(string UserID)
{
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
{
using (SqlCommand cm = cn.CreateCommand())
{
try
{
cm.CommandType = CommandType.StoredProcedure;
cm.CommandText = "GetDisplayTabdata";
cm.CommandTimeout = Database.DefaultTimeout;
cm.Parameters.AddWithValue("@UserID", UserID);
SqlDataAdapter da = new SqlDataAdapter(cm);
SqlDataReader reader = cm.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(reader);
return dt;
}
catch (Exception 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();
}
}
}
}
[Transactional(TransactionalTypes.TransactionScope)] [Transactional(TransactionalTypes.TransactionScope)]
protected override void DataPortal_Update() protected override void DataPortal_Update()
{ {

View File

@@ -0,0 +1,91 @@
using System;
using Csla.Data;
using System.Data;
using System.Data.SqlClient;
//CSM - C2024-031 - Minimal Class for Saving / Getting User Settings
//For Use with getting / saving if a User wishes to have tabs kept open
namespace VEPROMS.CSLA.Library
{
public class UserSettings
{
#region Private Properties
private readonly string _userid;
#endregion
#region Public Properties
public bool UserSetting_OpenTabs_Remember { get; protected set; } = false;
public bool UserSetting_OpenTabs_AutoOpen { get; protected set; } = true;
#endregion
#region Constructor
public UserSettings(string UserID)
{
_userid = UserID;
try
{
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
{
using (SqlCommand cm = cn.CreateCommand())
{
cm.CommandType = CommandType.Text;
cm.CommandText = "Select RememberOpenTabs, AutoOpenTabs FROM Users where UserID = @UID";
cm.Parameters.AddWithValue("@UID", _userid);
cm.CommandTimeout = Database.DefaultTimeout;
using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
{
if (dr.Read())
{
UserSetting_OpenTabs_Remember = (bool) dr.GetValue("RememberOpenTabs");
UserSetting_OpenTabs_AutoOpen = (bool) dr.GetValue("AutoOpenTabs");
}
}
}
}
}
catch (Exception ex)
{
Database.LogException("UserSettings_GetData", ex);
throw new DbCslaException("UserSettings_GetData", ex);
}
}
#endregion
#region Save Properties
public void SetUserSettings(bool OpenTabs_Remember, bool? OpenTabs_AutoOpen = null)
{
try
{
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
{
using (SqlCommand cm = cn.CreateCommand())
{
cm.CommandType = CommandType.StoredProcedure;
cm.CommandText = "vesp_UpdateUserSettings";
cm.Parameters.AddWithValue("@UID", _userid);
UserSetting_OpenTabs_Remember = OpenTabs_Remember;
cm.Parameters.AddWithValue("@Remember", OpenTabs_Remember);
if (OpenTabs_AutoOpen != null)
{
UserSetting_OpenTabs_AutoOpen = (bool) OpenTabs_AutoOpen;
cm.Parameters.AddWithValue("@AutoOpen", OpenTabs_AutoOpen);
}
cm.CommandTimeout = Database.DefaultTimeout;
cm.ExecuteNonQuery();
}
}
}
catch (Exception ex)
{
Database.LogException("UserSettings_SetUserSettings", ex);
throw new DbCslaException("UserSettings_SetUserSettings", ex);
}
}
#endregion
}
}

View File

@@ -380,6 +380,7 @@
<Compile Include="Generated\ZContentInfo.cs" /> <Compile Include="Generated\ZContentInfo.cs" />
<Compile Include="Generated\ZTransition.cs" /> <Compile Include="Generated\ZTransition.cs" />
<Compile Include="Generated\ZTransitionInfo.cs" /> <Compile Include="Generated\ZTransitionInfo.cs" />
<Compile Include="Minimal\UserSettings.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="VEObjects\VEDrillDown.cs" /> <Compile Include="VEObjects\VEDrillDown.cs" />
<Compile Include="VEObjects\VETreeNode.cs" /> <Compile Include="VEObjects\VETreeNode.cs" />

View File

@@ -17,10 +17,10 @@ namespace Volian.Base.Library
return new List<string>(text.Split(mySplit, StringSplitOptions.None)); return new List<string>(text.Split(mySplit, StringSplitOptions.None));
} }
int width = 0; // width of text, non-rtf int width = 0; // width of text, non-rtf
int start = 0; // start of line (index into string 'text'), includes 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 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 startNonRtf = 0; // start of line, non-rtf (used for determining starting position to determine width if there was a break)
string rtfprefix = ""; string rtfprefix = "";
string nextprefix = ""; string nextprefix = "";
for (int indx = 0; indx < text.Length; indx++) 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 // converting the unicode \u8482? to \'99, but once this is done, PROMS StepRTB (edit windows) does not show it
rtnStr = rtnStr.Replace(@"\'99", @"\u8482?"); rtnStr = rtnStr.Replace(@"\'99", @"\u8482?");
// convert \'ae to \u174? this is for the registered symbol. RTF converts the unicode character to \'ae // 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 // convert \'a9 to \u169? this is for the copyright symbol. RTF converts the unicode character to \'a9
rtnStr = rtnStr.Replace(@"\'a9",@"\u169?"); 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));
}
}
return rtnStr; return rtnStr;
} }
} }

View File

@@ -277,17 +277,27 @@ namespace Volian.Controls.Library
private void btnRemoveAnnotation_Click(object sender, EventArgs e) private void btnRemoveAnnotation_Click(object sender, EventArgs e)
{ {
//using (Annotation annotation = CurrentAnnotation.Get()) // CSM B2024-068 / B2024-069 - check if current annotation is not selected before removal of annotation
//{ if (CurrentAnnotation != null)
// annotation.Delete(); {
_AnnotationSearch.LoadingList = true; //using (Annotation annotation = CurrentAnnotation.Get())
Annotation.DeleteAnnotation(CurrentAnnotation); //{
// annotation.Save(); // annotation.Delete();
_AnnotationSearch.LoadingList = false; _AnnotationSearch.LoadingList = true;
CurrentAnnotation = null; Annotation.DeleteAnnotation(CurrentAnnotation);
UpdateAnnotationGrid(); // annotation.Save();
_AnnotationSearch.UpdateAnnotationSearchResults(); // B2019-004: update search results list when an annotation is removed. _AnnotationSearch.LoadingList = false;
//} CurrentAnnotation = null;
UpdateAnnotationGrid();
_AnnotationSearch.UpdateAnnotationSearchResults(); // B2019-004: update search results list when an annotation is removed.
//}
}
else
{
FlexibleMessageBox.Show("You Must Select an Annotation To Remove", "Annotation Not Selected", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return;
}
} }
private void btnSaveAnnotation_Click(object sender, EventArgs e) private void btnSaveAnnotation_Click(object sender, EventArgs e)

View File

@@ -236,7 +236,11 @@ namespace Volian.Controls.Library
else else
{ {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.AppendLine("Changing the applicability for this step will invalidate a transition in the following steps..."); string tmpwrd = MyItemInfo.IsSection ? "section" : "step";
sb.AppendLine($"The applicability for this {tmpwrd} cannot be changed due to transition links.");
sb.AppendLine("Applicability settings will return to original settings when OK is selected.");
sb.AppendLine($"Changing the applicability for this {tmpwrd} will invalidate a transition in the following steps...");
sb.AppendLine(); sb.AppendLine();
// B2021-149: if step, put out line for every invalidTrans, if procedure only put out those that are external // B2021-149: if step, put out line for every invalidTrans, if procedure only put out those that are external
// determine this by looking strings for source and target (to), if procedure level and internal the target starts // determine this by looking strings for source and target (to), if procedure level and internal the target starts

View File

@@ -1078,7 +1078,13 @@ namespace Volian.Controls.Library
} }
else if (searchValue.Contains("#Link:ReferencedObject")) // RO Link (roid) 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); string roid = ROFSTLookup.FormatRoidKey(searchValue.Substring(searchValue.LastIndexOf(" ")), true);
if (roid != selectedChld.roid) if (roid != selectedChld.roid)

View File

@@ -503,7 +503,7 @@ namespace Volian.Controls.Library
this.cbxSortBySetpointID.Size = new System.Drawing.Size(121, 23); this.cbxSortBySetpointID.Size = new System.Drawing.Size(121, 23);
this.cbxSortBySetpointID.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; this.cbxSortBySetpointID.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.cbxSortBySetpointID.TabIndex = 11; this.cbxSortBySetpointID.TabIndex = 11;
this.cbxSortBySetpointID.Text = "Sort By Sepoint ID"; this.cbxSortBySetpointID.Text = "Sort By Setpoint ID";
this.cbxSortBySetpointID.Visible = false; this.cbxSortBySetpointID.Visible = false;
// //
// DisplayReports // DisplayReports
@@ -511,8 +511,8 @@ namespace Volian.Controls.Library
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.btnPrintReport); this.Controls.Add(this.btnPrintReport);
this.Controls.Add(this.xpSetToReport);
this.Controls.Add(this.xpSelROs); this.Controls.Add(this.xpSelROs);
this.Controls.Add(this.xpSetToReport);
this.Controls.Add(this.tctrlReports); this.Controls.Add(this.tctrlReports);
this.Margin = new System.Windows.Forms.Padding(2); this.Margin = new System.Windows.Forms.Padding(2);
this.Name = "DisplayReports"; this.Name = "DisplayReports";

View File

@@ -805,16 +805,8 @@ namespace Volian.Controls.Library
string SearchString = GetListOfROs(true);// Include the RODbID in the RO list string SearchString = GetListOfROs(true);// Include the RODbID in the RO list
ItemInfoList SearchResults = ItemInfoList.GetListFromROReport(DocVersionList, "", SearchString, ""); ItemInfoList SearchResults = ItemInfoList.GetListFromROReport(DocVersionList, "", SearchString, "");
if (!usageSortedByProcedure) // sort on ROs List<ItemInfo> sortedResults = SearchResults.SortedList(!usageSortedByProcedure);
{ OnPrintRequest(new DisplayReportsEventArgs("Referenced Objects Usage By RO", "RO Usage", sortedResults, usageSortedByProcedure, cbxIncldMissingROs.Checked, paperSize));
Csla.SortedBindingList<ItemInfo> sortedResults = new Csla.SortedBindingList<ItemInfo>(SearchResults);
sortedResults.ApplySort("FoundROID", ListSortDirection.Ascending);
OnPrintRequest(new DisplayReportsEventArgs("Referenced Objects Usage By RO", "RO Usage", sortedResults, usageSortedByProcedure, cbxIncldMissingROs.Checked, paperSize));
}
else
{
OnPrintRequest(new DisplayReportsEventArgs("Referenced Objects Usage By Procedure", "RO Usage", SearchResults, usageSortedByProcedure, cbxIncldMissingROs.Checked, paperSize));
}
} }
else if (cbxTransFromProcs.Checked) else if (cbxTransFromProcs.Checked)
{ {

View File

@@ -270,7 +270,7 @@ namespace Volian.Controls.Library
this.cbxTranCategory.Name = "cbxTranCategory"; this.cbxTranCategory.Name = "cbxTranCategory";
this.cbxTranCategory.Size = new System.Drawing.Size(215, 21); this.cbxTranCategory.Size = new System.Drawing.Size(215, 21);
this.cbxTranCategory.TabIndex = 1; this.cbxTranCategory.TabIndex = 1;
this.cbxTranCategory.WatermarkText = "Select Cateogry of Transitions"; this.cbxTranCategory.WatermarkText = "Select Category of Transitions";
// //
// lblTranCategory // lblTranCategory
// //
@@ -402,7 +402,7 @@ namespace Volian.Controls.Library
this.cbxTranCategory.Name = "cbxTranCategory"; this.cbxTranCategory.Name = "cbxTranCategory";
this.cbxTranCategory.Size = new System.Drawing.Size(215, 21); this.cbxTranCategory.Size = new System.Drawing.Size(215, 21);
this.cbxTranCategory.TabIndex = 1; this.cbxTranCategory.TabIndex = 1;
this.cbxTranCategory.WatermarkText = "Select Cateogry of Transitions"; this.cbxTranCategory.WatermarkText = "Select Category of Transitions";
// //
// lblTranCategory // lblTranCategory
// //
@@ -658,7 +658,7 @@ namespace Volian.Controls.Library
this.superTooltip1.SetSuperTooltip(this.cmboTreeROs, new DevComponents.DotNetBar.SuperTooltipInfo("Select the RO to Search", "", "Select the Referenced Object to search for.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); this.superTooltip1.SetSuperTooltip(this.cmboTreeROs, new DevComponents.DotNetBar.SuperTooltipInfo("Select the RO to Search", "", "Select the Referenced Object to search for.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
this.cmboTreeROs.TabIndex = 1; this.cmboTreeROs.TabIndex = 1;
this.cmboTreeROs.ThemeAware = true; this.cmboTreeROs.ThemeAware = true;
this.cmboTreeROs.WatermarkText = "Select an RO to seach"; this.cmboTreeROs.WatermarkText = "Select an RO to search";
this.cmboTreeROs.SelectedIndexChanged += new System.EventHandler(this.cmboTreeROs_SelectedIndexChanged); this.cmboTreeROs.SelectedIndexChanged += new System.EventHandler(this.cmboTreeROs_SelectedIndexChanged);
// //
// tabROSearch // tabROSearch

View File

@@ -66,7 +66,7 @@ namespace Volian.Controls.Library
private Color saveGrpPanSearchResults; private Color saveGrpPanSearchResults;
private ItemInfoList _SearchResults; private ItemInfoList _SearchResults;
private string _DisplayMember = "SearchPath"; private string _DisplayMember = "SearchPath_clean";
private bool _OpenDocFromSearch; private bool _OpenDocFromSearch;
private ROFSTLookup _MyROFSTLookup; private ROFSTLookup _MyROFSTLookup;
private bool _LoadingList = false; private bool _LoadingList = false;
@@ -1745,7 +1745,7 @@ namespace Volian.Controls.Library
} }
// B2021-076: Proms search results are not presented in order when printed to PDF // B2021-076: Proms search results are not presented in order when printed to PDF
if (_DisplayMember == "SearchPath" || _DisplayMember == "ShortSearchPath") if (_DisplayMember == "SearchPath_clean" || _DisplayMember == "ShortSearchPath_clean")
{ {
cbSorted.Checked = false; cbSorted.Checked = false;
cbSorted.Enabled = false; cbSorted.Enabled = false;
@@ -1880,10 +1880,10 @@ namespace Volian.Controls.Library
switch (cmbResultsStyle.Text) switch (cmbResultsStyle.Text)
{ {
case "Document Path": case "Document Path":
_DisplayMember = "SearchDVPath"; _DisplayMember = "SearchDVPath_clean";
break; break;
case "Step Path": case "Step Path":
_DisplayMember = "ShortSearchPath"; _DisplayMember = "ShortSearchPath_clean";
break; break;
case "Annotation Text": case "Annotation Text":
_DisplayMember = "SearchAnnotationText"; _DisplayMember = "SearchAnnotationText";
@@ -1892,7 +1892,7 @@ namespace Volian.Controls.Library
_DisplayMember = "DisplayText"; _DisplayMember = "DisplayText";
break; break;
default: default:
_DisplayMember = "SearchPath"; _DisplayMember = "SearchPath_clean";
break; break;
} }
DisplayResults(); DisplayResults();

File diff suppressed because it is too large Load Diff

View File

@@ -103,7 +103,7 @@ namespace Volian.Controls.Library
public string TbFSwd public string TbFSwd
{ {
get {return tbFSWd.Text;} get {return tbFSWd.Text;}
set { tbFSWd.Text = value; tbFSWd.Refresh(); trBarFS.Value = Convert.ToInt32(value); } set { tbFSWd.Text = value; tbFSWd.Refresh(); } // trBarFS.Value = Convert.ToInt32(value);
} }
public string TbFSht public string TbFSht
@@ -111,7 +111,7 @@ namespace Volian.Controls.Library
get { return tbFSHt.Text; } get { return tbFSHt.Text; }
set { tbFSHt.Text = value; tbFSHt.Refresh(); _origFigureSizeRatio = float.Parse(value) / float.Parse(tbFSWd.Text); } set { tbFSHt.Text = value; tbFSHt.Refresh(); _origFigureSizeRatio = float.Parse(value) / float.Parse(tbFSWd.Text); }
} }
#endregion #endregion
#region Constructor #region Constructor
public DisplayTags() public DisplayTags()
@@ -142,6 +142,8 @@ namespace Volian.Controls.Library
tbChgID.Enabled = false; tbChgID.Enabled = false;
lblChgId.Visible = tbChgID.Visible = false; lblChgId.Visible = tbChgID.Visible = false;
CurItemInfo = null; CurItemInfo = null;
cbInitialLine.Visible = cbInitialLine.Enabled = false;
} }
private bool StepOverRide() private bool StepOverRide()
{ {
@@ -553,6 +555,16 @@ namespace Volian.Controls.Library
} }
} }
} }
//CSM F2024 - 080: For South Texas (HLP formats), enable the initial line checkbox if it is in the formats
//Also, they want disable being selected to impact substeps - so do not show toggle if selected on a parent step
cbInitialLine.Visible = cbInitialLine.Enabled = false;
if (CurItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ShowInitialLineDisable && !string.IsNullOrEmpty(CurItemInfo.FormatStepData?.TabData?.MacroEditTag) && CurItemInfo.FormatStepData.TabData.MacroEditTag == "_" && CurItemInfo.FormatStepData.TabData.MacroList != null && CurItemInfo.FormatStepData.TabData.MacroList.Count > 0 && !(CurItemInfo.IsRNOPart && CurItemInfo.FormatStepData.TabData.MacroList[0].NotInRNO))
{
cbInitialLine.Visible = cbInitialLine.Enabled = true;
cbInitialLine.Checked = sc.Step_DisableInitialLine;
}
_Initalizing = false; _Initalizing = false;
} }
public void SetFigure(double wd, double wd2) public void SetFigure(double wd, double wd2)
@@ -969,25 +981,42 @@ namespace Volian.Controls.Library
sc.Step_PreferredPagebreak = cbPrefPageBreak.Checked; sc.Step_PreferredPagebreak = cbPrefPageBreak.Checked;
MyEditItem.ChangeBarForConfigItemChange = true; MyEditItem.ChangeBarForConfigItemChange = true;
} }
//private void txbxAltConActSumText_Leave(object sender, EventArgs e)
//{
// // User left Atlernate Continuous Action Text field. If text changed, then prompt
// // to see if save should occur.
// StepConfig sc = CurItemInfo.MyConfig as StepConfig;
// if (sc == null) return;
// bool bothEmpty = (sc.Step_AlternateContActSumText == null || sc.Step_AlternateContActSumText == "") && (txbxAltConActSumText.Text == null || txbxAltConActSumText.Text == "");
// if (!bothEmpty && sc.Step_AlternateContActSumText != txbxAltConActSumText.Text)
// {
// if (MessageBox.Show(this, "Do you want to save the Alternate Continuous Action Text?", "Confirm Save", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
// {
// MyEditItem.SaveContents();
// sc.Step_AlternateContActSumText = txbxAltConActSumText.Text; // this actually saves the config
// }
// else
// txbxAltConActSumText.Text = sc.Step_AlternateContActSumText;
// }
//} private void cbInitialLine_CheckedChanged(object sender, EventArgs e)
{
if (_Initalizing) return;
MyEditItem.SaveContents();
StepConfig sc = CurItemInfo.MyConfig as StepConfig;
if (sc == null) return;
MyEditItem.ChangeBarForConfigItemChange = false;
sc.Step_DisableInitialLine = cbInitialLine.Checked;
MyEditItem.ChangeBarForConfigItemChange = true;
} //needed to refresh display changing
MyEditItem.RefreshContent();
MyEditItem.SetAllTabs();
}
//private void txbxAltConActSumText_Leave(object sender, EventArgs e)
//{
// // User left Atlernate Continuous Action Text field. If text changed, then prompt
// // to see if save should occur.
// StepConfig sc = CurItemInfo.MyConfig as StepConfig;
// if (sc == null) return;
// bool bothEmpty = (sc.Step_AlternateContActSumText == null || sc.Step_AlternateContActSumText == "") && (txbxAltConActSumText.Text == null || txbxAltConActSumText.Text == "");
// if (!bothEmpty && sc.Step_AlternateContActSumText != txbxAltConActSumText.Text)
// {
// if (MessageBox.Show(this, "Do you want to save the Alternate Continuous Action Text?", "Confirm Save", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
// {
// MyEditItem.SaveContents();
// sc.Step_AlternateContActSumText = txbxAltConActSumText.Text; // this actually saves the config
// }
// else
// txbxAltConActSumText.Text = sc.Step_AlternateContActSumText;
// }
//}
}
} }

View File

@@ -28,488 +28,507 @@ namespace Volian.Controls.Library
/// </summary> /// </summary>
private void InitializeComponent() private void InitializeComponent()
{ {
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DisplayTransition)); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DisplayTransition));
this.groupPanelBtns = new DevComponents.DotNetBar.Controls.GroupPanel(); this.groupPanelBtns = new DevComponents.DotNetBar.Controls.GroupPanel();
this.cbPageNum = new DevComponents.DotNetBar.Controls.CheckBoxX(); this.cbHoldProcSet = new DevComponents.DotNetBar.Controls.CheckBoxX();
this.btnTranCancel = new DevComponents.DotNetBar.ButtonX(); this.cbPageNum = new DevComponents.DotNetBar.Controls.CheckBoxX();
this.btnTranSave = new DevComponents.DotNetBar.ButtonX(); this.btnTranCancel = new DevComponents.DotNetBar.ButtonX();
this.groupPanelTranFmt = new DevComponents.DotNetBar.Controls.GroupPanel(); this.btnTranSave = new DevComponents.DotNetBar.ButtonX();
this.listBoxTranFmt = new System.Windows.Forms.ListBox(); this.groupPanelTranFmt = new DevComponents.DotNetBar.Controls.GroupPanel();
this.groupPanelTransitionSets = new DevComponents.DotNetBar.Controls.GroupPanel(); this.listBoxTranFmt = new System.Windows.Forms.ListBox();
this.groupPanelTransitionProcs = new DevComponents.DotNetBar.Controls.GroupPanel(); this.groupPanelTransitionSets = new DevComponents.DotNetBar.Controls.GroupPanel();
this.cbTranProcs = new System.Windows.Forms.ComboBox(); this.vlnTreeComboSets = new Volian.Controls.Library.vlnTreeCombo();
this.groupPanelTransitionSect = new DevComponents.DotNetBar.Controls.GroupPanel(); this.groupPanelTransitionProcs = new DevComponents.DotNetBar.Controls.GroupPanel();
this.cbTranSects = new System.Windows.Forms.ComboBox(); this.cbTranProcs = new System.Windows.Forms.ComboBox();
this.groupPanelTranstionSteps = new DevComponents.DotNetBar.Controls.GroupPanel(); this.groupPanelTransitionSect = new DevComponents.DotNetBar.Controls.GroupPanel();
this.pnlTranStepBtns = new System.Windows.Forms.Panel(); this.cbTranSects = new System.Windows.Forms.ComboBox();
this.cbIncStepNum = new DevComponents.DotNetBar.Controls.CheckBoxX(); this.groupPanelTranstionSteps = new DevComponents.DotNetBar.Controls.GroupPanel();
this.lblxTranRangeTip = new DevComponents.DotNetBar.LabelX(); this.tvTran = new Volian.Controls.Library.vlnTreeView3();
this.btnTranRangeClear = new DevComponents.DotNetBar.ButtonX(); this.pnlTranStepBtns = new System.Windows.Forms.Panel();
this.btnUp1 = new DevComponents.DotNetBar.ButtonX(); this.cbIncStepNum = new DevComponents.DotNetBar.Controls.CheckBoxX();
this.superToolTipDispTran = new DevComponents.DotNetBar.SuperTooltip(); this.lblxTranRangeTip = new DevComponents.DotNetBar.LabelX();
this.tvTran = new Volian.Controls.Library.vlnTreeView3(); this.btnTranRangeClear = new DevComponents.DotNetBar.ButtonX();
this.vlnTreeComboSets = new Volian.Controls.Library.vlnTreeCombo(); this.btnUp1 = new DevComponents.DotNetBar.ButtonX();
this.groupPanelBtns.SuspendLayout(); this.superToolTipDispTran = new DevComponents.DotNetBar.SuperTooltip();
this.groupPanelTranFmt.SuspendLayout(); this.groupPanelBtns.SuspendLayout();
this.groupPanelTransitionSets.SuspendLayout(); this.groupPanelTranFmt.SuspendLayout();
this.groupPanelTransitionProcs.SuspendLayout(); this.groupPanelTransitionSets.SuspendLayout();
this.groupPanelTransitionSect.SuspendLayout(); this.groupPanelTransitionProcs.SuspendLayout();
this.groupPanelTranstionSteps.SuspendLayout(); this.groupPanelTransitionSect.SuspendLayout();
this.pnlTranStepBtns.SuspendLayout(); this.groupPanelTranstionSteps.SuspendLayout();
this.SuspendLayout(); this.pnlTranStepBtns.SuspendLayout();
// this.SuspendLayout();
// groupPanelBtns //
// // groupPanelBtns
this.groupPanelBtns.CanvasColor = System.Drawing.SystemColors.Control; //
this.groupPanelBtns.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; this.groupPanelBtns.CanvasColor = System.Drawing.SystemColors.Control;
this.groupPanelBtns.Controls.Add(this.cbPageNum); this.groupPanelBtns.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007;
this.groupPanelBtns.Controls.Add(this.btnTranCancel); this.groupPanelBtns.Controls.Add(this.cbHoldProcSet);
this.groupPanelBtns.Controls.Add(this.btnTranSave); this.groupPanelBtns.Controls.Add(this.cbPageNum);
this.groupPanelBtns.DisabledBackColor = System.Drawing.Color.Empty; this.groupPanelBtns.Controls.Add(this.btnTranCancel);
this.groupPanelBtns.Dock = System.Windows.Forms.DockStyle.Top; this.groupPanelBtns.Controls.Add(this.btnTranSave);
this.groupPanelBtns.Location = new System.Drawing.Point(0, 0); this.groupPanelBtns.DisabledBackColor = System.Drawing.Color.Empty;
this.groupPanelBtns.Name = "groupPanelBtns"; this.groupPanelBtns.Dock = System.Windows.Forms.DockStyle.Top;
this.groupPanelBtns.Size = new System.Drawing.Size(376, 58); this.groupPanelBtns.Location = new System.Drawing.Point(0, 0);
// this.groupPanelBtns.Name = "groupPanelBtns";
// this.groupPanelBtns.Size = new System.Drawing.Size(376, 82);
// //
this.groupPanelBtns.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; //
this.groupPanelBtns.Style.BackColorGradientAngle = 90; //
this.groupPanelBtns.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; this.groupPanelBtns.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2;
this.groupPanelBtns.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid; this.groupPanelBtns.Style.BackColorGradientAngle = 90;
this.groupPanelBtns.Style.BorderBottomWidth = 1; this.groupPanelBtns.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
this.groupPanelBtns.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; this.groupPanelBtns.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.groupPanelBtns.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid; this.groupPanelBtns.Style.BorderBottomWidth = 1;
this.groupPanelBtns.Style.BorderLeftWidth = 1; this.groupPanelBtns.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.groupPanelBtns.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid; this.groupPanelBtns.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.groupPanelBtns.Style.BorderRightWidth = 1; this.groupPanelBtns.Style.BorderLeftWidth = 1;
this.groupPanelBtns.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid; this.groupPanelBtns.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.groupPanelBtns.Style.BorderTopWidth = 1; this.groupPanelBtns.Style.BorderRightWidth = 1;
this.groupPanelBtns.Style.CornerDiameter = 4; this.groupPanelBtns.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.groupPanelBtns.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded; this.groupPanelBtns.Style.BorderTopWidth = 1;
this.groupPanelBtns.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center; this.groupPanelBtns.Style.CornerDiameter = 4;
this.groupPanelBtns.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; this.groupPanelBtns.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded;
this.groupPanelBtns.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near; this.groupPanelBtns.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center;
// this.groupPanelBtns.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
// this.groupPanelBtns.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near;
// //
this.groupPanelBtns.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square; //
// //
// this.groupPanelBtns.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square;
// //
this.groupPanelBtns.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square; //
this.groupPanelBtns.TabIndex = 25; //
// this.groupPanelBtns.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square;
// cbPageNum this.groupPanelBtns.TabIndex = 25;
// //
this.cbPageNum.BackColor = System.Drawing.Color.Transparent; // cbHoldProcSet
// //
// this.cbHoldProcSet.BackColor = System.Drawing.Color.Transparent;
// //
this.cbPageNum.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; //
this.cbPageNum.Location = new System.Drawing.Point(0, 35); //
this.cbPageNum.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.cbHoldProcSet.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbPageNum.Name = "cbPageNum"; this.cbHoldProcSet.Location = new System.Drawing.Point(0, 54);
this.cbPageNum.Size = new System.Drawing.Size(126, 15); this.cbHoldProcSet.Margin = new System.Windows.Forms.Padding(2);
this.cbPageNum.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; this.cbHoldProcSet.Name = "cbHoldProcSet";
this.cbPageNum.TabIndex = 26; this.cbHoldProcSet.Size = new System.Drawing.Size(214, 15);
this.cbPageNum.Text = "Include Page Number"; this.cbHoldProcSet.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.cbPageNum.CheckedChanged += new System.EventHandler(this.cbPageNum_CheckedChanged); this.superToolTipDispTran.SetSuperTooltip(this.cbHoldProcSet, new DevComponents.DotNetBar.SuperTooltipInfo("", "", resources.GetString("cbHoldProcSet.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
// this.cbHoldProcSet.TabIndex = 27;
// btnTranCancel this.cbHoldProcSet.Text = "Hold Procedure Set / Procedure";
// this.cbHoldProcSet.CheckedChanged += new System.EventHandler(this.cbHoldProcSet_CheckedChanged);
this.btnTranCancel.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; //
this.btnTranCancel.AutoSize = true; // cbPageNum
this.btnTranCancel.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground; //
this.btnTranCancel.Dock = System.Windows.Forms.DockStyle.Right; this.cbPageNum.BackColor = System.Drawing.Color.Transparent;
this.btnTranCancel.Location = new System.Drawing.Point(282, 0); //
this.btnTranCancel.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); //
this.btnTranCancel.Name = "btnTranCancel"; //
this.btnTranCancel.Size = new System.Drawing.Size(88, 36); this.cbPageNum.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.superToolTipDispTran.SetSuperTooltip(this.btnTranCancel, new DevComponents.DotNetBar.SuperTooltipInfo("", "", "This restores transition selections to the default if a transition would be inser" + this.cbPageNum.Location = new System.Drawing.Point(0, 35);
this.cbPageNum.Margin = new System.Windows.Forms.Padding(2);
this.cbPageNum.Name = "cbPageNum";
this.cbPageNum.Size = new System.Drawing.Size(126, 15);
this.cbPageNum.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.cbPageNum.TabIndex = 26;
this.cbPageNum.Text = "Include Page Number";
this.cbPageNum.CheckedChanged += new System.EventHandler(this.cbPageNum_CheckedChanged);
//
// btnTranCancel
//
this.btnTranCancel.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
this.btnTranCancel.AutoSize = true;
this.btnTranCancel.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
this.btnTranCancel.Dock = System.Windows.Forms.DockStyle.Right;
this.btnTranCancel.Location = new System.Drawing.Point(282, 0);
this.btnTranCancel.Margin = new System.Windows.Forms.Padding(2);
this.btnTranCancel.Name = "btnTranCancel";
this.btnTranCancel.Size = new System.Drawing.Size(88, 36);
this.superToolTipDispTran.SetSuperTooltip(this.btnTranCancel, new DevComponents.DotNetBar.SuperTooltipInfo("", "", "This restores transition selections to the default if a transition would be inser" +
"ted, or the original transition if one had been selected.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); "ted, or the original transition if one had been selected.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
this.btnTranCancel.TabIndex = 25; this.btnTranCancel.TabIndex = 25;
this.btnTranCancel.Text = "Cancel"; this.btnTranCancel.Text = "Cancel";
this.btnTranCancel.Click += new System.EventHandler(this.btnTranCancel_Click); this.btnTranCancel.Click += new System.EventHandler(this.btnTranCancel_Click);
// //
// btnTranSave // btnTranSave
// //
this.btnTranSave.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; this.btnTranSave.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
this.btnTranSave.AutoSize = true; this.btnTranSave.AutoSize = true;
this.btnTranSave.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground; this.btnTranSave.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
this.btnTranSave.Dock = System.Windows.Forms.DockStyle.Left; this.btnTranSave.Dock = System.Windows.Forms.DockStyle.Left;
this.btnTranSave.Location = new System.Drawing.Point(0, 0); this.btnTranSave.Location = new System.Drawing.Point(0, 0);
this.btnTranSave.Name = "btnTranSave"; this.btnTranSave.Name = "btnTranSave";
this.btnTranSave.Size = new System.Drawing.Size(103, 36); this.btnTranSave.Size = new System.Drawing.Size(103, 36);
this.superToolTipDispTran.SetSuperTooltip(this.btnTranSave, new DevComponents.DotNetBar.SuperTooltipInfo("Save Transition", "", "- This will place the selected Transition at the cursor position.\r\n- This will re" + this.superToolTipDispTran.SetSuperTooltip(this.btnTranSave, new DevComponents.DotNetBar.SuperTooltipInfo("Save Transition", "", "- This will place the selected Transition at the cursor position.\r\n- This will re" +
"place a Transition with the selected Transition.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); "place a Transition with the selected Transition.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
this.btnTranSave.TabIndex = 24; this.btnTranSave.TabIndex = 24;
this.btnTranSave.Text = "Save Transition"; this.btnTranSave.Text = "Save Transition";
this.btnTranSave.Click += new System.EventHandler(this.btnTranSave_Click); this.btnTranSave.Click += new System.EventHandler(this.btnTranSave_Click);
// //
// groupPanelTranFmt // groupPanelTranFmt
// //
this.groupPanelTranFmt.CanvasColor = System.Drawing.SystemColors.Control; this.groupPanelTranFmt.CanvasColor = System.Drawing.SystemColors.Control;
this.groupPanelTranFmt.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; this.groupPanelTranFmt.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007;
this.groupPanelTranFmt.Controls.Add(this.listBoxTranFmt); this.groupPanelTranFmt.Controls.Add(this.listBoxTranFmt);
this.groupPanelTranFmt.DisabledBackColor = System.Drawing.Color.Empty; this.groupPanelTranFmt.DisabledBackColor = System.Drawing.Color.Empty;
this.groupPanelTranFmt.Dock = System.Windows.Forms.DockStyle.Top; this.groupPanelTranFmt.Dock = System.Windows.Forms.DockStyle.Top;
this.groupPanelTranFmt.Location = new System.Drawing.Point(0, 58); this.groupPanelTranFmt.Location = new System.Drawing.Point(0, 82);
this.groupPanelTranFmt.Name = "groupPanelTranFmt"; this.groupPanelTranFmt.Name = "groupPanelTranFmt";
this.groupPanelTranFmt.Size = new System.Drawing.Size(376, 141); this.groupPanelTranFmt.Size = new System.Drawing.Size(376, 141);
// //
// //
// //
this.groupPanelTranFmt.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; this.groupPanelTranFmt.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2;
this.groupPanelTranFmt.Style.BackColorGradientAngle = 90; this.groupPanelTranFmt.Style.BackColorGradientAngle = 90;
this.groupPanelTranFmt.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; this.groupPanelTranFmt.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
this.groupPanelTranFmt.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid; this.groupPanelTranFmt.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.groupPanelTranFmt.Style.BorderBottomWidth = 1; this.groupPanelTranFmt.Style.BorderBottomWidth = 1;
this.groupPanelTranFmt.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; this.groupPanelTranFmt.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.groupPanelTranFmt.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid; this.groupPanelTranFmt.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.groupPanelTranFmt.Style.BorderLeftWidth = 1; this.groupPanelTranFmt.Style.BorderLeftWidth = 1;
this.groupPanelTranFmt.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid; this.groupPanelTranFmt.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.groupPanelTranFmt.Style.BorderRightWidth = 1; this.groupPanelTranFmt.Style.BorderRightWidth = 1;
this.groupPanelTranFmt.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid; this.groupPanelTranFmt.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.groupPanelTranFmt.Style.BorderTopWidth = 1; this.groupPanelTranFmt.Style.BorderTopWidth = 1;
this.groupPanelTranFmt.Style.CornerDiameter = 4; this.groupPanelTranFmt.Style.CornerDiameter = 4;
this.groupPanelTranFmt.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded; this.groupPanelTranFmt.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded;
this.groupPanelTranFmt.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center; this.groupPanelTranFmt.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center;
this.groupPanelTranFmt.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; this.groupPanelTranFmt.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.groupPanelTranFmt.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near; this.groupPanelTranFmt.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near;
// //
// //
// //
this.groupPanelTranFmt.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square; this.groupPanelTranFmt.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square;
// //
// //
// //
this.groupPanelTranFmt.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square; this.groupPanelTranFmt.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.groupPanelTranFmt.TabIndex = 27; this.groupPanelTranFmt.TabIndex = 27;
this.groupPanelTranFmt.Text = "Select Format"; this.groupPanelTranFmt.Text = "Select Format";
// //
// listBoxTranFmt // listBoxTranFmt
// //
this.listBoxTranFmt.Dock = System.Windows.Forms.DockStyle.Fill; this.listBoxTranFmt.Dock = System.Windows.Forms.DockStyle.Fill;
this.listBoxTranFmt.FormattingEnabled = true; this.listBoxTranFmt.FormattingEnabled = true;
this.listBoxTranFmt.HorizontalScrollbar = true; this.listBoxTranFmt.HorizontalScrollbar = true;
this.listBoxTranFmt.Location = new System.Drawing.Point(0, 0); this.listBoxTranFmt.Location = new System.Drawing.Point(0, 0);
this.listBoxTranFmt.Name = "listBoxTranFmt"; this.listBoxTranFmt.Name = "listBoxTranFmt";
this.listBoxTranFmt.Size = new System.Drawing.Size(370, 120); this.listBoxTranFmt.Size = new System.Drawing.Size(370, 120);
this.superToolTipDispTran.SetSuperTooltip(this.listBoxTranFmt, new DevComponents.DotNetBar.SuperTooltipInfo("", "", "This is where transition types are selected. This also defines how the transitio" + this.superToolTipDispTran.SetSuperTooltip(this.listBoxTranFmt, new DevComponents.DotNetBar.SuperTooltipInfo("", "", "This is where transition types are selected. This also defines how the transitio" +
"n will look in the text.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); "n will look in the text.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
this.listBoxTranFmt.TabIndex = 13; this.listBoxTranFmt.TabIndex = 13;
this.listBoxTranFmt.SelectedIndexChanged += new System.EventHandler(this.listBoxTranFmt_Click); this.listBoxTranFmt.SelectedIndexChanged += new System.EventHandler(this.listBoxTranFmt_Click);
// //
// groupPanelTransitionSets // groupPanelTransitionSets
// //
this.groupPanelTransitionSets.CanvasColor = System.Drawing.SystemColors.Control; this.groupPanelTransitionSets.CanvasColor = System.Drawing.SystemColors.Control;
this.groupPanelTransitionSets.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; this.groupPanelTransitionSets.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007;
this.groupPanelTransitionSets.Controls.Add(this.vlnTreeComboSets); this.groupPanelTransitionSets.Controls.Add(this.vlnTreeComboSets);
this.groupPanelTransitionSets.DisabledBackColor = System.Drawing.Color.Empty; this.groupPanelTransitionSets.DisabledBackColor = System.Drawing.Color.Empty;
this.groupPanelTransitionSets.Dock = System.Windows.Forms.DockStyle.Top; this.groupPanelTransitionSets.Dock = System.Windows.Forms.DockStyle.Top;
this.groupPanelTransitionSets.Location = new System.Drawing.Point(0, 199); this.groupPanelTransitionSets.Location = new System.Drawing.Point(0, 223);
this.groupPanelTransitionSets.Name = "groupPanelTransitionSets"; this.groupPanelTransitionSets.Name = "groupPanelTransitionSets";
this.groupPanelTransitionSets.Size = new System.Drawing.Size(376, 48); this.groupPanelTransitionSets.Size = new System.Drawing.Size(376, 48);
// //
// //
// //
this.groupPanelTransitionSets.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; this.groupPanelTransitionSets.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2;
this.groupPanelTransitionSets.Style.BackColorGradientAngle = 90; this.groupPanelTransitionSets.Style.BackColorGradientAngle = 90;
this.groupPanelTransitionSets.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; this.groupPanelTransitionSets.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
this.groupPanelTransitionSets.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid; this.groupPanelTransitionSets.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.groupPanelTransitionSets.Style.BorderBottomWidth = 1; this.groupPanelTransitionSets.Style.BorderBottomWidth = 1;
this.groupPanelTransitionSets.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; this.groupPanelTransitionSets.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.groupPanelTransitionSets.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid; this.groupPanelTransitionSets.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.groupPanelTransitionSets.Style.BorderLeftWidth = 1; this.groupPanelTransitionSets.Style.BorderLeftWidth = 1;
this.groupPanelTransitionSets.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid; this.groupPanelTransitionSets.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.groupPanelTransitionSets.Style.BorderRightWidth = 1; this.groupPanelTransitionSets.Style.BorderRightWidth = 1;
this.groupPanelTransitionSets.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid; this.groupPanelTransitionSets.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.groupPanelTransitionSets.Style.BorderTopWidth = 1; this.groupPanelTransitionSets.Style.BorderTopWidth = 1;
this.groupPanelTransitionSets.Style.CornerDiameter = 4; this.groupPanelTransitionSets.Style.CornerDiameter = 4;
this.groupPanelTransitionSets.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded; this.groupPanelTransitionSets.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded;
this.groupPanelTransitionSets.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center; this.groupPanelTransitionSets.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center;
this.groupPanelTransitionSets.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; this.groupPanelTransitionSets.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.groupPanelTransitionSets.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near; this.groupPanelTransitionSets.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near;
// //
// //
// //
this.groupPanelTransitionSets.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square; this.groupPanelTransitionSets.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square;
// //
// //
// //
this.groupPanelTransitionSets.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square; this.groupPanelTransitionSets.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.groupPanelTransitionSets.TabIndex = 31; this.groupPanelTransitionSets.TabIndex = 31;
this.groupPanelTransitionSets.Text = "Select Procedure Set"; this.groupPanelTransitionSets.Text = "Select Procedure Set";
// //
// groupPanelTransitionProcs // vlnTreeComboSets
// //
this.groupPanelTransitionProcs.CanvasColor = System.Drawing.SystemColors.Control; this.vlnTreeComboSets.Dock = System.Windows.Forms.DockStyle.Fill;
this.groupPanelTransitionProcs.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; this.vlnTreeComboSets.Location = new System.Drawing.Point(0, 0);
this.groupPanelTransitionProcs.Controls.Add(this.cbTranProcs); this.vlnTreeComboSets.Margin = new System.Windows.Forms.Padding(4);
this.groupPanelTransitionProcs.DisabledBackColor = System.Drawing.Color.Empty; this.vlnTreeComboSets.Name = "vlnTreeComboSets";
this.groupPanelTransitionProcs.Dock = System.Windows.Forms.DockStyle.Top; this.vlnTreeComboSets.Size = new System.Drawing.Size(370, 21);
this.groupPanelTransitionProcs.Location = new System.Drawing.Point(0, 247); this.superToolTipDispTran.SetSuperTooltip(this.vlnTreeComboSets, new DevComponents.DotNetBar.SuperTooltipInfo("", "", resources.GetString("vlnTreeComboSets.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
this.groupPanelTransitionProcs.Name = "groupPanelTransitionProcs"; this.vlnTreeComboSets.TabIndex = 33;
this.groupPanelTransitionProcs.Size = new System.Drawing.Size(376, 46); this.vlnTreeComboSets.Value = null;
// this.vlnTreeComboSets.FinishEditing += new AT.STO.UI.Win.DropDownValueChangedEventHandler(this.DropDown_FinishEditing);
// //
// // groupPanelTransitionProcs
this.groupPanelTransitionProcs.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; //
this.groupPanelTransitionProcs.Style.BackColorGradientAngle = 90; this.groupPanelTransitionProcs.CanvasColor = System.Drawing.SystemColors.Control;
this.groupPanelTransitionProcs.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; this.groupPanelTransitionProcs.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007;
this.groupPanelTransitionProcs.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid; this.groupPanelTransitionProcs.Controls.Add(this.cbTranProcs);
this.groupPanelTransitionProcs.Style.BorderBottomWidth = 1; this.groupPanelTransitionProcs.DisabledBackColor = System.Drawing.Color.Empty;
this.groupPanelTransitionProcs.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; this.groupPanelTransitionProcs.Dock = System.Windows.Forms.DockStyle.Top;
this.groupPanelTransitionProcs.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid; this.groupPanelTransitionProcs.Location = new System.Drawing.Point(0, 271);
this.groupPanelTransitionProcs.Style.BorderLeftWidth = 1; this.groupPanelTransitionProcs.Name = "groupPanelTransitionProcs";
this.groupPanelTransitionProcs.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid; this.groupPanelTransitionProcs.Size = new System.Drawing.Size(376, 46);
this.groupPanelTransitionProcs.Style.BorderRightWidth = 1; //
this.groupPanelTransitionProcs.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid; //
this.groupPanelTransitionProcs.Style.BorderTopWidth = 1; //
this.groupPanelTransitionProcs.Style.CornerDiameter = 4; this.groupPanelTransitionProcs.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2;
this.groupPanelTransitionProcs.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded; this.groupPanelTransitionProcs.Style.BackColorGradientAngle = 90;
this.groupPanelTransitionProcs.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center; this.groupPanelTransitionProcs.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
this.groupPanelTransitionProcs.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; this.groupPanelTransitionProcs.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.groupPanelTransitionProcs.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near; this.groupPanelTransitionProcs.Style.BorderBottomWidth = 1;
// this.groupPanelTransitionProcs.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
// this.groupPanelTransitionProcs.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid;
// this.groupPanelTransitionProcs.Style.BorderLeftWidth = 1;
this.groupPanelTransitionProcs.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square; this.groupPanelTransitionProcs.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid;
// this.groupPanelTransitionProcs.Style.BorderRightWidth = 1;
// this.groupPanelTransitionProcs.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid;
// this.groupPanelTransitionProcs.Style.BorderTopWidth = 1;
this.groupPanelTransitionProcs.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square; this.groupPanelTransitionProcs.Style.CornerDiameter = 4;
this.groupPanelTransitionProcs.TabIndex = 32; this.groupPanelTransitionProcs.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded;
this.groupPanelTransitionProcs.Text = "Select Procedure"; this.groupPanelTransitionProcs.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center;
// this.groupPanelTransitionProcs.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
// cbTranProcs this.groupPanelTransitionProcs.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near;
// //
this.cbTranProcs.Dock = System.Windows.Forms.DockStyle.Fill; //
this.cbTranProcs.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; //
this.cbTranProcs.FormattingEnabled = true; this.groupPanelTransitionProcs.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbTranProcs.Location = new System.Drawing.Point(0, 0); //
this.cbTranProcs.Name = "cbTranProcs"; //
this.cbTranProcs.Size = new System.Drawing.Size(370, 21); //
this.superToolTipDispTran.SetSuperTooltip(this.cbTranProcs, new DevComponents.DotNetBar.SuperTooltipInfo("", "", resources.GetString("cbTranProcs.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); this.groupPanelTransitionProcs.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbTranProcs.TabIndex = 14; this.groupPanelTransitionProcs.TabIndex = 32;
this.cbTranProcs.SelectedIndexChanged += new System.EventHandler(this.cbTranProcs_SelectedIndexChanged); this.groupPanelTransitionProcs.Text = "Select Procedure";
// //
// groupPanelTransitionSect // cbTranProcs
// //
this.groupPanelTransitionSect.CanvasColor = System.Drawing.SystemColors.Control; this.cbTranProcs.Dock = System.Windows.Forms.DockStyle.Fill;
this.groupPanelTransitionSect.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; this.cbTranProcs.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.groupPanelTransitionSect.Controls.Add(this.cbTranSects); this.cbTranProcs.FormattingEnabled = true;
this.groupPanelTransitionSect.DisabledBackColor = System.Drawing.Color.Empty; this.cbTranProcs.Location = new System.Drawing.Point(0, 0);
this.groupPanelTransitionSect.Dock = System.Windows.Forms.DockStyle.Top; this.cbTranProcs.Name = "cbTranProcs";
this.groupPanelTransitionSect.Location = new System.Drawing.Point(0, 293); this.cbTranProcs.Size = new System.Drawing.Size(370, 21);
this.groupPanelTransitionSect.Name = "groupPanelTransitionSect"; this.superToolTipDispTran.SetSuperTooltip(this.cbTranProcs, new DevComponents.DotNetBar.SuperTooltipInfo("", "", resources.GetString("cbTranProcs.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
this.groupPanelTransitionSect.Size = new System.Drawing.Size(376, 49); this.cbTranProcs.TabIndex = 14;
// this.cbTranProcs.SelectedIndexChanged += new System.EventHandler(this.cbTranProcs_SelectedIndexChanged);
// //
// // groupPanelTransitionSect
this.groupPanelTransitionSect.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; //
this.groupPanelTransitionSect.Style.BackColorGradientAngle = 90; this.groupPanelTransitionSect.CanvasColor = System.Drawing.SystemColors.Control;
this.groupPanelTransitionSect.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; this.groupPanelTransitionSect.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007;
this.groupPanelTransitionSect.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid; this.groupPanelTransitionSect.Controls.Add(this.cbTranSects);
this.groupPanelTransitionSect.Style.BorderBottomWidth = 1; this.groupPanelTransitionSect.DisabledBackColor = System.Drawing.Color.Empty;
this.groupPanelTransitionSect.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; this.groupPanelTransitionSect.Dock = System.Windows.Forms.DockStyle.Top;
this.groupPanelTransitionSect.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid; this.groupPanelTransitionSect.Location = new System.Drawing.Point(0, 317);
this.groupPanelTransitionSect.Style.BorderLeftWidth = 1; this.groupPanelTransitionSect.Name = "groupPanelTransitionSect";
this.groupPanelTransitionSect.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid; this.groupPanelTransitionSect.Size = new System.Drawing.Size(376, 49);
this.groupPanelTransitionSect.Style.BorderRightWidth = 1; //
this.groupPanelTransitionSect.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid; //
this.groupPanelTransitionSect.Style.BorderTopWidth = 1; //
this.groupPanelTransitionSect.Style.CornerDiameter = 4; this.groupPanelTransitionSect.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2;
this.groupPanelTransitionSect.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded; this.groupPanelTransitionSect.Style.BackColorGradientAngle = 90;
this.groupPanelTransitionSect.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center; this.groupPanelTransitionSect.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
this.groupPanelTransitionSect.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; this.groupPanelTransitionSect.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.groupPanelTransitionSect.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near; this.groupPanelTransitionSect.Style.BorderBottomWidth = 1;
// this.groupPanelTransitionSect.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
// this.groupPanelTransitionSect.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid;
// this.groupPanelTransitionSect.Style.BorderLeftWidth = 1;
this.groupPanelTransitionSect.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square; this.groupPanelTransitionSect.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid;
// this.groupPanelTransitionSect.Style.BorderRightWidth = 1;
// this.groupPanelTransitionSect.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid;
// this.groupPanelTransitionSect.Style.BorderTopWidth = 1;
this.groupPanelTransitionSect.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square; this.groupPanelTransitionSect.Style.CornerDiameter = 4;
this.groupPanelTransitionSect.TabIndex = 33; this.groupPanelTransitionSect.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded;
this.groupPanelTransitionSect.Text = "Select Section"; this.groupPanelTransitionSect.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center;
// this.groupPanelTransitionSect.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
// cbTranSects this.groupPanelTransitionSect.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near;
// //
this.cbTranSects.Dock = System.Windows.Forms.DockStyle.Fill; //
this.cbTranSects.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; //
this.cbTranSects.FormattingEnabled = true; this.groupPanelTransitionSect.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbTranSects.Location = new System.Drawing.Point(0, 0); //
this.cbTranSects.Name = "cbTranSects"; //
this.cbTranSects.Size = new System.Drawing.Size(370, 21); //
this.superToolTipDispTran.SetSuperTooltip(this.cbTranSects, new DevComponents.DotNetBar.SuperTooltipInfo("", "", resources.GetString("cbTranSects.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); this.groupPanelTransitionSect.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbTranSects.TabIndex = 20; this.groupPanelTransitionSect.TabIndex = 33;
this.cbTranSects.SelectedIndexChanged += new System.EventHandler(this.cbTranSects_SelectedIndexChanged); this.groupPanelTransitionSect.Text = "Select Section";
this.cbTranSects.Click += new System.EventHandler(this.cbTranSects_SelectedIndexChanged); //
// // cbTranSects
// groupPanelTranstionSteps //
// this.cbTranSects.Dock = System.Windows.Forms.DockStyle.Fill;
this.groupPanelTranstionSteps.CanvasColor = System.Drawing.SystemColors.Control; this.cbTranSects.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.groupPanelTranstionSteps.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; this.cbTranSects.FormattingEnabled = true;
this.groupPanelTranstionSteps.Controls.Add(this.tvTran); this.cbTranSects.Location = new System.Drawing.Point(0, 0);
this.groupPanelTranstionSteps.Controls.Add(this.pnlTranStepBtns); this.cbTranSects.Name = "cbTranSects";
this.groupPanelTranstionSteps.DisabledBackColor = System.Drawing.Color.Empty; this.cbTranSects.Size = new System.Drawing.Size(370, 21);
this.groupPanelTranstionSteps.Dock = System.Windows.Forms.DockStyle.Fill; this.superToolTipDispTran.SetSuperTooltip(this.cbTranSects, new DevComponents.DotNetBar.SuperTooltipInfo("", "", resources.GetString("cbTranSects.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
this.groupPanelTranstionSteps.Location = new System.Drawing.Point(0, 342); this.cbTranSects.TabIndex = 20;
this.groupPanelTranstionSteps.Name = "groupPanelTranstionSteps"; this.cbTranSects.SelectedIndexChanged += new System.EventHandler(this.cbTranSects_SelectedIndexChanged);
this.groupPanelTranstionSteps.Size = new System.Drawing.Size(376, 334); this.cbTranSects.Click += new System.EventHandler(this.cbTranSects_SelectedIndexChanged);
// //
// // groupPanelTranstionSteps
// //
this.groupPanelTranstionSteps.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; this.groupPanelTranstionSteps.CanvasColor = System.Drawing.SystemColors.Control;
this.groupPanelTranstionSteps.Style.BackColorGradientAngle = 90; this.groupPanelTranstionSteps.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007;
this.groupPanelTranstionSteps.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; this.groupPanelTranstionSteps.Controls.Add(this.tvTran);
this.groupPanelTranstionSteps.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid; this.groupPanelTranstionSteps.Controls.Add(this.pnlTranStepBtns);
this.groupPanelTranstionSteps.Style.BorderBottomWidth = 1; this.groupPanelTranstionSteps.DisabledBackColor = System.Drawing.Color.Empty;
this.groupPanelTranstionSteps.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; this.groupPanelTranstionSteps.Dock = System.Windows.Forms.DockStyle.Fill;
this.groupPanelTranstionSteps.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid; this.groupPanelTranstionSteps.Location = new System.Drawing.Point(0, 366);
this.groupPanelTranstionSteps.Style.BorderLeftWidth = 1; this.groupPanelTranstionSteps.Name = "groupPanelTranstionSteps";
this.groupPanelTranstionSteps.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid; this.groupPanelTranstionSteps.Size = new System.Drawing.Size(376, 310);
this.groupPanelTranstionSteps.Style.BorderRightWidth = 1; //
this.groupPanelTranstionSteps.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid; //
this.groupPanelTranstionSteps.Style.BorderTopWidth = 1; //
this.groupPanelTranstionSteps.Style.CornerDiameter = 4; this.groupPanelTranstionSteps.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2;
this.groupPanelTranstionSteps.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded; this.groupPanelTranstionSteps.Style.BackColorGradientAngle = 90;
this.groupPanelTranstionSteps.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center; this.groupPanelTranstionSteps.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
this.groupPanelTranstionSteps.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; this.groupPanelTranstionSteps.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.groupPanelTranstionSteps.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near; this.groupPanelTranstionSteps.Style.BorderBottomWidth = 1;
// this.groupPanelTranstionSteps.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
// this.groupPanelTranstionSteps.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid;
// this.groupPanelTranstionSteps.Style.BorderLeftWidth = 1;
this.groupPanelTranstionSteps.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square; this.groupPanelTranstionSteps.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid;
// this.groupPanelTranstionSteps.Style.BorderRightWidth = 1;
// this.groupPanelTranstionSteps.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid;
// this.groupPanelTranstionSteps.Style.BorderTopWidth = 1;
this.groupPanelTranstionSteps.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square; this.groupPanelTranstionSteps.Style.CornerDiameter = 4;
this.groupPanelTranstionSteps.TabIndex = 34; this.groupPanelTranstionSteps.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded;
this.groupPanelTranstionSteps.Text = "Select Step"; this.groupPanelTranstionSteps.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center;
// this.groupPanelTranstionSteps.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
// pnlTranStepBtns this.groupPanelTranstionSteps.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near;
// //
this.pnlTranStepBtns.Controls.Add(this.cbIncStepNum); //
this.pnlTranStepBtns.Controls.Add(this.lblxTranRangeTip); //
this.pnlTranStepBtns.Controls.Add(this.btnTranRangeClear); this.groupPanelTranstionSteps.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.pnlTranStepBtns.Controls.Add(this.btnUp1); //
this.pnlTranStepBtns.Dock = System.Windows.Forms.DockStyle.Top; //
this.pnlTranStepBtns.Location = new System.Drawing.Point(0, 0); //
this.pnlTranStepBtns.Name = "pnlTranStepBtns"; this.groupPanelTranstionSteps.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.pnlTranStepBtns.Size = new System.Drawing.Size(370, 46); this.groupPanelTranstionSteps.TabIndex = 34;
this.pnlTranStepBtns.TabIndex = 30; this.groupPanelTranstionSteps.Text = "Select Step";
// //
// cbIncStepNum // tvTran
// //
// this.tvTran.Dock = System.Windows.Forms.DockStyle.Fill;
// this.tvTran.HideSelection = false;
// this.tvTran.Location = new System.Drawing.Point(0, 46);
this.cbIncStepNum.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; this.tvTran.Name = "tvTran";
this.cbIncStepNum.Location = new System.Drawing.Point(8, 12); this.tvTran.Size = new System.Drawing.Size(370, 243);
this.cbIncStepNum.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.superToolTipDispTran.SetSuperTooltip(this.tvTran, new DevComponents.DotNetBar.SuperTooltipInfo("", "", resources.GetString("tvTran.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
this.cbIncStepNum.Name = "cbIncStepNum"; this.tvTran.TabIndex = 31;
this.cbIncStepNum.Size = new System.Drawing.Size(126, 19); this.tvTran.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.tvTran_AfterSelect);
this.cbIncStepNum.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; //
this.cbIncStepNum.TabIndex = 0; // pnlTranStepBtns
this.cbIncStepNum.Text = "Include Step Number"; //
this.cbIncStepNum.CheckedChanged += new System.EventHandler(this.cbIncStepNum_CheckedChanged); this.pnlTranStepBtns.Controls.Add(this.cbIncStepNum);
// this.pnlTranStepBtns.Controls.Add(this.lblxTranRangeTip);
// lblxTranRangeTip this.pnlTranStepBtns.Controls.Add(this.btnTranRangeClear);
// this.pnlTranStepBtns.Controls.Add(this.btnUp1);
// this.pnlTranStepBtns.Dock = System.Windows.Forms.DockStyle.Top;
// this.pnlTranStepBtns.Location = new System.Drawing.Point(0, 0);
// this.pnlTranStepBtns.Name = "pnlTranStepBtns";
this.lblxTranRangeTip.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; this.pnlTranStepBtns.Size = new System.Drawing.Size(370, 46);
this.lblxTranRangeTip.Dock = System.Windows.Forms.DockStyle.Right; this.pnlTranStepBtns.TabIndex = 30;
this.lblxTranRangeTip.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); //
this.lblxTranRangeTip.Location = new System.Drawing.Point(265, 0); // cbIncStepNum
this.lblxTranRangeTip.Name = "lblxTranRangeTip"; //
this.lblxTranRangeTip.Size = new System.Drawing.Size(105, 46); //
this.superToolTipDispTran.SetSuperTooltip(this.lblxTranRangeTip, new DevComponents.DotNetBar.SuperTooltipInfo("", "", "For range transitions, shows which selection, first or second, that the next sele" + //
//
this.cbIncStepNum.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbIncStepNum.Location = new System.Drawing.Point(8, 12);
this.cbIncStepNum.Margin = new System.Windows.Forms.Padding(2);
this.cbIncStepNum.Name = "cbIncStepNum";
this.cbIncStepNum.Size = new System.Drawing.Size(126, 19);
this.cbIncStepNum.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.cbIncStepNum.TabIndex = 0;
this.cbIncStepNum.Text = "Include Step Number";
this.cbIncStepNum.CheckedChanged += new System.EventHandler(this.cbIncStepNum_CheckedChanged);
//
// lblxTranRangeTip
//
//
//
//
this.lblxTranRangeTip.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.lblxTranRangeTip.Dock = System.Windows.Forms.DockStyle.Right;
this.lblxTranRangeTip.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblxTranRangeTip.Location = new System.Drawing.Point(265, 0);
this.lblxTranRangeTip.Name = "lblxTranRangeTip";
this.lblxTranRangeTip.Size = new System.Drawing.Size(105, 46);
this.superToolTipDispTran.SetSuperTooltip(this.lblxTranRangeTip, new DevComponents.DotNetBar.SuperTooltipInfo("", "", "For range transitions, shows which selection, first or second, that the next sele" +
"ction will be.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); "ction will be.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
this.lblxTranRangeTip.TabIndex = 33; this.lblxTranRangeTip.TabIndex = 33;
this.lblxTranRangeTip.Text = "Select First \r\nTransition\r\nfor Range"; this.lblxTranRangeTip.Text = "Select First \r\nTransition\r\nfor Range";
// //
// btnTranRangeClear // btnTranRangeClear
// //
this.btnTranRangeClear.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; this.btnTranRangeClear.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
this.btnTranRangeClear.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground; this.btnTranRangeClear.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
this.btnTranRangeClear.Dock = System.Windows.Forms.DockStyle.Left; this.btnTranRangeClear.Dock = System.Windows.Forms.DockStyle.Left;
this.btnTranRangeClear.Location = new System.Drawing.Point(0, 0); this.btnTranRangeClear.Location = new System.Drawing.Point(0, 0);
this.btnTranRangeClear.Name = "btnTranRangeClear"; this.btnTranRangeClear.Name = "btnTranRangeClear";
this.btnTranRangeClear.Size = new System.Drawing.Size(58, 46); this.btnTranRangeClear.Size = new System.Drawing.Size(58, 46);
this.superToolTipDispTran.SetSuperTooltip(this.btnTranRangeClear, new DevComponents.DotNetBar.SuperTooltipInfo("", "", "This clears the Range selection in the tree view", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); this.superToolTipDispTran.SetSuperTooltip(this.btnTranRangeClear, new DevComponents.DotNetBar.SuperTooltipInfo("", "", "This clears the Range selection in the tree view", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
this.btnTranRangeClear.TabIndex = 31; this.btnTranRangeClear.TabIndex = 31;
this.btnTranRangeClear.Text = "Clear Range Selection"; this.btnTranRangeClear.Text = "Clear Range Selection";
this.btnTranRangeClear.Click += new System.EventHandler(this.btnTranRangeClear_Click); this.btnTranRangeClear.Click += new System.EventHandler(this.btnTranRangeClear_Click);
// //
// btnUp1 // btnUp1
// //
this.btnUp1.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; this.btnUp1.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
this.btnUp1.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground; this.btnUp1.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
this.btnUp1.Image = global::Volian.Controls.Library.Properties.Resources.GoToParentFolderHS; this.btnUp1.Image = global::Volian.Controls.Library.Properties.Resources.GoToParentFolderHS;
this.btnUp1.Location = new System.Drawing.Point(210, 0); this.btnUp1.Location = new System.Drawing.Point(210, 0);
this.btnUp1.Name = "btnUp1"; this.btnUp1.Name = "btnUp1";
this.btnUp1.Size = new System.Drawing.Size(43, 46); this.btnUp1.Size = new System.Drawing.Size(43, 46);
this.superToolTipDispTran.SetSuperTooltip(this.btnUp1, new DevComponents.DotNetBar.SuperTooltipInfo("", "", "This will display the tree for selecting the transition one level higher than cur" + this.superToolTipDispTran.SetSuperTooltip(this.btnUp1, new DevComponents.DotNetBar.SuperTooltipInfo("", "", "This will display the tree for selecting the transition one level higher than cur" +
"rently shown. If already showing High Level Steps, this button has no effect.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); "rently shown. If already showing High Level Steps, this button has no effect.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
this.btnUp1.TabIndex = 30; this.btnUp1.TabIndex = 30;
this.btnUp1.Visible = false; this.btnUp1.Visible = false;
// //
// superToolTipDispTran // superToolTipDispTran
// //
this.superToolTipDispTran.DefaultTooltipSettings = new DevComponents.DotNetBar.SuperTooltipInfo("", "", "", null, null, DevComponents.DotNetBar.eTooltipColor.Gray); this.superToolTipDispTran.DefaultTooltipSettings = new DevComponents.DotNetBar.SuperTooltipInfo("", "", "", null, null, DevComponents.DotNetBar.eTooltipColor.Gray);
this.superToolTipDispTran.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F"; this.superToolTipDispTran.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F";
// //
// tvTran // DisplayTransition
// //
this.tvTran.Dock = System.Windows.Forms.DockStyle.Fill; this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.tvTran.HideSelection = false; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.tvTran.Location = new System.Drawing.Point(0, 46); this.Controls.Add(this.groupPanelTranstionSteps);
this.tvTran.Name = "tvTran"; this.Controls.Add(this.groupPanelTransitionSect);
this.tvTran.Size = new System.Drawing.Size(370, 267); this.Controls.Add(this.groupPanelTransitionProcs);
this.superToolTipDispTran.SetSuperTooltip(this.tvTran, new DevComponents.DotNetBar.SuperTooltipInfo("", "", resources.GetString("tvTran.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); this.Controls.Add(this.groupPanelTransitionSets);
this.tvTran.TabIndex = 31; this.Controls.Add(this.groupPanelTranFmt);
this.tvTran.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.tvTran_AfterSelect); this.Controls.Add(this.groupPanelBtns);
// this.Margin = new System.Windows.Forms.Padding(2);
// vlnTreeComboSets this.Name = "DisplayTransition";
// this.Size = new System.Drawing.Size(376, 676);
this.vlnTreeComboSets.Dock = System.Windows.Forms.DockStyle.Fill; this.groupPanelBtns.ResumeLayout(false);
this.vlnTreeComboSets.Location = new System.Drawing.Point(0, 0); this.groupPanelBtns.PerformLayout();
this.vlnTreeComboSets.Margin = new System.Windows.Forms.Padding(4); this.groupPanelTranFmt.ResumeLayout(false);
this.vlnTreeComboSets.Name = "vlnTreeComboSets"; this.groupPanelTransitionSets.ResumeLayout(false);
this.vlnTreeComboSets.Size = new System.Drawing.Size(370, 21); this.groupPanelTransitionProcs.ResumeLayout(false);
this.superToolTipDispTran.SetSuperTooltip(this.vlnTreeComboSets, new DevComponents.DotNetBar.SuperTooltipInfo("", "", resources.GetString("vlnTreeComboSets.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); this.groupPanelTransitionSect.ResumeLayout(false);
this.vlnTreeComboSets.TabIndex = 33; this.groupPanelTranstionSteps.ResumeLayout(false);
this.vlnTreeComboSets.Value = null; this.pnlTranStepBtns.ResumeLayout(false);
this.vlnTreeComboSets.FinishEditing += new AT.STO.UI.Win.DropDownValueChangedEventHandler(this.DropDown_FinishEditing); this.ResumeLayout(false);
//
// DisplayTransition
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.groupPanelTranstionSteps);
this.Controls.Add(this.groupPanelTransitionSect);
this.Controls.Add(this.groupPanelTransitionProcs);
this.Controls.Add(this.groupPanelTransitionSets);
this.Controls.Add(this.groupPanelTranFmt);
this.Controls.Add(this.groupPanelBtns);
this.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.Name = "DisplayTransition";
this.Size = new System.Drawing.Size(376, 676);
this.groupPanelBtns.ResumeLayout(false);
this.groupPanelBtns.PerformLayout();
this.groupPanelTranFmt.ResumeLayout(false);
this.groupPanelTransitionSets.ResumeLayout(false);
this.groupPanelTransitionProcs.ResumeLayout(false);
this.groupPanelTransitionSect.ResumeLayout(false);
this.groupPanelTranstionSteps.ResumeLayout(false);
this.pnlTranStepBtns.ResumeLayout(false);
this.ResumeLayout(false);
} }
@@ -535,5 +554,6 @@ namespace Volian.Controls.Library
private DevComponents.DotNetBar.SuperTooltip superToolTipDispTran; private DevComponents.DotNetBar.SuperTooltip superToolTipDispTran;
private DevComponents.DotNetBar.Controls.CheckBoxX cbIncStepNum; private DevComponents.DotNetBar.Controls.CheckBoxX cbIncStepNum;
private DevComponents.DotNetBar.Controls.CheckBoxX cbPageNum; private DevComponents.DotNetBar.Controls.CheckBoxX cbPageNum;
} private DevComponents.DotNetBar.Controls.CheckBoxX cbHoldProcSet;
}
} }

View File

@@ -27,7 +27,31 @@ namespace Volian.Controls.Library
set set
{ {
if (DesignMode || !Visible) return; // B2019-043 need to check if we are just saving changes to the user interface if (DesignMode || !Visible) return; // B2019-043 need to check if we are just saving changes to the user interface
if (value == null) // Insert a transition //CSM-C2024-026 Evaluate the transitions panel
//Create a way to keep it from reverting the transition display panel to the currently selected item/transition.
//HeldLinkText will store if a transition was manually selected
//to override defaulting the listboxes to the current step / selected transition
if (HeldLinkText != "" && value != null)
{
//handle case where is held text and click on an already existing transition so cannot save one on top of the other.
_CurTrans = value;
btnTranSave.Enabled = false;
btnTranCancel.Enabled = true;
return;
}
else if (HeldLinkText != "" && MyRTB.MyItemInfo.ActiveFormat.Name == HeldLink_CurItemFrom.ActiveFormat.Name)
{
//this else if will handle case of defaulting to held transition instead of what has been clicked on
//Note that if format is not the same, it will ignore the held item
//This is because if different format, then options / selections may be different so will need to refresh the lists
if (_CurTrans == value && _CurItemFrom == HeldLink_CurItemFrom) return;
_CurItemFrom = HeldLink_CurItemFrom;
_TranFmtIndx = HeldLink_TranFmtIndx;
bool isenh = MyRTB != null && HeldLink_CurItemFrom != null && HeldLink_CurItemFrom.IsEnhancedStep;
btnTranSave.Enabled = !isenh && UserInfo.CanEdit(MyUserInfo, Mydvi) && (value == null); //Can Insert Transitions
btnTranCancel.Enabled = true;
}
else if (value == null) // Insert a transition
{ {
if (MyRTB == null) return; if (MyRTB == null) return;
if (_CurTrans == value && _CurItemFrom == MyRTB.MyItemInfo) return; if (_CurTrans == value && _CurItemFrom == MyRTB.MyItemInfo) return;
@@ -115,19 +139,13 @@ namespace Volian.Controls.Library
_MyRTB.LinkChanged += new StepRTBLinkEvent(_MyRTB_LinkChanged); _MyRTB.LinkChanged += new StepRTBLinkEvent(_MyRTB_LinkChanged);
if (_MyRTB.MyLinkText == null) if (_MyRTB.MyLinkText == null)
{ {
CurTrans = null; CurTrans = null;
} }
} }
} }
void _MyRTB_LinkChanged(object sender, StepPanelLinkEventArgs args) void _MyRTB_LinkChanged(object sender, StepPanelLinkEventArgs args)
{ {
//if (_MyRTB.MyLinkText == null) CurTrans = args.MyLinkText.MyTransitionInfo;
// CurTrans = null;
//else
//{
// StepPanelLinkEventArgs tmp = new StepPanelLinkEventArgs(null, e);
CurTrans = args.MyLinkText.MyTransitionInfo;
//}
} }
private ItemInfo _CurrentItemProcedure; // the selected item's procedure private ItemInfo _CurrentItemProcedure; // the selected item's procedure
private ItemInfo _CurrentToProcedure; // the 'to' location's procedure (may be same as _CurrentItemProcedure) private ItemInfo _CurrentToProcedure; // the 'to' location's procedure (may be same as _CurrentItemProcedure)
@@ -138,6 +156,12 @@ namespace Volian.Controls.Library
private Color _OrigGroupPanelProcs; private Color _OrigGroupPanelProcs;
private Color _OrigGroupPanelSects; private Color _OrigGroupPanelSects;
private Color _OrigGroupPanelSteps; private Color _OrigGroupPanelSteps;
//CSM-C2024-026 Evaluate the transitions panel
//Create a way to keep it from reverting the transition display panel to the currently selected item/transition.
public string HeldLinkText { get; protected set; } = ""; //will hold link text to stay on
public int HeldLink_TranFmtIndx { get; protected set; } = 0; //this will hold transition format that was selected on held item
public ItemInfo HeldLink_CurItemFrom { get; protected set; } //this will hold item that transitioning from
#endregion #endregion
#region Constructors #region Constructors
public DisplayTransition() public DisplayTransition()
@@ -237,7 +261,7 @@ namespace Volian.Controls.Library
if (selitm != null && selitm.MyContent.Type >= 20000) if (selitm != null && selitm.MyContent.Type >= 20000)
{ {
if (_DoingRange) if (_DoingRange && CurTrans != null)
{ {
tvInitHiliteRange(); //rangeSameLevel, stpitm, rngitm, (i1 < i2) ? i2 : i1); tvInitHiliteRange(); //rangeSameLevel, stpitm, rngitm, (i1 < i2) ? i2 : i1);
} }
@@ -938,6 +962,17 @@ namespace Volian.Controls.Library
} }
_InitializingTrans = false; _InitializingTrans = false;
SaveCancelEnabling(); SaveCancelEnabling();
//CSM-C2024-026 Evaluate the transitions panel
//Create a way to keep it from reverting the transition display panel to the currently selected item/transition.
//If checkbox is checked to enable holding an item,
//then store the first step in the currently selected item
if (cbHoldProcSet.Checked && secitm.Steps != null && secitm.Steps.Count > 0)
{
HeldLinkText = string.Format("#Link:Transition:{0} <NewID> {1}", listBoxTranFmt.SelectedIndex, secitm.Steps[0].ItemID);
HeldLink_TranFmtIndx = listBoxTranFmt.SelectedIndex;
HeldLink_CurItemFrom = secitm.Steps[0];
}
} }
} }
// B2024-016 Hide the step tree when the transition definition does not include a step number {First Step} // B2024-016 Hide the step tree when the transition definition does not include a step number {First Step}
@@ -1089,6 +1124,18 @@ namespace Volian.Controls.Library
return; return;
} }
SaveCancelEnabling(); SaveCancelEnabling();
//CSM-C2024-026 Evaluate the transitions panel
//Create a way to keep it from reverting the transition display panel to the currently selected item/transition.
//If checkbox is checked to enable holding an item,
//then store the currently selected item
if (cbHoldProcSet.Checked)
{
HeldLinkText = string.Format("#Link:Transition:{0} <NewID> {1}", listBoxTranFmt.SelectedIndex, selii.ItemID);
HeldLink_TranFmtIndx = listBoxTranFmt.SelectedIndex;
HeldLink_CurItemFrom = selii;
}
if (_DoingRange) if (_DoingRange)
{ {
if (_RangeNode1 == null || (_RangeNode1 != null && _RangeNode2 != null)) if (_RangeNode1 == null || (_RangeNode1 != null && _RangeNode2 != null))
@@ -1370,6 +1417,13 @@ namespace Volian.Controls.Library
_MyLog.InfoFormat("ItemID {0}, LinkText '{1}'", MyRTB.MyItemInfo.ItemID, linkText); _MyLog.InfoFormat("ItemID {0}, LinkText '{1}'", MyRTB.MyItemInfo.ItemID, linkText);
int sel = MyRTB.SelectionStart + MyRTB.SelectionLength; int sel = MyRTB.SelectionStart + MyRTB.SelectionLength;
MyRTB.Select(sel, 0);// Move cursor to end of LINK MyRTB.Select(sel, 0);// Move cursor to end of LINK
//CSM-C2024-026 Evaluate the transitions panel
//Create a way to keep it from reverting the transition display panel to the currently selected item/transition.
//After save a transition, set the Linktext / tab to go back to the held transition
//if none then this will refresh it to the currently selected item as it did before this csm
MyRTB.MyLinkText = HeldLinkText;
MyRTB.Focus(); MyRTB.Focus();
} }
#endregion #endregion
@@ -1489,8 +1543,34 @@ namespace Volian.Controls.Library
btnTranSave.Enabled = UserInfo.CanEdit(MyUserInfo, Mydvi); //Can Insert Transitons btnTranSave.Enabled = UserInfo.CanEdit(MyUserInfo, Mydvi); //Can Insert Transitons
} }
} }
}
public class TransItem //CSM-C2024-026 Evaluate the transitions panel
//Create a way to keep it from reverting the transition display panel to the currently selected item/transition.
//If checkbox is checked to enable holding an item,
//then store the currently selected item
//if checkbox becomes unchecked then clear item.
private void cbHoldProcSet_CheckedChanged(object sender, EventArgs e)
{
if (cbHoldProcSet.Checked)
{
VETreeNode vt = tvTran.SelectedNode as VETreeNode;
ItemInfo selii = vt.VEObject as ItemInfo;
if (selii != null)
{
HeldLinkText = string.Format("#Link:Transition:{0} <NewID> {1}", listBoxTranFmt.SelectedIndex, selii.ItemID);
HeldLink_TranFmtIndx = listBoxTranFmt.SelectedIndex;
HeldLink_CurItemFrom = selii;
}
}
else
{
HeldLinkText = "";
HeldLink_CurItemFrom = null;
HeldLink_TranFmtIndx = 0;
}
}
}
public class TransItem
{ {
private string _ItemDescription; private string _ItemDescription;

View File

@@ -112,14 +112,21 @@
<value>2.0</value> <value>2.0</value>
</resheader> </resheader>
<resheader name="reader"> <resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<metadata name="superToolTipDispTran.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="superToolTipDispTran.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value> <value>17, 17</value>
</metadata> </metadata>
<data name="cbHoldProcSet.SuperTooltip" xml:space="preserve">
<value>By default, PROMS will load the Procedure Set/Procedure in this window for the step (or transition link within a step) that is selected with the mouse.
Selecting this checkbox temporarily disables that behavior so that clicking on various steps within the procedure will not move away from the Procedure Set/Procedure that has currently been selected in these windows.
Note: One exception to this is if you navigate to a Procedure set that has a different format. In that case, it will refresh these options based on that new format.</value>
</data>
<data name="vlnTreeComboSets.SuperTooltip" xml:space="preserve"> <data name="vlnTreeComboSets.SuperTooltip" xml:space="preserve">
<value>This allows you to select the procedure set that the transition points to, if the selected transition format allows for the transition to point to another set. If the format does NOT allow for pointing to another set, a selection will not be available.</value> <value>This allows you to select the procedure set that the transition points to, if the selected transition format allows for the transition to point to another set. If the format does NOT allow for pointing to another set, a selection will not be available.</value>
</data> </data>

View File

@@ -9,6 +9,7 @@ using System.Text.RegularExpressions;
using VEPROMS.CSLA.Library; using VEPROMS.CSLA.Library;
using Volian.Base.Library; using Volian.Base.Library;
using JR.Utils.GUI.Forms; using JR.Utils.GUI.Forms;
using System.Linq;
namespace Volian.Controls.Library namespace Volian.Controls.Library
{ {
@@ -285,7 +286,7 @@ namespace Volian.Controls.Library
} }
public EditItem ActiveParent public EditItem ActiveParent
{ {
get { return _MyParentEditItem != null ? _MyParentEditItem : _MyPreviousEditItem.ActiveParent; } get { return _MyParentEditItem != null ? _MyParentEditItem : _MyPreviousEditItem?.ActiveParent; }
} }
/// <summary> /// <summary>
/// Return the Parent EditItem /// Return the Parent EditItem
@@ -893,6 +894,18 @@ namespace Volian.Controls.Library
b4topadjust -= newFocus.Top; b4topadjust -= newFocus.Top;
TopMostYBefore -= b4topadjust; TopMostYBefore -= b4topadjust;
//B2024-075: If Deleting an item in a Source Document that is unlinked
//and the overall procedure has connected Background Documents
//and a window is open containing the background documents
//then need to force a refresh on that window as
//step numbering will shift
EnhancedDocuments ProcEnh = MyItemInfo.MyProcedure.GetMyEnhancedDocuments();
if (ProcEnh.Count > 0)
{
DisplayTabItem wndowToRefresh = MyStepPanel.MyStepTabPanel.MyDisplayTabControl.MyBar.Items.Cast<DisplayTabItem>().FirstOrDefault(x => x.MyKey == $"Item - {ProcEnh[0].ItemID}");
wndowToRefresh?.MyStepTabPanel.MyStepPanel.Reset(wndowToRefresh.MyItemInfo);
}
//_MyTimer.ActiveProcess = "Dispose"; //_MyTimer.ActiveProcess = "Dispose";
Dispose(); Dispose();
//_MyTimer.ActiveProcess = "SetAllTabs"; //_MyTimer.ActiveProcess = "SetAllTabs";
@@ -1634,10 +1647,54 @@ namespace Volian.Controls.Library
MyStepPanel.MyStepTabPanel.MyDisplayTabControl.OnItemPaste(this, new vlnTreeItemInfoPasteEventArgs(newItemInfo, copyStartID, ItemInfo.EAddpingPart.Before, newItemInfo.MyContent.Type)); MyStepPanel.MyStepTabPanel.MyDisplayTabControl.OnItemPaste(this, new vlnTreeItemInfoPasteEventArgs(newItemInfo, copyStartID, ItemInfo.EAddpingPart.Before, newItemInfo.MyContent.Type));
// MyItemInfo is the 'paste from' item, if it has enhanced need to copy and paste the steps in enhanced. // MyItemInfo is the 'paste from' item, if it has enhanced need to copy and paste the steps in enhanced.
ItemInfo newEnh = newItemInfo.EnhancedPasteItem(copyStartID, MyItemInfo, ItemInfo.EAddpingPart.Before, GetChangeId(MyItemInfo)); //if doing a paste before/after and item being copied is unlinked, item pasted should also be unlinked.
ItemInfo tmpCopyStartSourceItem = ItemInfo.Get(copyStartID);
ItemInfo newEnh = null;
if (tmpCopyStartSourceItem.GetMyEnhancedDocuments().Count > 0)
{
newEnh = newItemInfo.EnhancedPasteItem(copyStartID, MyItemInfo, ItemInfo.EAddpingPart.Before, GetChangeId(MyItemInfo));
}
//B2024-075: When doing Paste Before / After with Enhanced Documents only link from Background document to source was created
//since source is done first
//this is so that after the steps are created in the enhanced, go back and update the link in the source to point to the correct item
if (newEditItem != null && newEnh != null)
{
FixEnhanceLinkOnSource(newEditItem.MyItemInfo, newEnh, MyItemInfo.GetMyEnhancedDocuments());
}
else if (newEnh == null && newEditItem != null && newEditItem.MyItemInfo.IsEnhancedStep)
{
UnlinkEnhanced(newEditItem);
}
else if (newEnh == null && newEditItem != null)
{
//if did a paste before/after in a source document that contains enhanced steps
//but step being pasted was non-enhanced (unlinked)
//then look to see if the background page is open
//and if it is, do a refresh so that step numbers update appropriately
//without having to close and re-open the background steps
foreach (EnhancedDocument edSource in MyItemInfo.GetMyEnhancedDocuments())
{
ItemInfo exEnh = ItemInfo.Get(edSource.ItemID);
DisplayTabItem wndowToRefresh = newEditItem.MyStepPanel.MyStepTabPanel.MyDisplayTabControl.MyBar.Items.Cast<DisplayTabItem>().FirstOrDefault(x => x.MyKey == $"Item - {exEnh.MyProcedure.ItemID}");
wndowToRefresh?.MyStepTabPanel.MyStepPanel.Reset(wndowToRefresh.MyItemInfo);
}
}
// if enhanced items were created, then see if they need displayed: // if enhanced items were created, then see if they need displayed:
if (newEnh != null) AddAllEnhancedItemsToDisplay(newItemInfo); if (newEnh != null) AddAllEnhancedItemsToDisplay(newItemInfo);
} }
//B2024-075: When doing Paste Before / After with Enhanced Documents only link from Background document to source was created
//since source is done first
//this is so that after the steps are created in the enhanced, go back and update the link in the source to point to the correct item
//if enhanced document wasn't created then paste happened inside a enhanced Step/background step - so remove any links that shouldn't be there
//and don't have a corresponding spot in the Source
private void FixEnhanceLinkOnSource(ItemInfo SourceItem, ItemInfo newEnhItem, EnhancedDocuments enhancedDocuments)
{
if (enhancedDocuments.Count > 0)
CreateLinksEnhancedSingleItem(SourceItem, newEnhItem, enhancedDocuments[0].Type);
}
private void AddAllEnhancedItemsToDisplay(ItemInfo newItemInfo) private void AddAllEnhancedItemsToDisplay(ItemInfo newItemInfo)
{ {
EnhancedDocuments eds = newItemInfo.GetMyEnhancedDocuments(); EnhancedDocuments eds = newItemInfo.GetMyEnhancedDocuments();
@@ -1684,12 +1741,15 @@ namespace Volian.Controls.Library
} }
} }
} }
public void UnlinkEnhanced(ItemInfo enhII) public void UnlinkEnhanced(EditItem enhII)
{ {
// B2022-049: Copy/paste of enhanced procedure and bad links between source and enhanced // B2022-049: Copy/paste of enhanced procedure and bad links between source and enhanced
// Pass in to unlink as before this change // Pass in to unlink as before this change
enhII.DoUnlinkEnhanced(enhII, 0, false); // B2024 - 075: Change made to pass in an EditTem instead of a ItemInfo
//so can refresh the UI
enhII.MyItemInfo.DoUnlinkEnhanced(enhII.MyItemInfo, 0, false);
SetFocus(); SetFocus();
enhII.MyStepPanel.Reset(enhII.MyItemInfo); //need to reset parts so refreshes display to show as unlinked
} }
public ItemInfo AddMissingEnhancedStep(ItemInfo ii, int EnhType) public ItemInfo AddMissingEnhancedStep(ItemInfo ii, int EnhType)
{ {
@@ -1753,7 +1813,42 @@ namespace Volian.Controls.Library
MyStepPanel.MyStepTabPanel.MyDisplayTabControl.OnItemPaste(this, new vlnTreeItemInfoPasteEventArgs(newItemInfo, copyStartID, ItemInfo.EAddpingPart.After, newItemInfo.MyContent.Type)); MyStepPanel.MyStepTabPanel.MyDisplayTabControl.OnItemPaste(this, new vlnTreeItemInfoPasteEventArgs(newItemInfo, copyStartID, ItemInfo.EAddpingPart.After, newItemInfo.MyContent.Type));
// MyItemInfo is the 'paste from' item, if it has enhanced need to copy and paste the steps in enhanced. // MyItemInfo is the 'paste from' item, if it has enhanced need to copy and paste the steps in enhanced.
ItemInfo newEnh = newItemInfo.EnhancedPasteItem(copyStartID, MyItemInfo, ItemInfo.EAddpingPart.After, GetChangeId(MyItemInfo)); //if doing a paste before/after and item being copied is unlinked, item pasted should also be unlinked.
ItemInfo tmpCopyStartSourceItem = ItemInfo.Get(copyStartID);
ItemInfo newEnh = null;
if (tmpCopyStartSourceItem.GetMyEnhancedDocuments().Count > 0)
{
newEnh = newItemInfo.EnhancedPasteItem(copyStartID, MyItemInfo, ItemInfo.EAddpingPart.After, GetChangeId(MyItemInfo));
}
//B2024-075: When doing Paste Before / After with Enhanced Documents only link from Background document to source was created
//since source is done first
//this is so that after the steps are created in the enhanced, go back and update the link in the source to point to the correct item
//if enhanced document wasn't created then paste happened inside a enhanced Step/background step - so remove any links that shouldn't be there
//and don't have a cooresponding spot in the Source
if (newEditItem != null && newEnh != null)
{
FixEnhanceLinkOnSource(newEditItem.MyItemInfo, newEnh, MyItemInfo.GetMyEnhancedDocuments());
}
else if (newEnh == null && newEditItem != null && newEditItem.MyItemInfo.IsEnhancedStep)
{
UnlinkEnhanced(newEditItem);
}
else if (newEnh == null && newEditItem != null)
{
//if did a paste before/after in a source document that contains enhanced steps
//but step being pasted was non-enhanced (unlinked)
//then look to see if the background page is open
//and if it is, do a refresh so that step numbers update appropriately
//without having to close and re-open the background steps
foreach (EnhancedDocument edSource in MyItemInfo.GetMyEnhancedDocuments())
{
ItemInfo exEnh = ItemInfo.Get(edSource.ItemID);
DisplayTabItem wndowToRefresh = newEditItem.MyStepPanel.MyStepTabPanel.MyDisplayTabControl.MyBar.Items.Cast<DisplayTabItem>().FirstOrDefault(x => x.MyKey == $"Item - {exEnh.MyProcedure.ItemID}");
wndowToRefresh?.MyStepTabPanel.MyStepPanel.Reset(wndowToRefresh.MyItemInfo);
}
}
if (newEnh != null) AddAllEnhancedItemsToDisplay(newItemInfo); if (newEnh != null) AddAllEnhancedItemsToDisplay(newItemInfo);
} }
public void PasteChild(int copyStartID) public void PasteChild(int copyStartID)
@@ -1944,7 +2039,8 @@ namespace Volian.Controls.Library
sia.IdentifyChildren(highlight); sia.IdentifyChildren(highlight);
} }
} }
if (MyBeforeEditItems != null) // C2017-031: Support for paste/replace an enhanced step: don't identify/copy before items, i.e. notes/cautions
if (MyBeforeEditItems != null && !MyItemInfo.IsEnhancedStep)
{ {
foreach (EditItem sib in MyBeforeEditItems) foreach (EditItem sib in MyBeforeEditItems)
{ {

View File

@@ -279,18 +279,24 @@ namespace Volian.Controls.Library
// //
// btnCmCut // btnCmCut
// //
this.btnCmCut.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.ImageAndText;
this.btnCmCut.Image = global::Volian.Controls.Library.Properties.Resources.Cut_Image;
this.btnCmCut.Name = "btnCmCut"; this.btnCmCut.Name = "btnCmCut";
this.btnCmCut.Text = "Cut"; this.btnCmCut.Text = "Cut";
this.btnCmCut.Click += new System.EventHandler(this.btnCmCut_Click); this.btnCmCut.Click += new System.EventHandler(this.btnCmCut_Click);
// //
// btnCmCopy // btnCmCopy
// //
this.btnCmCopy.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.ImageAndText;
this.btnCmCopy.Image = global::Volian.Controls.Library.Properties.Resources.Copy_Image;
this.btnCmCopy.Name = "btnCmCopy"; this.btnCmCopy.Name = "btnCmCopy";
this.btnCmCopy.Text = "Copy"; this.btnCmCopy.Text = "Copy";
this.btnCmCopy.Click += new System.EventHandler(this.btnCmCopy_Click); this.btnCmCopy.Click += new System.EventHandler(this.btnCmCopy_Click);
// //
// btnCmPaste // btnCmPaste
// //
this.btnCmPaste.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.ImageAndText;
this.btnCmPaste.Image = global::Volian.Controls.Library.Properties.Resources.PasteSmall_Image;
this.btnCmPaste.Name = "btnCmPaste"; this.btnCmPaste.Name = "btnCmPaste";
this.btnCmPaste.Text = "Paste"; this.btnCmPaste.Text = "Paste";
this.btnCmPaste.Click += new System.EventHandler(this.btnCmPaste_Click); this.btnCmPaste.Click += new System.EventHandler(this.btnCmPaste_Click);
@@ -305,12 +311,16 @@ namespace Volian.Controls.Library
// //
// btnCmHardSp // btnCmHardSp
// //
this.btnCmHardSp.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.ImageAndText;
this.btnCmHardSp.Image = global::Volian.Controls.Library.Properties.Resources.HardSpace_Image;
this.btnCmHardSp.Name = "btnCmHardSp"; this.btnCmHardSp.Name = "btnCmHardSp";
this.btnCmHardSp.Text = "Hard Space"; this.btnCmHardSp.Text = "Hard Space";
this.btnCmHardSp.Click += new System.EventHandler(this.btnCmHardSp_Click); this.btnCmHardSp.Click += new System.EventHandler(this.btnCmHardSp_Click);
// //
// btnCmSymbol // btnCmSymbol
// //
this.btnCmSymbol.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.ImageAndText;
this.btnCmSymbol.Image = global::Volian.Controls.Library.Properties.Resources.Symbol_Image;
this.btnCmSymbol.Name = "btnCmSymbol"; this.btnCmSymbol.Name = "btnCmSymbol";
this.btnCmSymbol.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] { this.btnCmSymbol.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
this.galSymbols}); this.galSymbols});
@@ -566,9 +576,9 @@ namespace Volian.Controls.Library
} }
#endregion #endregion
private DevComponents.DotNetBar.ButtonX btnReplace; private DevComponents.DotNetBar.ButtonX btnReplace;
private DevComponents.DotNetBar.ButtonX btnFndRplDone; private DevComponents.DotNetBar.ButtonX btnFndRplDone;
private DevComponents.DotNetBar.ButtonX btnFindNext; private DevComponents.DotNetBar.ButtonX btnFindNext;
private DevComponents.DotNetBar.Controls.ComboBoxEx cmboReplaceText; private DevComponents.DotNetBar.Controls.ComboBoxEx cmboReplaceText;

View File

@@ -30,7 +30,8 @@ namespace Volian.Controls.Library
//We need to check to see if the current database has been updated with the necessary changes //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 folder configuration value. If so then build the list of available to be returned
//to the calling code //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"); _MyLog.InfoFormat("Filtered format list not available: Database update needed for config value of top folder record");
return RawList; return RawList;

View File

@@ -256,7 +256,8 @@ namespace Volian.Controls.Library
private int _origCfgHt = 0; // keep track if original size was stored in cfg private int _origCfgHt = 0; // keep track if original size was stored in cfg
private int _origCfgWd = 0; private int _origCfgWd = 0;
private bool _pastedNew = false; // need this for flagging newly pasted image (may need to clear cfg) private bool _pastedNew = false; // need this for flagging newly pasted image (may need to clear cfg)
private DisplayTags _displayTags; private DisplayTags _displayTags = new DisplayTags();
//House myhouse = new House();
#endregion #endregion
#region Constructors #region Constructors
@@ -316,8 +317,11 @@ namespace Volian.Controls.Library
} }
private void SetWidthsAndHeights(System.Drawing.Image img) private void SetWidthsAndHeights(System.Drawing.Image img)
{ {
int wd = img.Width * MyStepPanel.DPI / 72; // converts from screen resolution's DPI to image's points (72/inch) int wd = img.Width * MyStepPanel.DPI / 72; // converts from screen resolution's DPI to image's points (72/inch)
int ht = img.Height * MyStepPanel.DPI / 72; int ht = img.Height * MyStepPanel.DPI / 72;
if (MyItemInfo.MyContent.MyImage != null) // image is null if creating new. if (MyItemInfo.MyContent.MyImage != null) // image is null if creating new.
{ {
ImageConfig ic = new ImageConfig(MyItemInfo.MyContent.MyImage); ImageConfig ic = new ImageConfig(MyItemInfo.MyContent.MyImage);
@@ -340,9 +344,9 @@ namespace Volian.Controls.Library
_displayTags.TbFSwd = wd.ToString(); _displayTags.TbFSwd = wd.ToString();
_displayTags.TbFSht = ht.ToString(); _displayTags.TbFSht = ht.ToString();
} }
} }
// the following gets called for 'NEW' images // the following gets called for 'NEW' images
private E_ImageSource InsType = E_ImageSource.None; private E_ImageSource InsType = E_ImageSource.None;
public ImageItem(ItemInfo itemInfo, StepPanel myStepPanel, EditItem myParentEditItem, ChildRelation myChildRelation, bool expand, EditItem nextEditItem, ImageItem.E_ImageSource insType, DisplayTags displayTags) public ImageItem(ItemInfo itemInfo, StepPanel myStepPanel, EditItem myParentEditItem, ChildRelation myChildRelation, bool expand, EditItem nextEditItem, ImageItem.E_ImageSource insType, DisplayTags displayTags)

Binary file not shown.

View File

@@ -1231,7 +1231,7 @@ namespace Volian.Controls.Library
} }
public ItemSelectedChangedEventArgs(EditItem myEditItem) public ItemSelectedChangedEventArgs(EditItem myEditItem)
{ {
_MyItemInfo = myEditItem.MyItemInfo; _MyItemInfo = myEditItem?.MyItemInfo;
_MyEditItem = myEditItem; _MyEditItem = myEditItem;
} }
} }

View File

@@ -11,6 +11,7 @@ using System.Text.RegularExpressions;
using VEPROMS.CSLA.Library; using VEPROMS.CSLA.Library;
using Volian.Base.Library; using Volian.Base.Library;
using JR.Utils.GUI.Forms; using JR.Utils.GUI.Forms;
using System.Linq;
namespace Volian.Controls.Library namespace Volian.Controls.Library
{ {
@@ -485,6 +486,8 @@ namespace Volian.Controls.Library
public void RefreshDisplay(bool activeMode) public void RefreshDisplay(bool activeMode)
{ {
if (IsExperimenting) return; if (IsExperimenting) return;
if (IsDisposed) return;
ActiveMode = activeMode; ActiveMode = activeMode;
OnAdjustTableWidth(this, new StepRTBTableWidthEventArgs(true)); OnAdjustTableWidth(this, new StepRTBTableWidthEventArgs(true));
//Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "RefreshDisplay 2"); //Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "RefreshDisplay 2");
@@ -2853,7 +2856,10 @@ namespace Volian.Controls.Library
return false; 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: // 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 // get base list of valid symbols, use base format if MyItemInfo is null. Use symbols from
@@ -2869,40 +2875,31 @@ namespace Volian.Controls.Library
ptext = ptext.TrimEnd("\r\n\t ".ToCharArray()); ptext = ptext.TrimEnd("\r\n\t ".ToCharArray());
if (PasteNoReturnsSetting) ptext = ptext.Replace("\r\n", " "); if (PasteNoReturnsSetting) ptext = ptext.Replace("\r\n", " ");
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
bool didCharReplace = false;
bool hasBadChar = false; bool hasBadChar = false;
for (int i = 0; i < ptext.Length; i++) foreach (char c in ptext)
{ {
didCharReplace = false; if ((c > 0x7e))
string sym = string.Format(@"{0}", Convert.ToInt32(ptext[i]));
if ((ptext[i] > 0x7e))
{ {
// is this an allowable symbol/character: // is this an allowable symbol/character:
for (int j = 0; j < sl.Count; j++) if (allowableSymbols.Any(x => x == $@"{(short)c}"))
{ {
if (sym == allowableSymbols[j]) if (convertunicode)
{ sb.Append($"\\u{(short) c}?");
sb = sb.Append((char)(Convert.ToInt32(allowableSymbols[j]))); else
didCharReplace = true; sb.Append(c);
break; }
} else
}
// if not allowable, put in a "?" and give a message to user (below)
if (!didCharReplace)
{ {
sb = sb.Append("?");
didCharReplace = true;
hasBadChar = true; hasBadChar = true;
sb.Append("?");
}
} }
if (!didCharReplace) else
sb = sb.Append(ptext[i]); sb.Append(c);
} }
if (!didCharReplace) ptext = sb.ToString();
sb = sb.Append(ptext[i]); ptext = ptext.Replace("\u2013", "-"); // Replace EN Dash with hyphen
}
ptext = sb.ToString();
ptext = ptext.Replace("\u2013", "-"); // Replace EN Dash with hyphen
ptext = ptext.Replace("\u2014", "-"); // Replace EM 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("\u2011", "-"); // Replace non-breaking hyphen with hyphen
ptext = ptext.Replace("\u2572", "\\"); // Replace backslash symbol with backslash character ptext = ptext.Replace("\u2572", "\\"); // Replace backslash symbol with backslash character

View File

@@ -337,8 +337,10 @@ namespace Volian.Controls.Library
else if (btn.Name.Contains("Unlink")) else if (btn.Name.Contains("Unlink"))
{ {
// C2019=003: add a confirmation dialog before unlinking a step: // C2019=003: add a confirmation dialog before unlinking a step:
// B2024 - 075: Change made to pass in an EditTem instead of a ItemInfo
//so can refresh the UI
if (FlexibleMessageBox.Show(this, "Do you want to unlink this step?", "Confirm Enhanced Step Unlink", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) if (FlexibleMessageBox.Show(this, "Do you want to unlink this step?", "Confirm Enhanced Step Unlink", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
MyEditItem.UnlinkEnhanced(MyEditItem.MyItemInfo); MyEditItem.UnlinkEnhanced(MyEditItem);
} }
} }
else else
@@ -1374,7 +1376,9 @@ namespace Volian.Controls.Library
public static String GetDefaultKeyValue(String key) public static String GetDefaultKeyValue(String key)
{ {
object xxx = null; 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) private EditItem FindStepAfter(string types, int contenttype)
{ {
@@ -1750,7 +1754,7 @@ namespace Volian.Controls.Library
// note in follow if statements, 'setting' == false when in enhanced document: // note in follow if statements, 'setting' == false when in enhanced document:
if (setting && MyItemInfo.IsStep && (eds == null || eds.Count == 0)) // this step is in enhanced, but not linked // B2018-112 and is allowed to edit if (setting && MyItemInfo.IsStep && (eds == null || eds.Count == 0)) // this step is in enhanced, but not linked // B2018-112 and is allowed to edit
allowDel = true; // allow delete if not linked allowDel = true; // allow delete if not linked
btnCpyStp.Enabled = setting; btnCpyStp.Enabled = MyUserInfo.IsAllowedToEdit(Mydvi); // C2017-031: Support for paste/replace an enhanced step
//B20170-158 Allow a Unlinked Step to be pasted before or after a linked step. //B20170-158 Allow a Unlinked Step to be pasted before or after a linked step.
StepTabPanel tmp = Parent as StepTabPanel; StepTabPanel tmp = Parent as StepTabPanel;
//B2020-058: crash on null reference //B2020-058: crash on null reference
@@ -1801,7 +1805,8 @@ namespace Volian.Controls.Library
btnPasteAfter.Enabled = btnCMPasteAfter.Enabled = enable; btnPasteAfter.Enabled = btnCMPasteAfter.Enabled = enable;
//B20170-158 Don't allow a step to replace a linked step //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 //B2017-180: The fix for B2017-158 also needed the 'HasEnhancedLinkedStep' to check if the copied step is a source step
btnPasteReplace.Enabled = btnCMPasteReplace.Enabled = enable && !MyItemInfo.IsEnhancedStep && !MyItemInfo.HasEnhancedLinkedStep; // C2017-031: Support for paste/replace an enhanced step, enable button
btnPasteReplace.Enabled = btnCMPasteReplace.Enabled = enable;
} }
private void SetPasteButtonEnabled() private void SetPasteButtonEnabled()
{ {
@@ -1861,25 +1866,6 @@ namespace Volian.Controls.Library
if (stepToCfg.MyEnhancedDocuments != null && stepToCfg.MyEnhancedDocuments.Count > 0 && stepToCfg.MyEnhancedDocuments[0].Type != 0) toSourceHasEnhancedLinks = true; 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 //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 // 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)) if (tmp.MyDisplayTabControl.MyCopyStep.IsHigh && (MyItemInfo.IsTable || MyItemInfo.IsFigure || MyItemInfo.IsSection || MyItemInfo.IsProcedure))
@@ -1982,6 +1968,9 @@ namespace Volian.Controls.Library
case "Cont. Act\r\nSummary": case "Cont. Act\r\nSummary":
btnCASCreate_Click(sender, e); btnCASCreate_Click(sender, e);
break; break;
case "Time Crit\r\nSummary":
btnTCASCreate_Click(sender, e);
break;
} }
MyItemInfo.MyProcedure.ProcedureConfig.SelectedSlave = 0; // unselect the unit (child) MyItemInfo.MyProcedure.ProcedureConfig.SelectedSlave = 0; // unselect the unit (child)
} }
@@ -1996,6 +1985,9 @@ namespace Volian.Controls.Library
btnCASCreate.SubItems.Clear(); btnCASCreate.SubItems.Clear();
btnCASCreate.Tag = null; btnCASCreate.Tag = null;
btnCASCreate.Click -= new System.EventHandler(btnCASCreate_Click); btnCASCreate.Click -= new System.EventHandler(btnCASCreate_Click);
btnTCASCreate.SubItems.Clear();
btnTCASCreate.Tag = null;
btnTCASCreate.Click -= new System.EventHandler(btnTCASCreate_Click);
btnReviewCreatePDF.SubItems.Clear(); btnReviewCreatePDF.SubItems.Clear();
btnReviewCreatePDF.Tag = null; btnReviewCreatePDF.Tag = null;
btnReviewCreatePDF.Click -= new System.EventHandler(btnPdfCreate_Click); btnReviewCreatePDF.Click -= new System.EventHandler(btnPdfCreate_Click);
@@ -2022,6 +2014,9 @@ namespace Volian.Controls.Library
btnCASCreate.SubItems.Add(btn); btnCASCreate.SubItems.Add(btn);
btn = MakeSubMenuButton(s, k, miMultiUnit_Click); btn = MakeSubMenuButton(s, k, miMultiUnit_Click);
btn.Enabled = procAppl; btn.Enabled = procAppl;
btnTCASCreate.SubItems.Add(btn);
btn = MakeSubMenuButton(s, k, miMultiUnit_Click);
btn.Enabled = procAppl;
btnReviewPdfQuickCreate.SubItems.Add(btn); btnReviewPdfQuickCreate.SubItems.Add(btn);
} }
btnPdfCreate.AutoExpandOnClick = true; btnPdfCreate.AutoExpandOnClick = true;
@@ -2029,6 +2024,7 @@ namespace Volian.Controls.Library
btnReviewCreatePDF.AutoExpandOnClick = true; btnReviewCreatePDF.AutoExpandOnClick = true;
btnReviewPdfQuickCreate.AutoExpandOnClick = true; btnReviewPdfQuickCreate.AutoExpandOnClick = true;
btnCASCreate.AutoExpandOnClick = true; btnCASCreate.AutoExpandOnClick = true;
btnTCASCreate.AutoExpandOnClick = true;
} }
private DevComponents.DotNetBar.ButtonItem MakeSubMenuButton(string s, object tag, EventHandler ehandler) private DevComponents.DotNetBar.ButtonItem MakeSubMenuButton(string s, object tag, EventHandler ehandler)
{ {
@@ -2868,12 +2864,19 @@ namespace Volian.Controls.Library
tmpForLink = ItemInfo.ReplaceLinkWithNewID(tmpForLink); tmpForLink = ItemInfo.ReplaceLinkWithNewID(tmpForLink);
myRtb.SelectedRtf = 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) // 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)) 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; if (myRtb.SelectionLength == 0 && myRtb is StepRTB) myRtb.SelectionFont = (myRtb as StepRTB).MyStyleFont.WindowsFont;
_PastePlainTextOvrRide = false; _PastePlainTextOvrRide = false;
_PasteStepTextOvrRide = false; _PasteStepTextOvrRide = false;
@@ -3119,7 +3122,13 @@ namespace Volian.Controls.Library
// a referenced object, bring up ReferencedObject Editor (for now, just put up a message box. // a referenced object, bring up ReferencedObject Editor (for now, just put up a message box.
if (_MyStepRTB.MyLinkText != null && _MyStepRTB.MyLinkText.IndexOf("Transition") > -1) 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 else
{ {
@@ -3142,7 +3151,12 @@ namespace Volian.Controls.Library
} }
else 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 //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) if (lt.MyRoUsageInfo != null)
{ {
@@ -3782,7 +3796,7 @@ namespace Volian.Controls.Library
ProcedureInfo.RefreshTransitions(MyItemInfo.MyProcedure as ProcedureInfo); ProcedureInfo.RefreshTransitions(MyItemInfo.MyProcedure as ProcedureInfo);
this.Cursor = Cursors.Default; this.Cursor = Cursors.Default;
// B2018-002 - Invalid Transitions - Display Transition Refresh Statistics // B2018-002 - Invalid Transitions - Display Transition Refresh Statistics
FlexibleMessageBox.Show(this, string.Format("Checked {0} transitions, modified {1} transitions, converted to text {2} transitions", ProcedureInfo.TranCheckCount, ProcedureInfo.TranFixCount, ProcedureInfo.TranConvertCount), "Results of Refresh Transitions", MessageBoxButtons.OK, MessageBoxIcon.Information); FlexibleMessageBox.Show(this, string.Format("Checked {0} transitions, modified {1} transitions, converted to text {2} transitions, {3} transitions unable to be fixed (Annotation: Bad Transition Link)", ProcedureInfo.TranCheckCount, ProcedureInfo.TranFixCount, ProcedureInfo.TranConvertCount, ProcedureInfo.TranCantFixCount), "Results of Refresh Transitions", MessageBoxButtons.OK, MessageBoxIcon.Information);
} }
private void btnRefObjRefresh_Click(object sender, System.EventArgs e) private void btnRefObjRefresh_Click(object sender, System.EventArgs e)
{ {
@@ -4110,9 +4124,19 @@ namespace Volian.Controls.Library
// F2021-009 display a message if pasting step will results in more sub-step levels than are defined in the format // F2021-009 display a message if pasting step will results in more sub-step levels than are defined in the format
ItemInfo.PasteStepIsWithinDefinedSubStepLevels(tmp.MyDisplayTabControl.MyCopyStep.ItemID, MyItemInfo, true); ItemInfo.PasteStepIsWithinDefinedSubStepLevels(tmp.MyDisplayTabControl.MyCopyStep.ItemID, MyItemInfo, true);
EditItem oldEditItem = MyEditItem; EditItem oldEditItem = MyEditItem;
// C2017-031: Support for paste/replace an enhanced step, if pasting an enhanced, remove its EditItem from the 'cache'. A new EditItem gets created during paste.
if (MyEditItem != null && MyEditItem.MyItemInfo.IsEnhancedStep) MyEditItem.MyStepPanel._LookupEditItems.Remove(MyEditItem.MyItemInfo.ItemID);
MyEditItem = MyEditItem.PasteReplace(tmp.MyDisplayTabControl.MyCopyStep.ItemID); MyEditItem = MyEditItem.PasteReplace(tmp.MyDisplayTabControl.MyCopyStep.ItemID);
if (MyEditItem == null) oldEditItem.IdentifyMe(false); // B2017-179 if null then we didn't do the replace but did position to the first transition that needs resolved if (MyEditItem == null) oldEditItem.IdentifyMe(false); // B2017-179 if null then we didn't do the replace but did position to the first transition that needs resolved
if (MyEditItem != null && MyEditItem.MyItemInfo.ItemID != oldEditItem.MyItemInfo.ItemID) oldEditItem.Dispose(); // C2017-031: Support for paste/replace an enhanced step, add Dispose of old EditItem if enhanced
if (MyEditItem != null && ((MyEditItem.MyItemInfo.ItemID != oldEditItem.MyItemInfo.ItemID) || MyEditItem.MyItemInfo.IsEnhancedStep))
oldEditItem.Dispose();
// C2017-031: Support for paste/replace an enhanced step, refresh ItemInfo's in user interface caches.
if (MyEditItem.MyItemInfo.IsEnhancedStep)
{
MyEditItem.MyItemInfo = ItemInfo.Get(MyEditItem.MyItemInfo.ItemID);
tmp.MyStepPanel.SelectedItemInfo = ItemInfo.Get(MyEditItem.MyItemInfo.ItemID);
}
} }
private void btnPdfCreate_Click(object sender, EventArgs e) private void btnPdfCreate_Click(object sender, EventArgs e)

View File

@@ -308,7 +308,7 @@ namespace Volian.Print.Library
h.Font = f3; 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"; 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") 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 else
h.Add(actionWhat); h.Add(actionWhat);
if (cai.DTS > maxDTS) if (cai.DTS > maxDTS)
@@ -1465,7 +1465,7 @@ namespace Volian.Print.Library
// h.Add(cai.ActionWhen > MyProc.DTS ? cai.ActionWhat : "Original"); // 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"; 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") 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 else
h.Add(actionWhat); h.Add(actionWhat);
c = new PdfPCell(h); c = new PdfPCell(h);

View File

@@ -1074,7 +1074,9 @@ namespace Volian.Print.Library
string lastProcNum = string.Empty; string lastProcNum = string.Empty;
string lastSection = string.Empty; string lastSection = string.Empty;
string lastDVPath = string.Empty; //CSM B2021-043 Step numbering is out of order in RO usage report if RO values exist on steps 10 or higher.
//setting this to something other than empty - otherwise will not print first initial header
string lastDVPath = "start";
if (_ResultList.Count > 0) if (_ResultList.Count > 0)
{ {
foreach (ItemInfo item in _ResultList) foreach (ItemInfo item in _ResultList)
@@ -1088,6 +1090,12 @@ namespace Volian.Print.Library
// procedure set title at the top of the report (once). // procedure set title at the top of the report (once).
if (lastDVPath != "" && lastDVPath != item.SearchDVPath) if (lastDVPath != "" && lastDVPath != item.SearchDVPath)
{ {
//CSM B2021-043 Step numbering is out of order in RO usage report if RO values exist on steps 10 or higher.
//was placing last item from the precious section in the new section
//place it before starting the new section and then clear items
PutROusageForProcedure(datatable, roUse, headerwidths);
roUse.Clear();
subTable = new PdfPTable(headerwidths); subTable = new PdfPTable(headerwidths);
AddMainPathGroup(datatable, item.SearchDVPath, splitAt, f2, Color.LIGHT_GRAY, 0); AddMainPathGroup(datatable, item.SearchDVPath, splitAt, f2, Color.LIGHT_GRAY, 0);
lastProcNum = string.Empty; lastProcNum = string.Empty;
@@ -1138,7 +1146,7 @@ namespace Volian.Print.Library
document.Add(datatable); document.Add(datatable);
} }
private void AddProcROUse(ItemInfo item, SortedDictionary<string, List<ItemInfo>> procRoUse) private void AddProcROUse(ItemInfo item, Dictionary<string, List<ItemInfo>> procRoUse)
{ {
string dictKey = GetCurProcNum(item.SearchPath) + " " + GetCurSectionNumTitle(item); string dictKey = GetCurProcNum(item.SearchPath) + " " + GetCurSectionNumTitle(item);
@@ -1157,7 +1165,7 @@ namespace Volian.Print.Library
} }
} }
private void PutStepListForProcedure(PdfPTable rotable, SortedDictionary<string, ItemInfo> sortedStepList) private void PutStepListForProcedure(PdfPTable rotable, Dictionary<string, ItemInfo> sortedStepList)
{ {
// C2017-036 get best available proportional font for symbols that looks close to Arial // C2017-036 get best available proportional font for symbols that looks close to Arial
// Note that Microsoft no longer supplies Arial Unicode MS as of Word16 // Note that Microsoft no longer supplies Arial Unicode MS as of Word16
@@ -1173,13 +1181,13 @@ namespace Volian.Print.Library
sortedStepList.Clear(); sortedStepList.Clear();
} }
private void PutROusageForROID(PdfPTable curTable, SortedDictionary<string, List<ItemInfo>> procRoUse, float[] headerwidths, int splitAt, bool moreThanOneProcSet) private void PutROusageForROID(PdfPTable curTable, Dictionary<string, List<ItemInfo>> procRoUse, float[] headerwidths, int splitAt, bool moreThanOneProcSet)
{ {
// C2017-036 get best available proportional font for symbols that looks close to Arial // C2017-036 get best available proportional font for symbols that looks close to Arial
// Note that Microsoft no longer supplies Arial Unicode MS as of Word16 // Note that Microsoft no longer supplies Arial Unicode MS as of Word16
iTextSharp.text.Font f2 = pdf.GetFont(Volian.Base.Library.vlnFont.ReportsFont, 10, 0, Color.BLACK); iTextSharp.text.Font f2 = pdf.GetFont(Volian.Base.Library.vlnFont.ReportsFont, 10, 0, Color.BLACK);
SortedDictionary<string, ItemInfo> sortedStepList = new SortedDictionary<string, ItemInfo>(); Dictionary<string, ItemInfo> sortedStepList = new Dictionary<string, ItemInfo>();
string lastProcKey = string.Empty; string lastProcKey = string.Empty;
string lastProcNumTitle = string.Empty; string lastProcNumTitle = string.Empty;
string lastDVPath = string.Empty; string lastDVPath = string.Empty;
@@ -1293,7 +1301,7 @@ namespace Volian.Print.Library
private void BuildROUsageTableByRO(iTextSharp.text.Document document) private void BuildROUsageTableByRO(iTextSharp.text.Document document)
{ {
SortedDictionary<string, List<ItemInfo>> procRoUse = new SortedDictionary<string, List<ItemInfo>>(); Dictionary<string, List<ItemInfo>> procRoUse = new Dictionary<string, List<ItemInfo>>();
float[] headerwidths = { 20, 80 }; float[] headerwidths = { 20, 80 };
PdfPTable datatable = new PdfPTable(1); PdfPTable datatable = new PdfPTable(1);

View File

@@ -2953,7 +2953,7 @@ namespace Volian.Print.Library
if (ii.Sections == null) return; // B2021-067 crash on null reference if (ii.Sections == null) return; // B2021-067 crash on null reference
foreach (SectionInfo si in ii.Sections) 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) if (si.IsStepSection)
{ {

View File

@@ -226,6 +226,8 @@ namespace Volian.Print.Library
else else
yoff += vlnPrintObject.SixLinesPerInch; yoff += vlnPrintObject.SixLinesPerInch;
} }
if (box.MyBox != null)
yoff += (float)(box.MyBox.AdjSpB4Tab ?? 0); // F2024-078 adjust space above the Note/Caution box tab
} }
bxIndex = bxIndx; bxIndex = bxIndx;
} }
@@ -273,6 +275,8 @@ namespace Volian.Print.Library
box.YOffset = yoff + ((ln - 1) * vlnPrintObject.SixLinesPerInch); box.YOffset = yoff + ((ln - 1) * vlnPrintObject.SixLinesPerInch);
if (childItemInfo.FormatStepData.OneLineBeforeTab) ln++; if (childItemInfo.FormatStepData.OneLineBeforeTab) ln++;
yoff += ln * vlnPrintObject.SixLinesPerInch; yoff += ln * vlnPrintObject.SixLinesPerInch;
if (box.MyBox != null)
yoff += (float)(box.MyBox.AdjSpB4Tab ?? 0); // F2024-078 adjust space above the Note/Caution box tab
} }
} }
bxIndex = bxIndx; bxIndex = bxIndx;
@@ -3781,7 +3785,12 @@ namespace Volian.Print.Library
else if (itemInfo.MyTab.AltPrintTab != null) else if (itemInfo.MyTab.AltPrintTab != null)
mytab = new vlnTab(cb, this, itemInfo.MyTab.AltPrintTab, itemInfo.MyTab.AltPrintTab, localXOffset, yoff, itemInfo.MyTab.MyFont, doSectTab, StepRTB.MySymbolFontName, itemInfo.MyTab.RemovedStyleUnderline); mytab = new vlnTab(cb, this, itemInfo.MyTab.AltPrintTab, itemInfo.MyTab.AltPrintTab, localXOffset, yoff, itemInfo.MyTab.MyFont, doSectTab, StepRTB.MySymbolFontName, itemInfo.MyTab.RemovedStyleUnderline);
else else
mytab = new vlnTab(cb, this, itemInfo.MyTab.Text, itemInfo.MyTab.CleanText, localXOffset, yoff, itemInfo.MyTab.MyFont, doSectTab, StepRTB.MySymbolFontName, itemInfo.MyTab.RemovedStyleUnderline); {
string clntxt = itemInfo.MyTab.CleanText;
if (!string.IsNullOrEmpty(itemInfo.FormatStepData?.TabData?.MacroEditTag) && itemInfo.FormatStepData.TabData.MacroEditTag == "_" && clntxt.StartsWith("_"))
clntxt = clntxt.Substring(1);
mytab = new vlnTab(cb, this, itemInfo.MyTab.Text, clntxt, localXOffset, yoff, itemInfo.MyTab.MyFont, doSectTab, StepRTB.MySymbolFontName, itemInfo.MyTab.RemovedStyleUnderline);
}
PartsLeft.Add(mytab); PartsLeft.Add(mytab);
if (mytab.MyMacro != null) PartsLeft.Add(mytab.MyMacro); if (mytab.MyMacro != null) PartsLeft.Add(mytab.MyMacro);
} }
@@ -5492,24 +5501,53 @@ namespace Volian.Print.Library
// code looks up parents to see if they have next before returning a 0 (no blank line) // code looks up parents to see if they have next before returning a 0 (no blank line)
// B2022-042: double Caution followed by Critical Step missing bullet // B2022-042: double Caution followed by Critical Step missing bullet
// F2022-010: substeps in multiple notes, cautions, warning print differently // F2022-010: substeps in multiple notes, cautions, warning print differently
if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.NoBlankLastNoteCautionWarn && (MyItemInfo.IsInCautionOrNote)) if (MyItemInfo.IsInCautionOrNote)
{ {
if ((MyItemInfo.Steps == null || MyItemInfo.Steps.Count == 0) && (MyItemInfo.NextItem == null)) // there are no sub-steps, see if any parents have next float adjLastBlankLineInNoteCautionWarning = 0;
// Get the box information for the Note, Caution, or Warning
ItemInfo tifo = (MyItemInfo.IsCaution || MyItemInfo.IsNote) ? MyItemInfo : MyItemInfo.ParentNoteOrCaution;
int typ = ((int)tifo.MyContent.Type) % 10000;
int? bxIndx = tifo.ActiveFormat.PlantFormat.FormatData.StepDataList[typ].StepLayoutData.STBoxindex;
if (bxIndx != null)
{ {
ItemInfo par = MyItemInfo.MyParent; Box bx = tifo.ActiveFormat.PlantFormat.FormatData.BoxList[(int)bxIndx];
while (par.IsInCautionOrNote) // while in the caution or note, see if there is anything below this item // F2024-078 save the adjustment of the last blank line - this value will be added to the SixLinesPerInch value (a blank line)
{ adjLastBlankLineInNoteCautionWarning = (float)(bx.AdjLastBlnkLn ?? 0);
// if there is no next item, or content types are different, go up to see if the parent has any next item. If note }
// keep going up tree, otherwise there is a next so don't return 0, i.e. continue on with code to determine //}
// whether there is a blank line // if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.NoBlankLastNoteCautionWarn && (MyItemInfo.IsInCautionOrNote))
if ((par.NextItem == null) || (par.MyContent.Type != par.NextItem.MyContent.Type)) par = par.MyParent; // F2024-078 added check for adjustment of the last blank line in the Note/Caution box
else break; if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.NoBlankLastNoteCautionWarn || adjLastBlankLineInNoteCautionWarning != 0)
} {
if (!par.IsInCautionOrNote || (par != null && par.MyContent.Type != par.NextItem.MyContent.Type)) return 0; if ((MyItemInfo.Steps == null || MyItemInfo.Steps.Count == 0) && (MyItemInfo.NextItem == null)) // there are no sub-steps, see if any parents have next
{
ItemInfo par = MyItemInfo.MyParent;
while (par.IsInCautionOrNote) // while in the caution or note, see if there is anything below this item
{
// if there is no next item, or content types are different, go up to see if the parent has any next item. If note
// keep going up tree, otherwise there is a next so don't return 0, i.e. continue on with code to determine
// whether there is a blank line
if ((par.NextItem == null) || (par.MyContent.Type != par.NextItem.MyContent.Type)) par = par.MyParent;
else break;
}
if (!par.IsInCautionOrNote || (par != null && par.MyContent.Type != par.NextItem.MyContent.Type))
{
if (adjLastBlankLineInNoteCautionWarning != 0)
return SixLinesPerInch + adjLastBlankLineInNoteCautionWarning; // F2024-078 adjust the size of the last blank line of Note/Caution box
else
return 0; // no blank line after last text line of Note/Caution/Warning
}
}
if ((MyItemInfo.Steps == null || MyItemInfo.Steps.Count == 0) && MyItemInfo.NextItem != null && MyItemInfo.MyContent.Type != MyItemInfo.NextItem.MyContent.Type)
{
if (adjLastBlankLineInNoteCautionWarning != 0)
return SixLinesPerInch + adjLastBlankLineInNoteCautionWarning;
else
return 0; // no blank line after last text line of Note/Caution/Warning
}
} }
if ((MyItemInfo.Steps == null || MyItemInfo.Steps.Count == 0) && MyItemInfo.NextItem != null && MyItemInfo.MyContent.Type != MyItemInfo.NextItem.MyContent.Type) return 0;
} }
if (MyItemInfo.Ordinal % everyNLines == 0 || MyItemInfo.NextItem == null) return SixLinesPerInch; if (MyItemInfo.Ordinal % everyNLines == 0 || MyItemInfo.NextItem == null) return SixLinesPerInch;
// B2022-003: BNPP Alarms (BNPPalr) - incorrect line spacing for substeps off substeps. Added a format flag so as not to affect other plants. // B2022-003: BNPP Alarms (BNPPalr) - incorrect line spacing for substeps off substeps. Added a format flag so as not to affect other plants.
if (MyItemInfo.FormatStepData != null && MyItemInfo.FormatStepData.StepPrintData != null && MyItemInfo.FormatStepData.StepPrintData.BlankAfterSubWithSub && MyItemInfo.NextItem != null && MyItemInfo.HasChildren && MyItemInfo.Steps != null && MyItemInfo.Steps.Count > 0) return SixLinesPerInch; if (MyItemInfo.FormatStepData != null && MyItemInfo.FormatStepData.StepPrintData != null && MyItemInfo.FormatStepData.StepPrintData.BlankAfterSubWithSub && MyItemInfo.NextItem != null && MyItemInfo.HasChildren && MyItemInfo.Steps != null && MyItemInfo.Steps.Count > 0) return SixLinesPerInch;
@@ -5792,6 +5830,7 @@ namespace Volian.Print.Library
float hdrWidth = (itemInfo.MyHeader.CleanText == null) ? 0 : itemInfo.MyHeader.CleanText.Length * 6; float hdrWidth = (itemInfo.MyHeader.CleanText == null) ? 0 : itemInfo.MyHeader.CleanText.Length * 6;
int typ = ((int)itemInfo.MyContent.Type) % 10000; int typ = ((int)itemInfo.MyContent.Type) % 10000;
int? bxIndx = formatInfo.PlantFormat.FormatData.StepDataList[typ].StepLayoutData.STBoxindex; int? bxIndx = formatInfo.PlantFormat.FormatData.StepDataList[typ].StepLayoutData.STBoxindex;
float adjmentAfterBoxedNoteCautionTab = 0; // F2024-078 used to save the adjustment of the space after the Note/Caution tab
if (itemInfo.MyHeader.Justify == System.Drawing.ContentAlignment.MiddleCenter) if (itemInfo.MyHeader.Justify == System.Drawing.ContentAlignment.MiddleCenter)
{ {
@@ -5801,7 +5840,8 @@ namespace Volian.Print.Library
if (bx.TabPos > 0) if (bx.TabPos > 0)
xoff += (float)bx.TabPos; // xoff starts as left margin xoff += (float)bx.TabPos; // xoff starts as left margin
else else
xoff += (float)((bx.TxtStart + _MyBoxLeftAdj + XOffsetBox + (bx.TxtWidth / 2)) - (hdrWidth / 2)); // xoff starts as left margin xoff += (float)((bx.TxtStart + _MyBoxLeftAdj + XOffsetBox + (bx.TxtWidth / 2)) - (hdrWidth / 2)); // xoff starts as left margin
adjmentAfterBoxedNoteCautionTab = (float) (bx.AdjSpAftTab ?? 0); // F2024-078 save the adjustment of the space (line) after the Note/Caution tab
} }
else if (formatInfo.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm && itemInfo.IsInRNO && (itemInfo.IsCaution || itemInfo.IsNote)) // C2014-009 else if (formatInfo.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm && itemInfo.IsInRNO && (itemInfo.IsCaution || itemInfo.IsNote)) // C2014-009
xoff = XOffset + (para.Width / 2) - (hdrWidth / 2); xoff = XOffset + (para.Width / 2) - (hdrWidth / 2);
@@ -5836,7 +5876,7 @@ namespace Volian.Print.Library
// F2022-121 added SpecialStepsFoldoutKeepWhiteSpace flag to allow for all of the other special foldout formatting, but // F2022-121 added SpecialStepsFoldoutKeepWhiteSpace flag to allow for all of the other special foldout formatting, but
// not compress the page - this need to handle explicit OR and AND sub-steps to ensure there are blank lines before and after // not compress the page - this need to handle explicit OR and AND sub-steps to ensure there are blank lines before and after
// the separator text. // the separator text.
return myHeader.Height + (!MyItemInfo.MyDocStyle.SpecialStepsFoldout || (MyItemInfo.MyDocStyle.SpecialStepsFoldout && MyItemInfo.MyDocStyle.SpecialStepsFoldoutKeepWhiteSpace) || (MyItemInfo.MyDocStyle.ExtraLineHeader && (MyItemInfo.IsCaution || MyItemInfo.IsNote)) ? bSpaceIn ? SixLinesPerInch : 0 : 0); return myHeader.Height + (!MyItemInfo.MyDocStyle.SpecialStepsFoldout || (MyItemInfo.MyDocStyle.SpecialStepsFoldout && MyItemInfo.MyDocStyle.SpecialStepsFoldoutKeepWhiteSpace) || (MyItemInfo.MyDocStyle.ExtraLineHeader && (MyItemInfo.IsCaution || MyItemInfo.IsNote)) ? bSpaceIn ? SixLinesPerInch : 0 : 0) + adjmentAfterBoxedNoteCautionTab; // F2024-078 add adjustment to the space after the Note/Caution tab
} }
private float AdjustToCharPosition(float position, float? CPI) private float AdjustToCharPosition(float position, float? CPI)
{ {
@@ -6847,7 +6887,13 @@ namespace Volian.Print.Library
} }
else if (itemInfo.IsSection) 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; float adjwidths = 0;
adjwidths = AdjustMetaWidth(itemInfo, formatInfo, adjwidths, false); adjwidths = AdjustMetaWidth(itemInfo, formatInfo, adjwidths, false);
Width += (adjwidths + _WidthAdjust); Width += (adjwidths + _WidthAdjust);