Compare commits

..
1046 Commits
Author SHA1 Message Date
mschill 3ae907cb69 Restore FixRev.Bat 2026-08-26 10:23:01 -04:00
mschill 51d52fa0c7 Move - convert formats for 16 bit to old 2026-08-26 10:17:15 -04:00
mschill 46feeed669 Move to old repo 2026-08-26 10:14:05 -04:00
mschill 0202ecabd5 Restore FivRev.Bat 2026-08-26 09:59:46 -04:00
mschill 72882bccce remove PROMS test apps 2026-08-26 09:57:02 -04:00
mschill 7b738c5bff Move to Old 2026-08-26 09:50:37 -04:00
mschill 63aad1e696 No longer used .bat file & empty project 2026-08-26 08:07:51 -04:00
mschill 19666c33bf Remove bak files / 7z files and unused solutions 2026-08-26 05:54:42 -04:00
mschill b06a2c5b62 EPocalipse only used in Dataloader 2026-08-26 05:44:40 -04:00
mschill 6a55b26372 Move DataLoader and Synch 2026-08-26 05:38:31 -04:00
mschill 2f3d7bf698 Moved to Old Repo
Unused Solutions
.bak files
Old Referenced Objects Code / Correct ROEditor Code in PROMS\ReferencedObjects\Exe\RefObj\ROEditor
LBWordLibrary - LBBozoComObject.cs, LBComObject.old.cs not part of solution
PROMS folder (correct versions in VEPROMS) - dlgApproveProcedure.cs,dlgExportImport.cs,frmVEPROMS.cs,StepRTB.cs,VlnFlexGrid.cs,Grid2Pdf.cs,Rtf2iTextSharp.cs
VEPROMS User Interface - Correct dlgChgId, FindReplace in Volian.Controls.Library
VEPROMS.CSLA.Library - Remove cs files that are not part of project/solution
Volian.Controls.Library - Remove cs files that are not part of project/solution
2026-08-25 07:00:54 -04:00
jjenko dbea4abafb Merge pull request 'F2026-020 Added the missing Layout settings to "Attachments - Separate Page Numbers" document style in the Farley FSG format.' (#806) from F2026-20_Farley_FSG_Format into Development
format only change - good for testing
2026-08-14 11:01:17 -04:00
jjenko 57622931a5 F2026-020 Added the missing Layout settings to "Attachments - Separate Page Numbers" document style in the Farley FSG format. 2026-08-14 11:02:13 -04:00
mschill 75368c2fe0 Merge pull request 'F2026-018 Changed the font to Arial 11pt in all Farley formats B2026-072 Fixed bug where a Caution or Note in the RNO column would sometimes print on top of text in the AER column' (#805) from F2026-018_B2026-072_Farely_Arial_Print_Fix into Development
Looks Good to me. Ready for QA.
2026-08-13 14:31:33 -04:00
jjenko 5e071bd35a F2026-018 Changed the font to Arial 11pt in all Farley formats B2026-072 Fixed bug where a Caution or Note in the RNO column would sometimes print on top of text in the AER column 2026-08-13 14:28:55 -04:00
jjenko 77639318c6 Merge pull request 'F2026-019 FixedlLinked attachments that were showing a double attachment number prefixed to the step number Added a unlinked background step type that includes the attachment number' (#804) from F2026-019_CallawayBackgrounds into Development
format only change - good for testing
2026-08-12 10:37:04 -04:00
jjenko 1a890b11cb F2026-019 FixedlLinked attachments that were showing a double attachment number prefixed to the step number Added a unlinked background step type that includes the attachment number 2026-08-12 10:38:02 -04:00
jjenko 795f21f04b Merge pull request 'B2026-039-Error-sequence-contains-no-elements' (#802) from B2026-039-Error-sequence-contains-no-elements into Development
good for testing
2026-08-11 08:46:39 -04:00
plarsen c95e86c2a6 Merge branch 'Development' into B2026-039-Error-sequence-contains-no-elements 2026-08-10 21:37:25 -04:00
plarsen 18d2aa3b51 B2026-039-Error-sequence-contains-no-elements 2026-08-10 21:28:29 -04:00
jjenko 7ba3ea8b13 Merge pull request 'B2026 056 syntax problem in x/y plot' (#801) from B2026-056-Syntax-problem-in-X/Y-plot into Development
good for testing
2026-08-10 11:11:07 -04:00
plarsen 30b34c3a50 B2026-056-Syntax-problem-in-XY-Plot 2026-08-10 10:02:16 -04:00
plarsen 6a42800d2c B2026-056-Syntax-problem-in-XY-Plot 2026-08-09 22:54:27 -04:00
plarsen 70f132540f B2026-056-Syntax-problem-in-XY-plot 2026-08-07 12:15:52 -04:00
plarsen cd9eaaaba1 B2026-056-Syntac-problem-in-XY-Plot 2026-08-05 21:42:44 -04:00
plarsen 70aa1f4024 B2026-056-Syntax-problem-in-XY-plot 2026-08-05 17:23:13 -04:00
plarsen 1d634d96fe Merge branch 'Development' of https://git.volian.com/Volian/SourceCode into Development 2026-08-05 17:15:54 -04:00
jjenko 4eb5254d96 Merge pull request 'B2026-070 –Barakah Word Section with less than sign' (#800) from B2026-070 into Development
good for testing
2026-08-04 09:14:05 -04:00
mschill 6c2eee0cbc B2026-070 –Barakah Word Section with less than sign 2026-08-04 07:57:01 -04:00
plarsen 3c5265cecf Merge branch 'Development' of https://git.volian.com/Volian/SourceCode into Development 2026-08-03 10:31:24 -04:00
mschill 478d35890d Merge pull request 'C2026-047 Improved the efficiency of retrieving Alarm Point Table information.' (#799) from C2026-047_AlarmPointTableProcessing into Development
Looks Good - Ready for QA.
2026-08-03 05:36:26 -04:00
jjenko 1b9b63412c C2026-047 Improved the efficiency of retrieving Alarm Point Table information. 2026-07-31 13:44:19 -04:00
mschill 3bb8fff3a1 Merge pull request 'B2026 053 find unlinked values of selected' (#795) from B2026-053-Find-Unlinked-Values-of-Selected into Development
Looks Good. Ready For QA.
FYI - Branch was out of date so I updated it.

Would be sure to test both Searches that changed.
2026-07-30 15:29:18 -04:00
mschill 694bc0ead4 Merge branch 'Development' into B2026-053-Find-Unlinked-Values-of-Selected 2026-07-30 15:27:52 -04:00
plarsen cfc324d31e B2026-053-Find-Unlinked-Values-of-Selected 2026-07-30 15:22:32 -04:00
plarsen 43b63e2843 B2026-053-Find-Unlinked-Values-of-Selected 2026-07-30 12:51:24 -04:00
jjenko f2ec510a70 Merge pull request 'B2026-069 – Updated Messaging related to Checking out working Drafts when ROs are being checked if they need updated.' (#798) from B2026-069 into Development
good for testing
2026-07-30 10:54:23 -04:00
mschill 453edbb28e B2026-069 – Updated Messaging related to Checking out working Drafts when ROs are being checked if they need updated. 2026-07-30 10:54:24 -04:00
plarsen bc9407f52f B2026-053-Find-Unlinked-Values-of-Selected 2026-07-29 13:48:05 -04:00
plarsen 954cc5918f B2026-053-Find-Unlinked-Values-of-Selected 2026-07-29 12:34:20 -04:00
plarsen 4ef16e7856 B2026-053-Find-Unlinked-Values-of-Selected 2026-07-28 15:46:43 -04:00
plarsen 1eb3c3e725 B2026-053-Find-Unlinked-Values-of-Selected 2026-07-28 15:39:17 -04:00
plarsen a89c2d3d22 B2026-053-Find-Unlinked-Values-of-Selected 2026-07-28 15:37:37 -04:00
plarsen 914837a5a2 B2026-053-Find-Unlinked-Values-of-Selected 2026-07-28 10:57:55 -04:00
plarsen 9643a71ba5 Merge branch 'Development' of https://git.volian.com/Volian/SourceCode into Development 2026-07-28 08:35:53 -04:00
mschill aa7e0528f8 Merge branch 'Development' into B2026-053-Find-Unlinked-Values-of-Selected 2026-07-28 06:34:08 -04:00
plarsen 57bd8d569e B2026-053-Find-Unlinked-Values-of-Selected 2026-07-27 13:45:20 -04:00
plarsen b49d8871a2 B2026-053-Find-Unlinked-Values-of-Selected 2026-07-27 12:25:46 -04:00
plarsen b90d419bc5 B2026-053-Find-Unlinked-Values-of-Selected 2026-07-27 12:14:55 -04:00
jjenko 1f48d498e1 Merge pull request 'B2026-067 – Corrected specific instance where a crash would occur when multiple Word Sections open and were closed in a specific order.' (#797) from B2026-067 into Development
good for testing
2026-07-27 11:54:21 -04:00
mschill da6139c932 B2026-067 – Corrected specific instance where a crash would occur when multiple Word Sections open and were closed in a specific order. 2026-07-27 11:47:36 -04:00
plarsen be744b40a3 B2026-053-Find-Unlinked-Values-of-Selected 2026-07-27 11:35:42 -04:00
plarsen 780ce657ca B2026-053-Find-Unlinked-Values-of-Selected 2026-07-27 11:28:40 -04:00
plarsen 464be0f803 B2026-053-Find-Unlinked-Values-of-Selected 2026-07-27 11:22:49 -04:00
plarsen 58a6cb9a24 Development 2026-07-27 11:19:47 -04:00
plarsen 9bf7b2ffde B2026-053-Find-Unlinked-Values-of-Selected 2026-07-27 11:14:19 -04:00
mschill cde1f28215 Merge pull request 'B2026-066 Fixed issue of the Update RO Values button and Working Draft context menu item, not being disabled after Updating RO Values.' (#796) from B2026-066_UpdateROsButtonFix into Development
Looks Good. Ready for QA.
2026-07-27 11:09:42 -04:00
jjenko db198cb7d0 B2026-066 Fixed issue of the Update RO Values button and Working Draft context menu item, not being disabled after Updating RO Values. 2026-07-27 11:08:35 -04:00
plarsen 99fe567e78 Development 2026-07-27 09:13:34 -04:00
plarsen 2261c8f0f5 B2026-053-Find-Unlinked-Values-of-Selected 2026-07-24 10:47:25 -04:00
plarsen f93b16fc52 B2026-053-Find-Unlinked-Values-of-Selected 2026-07-23 09:21:09 -04:00
plarsen 7c3a43749c B2026-053-Find-Unlinked-Values-of-Selected 2026-07-23 09:09:22 -04:00
plarsen ecec7b9f1a Merge branch 'Development' of https://git.volian.com/Volian/SourceCode into Development 2026-07-23 08:17:55 -04:00
plarsen 1aca7335f7 Development 2026-07-23 08:15:18 -04:00
plarsen ba5aee6640 Development 2026-07-21 11:33:58 -04:00
jjenko abaf55e9b1 Merge pull request 'C2026-046 - Decrease check if need to update ROs.' (#793) from C2026-046 into Development
good for testing
2026-07-21 10:32:30 -04:00
mschill 3a2dd0b0aa C2026-046 - Decrease check if need to update ROs. 2026-07-21 10:24:46 -04:00
jjenko 0fed1acfd8 Merge pull request 'F2026-017 Blank line was sometimes missing after the Note and Caution text. This was a 64-bit build difference that affected the text width calculations.' (#792) from F2026-017_SummerCautionNoteAdj into Development
Format only change - good for testing phase
2026-07-17 10:11:25 -04:00
jjenko d7c2300021 F2026-017 Blank line was sometimes missing after the Note and Caution text. This was a 64-bit build difference that affected the text width calculations. 2026-07-17 10:11:43 -04:00
jjenko fca333299d Merge pull request 'C2026 044' (#791) from C2026-044 into Development
good for testing phase
2026-07-16 08:53:54 -04:00
mschill a13b03a136 C2026-044 – ve_GetParentItem Performance Improvement
Added Included columns to Index
2026-07-16 08:48:11 -04:00
mschill 48054f5bf1 C2026-044 – ve_GetParentItem Performance Improvement 2026-07-16 08:26:52 -04:00
mschill 51f2897a33 C2026-044 – ve_GetParentItem Performance Improvement 2026-07-16 08:26:07 -04:00
plarsen 7a3a07b0da Merge branch 'Development' of https://git.volian.com/Volian/SourceCode into Development 2026-07-16 08:25:16 -04:00
jjenko 7c3cfca86c Merge pull request 'B2026-055 – Transition Search Improvements' (#790) from B2026-055 into Development
good for testing
2026-07-15 13:54:03 -04:00
mschill 352af15984 B2026-055 – Transition Search Improvements 2026-07-15 12:43:38 -04:00
jjenko 2c42933d58 Merge pull request 'F2026-016 Robinson- created a new sub-format for a Foldout section that uses a smaller font size.' (#789) from F2026-016_Robinson_Foldout_Format into Development
format only change. good for testing
2026-07-10 09:57:15 -04:00
jjenko 2e68362836 F2026-016 Robinson- created a new sub-format for a Foldout section that uses a smaller font size. 2026-07-10 09:56:58 -04:00
jjenko c6736db7ea Merge pull request 'B2026-065 Adjusted the Callaway Two Column format for the position of RNO tables.' (#788) from B2026-065_RNO_TablePositionAdjustment into Development
format only change.  Good for testing
2026-07-09 10:41:42 -04:00
jjenko c005f03af8 B2026-065 Adjusted the Callaway Two Column format for the position of RNO tables. 2026-07-09 10:41:46 -04:00
jjenko 459aabcc86 Merge pull request 'B2026-064 – Updating ROs from Display ROs should not error' (#787) from B2026-064 into Development
good for testing
2026-07-07 11:01:30 -04:00
mschill ad33097d5e B2026-064 – Updating ROs from Display ROs should not error 2026-07-07 10:59:51 -04:00
jjenko 8d7735735e Merge pull request 'F2026_015 Moved the change bar position to the right one space to accommodate the wider Caution and Note boxes' (#786) from F2026-015_SouthTexas_ChgBars into Development
format only change.  Ready for testing
2026-07-01 09:15:24 -04:00
jjenko 25bbc46925 F2026_015 Moved the change bar position to the right one space to accommodate the wider Caution and Note boxes 2026-07-01 09:17:23 -04:00
jjenko 5a26b0ee35 Merge pull request 'B2026-054 - When performing a Transition search, the Formats dropdown list is repeating several times.' (#785) from B2026-054 into Development
good for testing phase
2026-07-01 08:19:38 -04:00
mschill 09a397bed2 B2026-054 - When performing a Transition search, the Formats dropdown list is repeating several times. 2026-07-01 07:21:25 -04:00
jjenko a33039bcae Merge pull request 'F2026-014 South Texas EOP format – adjusted the Caution and Note box width. Also remove the extra space between bullets and multiple Caution/Note text' (#784) from F2026-014_SouthTexas_Caution_Box_Width into Development
format only changes - ready for testing
2026-06-30 14:34:22 -04:00
jjenko 0ebd125266 F2026-014 South Texas EOP format – adjusted the Caution and Note box width. Also remove the extra space between bullets and multiple Caution/Note text 2026-06-30 14:35:28 -04:00
jjenko fd16a6b6c3 Merge pull request 'B2026-063 - Issue Deleting Steps with Grids' (#783) from B2026-063 into Development
good for testing
2026-06-30 13:50:22 -04:00
mschill cf19f764c7 Copy / Paste Error when updating Revision Comment 2026-06-30 13:49:37 -04:00
jjenko 88850d6c25 Merge pull request 'B2026-063 - Issue Deleting Steps with Grids' (#782) from B2026-063 into Development
good for testing phase
2026-06-30 09:28:28 -04:00
mschill b173c61575 B2026-063 - Issue Deleting Steps with Grids 2026-06-30 09:11:43 -04:00
jjenko 3b866f0952 Merge pull request 'B2026-057 - Issue when ROs are out of date and swapping between sets – sometimes asked if want to update ROs twice if said no the first time.' (#781) from B2026-057 into Development
good for testing phase
2026-06-29 10:00:42 -04:00
mschill 94db524a11 B2026-057 - Issue when ROs are out of date and swapping between sets – sometimes asked if want to update ROs twice if said no the first time. 2026-06-29 09:51:48 -04:00
jjenko f27616ce1f Merge pull request 'B2026-052 - Issue when parens inside a Hardspaced Multi-RO Return Values.' (#780) from B2026-052 into Development
good for testing phase
2026-06-29 08:47:11 -04:00
mschill 7f75af7119 B2026-052 - Issue when parens inside a Hardspaced Multi-RO Return Values.
PROMS crashes when doing an update ROFst.
2026-06-25 15:46:25 -04:00
plarsen 05ab48cdc5 Merge branch 'Development' of https://git.volian.com/Volian/SourceCode into Development 2026-06-24 09:49:07 -04:00
mschill 38e42723af Merge pull request 'B2026-060, B2026-061, Fixed issue where change bars were printing when they should not have been.' (#778) from B2026-60_B2026-61 into Development
Looks Good. Ready for QA!
2026-06-18 14:18:24 -04:00
jjenko f4ec60c9e0 B2026-060, B2026-061, Fixed issue where change bars were printing when they should not have been. 2026-06-18 14:06:30 -04:00
plarsen fd51c209a3 Development 2026-06-15 15:18:03 -04:00
jjenko 01394b1978 Merge pull request 'B2026 058' (#777) from B2026-058 into Development
good for testing
2026-06-12 15:15:39 -04:00
mschill 9b7db08fcf update unicode 2026-06-12 15:02:01 -04:00
mschill 6d7cdef223 B2026-058 – If approving multiple procedures at the same time with a multiunit set and one of the procedures is open, PROMS sometimes loses that it is set for an individual unit. 2026-06-12 14:57:42 -04:00
jjenko d9c35fe02a Merge pull request 'C2026 021 b2026 048' (#775) from C2026-021_B2026-048 into Development
good for testing
2026-05-29 09:47:07 -04:00
mschill 250b3fa406 Remove commented out code 2026-05-29 06:33:37 -04:00
mschill a5a3f16177 C2026-021_B2026-048 Expand Functionality of Viewing Mode 2026-05-29 06:06:58 -04:00
jjenko ffa7e21c18 Merge pull request 'B2026-050 Problem when Approval with Duplicate Rev Numbers' (#773) from B2026-050 into Development
good for testing phase
2026-05-26 08:38:20 -04:00
mschill 4608c05df0 B2026-050 Problem when Approval with Duplicate Rev Numbers 2026-05-26 07:01:43 -04:00
jjenko 56ff5a0213 Merge pull request 'B2026-051 Fix Error loading Display Ros when cannot find RO lookup' (#772) from B2026-051 into Development
good for testing phase
2026-05-22 11:34:31 -04:00
mschill 014fde301c B2026-051 Fix Error loading Display Ros when cannot find RO lookup 2026-05-22 11:07:57 -04:00
jjenko 0080a42423 Merge pull request 'C2026-008 - Re-Architect RO.FST to include RO Modification date/time and use those when updating ROs from the RO.FST' (#756) from C2026-008 into Development
Reviewed-on: #756
Reviewed-by: John Jenko <jjenko@volian.com>

This was pre-tested prior to  this merge.
2026-05-19 09:24:09 -04:00
mschill 2035a4c855 Merge branch 'Development' into C2026-008 2026-05-19 08:59:34 -04:00
jjenko 4dc6a190fa Merge pull request 'C2026-037 Change History Deleted Items to 24-hour clock' (#771) from C2026-037 into Development
good for testing
2026-05-19 08:56:47 -04:00
mschill e0db322262 C2026-037 Change History Deleted Items to 24-hour clock 2026-05-19 06:56:31 -04:00
mschill 8f1bb45e42 C2026-008 - Re-Architect RO.FST to include RO Modification date/time and use those when updating ROs from the RO.FST
--Fix for Blank popup box when completes updating ROs through Admin Tool & fix for updating ROs when fails part way through (if network error, etc…)
2026-05-15 07:09:21 -04:00
mschill f39aefd28f Merge branch 'Development' into C2026-008 2026-05-14 10:40:00 -04:00
jjenko 2cfc43dbfd Merge pull request 'B2026-045 Issue with Refreshing Changebars when Approval is done multiple times in a row on Multi-unit. Printing was ok but the UI required leaving PROMS and going back in.' (#769) from B2026-045 into Development
good for testing
2026-05-13 15:38:26 -04:00
mschill f4168b5202 B2026-045 Issue with Refreshing Changebars when Approval is done multiple times in a row on Multi-unit. Printing was ok but the UI required leaving PROMS and going back in. 2026-05-13 15:02:52 -04:00
jjenko 2d93b652e8 Merge pull request 'B2026-046-RO-symbols-and-Annotations' (#768) from B2026-046-RO-symbols-and-Annotations into Development
good for testing
2026-05-13 13:43:12 -04:00
plarsen 70782cd655 B2026-046-RO-symbols-and-Annotations 2026-05-13 13:37:12 -04:00
mschill 768fcc4f05 Fix Bug in Dotnet Bar related to multiple events and closing display tabs 2026-05-12 08:54:26 -04:00
mschill 727491f99b Merge branch 'C2026-008' of https://git.volian.com/Volian/SourceCode into C2026-008 2026-05-11 14:43:49 -04:00
mschill c5f1c3a340 C2026-008 - Re-Architect RO.FST to include RO Modification date/time and use those when updating ROs from the RO.FST
Update ProgressBar & fix Already Checked out popup multiple times
2026-05-11 14:42:48 -04:00
mschill a78311104a Merge branch 'Development' into C2026-008 2026-05-11 14:41:01 -04:00
plarsen 4b5b06210c B2026-046-RO-symbols-and-Annotations 2026-05-08 23:20:38 -04:00
jjenko 333645b044 Merge pull request 'F2026_013 Fixed typo in Vogtle format title' (#767) from F2026-013_Vogtle_3_4_Format into Development
format only change - good for testing phase
2026-05-07 15:23:01 -04:00
jjenko 23173074aa F2026_013 Fixed typo in Vogtle format title 2026-05-07 15:21:48 -04:00
jjenko be8bb9c4e1 Merge pull request 'B2026-043-Fix-Error-for-Set_At_All_Level-in-the-Applicability-tab-evaluate-having-the-button-grayed-out-for-the-RNO-column-when-clicked-executes-function' (#765) from B2026-043-Fix-Error-for-Set_At_All_Level-in-the-Applicability-tab-evaluate-having-the-button-grayed-out-for-the-RNO-column-when-clicked-executes-function into Development
good for testing phase
2026-05-07 15:07:27 -04:00
plarsen d07e132216 B2026-043-Fix-Error-for-Set_At_All_Level-in-the-Applicability-tab-evaluate-having-the-button-grayed-out-for-the-RNO-column-when-clicked-executes-function 2026-05-07 14:55:44 -04:00
plarsen 401fa12851 B2026-043-Fix-Error-for-Set_At_All_Level-in-the-Applicability-tab-evaluate-having-the-button-grayed-out-for-the-RNO-column-when-clicked-executes-function 2026-05-07 13:29:55 -04:00
plarsen 194ca84d38 B2026-043-Fix-Error-for-Set_At_All_Level-in-the-Applicability-tab-evaluate-having-the-button-grayed-out-for-the-RNO-column-when-clicked-executes-function 2026-05-07 11:34:16 -04:00
plarsen 7bbf62d735 B2026-043-Fix-Error-for-Set_At_All_Level-in-the-Applicability-tab-evaluate-having-the-button-grayed-out-for-the-RNO-column-when-clicked-executes-function 2026-05-07 11:27:36 -04:00
plarsen 3924e2fca5 B2026-043-Fix-Error-for-Set_At_All_Level-in-the-Applicability-tab-evaluate-having-the-button-grayed-out-for-the-RNO-column-when-clicked-executes-function 2026-05-06 07:54:39 -04:00
plarsen 2e39102e7c Merge branch 'Development' into B2026-043-Fix-Error-for-Set_At_All_Level-in-the-Applicability-tab-evaluate-having-the-button-grayed-out-for-the-RNO-column-when-clicked-executes-function 2026-05-05 22:26:21 -04:00
plarsen 2a0849fae5 B2026-043-Fix-Error-for-Set_At_All_Level-in-the-Applicability-tab-evaluate-having-the-button-grayed-out-for-the-RNO-column-when-clicked-executes-function 2026-05-05 22:08:27 -04:00
jjenko 9f4e8f6eef Merge pull request 'C2026-014 Set Changebar date with multi-unit' (#766) from C2026-014 into Development
good for testing
2026-05-05 09:05:23 -04:00
mschill d0fe36f86e C2026-014 Set Changebar date with multi-unit 2026-05-05 08:50:39 -04:00
jjenko 10da22cd77 Merge pull request 'C2026-015 Set overall Changebar date when approving multi-unit' (#764) from C2026-015 into Development
good for testing
2026-05-05 08:44:47 -04:00
mschill 6dacc2d515 Merge branch 'Development' into C2026-015 2026-05-05 06:08:19 -04:00
mschill 7baa9628d6 C2026-015 Set overall Changebar date when approving multi-unit 2026-05-05 06:00:43 -04:00
plarsen ec5229101f B2026-043-Fix-Error-for-Set_At_AAll_Level-in-the-Applicability-tab-evaluate-having-the-button-grayed-out-for-the-RNO-column-when-clicked-executes-function 2026-05-04 17:00:42 -04:00
plarsen a0e0b1e788 B2026-043-Fix-Error-for-Set_At_All_Level-in-the-Applicability-tab-evaluate-having-the-button-grayed-out-for-the-RNO-column-when-clicked-executes-function 2026-05-04 16:33:08 -04:00
jjenko f1e04396de Merge pull request 'B2026-042-Fix-Null-Error-for-Set_At_All_Level-in-the-Applicability-tab-evaluate-having-the-button-grayed-out-for-the-RNO-column-4' (#762) from B2026-042-Fix-Null-Error-for-Set_At_All_Level-in-the-Applicability-tab-evaluate-having-the-button-grayed-out-for-the-RNO-column-4 into Development
good for testing
2026-05-04 09:11:33 -04:00
plarsen d0cae8c2fc B2026-042-Fix-Null-Error-for-Set_At_All_Level-in-the-Applicability-tab-evaluate-having-the-button-grayed-out-for-the-RNO-column-4 2026-05-04 08:48:51 -04:00
plarsen 90c215d4c1 B2026-042-Fix-Null-Error-for-Set_At_All_Level-in-the-Applicability-tab-evaluate-having-the-button-grayed-out-for-the-RNO-column-4 2026-05-01 16:26:04 -04:00
plarsen 1b1dc78548 C2026-027-New-Set_At_All_Level-in-the-Applicability-tab-evaluate-having-the-button-grayed-out-for-the-RNO-column-4 2026-04-30 16:37:10 -04:00
jjenko a112163f85 Merge pull request 'C2026-015 Set overall Changebar date when approving multi-unit' (#761) from C2026-015 into Development
ready for testing
2026-04-30 14:01:58 -04:00
mschill 2a9f2e188d C2026-015 Set overall Changebar date when approving multi-unit 2026-04-30 13:53:02 -04:00
jjenko 652e0cb06f Merge pull request 'C2026-027-New-Set_At_All_Level-in-the-Applicability-tab-evaluate-having-the-button-grayed-out-for-the-RNO-column-3' (#760) from C2026-027-New-Set_At_All_Level-in-the-Applicability-tab-evaluate-having-the-button-grayed-out-for-the-RNO-column-3 into Development
ready for testing
2026-04-30 08:41:01 -04:00
plarsen 123b1b08c2 C2026-027-New-Set_At_All_Level-in-the-Applicability-tab-evaluate-having-the-button-grayed-out-for-the-RNO-column-3 2026-04-30 08:20:41 -04:00
plarsen b321bc354b C2026-027-New-Set_At_All_Level-in-the-Applicability-tab-evaluate-having-the-button-grayed-out-for-the-RNO-column-3 2026-04-28 18:09:15 -04:00
plarsen 03d7397242 Merge remote-tracking branch 'origin/Development' into Development 2026-04-28 14:39:52 -04:00
mschill 45e78ef184 Merge branch 'Development' into C2026-008 2026-04-28 13:43:35 -04:00
jjenko fe7c5893bb Merge pull request 'B2026-040 - Signoff/Checkoffs not printing unless set to Section Default' (#758) from B2026-040 into Development
good for testing
2026-04-28 11:11:45 -04:00
mschill 2b57c552d1 B2026-040 - Signoff/Checkoffs not printing unless set to Section Default 2026-04-28 11:03:04 -04:00
mschill 7f0d39b684 C2026-008 - Re-Architect RO.FST to include RO Modification date/time and use those when updating ROs from the RO.FST 2026-04-28 09:13:17 -04:00
plarsen 7273a8b13b Development 2026-04-27 15:43:38 -04:00
jjenko a544a5cd4f Merge pull request 'B2026-037 - Remove Fix Symbol Font' (#755) from B2026-037 into Development
good for testing phase
2026-04-16 14:02:42 -04:00
mschill ff9ade75d4 B2026-037 - Remove Fix Symbol Font 2026-04-16 09:32:02 -04:00
mschill cfd5498521 Merge pull request 'C2026-033 Added logic to not display the Empty Procedure message box if we are printing via baseline print testing.' (#754) from C2026-033_Baseline_Printing into Development
Looks Good. Ready for QA.
2026-04-15 11:55:19 -04:00
jjenko 9b7c30e1cd C2026-033 Added logic to not display the Empty Procedure message box if we are printing via baseline print testing. 2026-04-15 11:28:21 -04:00
mschill 670e5d7fa9 Merge pull request 'Baseline Application fixes' (#753) from baseline into Development
Looks good. Ready for QA.
2026-04-13 11:13:50 -04:00
jjenko 8258235611 Baseline Application fixes 2026-04-13 11:06:50 -04:00
jjenko 4d97f29943 Merge pull request 'B2026-035_fix_RO_Preview_for_X_Y_Plots' (#751) from B2026-035_fix_RO_Preview_for_X_Y_Plots into Development
good for testing
2026-03-31 08:53:49 -04:00
plarsen ab8d59eb2d Merge branch 'Development' into B2026-035_fix_RO_Preview_for_X_Y_Plots 2026-03-31 08:48:01 -04:00
plarsen c324fa69b2 B2026-035_fix_RO_Preview_for_X_Y_Plots 2026-03-31 08:47:43 -04:00
plarsen 1cdb9b4cc2 Development 2026-03-31 08:43:41 -04:00
plarsen f47fa49b80 B2026-035_fix_RO_Preview_for_X_Y_Plots 2026-03-30 16:12:37 -04:00
plarsen 6ade96c7ef B2026-035_fix_RO_Preview_for_X_Y_Plots 2026-03-30 13:41:03 -04:00
plarsen 61d31a3c67 Merge branch 'Development' of https://git.volian.com/Volian/SourceCode into Development 2026-03-30 13:05:08 -04:00
mschill 014509ea30 Merge pull request 'B2026-036 Fixed issue where if a RO return value and a dash followed by numbers, the numbers following the dash would be truncated when inserting in step editor text.' (#750) from General_Debugging into Development
Looks Good. Ready for QA.
2026-03-27 15:32:54 -04:00
jjenko 1ce1a45ca6 B2026-036 Fixed issue where if a RO return value and a dash followed by numbers, the numbers following the dash would be truncated when inserting in step editor text. 2026-03-27 15:26:06 -04:00
plarsen b6da13a653 Development 2026-03-26 11:49:54 -04:00
jjenko 604b4d1751 Merge pull request 'C2026-031 - BNPP Cover Page Consolidation' (#748) from BNPP_CoverPage_Consolidation into Development
good for testing phase
2026-03-26 09:28:07 -04:00
mschill 874aaf2857 Merge branch 'Development' into BNPP_CoverPage_Consolidation 2026-03-26 09:15:23 -04:00
mschill 17a28def4e Update Copyright date 2026-03-26 09:17:13 -04:00
jjenko e72a1aa9e7 Merge pull request 'B2026-018_The_Disable_Initial_Line_check_box' (#747) from B2026-018_The_Disable_Initial_Line_check_box into Development
good for testing phase
2026-03-26 09:11:20 -04:00
mschill 7b96ef1b4c BNPP Cover Page Consolidation 2026-03-26 09:02:14 -04:00
plarsen ea048e6d82 B2026-018_The_Disable_Initial_Line_check_box 2026-03-26 07:55:27 -04:00
plarsen 109abfb4ad Merge branch 'Development' into B2026-018_The_Disable_Initial_Line_check_box 2026-03-26 07:53:21 -04:00
plarsen 3f662ab19d B2026-018_The_Disable_Initial_Line_check_box 2026-03-25 22:55:52 -04:00
jjenko b0de38909a Merge pull request 'B2026-023-Adding-RO-Editor-symbols-to-RO-X_Y_plots' (#746) from B2026-023-Adding-RO-Editor-symbols-to-RO-X_Y_plots into Development
good for testing phase
2026-03-25 13:26:02 -04:00
plarsen 267de44103 Merge branch 'Development' into B2026-023-Adding-RO-Editor-symbols-to-RO-X_Y_plots 2026-03-25 11:54:12 -04:00
plarsen b7b0e55d94 B2026-023-Adding-RO-Editor-symbols-to-RO-X_Y_plots 2026-03-25 11:41:39 -04:00
plarsen c0d12f5721 B2026-023-Adding-RO-Editor-symbols-to-RO-X_Y_plots 2026-03-25 11:34:58 -04:00
mschill 27a945485f Merge pull request 'B2026-034 Fixed issue where import of procedure set failed when it was deleting the temporary folders that are created during the process, preventing the importing code to try and fix transitions and foldout information (link).' (#745) from B2026-034 into Development
Looks Good. Ready for QA.
2026-03-25 06:04:23 -04:00
jjenko d76c81a9d8 B2026-034 Fixed issue where import of procedure set failed when it was deleting the temporary folders that are created during the process, preventing the importing code to try and fix transitions and foldout information (link). 2026-03-24 16:27:22 -04:00
jjenko 143a3622dd Merge pull request 'C2026-007_B2026-027' (#744) from C2026-007_B2026-027 into Development
good for continued  testing
2026-03-24 08:56:31 -04:00
mschill 75992293c6 Merge branch 'Development' into C2026-007_B2026-027 2026-03-24 08:45:28 -04:00
mschill 0e004828b3 Merge branch 'C2026-007_B2026-027' of https://git.volian.com/Volian/SourceCode into C2026-007_B2026-027 2026-03-24 08:46:04 -04:00
mschill 714751f404 C2026-007 Admin Tool Generate Word Attachments 2026-03-24 08:45:55 -04:00
jjenko 27576e946e Merge pull request 'C2026-007 - Handle case for Step Progress when all switchboxes are turned off and then Regen Word Attachments is turned back on.' (#743) from C2026-007_B2026-027 into Development
good for testing
2026-03-23 08:13:48 -04:00
mschill e548dddcbd Merge branch 'Development' into C2026-007_B2026-027 2026-03-23 08:04:33 -04:00
mschill 8cbc8c497e C2026-007 - Handle case for Step Progress when all switchboxes are turned off and then Regen Word Attachments is turned back on. 2026-03-23 06:30:41 -04:00
jjenko c328140441 Merge pull request 'B2026-033 Tooltip for Generate Word Attachments' (#742) from B2026-033 into Development
good for testing
2026-03-20 15:37:05 -04:00
mschill a10798c983 B2026-033 Tooltip for Generate Word Attachments 2026-03-20 15:30:51 -04:00
jjenko 06909e260f Merge pull request 'B2026-030 GoTo sometimes requires being pressed twice for ROs' (#741) from B2026-030 into Development
good for testing
2026-03-18 14:47:28 -04:00
mschill 5eca8a5150 B2026-030 GoTo sometimes requires being pressed twice for ROs 2026-03-18 14:44:45 -04:00
jjenko 88a13f9864 Merge pull request 'C2026-028 Update Tooltip for “Set All at Level” in Applicability.' (#740) from C2026-028 into Development
good for testing
2026-03-18 08:21:01 -04:00
mschill e03ae6195a C2026-028 Update Tooltip for “Set All at Level” in Applicability. 2026-03-18 07:53:17 -04:00
jjenko c3cacaf407 Merge pull request 'B2026-022-Adding-RO-Editor-symbols-to-RO-Tables' (#738) from B2026-022-Adding-RO-Editor-symbols-to-RO-Tables into Development
good for testing
2026-03-17 16:09:54 -04:00
plarsen 4b479b3ceb B2026-022-Adding-RO-Editor-symbols-to-RO-Tables 2026-03-17 15:30:35 -04:00
jjenko c78cb805fb Merge pull request 'C2026-030 corrected the Alarm format cover page' (#739) from C2026-030_BNPP_CoverAdjustments into Development
format only change. good for tesing
2026-03-17 11:25:24 -04:00
jjenko d17688fc9d C2026-030 corrected the Alarm format cover page 2026-03-17 11:24:24 -04:00
plarsen fd59b9d5f0 Merge branch 'Development' into B2026-022-Adding-RO-Editor-symbols-to-RO-Tables 2026-03-17 08:39:28 -04:00
jjenko 0e71c9f5f5 Merge pull request 'C2026-007 Upgrade - Generate Missing Word Attachments/B2026-027 Update Refresh Tables For Search Tooltip' (#737) from C2026-007_B2026-027 into Development
good for testing phase
2026-03-16 14:55:39 -04:00
mschill bc3c14589e C2026-007 Upgrade - Generate Missing Word Attachments/B2026-027 Update Refresh Tables For Search Tooltip 2026-03-16 14:45:04 -04:00
jjenko 4331f49f6f Merge pull request 'C2026-030 Barakah asked that the white space between the procedure number and procedure title be reduced when the KEPCO number is not printed' (#736) from C2026-030_BNPP_CoverAdjustments into Development
Format only changes -ready for testing
2026-03-16 14:33:07 -04:00
jjenko 294d19e9d1 C2026-030 Barakah asked that the white space between the procedure number and procedure title be reduced when the KEPCO number is not printed 2026-03-16 14:32:57 -04:00
plarsen ed615dbb31 B2026-022-Adding-RO-Editor-symbols-to-RO-Tables 2026-03-16 13:30:36 -04:00
plarsen e9ad57f588 B2026-022-Adding-RO-Editor-symbols-to-RO-Tables 2026-03-16 12:44:04 -04:00
jjenko 7fee639b53 Merge pull request 'B2026-032 Revert Clipboard B2025-064' (#734) from Revert-Clipboard-B2025-064 into Development
Reviewed-on: #734
Reviewed-by: John Jenko <jjenko@volian.com>
2026-03-12 14:49:45 -04:00
mschill c2a5a8ec7d Revert Clipboard B2025-064 2026-03-12 14:35:32 -04:00
jjenko ec823cab97 Merge pull request 'B2026-031 PROMS Crash in Admin Tools Maintenance - Purge Change History' (#733) from B2026-031 into Development
good for testing
2026-03-12 11:22:06 -04:00
mschill 83f88b6df3 B2026-031 PROMS Crash in Admin Tools Maintenance - Purge Change History 2026-03-12 11:10:04 -04:00
plarsen 7636fe7686 B2026-022-Adding-RO-Editor-symbols-to-RO-Tables 2026-03-11 20:26:01 -04:00
jjenko 1e12c82be4 Merge pull request 'B2026-025_Unicode_removed_from_RO_menu_titles_in_treeview' (#729) from B2026-025_Unicode_removed_from_RO_menu_titles_in_treeview into Development
good for testing phase
2026-03-10 13:23:59 -04:00
plarsen 9879a80569 Merge branch 'Development' into B2026-025_Unicode_removed_from_RO_menu_titles_in_treeview 2026-03-10 11:56:10 -04:00
plarsen 13b03f4f89 B2026-025_Unicode_removed_from_RO_menu_titles_in_treeview 2026-03-10 11:50:21 -04:00
jjenko 331de6ecfe Merge pull request 'B2026-029 Update the Clipboard Copying in PROMS StepTabRibbon to retry' (#731) from B2026-029 into Development
good for testing
2026-03-10 08:39:11 -04:00
plarsen 7b649c4a62 B2026-018_The_Disable_Initial_Line_check_box 2026-03-10 08:24:28 -04:00
mschill 9ccdaef354 B2026-029 Update the Clipboard Copying in PROMS StepTabRibbon to retry 2026-03-10 07:02:50 -04:00
jjenko fa114f4467 Merge pull request 'B2026-028_Selecting_to_Go_To_on_an_RO_causes_PROMS_to_crash' (#730) from B2026-028_Selecting_to_Go_To_on_an_RO_causes_PROMS_to_crash into Development
good for testing
2026-03-09 14:41:03 -04:00
plarsen 33cc650871 B2026-025_Unicode_removed_from_RO_menu_titles_in_treeview 2026-03-09 14:26:19 -04:00
plarsen 95737d05e1 B2026-028 Selecting to Go To on an RO causes PROMS to crash. 2026-03-09 13:43:18 -04:00
plarsen 955ffc48d3 B2026-025_Unicode_removed_from_RO_menu_titles_in_treeview 2026-03-09 11:41:13 -04:00
plarsen d79dd908f6 B2026-028 Selecting to Go To on an RO causes PROMS to crash 2026-03-08 22:28:23 -04:00
plarsen 4656ec30af Development 2026-03-08 22:06:02 -04:00
plarsen a0be60a1b9 B2026-025_Unicode_removed_from_RO_menu_titles_in_treeview 2026-03-07 22:38:18 -05:00
jjenko d296d6f000 Merge pull request 'B2026-026_RO_Values_in_the_RO_value_textbox_at_the_top_Step_Properties_panel_now_displays_symbols' (#728) from B2026-026_RO_Values_in_the_RO_value_textbox_at_the_top_Step_Properties_panel_now_displays_symbols into Development
good for testing
2026-03-03 08:35:21 -05:00
plarsen 8df4bd2537 B2026-026_RO_Values_in_the_RO_value_textbox_at_the_top_Step_Properties_panel_now_displays_symbols 2026-03-02 23:23:47 -05:00
jjenko cc5cdb88ff Merge pull request 'B2026-019 Attempt to prevent an Access Error by utilizing a different Refresh if a Procedure is Open' (#727) from B2026-019 into Development
good for testing phase
2026-03-02 14:18:13 -05:00
mschill f66c6a93c5 Merge branch 'Development' into B2026-019 2026-03-02 14:12:12 -05:00
mschill a7b5ee33e2 B2026-019 Attempt to prevent an Access Error by utilizing a different Refresh if a Procedure is Open 2026-03-02 14:12:26 -05:00
jjenko fe90af5aa4 Merge pull request 'B2026-021-some-symbols-not-being-displayed-correctly' (#726) from B2026-021-some-symbols-not-being-displayed-correctly into Development
good for testing phase
2026-02-27 13:34:23 -05:00
plarsen 7e672d91e9 Merge branch 'Development' of https://git.volian.com/Volian/SourceCode into Development 2026-02-27 12:07:26 -05:00
jjenko 09f472bee2 Merge pull request 'F2026-011 Vogtle Units 3&4 Backgrounds. Adjusted the section title text for the section 5.0 continue message so that it aligns with the background text on the page' (#725) from F2026-011_VogtleBackgrounds_sect_title_adj into Development
format only change
2026-02-27 10:35:25 -05:00
jjenko 30da0c5105 F2026-011 Vogtle Units 3&4 Backgrounds. Adjusted the section title text for the section 5.0 continue message so that it aligns with the background text on the page 2026-02-27 10:35:46 -05:00
jjenko d2082cdbea Merge pull request 'B2026-019' (#724) from B2026-019 into Development
good for testing
2026-02-27 10:11:28 -05:00
mschill c42596811e Merge branch 'Development' into B2026-019 2026-02-27 10:05:26 -05:00
mschill d095a19187 Merge branch 'B2026-019' of https://git.volian.com/Volian/SourceCode into B2026-019 2026-02-27 10:06:42 -05:00
mschill 8089e2c898 B2026-019 Attempt to prevent an Access Error by utilizing a different Refresh if a Procedure is Open 2026-02-27 10:06:24 -05:00
jjenko a657d03fb0 Merge pull request 'F2026-012 Vogtle Units 3&4 Background format. Fixed the step tab for FOP Criteria (foldout background information).' (#723) from F2026-012_VogtleBackgroundFOP into Development
format only change
2026-02-27 09:34:25 -05:00
jjenko 4e829200f5 F2026-012 Vogtle Units 3&4 Background format. Fixed the step tab for FOP Criteria (foldout background information). 2026-02-27 09:01:34 -05:00
plarsen bef9be5cbe Merge branch 'Development' of https://git.volian.com/Volian/SourceCode into Development 2026-02-26 15:44:46 -05:00
jjenko 56f14323d1 Merge pull request 'B2026-017 Use Pre-typed in information when adding New Applicability' (#722) from B2026-017 into Development
good for testing phase
2026-02-26 15:07:15 -05:00
mschill 4fcd22ca68 B2026-017 Use Pre-typed in information when adding New Applicability 2026-02-26 14:49:06 -05:00
plarsen 21890e74fe Merge branch 'Development' of https://git.volian.com/Volian/SourceCode into Development 2026-02-26 14:33:59 -05:00
jjenko ef32564fba Merge pull request 'B2026-024 Change bars should not show when updating Applicability.' (#721) from B2026-024 into Development
good for testing phase
2026-02-26 14:04:16 -05:00
mschill d95505726f B2026-024 Change bars should not show when updating Applicability. 2026-02-26 13:14:25 -05:00
plarsen bb7b892f7c Merge branch 'Development' of https://git.volian.com/Volian/SourceCode into Development 2026-02-25 15:51:27 -05:00
jjenko 836cdaf087 Merge pull request 'B2026-019 Attempt to prevent an Access Error by utilizing a different Refresh if a Procedure is Open' (#719) from B2026-019 into Development
good for testing phase
2026-02-25 15:48:11 -05:00
mschill 6f5c41abb8 Merge branch 'Development' into B2026-019 2026-02-25 15:41:45 -05:00
jjenko 6379321785 Merge pull request 'F2026-010_VogtleBack_fontsize' (#720) from F2026-010_VogtleBack_fontsize into Development
format only change.
2026-02-25 15:40:41 -05:00
mschill e4c6e4393e B2026-019 Attempt to prevent an Access Error by utilizing a different Refresh if a Procedure is Open 2026-02-25 15:36:44 -05:00
jjenko 3e6bb81e39 F2025-010 Vogtle Units 3&4 Backgrounds. Made the font size of the hard-coded section 5.0 title and the linked step tab and step number consistent with the rest of the document. 2026-02-25 15:34:19 -05:00
plarsen ded6f18dd5 Development 2026-02-25 15:27:25 -05:00
jjenko 81643e2aef Merge pull request 'C2026-023 Change "Applicability - Set All at Level" to check the transitions at each level for steps that would be changed.' (#718) from C2026-023 into Development
good for testing
2026-02-25 11:30:15 -05:00
mschill 8a186f9f0c C2026-023 Change "Applicability - Set All at Level" to check the transitions at each level for steps that would be changed. 2026-02-25 08:37:29 -05:00
jjenko 14aa39976a Merge pull request 'B2025-064 PROMS clears the windows clipboard when closing PROMS with tabs open.' (#717) from B2025-064_v2 into Development
good for testing
2026-02-24 09:10:36 -05:00
jjenko c077e0ddc2 Merge pull request 'B2026-016 Fix Error Approving a Procedure without ROs set' (#716) from B2026-016 into Development
good for testing
2026-02-24 09:08:40 -05:00
mschill d198a7b63a B2025-064 PROMS clears the windows clipboard when closing PROMS with tabs open. 2026-02-24 08:22:18 -05:00
mschill 7f36a33dea B2026-016 Fix Error Approving a Procedure without ROs set 2026-02-24 07:08:07 -05:00
jjenko db3d9fc65f Merge pull request 'C2026-010 Add Audit History to Setting Change Bars' (#715) from C2026-010 into Development
good for testing
2026-02-23 15:40:15 -05:00
mschill f9738451db C2026-010 Add Audit History to Setting Change Bars 2026-02-23 15:25:32 -05:00
mschill ec73b5cbea Merge pull request 'C2022-003-Change-Textboxes-to-RTF-3' (#701) from C2022-003-Change-Textboxes-to-RTF-3 into Development
Ready for testing phase.
2026-02-20 10:31:50 -05:00
mschill f3bd6b6469 Merge branch 'Development' into C2022-003-Change-Textboxes-to-RTF-3 2026-02-20 10:28:29 -05:00
jjenko fd50993fb9 Merge pull request 'C024-039_Button_on_Applicability_Tab_to_change_all_at_same_level_for_setting_the_item_mode-2' (#714) from C024-039_Button_on_Applicability_Tab_to_change_all_at_same_level_for_setting_the_item_mode-2 into Development
good for testing phase
2026-02-20 09:06:00 -05:00
plarsen 079381dbb0 C024-039_Button_on_Applicability_Tab_to_change_all_at_same_level_for_setting_the_item_mode-2 2026-02-20 09:04:01 -05:00
plarsen 85bdc35342 C024-039_Button_on_Applicability_Tab_to_change_all_at_same_level_for_setting_the_item_mode-2 2026-02-19 16:18:31 -05:00
plarsen 2aaaa55e42 C024-039_Button_on_Applicability_Tab_to_change_all_at_same_level_for_setting_the_item_mode-2 2026-02-19 15:40:34 -05:00
plarsen e999bea228 C024-039_Button_on_Applicability_Tab_to_change_all_at_same_level_for_setting_the_item_mode-2 2026-02-19 13:44:37 -05:00
plarsen 287c06383b C024-039_Button_on_Applicability_Tab_to_change_all_at_same_level_for_setting_the_item_mode-2 2026-02-19 10:03:57 -05:00
jjenko 202409c140 Merge pull request 'B2026-015 Changing Formats for a Section' (#713) from B2026-015 into Development
good for testing
2026-02-16 16:27:04 -05:00
mschill 34886beccb B2026-015 Changing Formats for a Section
When changing the format for a section, the available section types sometimes requires the user to exit and get back in.

Noticed this with Vogle when changing for a format VEGBckStps to VEGP2 that the Landscape Attachment was not showing till exited and got back in.
2026-02-16 14:45:08 -05:00
jjenko 3d200cc34e Merge pull request 'F2026-007 - Added Landscape Attachment - Word Editor DocStyles/PageStyles to Background Document Formats / F2026-009 Vogtle Backgrounds Table of Contents adjustment' (#712) from F2026-007_F2026-009 into Development
merging into development
2026-02-13 15:20:40 -05:00
mschill b13883530a F2026-007 - Added Landscape Attachment - Word Editor DocStyles/PageStyles to Background Document Formats / F2026-009 Vogtle Backgrounds Table of Contents adjustment 2026-02-13 15:10:17 -05:00
jjenko 032e04bc50 Merge pull request 'B2026-014 Approved Procedure Export' (#711) from B2026-014 into Development
good for testing
2026-02-12 13:56:14 -05:00
mschill 625b715832 B2026-014 Approved Procedure Export 2026-02-12 13:51:06 -05:00
jjenko e1ac360271 Merge pull request 'F2064-008 Turned off pagination flags that caused bad pagination in the background steps' (#710) from F2026-008_VogtleBackgroundsPagination into Development
Format only change - good for testing
2026-02-12 11:49:57 -05:00
jjenko 7eda88bdbe F2064-008 Turned off pagination flags that caused bad pagination in the background steps 2026-02-12 11:49:40 -05:00
jjenko 90fdb94e95 Merge pull request 'C2026-009 Reset Change Bars to Date of Last Approval' (#709) from C2026-009 into Development
good for testing
2026-02-11 16:15:06 -05:00
mschill 15979203ce C2026-009 Reset Change Bars to Date of Last Approval 2026-02-11 16:07:33 -05:00
jjenko 53360a03af Merge pull request 'B2026-012 - Global Search for Caution Step Types when they are on a step with a Note shows the Caution listed as a Note 2 when Results Style is set to Step Path' (#707) from B2026-012 into Development
good for testing phase
2026-02-06 14:56:18 -05:00
mschill 9f6f7c23f6 B2026-012 - Global Search for Caution Step Types when they are on a step with a Note shows the Caution listed as a Note 2 when Results Style is set to Step Path 2026-02-06 14:54:22 -05:00
jjenko 7419f4e886 Merge pull request 'F2026-007 Set the Caution text font to not have any style set so that it is no longer italicized.' (#705) from F2026-006 into Development
format only change - good for testing
2026-02-05 15:09:45 -05:00
jjenko f90a80c366 F2026-007 Set the Caution text font to not have any style set so that it is no longer italicized. 2026-02-05 15:09:34 -05:00
jjenko d9ec756e22 Merge pull request 'C2026-013 Adjust wording of Tooltip for Check RO Links' (#704) from C2026-013 into Development
good for testing
2026-02-05 13:35:47 -05:00
mschill 9f7c24c540 C2026-013 Adjust wording of Tooltip for Check RO Links 2026-02-05 13:25:20 -05:00
jjenko fe2833395d Merge pull request 'F2026-004_F2026-005_VogtleBackgroundChanges' (#703) from F2026-004_F2026-005_VogtleBackgroundChanges into Development
format only changes- good for use in the cleanup of Vogtle Units 3&4 background data
2026-02-04 14:21:41 -05:00
jjenko a181cf3815 F2026-004 F2026-005 Vogte Units 3&4 Backgrounds. Adjusted the length of the box on the cover page
and pecified that Cautions come before Notes
2026-02-04 14:19:04 -05:00
jjenko dfce44a47a Merge pull request 'C2026-012 Manage Security - Remove cancel from the prompts related to deleting groups/users/members.' (#702) from C2026-012 into Development
good for testing
2026-02-04 13:42:31 -05:00
mschill 22280bf1e3 C2026-012 Manage Security - Remove cancel from the prompts related to deleting groups/users/members. 2026-02-04 13:25:17 -05:00
mschill 30aedb6eec C2022-003-Change-Textboxes-to-RTF-3
undoing the changes to: frmVEPROMS.Designer.cs, frmVEPROMS.resx, StepTabRibbon.designer.cs, & StepTabRibbon.resx
2026-02-04 10:47:29 -05:00
plarsen 12f175740f C2022-003-Change-Textboxes-to-RTF-3 2026-02-03 22:07:38 -05:00
plarsen 5c0f11aea1 Merge remote-tracking branch 'origin/Development' into C2022-003-Change-Textboxes-to-RTF-3 2026-02-03 22:05:31 -05:00
plarsen 879518c4a9 C2022-003-Change-Textboxes-to-RTF-3 2026-02-03 15:02:16 -05:00
jjenko 7afca6a254 Merge pull request 'B2026-011 Improve the resolution of unit numbers in multi-unit background documents when printing.' (#700) from B2026-011 into Development
good for testing
2026-02-03 13:57:46 -05:00
mschill 1c56aa2eb1 B2026-011 Improve the resolution of unit numbers in multi-unit background documents when printing.
Multi-Unit Background documents --- Found this while looking at background Documents for Vogtle 3/4 --- particularly AOP-101 -> Operator Actions -> Step 2: Note 2.

When there is a unit designator (like <U-NAME>-AOP-101. ) in the note's text, PROMS renders the text and pulls it over as text only to the background document.

This causes printing the background document to print as if both units instead of resolving if a specific unit is being printed.
2026-02-03 13:30:30 -05:00
plarsen ecaf00c5b3 Merge remote-tracking branch 'origin/Development' into C2022-003-Change-Textboxes-to-RTF-3 2026-02-03 09:23:20 -05:00
plarsen bfdc77da97 C2022-003-Change-Textboxes-to-RTF-3 2026-02-03 08:44:15 -05:00
jjenko f38aa4595f Merge pull request 'C2026-062 When Search clicked - Load the Incoming transitions for the Active Procedure' (#699) from C2026-062 into Development
good for testing
2026-02-02 15:54:50 -05:00
mschill aa0b906a9f C2026-062 When Search clicked - Load the Incoming transitions for the Active Procedure 2026-02-02 15:27:23 -05:00
mschill 9e64e5a60e Merge branch 'Development' into C2022-003-Change-Textboxes-to-RTF-3 2026-01-30 14:39:26 -05:00
plarsen 35eb05432b C2022-003-Change-Textboxes-to-RTF-3 2026-01-29 19:38:04 -05:00
plarsen 77c6298067 C2022-003-Change-Textboxes-to-RTF-3 2026-01-28 14:47:00 -05:00
mschill f43d1e5f47 Merge pull request 'B2026-009 For Vogtle Units 3&4, fixed bug where a double asterisk was place next to a continuous action RNO on the edit screen and printed with the CAS box shifted to the left.' (#697) from B2026-009_VogtleCAS into Development
Looks Good. Ready for QA!
2026-01-28 13:37:26 -05:00
jjenko 63a74e1aef B2026-009 For Vogtle Units 3&4, fixed bug where a double asterisk was place next to a continuous action RNO on the edit screen and printed with the CAS box shifted to the left. 2026-01-28 12:08:19 -05:00
jjenko 69e45e9ae8 Merge pull request 'F2026-003 Adjustments to the Vogtle Units 3&4 background step format that were needed for Jeff’s procedure importer tool' (#696) from F2026-003_VogtleBckGndChanges into Development
format only change.
2026-01-27 13:17:22 -05:00
jjenko 53cf35014c F2026-003 Adjustments to the Vogtle Units 3&4 background step format that were needed for Jeff’s procedure importer tool 2026-01-27 13:17:42 -05:00
jjenko d6e4239573 Merge pull request 'C2026-006 Change Title bar on Add/Edit User' (#695) from C2026-006 into Development
good for testing phase
2026-01-27 08:15:11 -05:00
mschill c76808e11e C2026-006 Change Title bar on Add/Edit User 2026-01-27 07:34:04 -05:00
jjenko b2428a4211 Merge pull request 'B2026-007 PROMS Security - don't error when add a user to a group but no group selected/C2026-004 – Add a messagebox when create group' (#694) from B2026-007_C2026-004 into Development
good for testing
2026-01-26 14:41:40 -05:00
mschill aa0e919713 B2026-007 PROMS Security - don't error when add a user to a group but no group selected/C2026-004 – Add a messagebox when create group 2026-01-26 14:37:48 -05:00
mschill 7e2a41b6cb Merge pull request 'B2026-003 Imported memory handling in the FlexGrid (table) code for when we are replacing many RO values in table cells' (#693) from B2026-003_crash_fixing_ROs_in_table into Development
Looks Good. Ready for QA.
2026-01-23 16:07:16 -05:00
jjenko 258b1d2d1f B2026-003 Imported memory handling in the FlexGrid (table) code for when we are replacing many RO values in table cells 2026-01-23 15:55:36 -05:00
jjenko a4ea200e38 Merge pull request 'B2026-006 Try to force designer update' (#692) from B2026-006 into Development
good for testing
2026-01-23 10:17:43 -05:00
mschill 43a27c16a6 B2026-006 Try to force designer update
It looks like when pulled into development -- changes to DisplayHistory.designer were not pulling down locally / compiling in when not on the computer they were originally made on. Made an update that hopefully should force this file to recompile.
2026-01-23 10:10:08 -05:00
jjenko 3c693baab0 Merge pull request 'B2026-006 – Summary of Changes report generation enhancements' (#691) from B2026-006 into Development
good for testing
2026-01-23 08:30:48 -05:00
mschill d186e2702c B2026-006 – Summary of Changes report generation enhancements 2026-01-23 06:20:49 -05:00
mschill aee478114b Merge pull request 'C2026-003 For Vogtle Units 3&4, added format variable to allow a high level RNO step be “tagged” as a Continuous Action Step, when the parent AER step is not a continuous action step' (#689) from C2026-003_Vogtle_RNO_ContActionStep into Development
Looks Good. Ready for QA.
2026-01-21 14:37:19 -05:00
jjenko 6220530855 C2026-003 For Vogtle Units 3&4, added format variable to allow a high level RNO step be “tagged” as a Continuous Action Step, when the parent AER step is not a continuous action step 2026-01-21 14:30:44 -05:00
jjenko 69ae37021c Merge pull request 'B2026-001-Sort-order--for-ROs-Wolf-Creek-4' (#688) from B2026-001-Sort-order--for-ROs-Wolf-Creek-4 into Development
good for testing phase
2026-01-20 08:36:08 -05:00
plarsen e2382a403b B2026-001-Sort-order--for-ROs-Wolf-Creek-4 2026-01-19 17:23:01 -05:00
plarsen 0ae45eb918 C2022-003-Change-Textboxes-to-RTF-3 2026-01-19 12:15:03 -05:00
jjenko d8882f8d0c Merge pull request 'C2026-002 Admin Tool - Data Check - Enhancements to new admin Tool for ROs not used.' (#686) from C2026-002 into Development
good for testing phase
2026-01-19 11:38:01 -05:00
mschill 00c64411c5 C2026-002 Admin Tool - Data Check - Enhancements to new admin Tool for ROs not used.
Add the ability to filter out groups of Alarms from the results.
2026-01-19 11:33:10 -05:00
jjenko c0f35a7d84 Merge pull request 'Remove OPTIMIZE_FOR_SEQUENTIAL_KEY for compatibility with earlier SQL versions' (#685) from Update_ForSQL_Compat_1_19_2026 into Development
looks good.  Devin will testing while updating databases on the Volian server.
2026-01-19 10:09:25 -05:00
mschill 12cf05bb87 Remove OPTIMIZE_FOR_SEQUENTIAL_KEY for compatibility with earlier SQL versions 2026-01-19 10:01:37 -05:00
mschill 325c17647e Merge pull request 'F2026-002_Vogtle_Top_Continue_Message' (#684) from F2026-002_Vogtle_Top_Continue_Message into Development
Looks good. Ready for QA.
2026-01-16 14:40:59 -05:00
jjenko c6eeb2107a F2026-002 Added a format flag for Vogtle Units 3 & 4 to prevent a duplicate sub-step letter in the top continue message, when a step breaks at second level sub-step in the RNO 2026-01-16 14:31:09 -05:00
jjenko 70fd037161 Merge pull request 'B2026-002 When parens are inside a parent / child, printing a double parens.' (#683) from B2026-002 into Development
good for testing phase
2026-01-15 08:48:53 -05:00
mschill ed4469bd5f B2026-002 When parens are inside a parent / child, printing a double parens.
When "(tunable)" was added to the RO return value that has Parent/Child turned on in the field, that return value will print "(turnable))" - with two closing parentheses.

 In Vogtle data, Customer turned on Parent/Child on the Setpoint field in the Alarms CSD grouping.
 Added "(tunable)" to the Setpoint's default value in CDS-ARP-001-172

 The value looks good in the editor but prints with two closing parens.
2026-01-15 07:20:46 -05:00
plarsen 5ce168071c C2022-003-Change-Textboxes-to-RTF-3 2026-01-14 16:41:17 -05:00
mschill 4273d72b9d Merge pull request 'F2026-001 Added the ability to prefix a Continuous Action sub-step tab with its parent tab.' (#682) from F2026-001_Add_Parent_Tab_To_CAS_Step into Development
Looks good. Ready for QA.
2026-01-14 16:07:02 -05:00
jjenko 30f56d1f9b F2026-001 Added the ability to prefix a Continuous Action sub-step tab with its parent tab. 2026-01-14 16:01:40 -05:00
plarsen d560468f3c C2022-003-Change-Textboxes-to-RTF-3 2026-01-14 13:48:47 -05:00
plarsen ac5e49d0fc C2022-003-Change-Textboxes-to-RTF-3 2026-01-14 08:46:14 -05:00
plarsen 447d1f510c C2022-003-Change-Textboxes-to-RTF-3 2026-01-14 07:04:35 -05:00
plarsen c0651e4e2c C2022-003-Change-Textboxes-to-RTF-3 2026-01-13 15:24:44 -05:00
plarsen f8865206e9 C2022-003-Change-Textboxes-to-RTF-3 2026-01-13 11:46:47 -05:00
plarsen 5e7d2431b3 C2022-003-Change-Textboxes-to-RTF-3 2026-01-12 16:29:00 -05:00
jjenko 9bb13f6d88 Merge pull request 'C2025-043 Admin Tool - Data Check - Tool to identify and report RO's that are not used in any of the PROMS data.' (#680) from C2025-043 into Development
good for testing
2026-01-12 15:25:55 -05:00
mschill 52dbd8afec C2025-043 Admin Tool - Data Check - Tool to identify and report RO's that are not used in any of the PROMS data.
Performance Improvement
2026-01-12 15:21:18 -05:00
plarsen 99216321a8 C2022-003-Change-Textboxes-to-RTF-3 2026-01-12 13:37:14 -05:00
jjenko 31a0f04710 Merge pull request 'C2025-043 Admin Tool - Data Check - Tool to identify and report RO's that are not used in any of the PROMS data.' (#679) from C2025-043 into Development
good for testing phase
2026-01-09 10:30:11 -05:00
mschill ac88add40b C2025-043 Admin Tool - Data Check - Tool to identify and report RO's that are not used in any of the PROMS data. 2026-01-09 09:12:00 -05:00
plarsen 5a2c0460aa C2022-003-Change-Textboxes-to-RTF-3 2026-01-06 13:18:49 -05:00
jjenko 862cf67375 Merge pull request 'B2025-065 When Printing a Word Section containing XY Plot ROs - when there is a title on the XY Plot, only the first line is indented.' (#677) from B2025-065 into Development
good for testing phase
2026-01-02 15:14:57 -05:00
mschill dae850616d B2025-065 When Printing a Word Section containing XY Plot ROs - when there is a title on the XY Plot, only the first line is indented. 2026-01-02 15:12:54 -05:00
plarsen 72c2bd90e4 C2022-003-Change-Textboxes-to-RTF-3 2025-12-24 14:20:31 -05:00
plarsen d4ecf28147 C2022-003-Change-Textboxes-to-RTF-3 2025-12-22 17:16:00 -05:00
jjenko 149e114359 Merge pull request 'Rollback_B2025-064' (#674) from Rollback_B2025-064 into Development
merged into development.
2025-12-16 14:50:13 -05:00
mschill 7d63e7e417 Rollback_B2025-064 - Rolling back changes for B2025-064 - that CSM item will be re-opened and revisited late January once vogtle is out. 2025-12-16 14:41:39 -05:00
mschill d12e5d19c9 Rollback_B2025-064 - Rolling back changes for B2025-064 - that CSM item will be re-opened and revisited late January once vogtle is out. 2025-12-16 14:38:41 -05:00
jjenko 7a6b3b7a86 Merge pull request 'Code Cleanup - Added a debug for developers around Clipboard setting Data Objects via the StepTabRibbon. Will be verified during the internal vogtle cleanup.' (#673) from Code_Cleanup_12_16_2025 into Development
Reviewed-on: #673
Reviewed-by: John Jenko <jjenko@volian.com>
Passed review. merging into development
2025-12-16 08:46:30 -05:00
mschill 97fc02b601 Code Cleanup - Added a debug for developers around Clipboard setting Data Objects via the StepTabRibbon. Will be verified during the internal vogtle cleanup. 2025-12-16 06:03:18 -05:00
jjenko 9485403712 Merge pull request 'C2025-060 When format is updated in PROMS, auto-update the format cache so it doesn't require exiting PROMS and going back in.' (#671) from C2025-060 into Development
good for testing phase
2025-12-10 14:53:31 -05:00
mschill caeead0bc0 C2025-060 When format is updated in PROMS, auto-update the format cache so it doesn't require exiting PROMS and going back in. 2025-12-10 14:49:45 -05:00
jjenko f93204e37e Merge pull request 'F2025-041 Added a non-bolded high level CAS step type for use in single column attachment' (#670) from F2025-042_Vogtle3&4_nonboldCAS into Development
format only change - good for testing
2025-12-09 16:15:45 -05:00
jjenko e6af91c6ab F2025-041 Added a non-bolded high level CAS step type for use in single column attachment 2025-12-09 16:15:06 -05:00
mschill c89428eed8 Merge pull request 'F2025-040 Added code to adjust the position of the CAS box around the high level step number in single column attachment sections' (#668) from F2025-040_VogtleSingleColAtt_ContActStep_Box into Development
Looks Good! Ready for QA!
2025-12-05 06:00:16 -05:00
jjenko b4f2b89139 F2025-040 Added code to adjust the position of the CAS box around the high level step number in single column attachment sections 2025-12-04 16:42:40 -05:00
jjenko aab7cdcf77 Merge pull request 'B2025-064 PROMS clears the windows clipboard when closing PROMS with tabs open.' (#667) from B2025-064 into Development
good for testing phase
2025-12-04 11:19:24 -05:00
mschill 47cdedefd4 B2025-064 PROMS clears the windows clipboard when closing PROMS with tabs open. 2025-12-04 10:41:37 -05:00
jjenko 710145a32d Merge pull request 'B2019-140/B2022-099 After doing an Approval (final stage) of a procedure, the change bars do not reset on the screen.' (#666) from B2019-140_B2022-099 into Development
good for testing phase
2025-12-03 16:03:25 -05:00
mschill 2783d2cc77 B2019-140/B2022-099 After doing an Approval (final stage) of a procedure, the change bars do not reset on the screen.
Also, when change the “Showing Change bars” option, the screen does not refresh.
2025-12-03 15:53:29 -05:00
plarsen 751794c1ec C2022-003-Change-Textboxes-to-RTF-3 2025-12-03 11:31:19 -05:00
mschill a7a5df1991 Merge pull request 'F2025-038 Added a format flag to not include the word “SECTION” in front the section number and title on the Continuous Action Summary that is generated by PROMS.' (#665) from F2025-038_Vogtle_3&4_CAS_Formating into Development
Looks Good! Ready for QA!
2025-12-02 12:17:03 -05:00
jjenko 62a296f909 F2025-038 Added a format flag to not include the word “SECTION” in front the section number and title on the Continuous Action Summary that is generated by PROMS. 2025-12-02 10:53:26 -05:00
plarsen c561aad661 C2022-003-Change-Textboxes-to-RTF-3 2025-12-02 10:44:35 -05:00
jjenko 0a301e1a84 Merge pull request 'F2025-039 Added “Deselect”, “deselect”, “Refill”, “refill” to the replace words list to the Vogtle Units 3&4 formats' (#664) from F2025-039_Vogtle_3&4_ReplaceWordsUpdate into Development
format only change - good for testing phase
2025-12-01 14:50:57 -05:00
jjenko 37e727202c F2025-039 Added “Deselect”, “deselect”, “Refill”, “refill” to the replace words list to the Vogtle Units 3&4 formats 2025-12-01 14:24:31 -05:00
plarsen 9023cc76a0 C2022-003-Change-Textboxes-to-RTF-3 2025-11-26 14:31:59 -05:00
jjenko 49bdd03c1c Merge pull request 'F2025-037 Added “/open” and “/reset” to the replacewords list and replace them as is so that the “open” and “reset” are not bolded when preceded by a forward slash.' (#663) from F2025-037_Vogtle_ReplaceWords_Tweak into Development
Format only change - good for testing
2025-11-21 09:56:55 -05:00
jjenko 23f4b672b2 F2025-037 Added “/open” and “/reset” to the replacewords list and replace them as is so that the “open” and “reset” are not bolded when preceded by a forward slash. 2025-11-21 09:46:09 -05:00
jjenko 599d45086f Merge pull request 'C2025-063 If Separate Windows is set, should not open Remember Tabs.' (#661) from C2025-063 into Development
good for testing phase
2025-11-20 08:44:09 -05:00
jjenko 93aed0e06a Merge pull request 'B2025-063 Show User in View Mode' (#660) from B2025-063 into Development
good for testing
2025-11-20 08:39:46 -05:00
mschill 7eb94d7575 C2025-063 If Separate Windows is set, should not open Remember Tabs. 2025-11-20 07:23:23 -05:00
mschill fa8b0bd6a1 B2025-063 Show User in View Mode 2025-11-20 07:06:43 -05:00
jjenko c26e271676 Merge pull request 'C2019-036' (#659) from C2019-036 into Development
good for testing
2025-11-19 09:05:32 -05:00
mschill 7d87477d68 C2019-036 View Only - handle case when Separate Windows and Remember Tabs 2025-11-19 09:01:16 -05:00
mschill 9002fb3828 C2019-036 View Mode - Avoid double prompt when Remembering Tabs & Open in Separate Window 2025-11-19 08:54:00 -05:00
jjenko 10257a832a Merge pull request 'C2019-036 View Only Mode - Handle special case where item is opened in a separate window and tabs are remembered' (#658) from C2019-036 into Development
good for testing phase
2025-11-19 08:47:04 -05:00
mschill 261f5a526c C2019-036 View Only Mode - Handle special case where item is opened in a separate window and tabs are remembered 2025-11-19 08:42:09 -05:00
jjenko b5e0c121e8 Merge pull request 'C2019-036 View Only Mode --- shouldn't prompt for View Only Mode if already open in another tab in View Only Mode' (#657) from C2019-036 into Development
good for testing phase
2025-11-19 08:18:25 -05:00
mschill 6d99c456e4 C2019-036 View Only Mode --- shouldn't prompt for View Only Mode if already open in another tab in View Only Mode 2025-11-19 06:34:52 -05:00
jjenko 8c6f0c2736 Merge pull request 'C2019-036 View Only mode work with Checked Out Procedures' (#656) from C2019-036 into Development
good for testing phase
2025-11-17 10:01:44 -05:00
mschill bd89af5e8c C2019-036 View Only mode work with Checked Out Procedures 2025-11-17 07:05:52 -05:00
mschill b0e4128d3c Merge pull request 'B2025-062 Fixed a null reference bug in the printing of Vogtle Units 3 & 4 AOP-204' (#655) from B2025-062_Vogtle_AOP_Null_Ref into Development
Looks Good. Read for QA!
2025-11-14 11:38:25 -05:00
jjenko 875a8f101a B2025-062 Fixed a null reference bug in the printing of Vogtle Units 3 & 4 AOP-204 2025-11-14 11:36:23 -05:00
mschill c5a8ef57ac Merge pull request 'B2025-060 Fixes the printing a sub-section top continue message when the section is forced to start on the next page, either by PROMS print logic or when that sub-section is set to separate pagination.' (#654) from B2025_060_SectContPrintBug into Development
Looks Good! Ready for QA!
2025-11-10 09:28:42 -05:00
jjenko c8adeed187 B2025-060 Fixes the printing a sub-section top continue message when the section is forced to start on the next page, either by PROMS print logic or when that sub-section is set to separate pagination. 2025-11-10 09:25:26 -05:00
jjenko 49f5f506d4 Merge pull request 'F2025-036 Removed the Two Column Attachment section style that is no longer needed because it’s identical to the “Attachment - Two Column Step Editor” section style' (#653) from F2025-036_Vogtle_3_4_rmvExtraSectStyle into Development
Format only change.  Good for testing
2025-11-07 09:51:13 -05:00
jjenko 1c87585570 F2025-036 Removed the Two Column Attachment section style that is no longer needed because it’s identical to the “Attachment - Two Column Step Editor” section style 2025-11-07 09:51:18 -05:00
jjenko 30eb52da77 Merge pull request 'F2025-035 Change the open/closed parenthesis on the 2nd and 3rd sub-step levelsl to just the close parenthesis' (#652) from F2025-035_Vogtle_3_4_substep_tab into Development
Format only change. Good for testing phase.
2025-11-06 16:00:49 -05:00
jjenko 6f089482e6 F2025-035 Change the open/closed parenthesis on the 2nd and 3rd sub-step levelsl to just the close parenthesis 2025-11-06 15:58:30 -05:00
jjenko 8e221cc263 Merge pull request 'F2025-034 Updated Transition format to turn off putting parenthesis around section title and turn off the attempt of title-casing the procedure title.' (#651) from F2025-034_VogtleTransitions into Development
format only change - good for testing phase
2025-11-06 15:14:13 -05:00
jjenko 441917b670 F2025-034 Updated Transition format to turn off putting parenthesis around section title and turn off the attempt of title-casing the procedure title. 2025-11-06 15:13:50 -05:00
jjenko 6251de3b38 Merge pull request 'F2025-033 Removed the hard coded text “OPERATOR ACTIONS” from the Two Column Attachment section style in Vogtle Two Column format' (#649) from F2025-033_Vogtle_3&4_Remove_Operator_Actions into Development
Format only change - good for testing
2025-11-05 11:53:01 -05:00
jjenko d731125a14 F2025-033 Removed the hard coded text “OPERATOR ACTIONS” from the Two Column Attachment section style in Vogtle Two Column format 2025-11-05 11:51:19 -05:00
mschill d6fe64bc40 Merge pull request 'B2025-058 and B2025-061 Removed the Continuous Action Step indicator from the sub-step number when being referenced in a transition.' (#648) from B2025-058_061_Vogtle_TransitionFix into Development
Looks Good. Ready for QA!
2025-11-04 16:05:13 -05:00
jjenko f8b93807ae B2025-058 and B2025-061 Removed the Continuous Action Step indicator from the sub-step number when being referenced in a transition. 2025-11-04 16:01:00 -05:00
jjenko 2287a111c1 Merge pull request 'F2025-031Corrected “Return To” in ReplaceWords list so that lower cased “return to” will remain lowercased and still be bolded.' (#647) from F2025-031_Vogtle3&4_ReplaceWordsFix into Development
Format only change - good for testing phase
2025-11-03 12:22:25 -05:00
jjenko a08d92ea41 F2025-031Corrected “Return To” in ReplaceWords list so that lower cased “return to” will remain lowercased and still be bolded. 2025-11-03 12:21:32 -05:00
jjenko c41d7981ba Merge pull request 'C2021-035 Add Refresh Tree Option at highest level' (#646) from C2021-035 into Development
good for testing phase
2025-10-31 09:56:06 -04:00
mschill 37f5336806 C2021-035 Add Refresh Tree Option at highest level 2025-10-31 09:44:01 -04:00
jjenko ebdc98dfa7 Merge pull request 'F2025-030 Un-bold the section End messages in the Vogtle Units 3&4 Single and Two Column formats' (#645) from F2025-030_Vogtle_End into Development
Format only - good for testing
2025-10-30 16:28:53 -04:00
jjenko f3c8c860f5 F2025-030 Un-bold the section End messages in the Vogtle Units 3&4 Single and Two Column formats 2025-10-30 16:27:52 -04:00
jjenko f7b27142c4 Merge pull request 'F2025-029 Added the Westinghouse Proprietary statement to all of the section styles in the Vogtle Units 3 & 4 formats' (#644) from F2025-029_Vogtle_Westinghouse_Footer into Development
Format only changes - good for testing phase
2025-10-30 11:15:21 -04:00
jjenko 4fc37c54c5 F2025-029 Added the Westinghouse Proprietary statement to all of the section styles in the Vogtle Units 3 & 4 formats 2025-10-30 11:15:30 -04:00
jjenko 849e1e57dd Merge pull request 'B2021-092 The "Custom Change Bar Text" option does not output any change bar text in the PDF output when information is added to Line one and/or Line two off the print dialog.' (#643) from B2021-092 into Development
good for testing phase
2025-10-27 08:18:29 -04:00
jjenko c768ca5eba Merge pull request 'B2025-053 Printing from Ribbon while Edits in progress' (#642) from B2025-053 into Development
good for testing phase
2025-10-27 08:16:59 -04:00
mschill c9516d90e9 B2021-092 The "Custom Change Bar Text" option does not output any change bar text in the PDF output when information is added to Line one and/or Line two off the print dialog. 2025-10-24 14:55:13 -04:00
mschill 327aae687a B2025-053 Printing from Ribbon while Edits in progress 2025-10-24 11:12:39 -04:00
jjenko 3cbe4617eb Merge pull request 'B2025-056 Incoming Transitions Go To Procedure' (#641) from B2025-056 into Development
good for testing phase
2025-10-22 14:28:01 -04:00
mschill de69fe6b6f B2025-056 Incoming Transitions Go To Procedure 2025-10-22 14:20:46 -04:00
jjenko e53101dacb Merge pull request 'C2024-047' (#640) from C2024-047 into Development
good for testing phase
2025-10-21 14:50:27 -04:00
mschill d3ec749848 C2024-047 Security Dialog
shouldn’t be bringing up a menu in the Group box unless a user is 1st selected in the Users box.
2025-10-21 14:48:06 -04:00
mschill 410b7d3dd6 C2024-047 Security Dialog
shouldn’t be bringing up a menu in the Group box unless a user is 1st selected in the Users box.
2025-10-21 14:47:30 -04:00
jjenko e87b233713 Merge pull request 'F2025-028 Turned on flag to bold only the high level RNO, only when it’s off of a high level step in the Vogtle Units 3 & 4 Two Column format' (#639) from F2025-028_Vogtle3_4_Bold_RNO into Development
Format only change.  Ready for Testing Phase
2025-10-21 10:41:03 -04:00
jjenko ca38ecb1cf F2025-028 Turned on flag to bold only the high level RNO, only when it’s off of a high level step in the Vogtle Units 3 & 4 Two Column format 2025-10-21 10:41:13 -04:00
jjenko 5dfa70dc10 Merge pull request 'C2024-047 Redesign PROMS Security Dialog' (#638) from C2024-047 into Development
good for testing phase
2025-10-20 14:02:03 -04:00
mschill ff3daff15a C2024-047 Redesign PROMS Security Dialog 2025-10-20 13:48:02 -04:00
jjenko 7b7f235354 Merge pull request 'F2025-027 Added cover page PSI information to Vogtle 3&4 background format used to for the linked background steps (VEGPBckStp)' (#637) from F2025-027_Vogtle_3_4_Backgrounds_PSI into Development
Format only change. ready for use in Volian data entry of backgrounds
2025-10-16 10:59:30 -04:00
jjenko 779c6247cd F2025-027 Added cover page PSI information to Vogtle 3&4 background format used to for the linked background steps (VEGPBckStp) 2025-10-16 10:59:09 -04:00
jjenko fcaffa8c5f Merge pull request 'B2025-057 Issue Copy-Pasting Enhanced Procedures' (#636) from B2025-057 into Development
Good for testing phase
2025-10-14 10:25:57 -04:00
mschill d2ffcc903a B2025-057 Issue Copy-Pasting Enhanced Procedures 2025-10-13 14:51:51 -04:00
jjenko 1d12c97e30 Merge pull request 'B2025-055 Corrected the format so that the Unit 4 Effective Date will print on the cover page' (#635) from B2025-055 into Development
Format only change.  ready for testing
2025-10-13 09:47:35 -04:00
jjenko 3bcaeb214e B2025-055 Corrected the format so that the Unit 4 Effective Date will print on the cover page 2025-10-13 09:47:29 -04:00
jjenko 85995040a8 Merge pull request 'B2025-054 Wrong Page Numbers in CAS Summary' (#633) from B2025-054 into Development
good for testing phase
2025-10-09 10:12:13 -04:00
mschill 826d06b532 B2025-054 Wrong Page Numbers in CAS Summary 2025-10-09 10:06:50 -04:00
jjenko 3328e35cf4 Merge pull request 'F2025-0926 Got Vogtle 3&4 Background formats ready for use.' (#632) from F2025-026_Vogtle_Background_Formats into Development
Format only change - for use when we import Vogtle Background data.
2025-10-08 14:02:48 -04:00
jjenko 091c56ec34 F2025-0926 Got Vogtle 3&4 Background formats ready for use. 2025-10-08 13:58:05 -04:00
jjenko 31e9910242 Merge pull request 'C2025-053 Upgrade Ro-Editor / Compare Report / Ro To SQL to 64 bits' (#631) from C2025-053 into Development
Good for testing phase
2025-10-06 16:22:17 -04:00
mschill f6e3c72e9c C2025-053 Upgrade RO Editor to 64 bit
Adjust Build Revision
2025-10-06 16:17:27 -04:00
mschill 3f618bc970 C2025-053 Upgrade RO Editor to 64 bit
Remove AssemblyInfo changes
2025-10-06 16:07:19 -04:00
mschill 1c766e568c C2025-053 Upgrade RO Editor to 64 bit
Adjust build revision and revert AssembloInfo to as-is
2025-10-06 16:01:59 -04:00
mschill 8ed9bfbfcb C2025-053 Upgrade Ro-Editor / Compare Report / Ro To SQL to 64 bits 2025-10-06 14:02:22 -04:00
jjenko f1d66fc446 Merge pull request 'F2025-025 Added the “Attachment - Single Column Step Editor” section type to the Vogtle Two Column format' (#630) from F2025_025_Vogtle3&4_SubSect_single_Att into Development
format only changes - good for testing phase
2025-10-02 14:04:56 -04:00
jjenko 50977b367f F2025-025 Added the “Attachment - Single Column Step Editor” section type to the Vogtle Two Column format 2025-10-02 14:05:04 -04:00
jjenko 45312d0564 Merge pull request 'C2025-037 – Spell Check Closes after one section' (#629) from C2025-037 into Development
Reviewed-on: #629
Reviewed-by: John Jenko <jjenko@volian.com>
2025-10-02 09:14:51 -04:00
mschill 3261d63b19 C2025-037 – Spell Check Closes after one section 2025-10-02 08:02:33 -04:00
jjenko 2894899ad4 Merge pull request 'F2025-024 Turned off the automatic bolding of RNOs in Vogtle’s Two Column Format' (#628) from F2025-024_Vogtle_Dont_Bold_RNO into Development
Format only change - good for testing phase
2025-10-01 10:58:07 -04:00
jjenko dd5c709709 F2025-024 Turned off the automatic bolding of RNOs in Vogtle’s Two Column Format 2025-10-01 10:58:23 -04:00
jjenko 618247f4d5 Merge pull request 'F2025-023 Fixed a typo in the ReplaceWords list in the Vogtle formats. Lowercased “assemble” was misspelled as “bssemble”' (#627) from F2025-023_Vogtle_3_4_Replacewords_Fix into Development
Format only change - ready for testing
2025-09-30 16:00:30 -04:00
jjenko abcf035143 F2025-023 Fixed a typo in the ReplaceWords list in the Vogtle formats. Lowercased “assemble” was misspelled as “bssemble” 2025-09-30 16:00:36 -04:00
jjenko 0b015233a9 Merge pull request 'B2025-046 / B2025-043 / B2024-082 – Remember Tabs Changes' (#626) from B2025-046_B2025-043_B2024-082 into Development
good for testing
2025-09-30 08:40:01 -04:00
mschill 44d85b842c B2025-046 / B2025-043 / B2024-082 – Remember Tabs Changes 2025-09-30 08:31:40 -04:00
jjenko 470f4a770b Merge pull request 'F2025-014 Enabled Parent/Child logic of PSI items on the Cover Page section, as a only once Cover Page style is needed.' (#625) from Vogtle34_EOP_Format_Changes into Development
Format only change - good for testing phase
2025-09-29 14:01:12 -04:00
jjenko 808a1ba0ea F2025-014 Enabled Parent/Child logic of PSI items on the Cover Page section, as a only once Cover Page style is needed. 2025-09-29 14:01:17 -04:00
jjenko 04cef606fc Merge pull request 'B2025-051 - Quick Print Section is not automatically working unless the sections have applicability' (#624) from B2025-051 into Development
Good for testing phase.
2025-09-26 10:42:18 -04:00
mschill 1ef6a1d0e4 B2025-051 - Quick Print Section is not automatically working unless the sections have applicability 2025-09-26 10:37:30 -04:00
jjenko b163a3a7b9 Merge pull request 'B2025-048 Problem with Printing CAS Steps' (#623) from B2025-048 into Development
good for testing phase
2025-09-26 10:05:41 -04:00
mschill e7f7f28ff1 B2025-048 Problem with Printing CAS Steps 2025-09-26 09:58:35 -04:00
jjenko b9c17fd360 Merge pull request 'B2022-126 F2025-013 F2025-020 F2025-021 F2025-022 Vogtle 3_4 Two Column Format' (#622) from Vogtle_Format_Tweaks_EOPs into Development
Minor Format changes - ready for testing
2025-09-26 09:33:46 -04:00
jjenko c7534a985a B2022-126 F2025-013 F2025-020 F2025-021 F2025-022 Vogtle 3_4 Two Column Format 2025-09-26 09:33:23 -04:00
plarsen 52583a05f6 C2022-003-Change-Textboxes-to-RTF-3 2025-09-25 08:24:20 -04:00
jjenko 081373fc0d Merge pull request 'C2015-028 Add Editorial Mode to PROMS Step Editor' (#621) from C2015-028 into Development
good for testing phase
2025-09-25 08:17:01 -04:00
mschill 9130604fa6 C2015-028 Add Editorial Mode to PROMS Step Editor 2025-09-25 08:01:19 -04:00
plarsen 37b4726925 C2022-003-Change-Textboxes-to-RTF-3 2025-09-24 22:39:37 -04:00
plarsen cc66eb5329 C2022-003-Change-Textboxes-to-RTF-3 2025-09-24 16:26:44 -04:00
plarsen 563c133676 C2022-003-Change-Textboxes-to-RTF-3 2025-09-24 13:23:24 -04:00
mschill e8b32c4ed3 Merge pull request 'B2025-050 Fixed settings that required restarting PROMS and the toggle of Sync Navigation' (#619) from B2025-050_SaveUserSettings into Development
Looks Good. Ready for QA!
2025-09-23 13:09:42 -04:00
jjenko 72ca259771 B2025-050 Fixed settings that required restarting PROMS and the toggle of Sync Navigation 2025-09-23 11:25:34 -04:00
jjenko d175c4b564 Merge pull request 'B2025-049 Admin Tool Purge Change History' (#618) from B2025-049 into Development
good for testing phase
2025-09-18 14:14:23 -04:00
mschill fb2aeb8192 B2025-049 Admin Tool Purge Change History 2025-09-18 14:00:25 -04:00
jjenko 24c25ab26c Merge pull request 'B2025-047 PROMS crashes when opening a procedure as a Reviewer after a restore is performed and the ROFST Load Status completes.' (#617) from B2025-047 into Development
good for testing phase
2025-09-17 13:46:35 -04:00
mschill 9da91e460f B2025-047 PROMS crashes when opening a procedure as a Reviewer after a restore is performed and the ROFST Load Status completes. 2025-09-17 13:13:18 -04:00
jjenko 2634cf7de9 Merge pull request 'F2025-018 BVPS Added a new attachment section F2025-019 BVPS Removed format flag that uppercases setpoint units in HLS' (#616) from F2025-018-019_BVPS_2colAttSect_SetPtUnits into Development
Format only changes.  Good for Testing phase.
2025-09-17 09:51:31 -04:00
jjenko 7417091f3f F2025-018 BVPS Added a new attachment section F2025-019 BVPS Removed format flag that uppercases setpoint units in HLS 2025-09-17 09:50:34 -04:00
jjenko f9aad50f46 Merge pull request 'C2025-055 ROFST Load Status bar loading when shouldnt' (#615) from C2025-055 into Development
good for testing phase
2025-09-16 15:48:44 -04:00
mschill 535cd5af2e Merge branch 'Development' into C2025-055 2025-09-16 15:40:12 -04:00
mschill 4a8e469736 C2025-055 ROFST Load Status bar loading when shouldnt 2025-09-16 15:39:41 -04:00
jjenko 7d89f711fe Merge pull request 'C2021-058 Admin Tool Purge Change History/C2025-052 Admin Tool Index Maintenance' (#614) from C2021-058_C2025-052 into Development
good for testing phase
2025-09-16 10:51:55 -04:00
mschill 7555a0389b C2021-058 Admin Tool Purge Change History/C2025-052 Admin Tool Index Maintenance 2025-09-16 09:08:17 -04:00
mschill 1ac6e4b1a0 Merge pull request 'C2025-0054 Upped the PROMS Version to 2.3' (#613) from C2025-054_UpMinorRev into Development
Looks Good! Ready for QA!
2025-09-15 11:17:55 -04:00
jjenko d2fc4c6134 C2025-0054 Upped the PROMS Version to 2.3 2025-09-15 11:10:07 -04:00
plarsen 73cad308aa Merge pull request 'C2025-034 Upgrade Possibility - Upgrade PROMS to 64 bit' (#611) from C2025-034 into Development
Reviewed-on: #611
Reviewed-by: Paul Larsen <plarsen@volian.com>
2025-09-11 11:30:51 -04:00
mschill c9f4c33ba1 C2025-034 Upgrade Possibility - Upgrade PROMS to 64 bit 2025-09-11 10:51:54 -04:00
plarsen 3f0bdc593c Merge pull request 'C2025-009 Added a report for tracking when a user is added into PROMS / when a user is added to specific PROMS security groups. Report can be run from the V-button->General Tools->Reports.' (#610) from C2025-009 into Development
Reviewed-on: #610
Reviewed-by: Paul Larsen <plarsen@volian.com>
2025-09-08 16:04:51 -04:00
mschill 0da2d38bd8 C2025-009 Added a report for tracking when a user is added into PROMS / when a user is added to specific PROMS security groups. Report can be run from the V-button->General Tools->Reports. 2025-09-08 14:38:36 -04:00
jjenko 3a6ce52ead Merge pull request 'C2025-022-PROMS-FIXES_CHECKIN' (#609) from C2025-022-PROMS-FIXES_CHECKIN into Development
good for testing
2025-09-04 17:03:41 -04:00
plarsen eb0582ae69 C2025-022-PROMS-FIXES_CHECKIN 2025-09-04 16:59:48 -04:00
plarsen 3143d094e8 C2025-022-PROMS-FIXES_CHECKIN 2025-09-04 16:28:23 -04:00
plarsen f265a23f97 C2025-022-PROMS-FIXES_CHECKIN 2025-09-04 16:22:29 -04:00
jjenko dceeb410c6 Merge pull request 'C2024-036 Add Filtering ability to the main PROMS procedure tree.' (#608) from C2024-036 into Development
good for testing phase
2025-09-04 15:52:57 -04:00
mschill 30be08fe4d C2024-036 Add Filtering ability to the main PROMS procedure tree.
Typing a procedure number or title into the search box and pressing enter/clicking the tree view search button will down base the PROMS procedure tree to matching procedures/folders.
2025-09-04 15:48:29 -04:00
mschill 20247d0bc2 Merge pull request 'C2025-017 Added an option to print (generate) all of the current Approved versions of PDFs and place them in a user specified folder' (#607) from C2025-017_PrintAllApproved into Development
Looks good. Ready for QA.
2025-09-04 15:44:01 -04:00
jjenko c0ac325911 C2025-017 Added an option to print (generate) all of the current Approved versions of PDFs and place them in a user specified folder 2025-09-04 14:38:26 -04:00
mschill c02ab116cd Merge pull request 'C2025-022-Remove-UCF-2' (#606) from C2025-022-Remove-UCF-2 into Development
Good for QA Testing
2025-09-04 06:55:25 -04:00
plarsen 7ec4f2a61e C2025-022-Remove-UCF-2 2025-09-03 15:56:22 -04:00
plarsen 16129ba742 C2025-022-Remove-UCF-2 2025-09-03 15:53:05 -04:00
plarsen 61853fb71f C2025-022-Remove-UCF-2 2025-09-03 13:56:31 -04:00
plarsen 58f13eb1dc C2025-022-Remove-UCF-2 2025-09-03 12:32:05 -04:00
plarsen b999f17445 C2025-022-Remove-UCF-2 2025-09-03 09:57:33 -04:00
plarsen c8047854f6 C2025-022-Remove-UCF-2 2025-09-03 09:38:17 -04:00
plarsen 91ee23287a C2025-022-Remove-UCF-2 2025-09-03 08:47:10 -04:00
plarsen 85b08b8c65 C2025-022-Remove-UCF-2 2025-09-02 16:55:51 -04:00
plarsen c81079a876 C2025-022-Remove-UCF-2 2025-09-02 09:14:45 -04:00
plarsen 8abe57552c C2025-022-Remove-UCF-2 2025-08-28 15:24:28 -04:00
jjenko 3bf24b838b Merge pull request 'B2025-044 Intermittent caching refresh issue with importing procedure sets.' (#605) from B2025-044 into Development
good for testing phase
2025-08-28 08:42:58 -04:00
mschill e37928bf89 B2025-044 Intermittent caching refresh issue with importing procedure sets. 2025-08-28 07:53:54 -04:00
plarsen 525173bc9f C2025-022-Remove-UCF-2 2025-08-27 12:59:53 -04:00
jjenko aa6dacf0c5 Merge pull request 'C2025-051 Missed one default when removing Check and Users Tabs from Admin Tool' (#604) from C2025-051 into Development
good for testing phase
2025-08-27 08:15:39 -04:00
mschill 69cc71ab3b C2025-051 Missed one default when removing Check and Users Tabs from Admin Tool 2025-08-27 07:01:39 -04:00
jjenko fe52d31168 Merge pull request 'C2025-051 Add a "General Tools" option to the V->Proms Menu.' (#603) from C2025-051 into Development
good for testing phase
2025-08-26 11:13:03 -04:00
mschill 3ea4307716 C2025-051 Add a "General Tools" option to the V->Proms Menu. 2025-08-26 06:57:57 -04:00
jjenko 5650df1a9f Merge pull request 'C2025-001 Replace 3rd party Ionic.zip component' (#602) from C2025-001 into Development
good for testing phase
2025-08-25 08:40:01 -04:00
mschill 8f154ebf48 C2025-001 Replace 3rd party Ionic.zip component 2025-08-21 14:25:53 -04:00
plarsen 47a4c62e92 C2025-022-Remove-UCF-2 2025-08-21 08:30:44 -04:00
plarsen 539ad769d0 C2025-022-Remove-UCF-2 2025-08-21 00:11:08 -04:00
plarsen 5fa90d9eab C2025-022-Remove-UCF-2 2025-08-20 11:14:13 -04:00
plarsen ba9d56811c Merge pull request 'C2025-035 RO Performance Improvement' (#601) from C2025-035 into Development
Reviewed-on: #601
Reviewed-by: Paul Larsen <plarsen@volian.com>
2025-08-19 14:24:55 -04:00
mschill 8eb8a328d1 C2025-035 RO Performance Improvement
Add some code to rebuild specific indexes (like [IX_RofstID_DbiID_ParentID] ON [dbo].[RofstChild])
after a new RO.FST is imported.
2025-08-19 13:32:23 -04:00
jjenko e8327316dd Merge pull request 'B2025-041-Set-Quick-Print-overwrite-pdf-to-false' (#599) from B2025-041-Set-Quick-Print-overwrite-pdf-to-false into Development
good for testing phase
2025-08-14 13:52:37 -04:00
plarsen 3bd7001106 B2025-041-Set-Quick-Print-overwrite-pdf-to-false 2025-08-14 11:23:22 -04:00
jjenko 2e5ad53c6a Merge pull request 'B2025-042 RO Editor FST Export ParentChild whitespace' (#598) from B2025-042 into Development
good for testing phase
2025-08-14 11:12:32 -04:00
mschill ca0ae279e0 B2025-042 RO Editor FST Export ParentChild whitespace 2025-08-14 10:16:22 -04:00
jjenko adf1120436 Merge pull request 'B2025-037 When Export an Approved procedure with multi-unit and ROs with Parent Child, it exports as the default text and not the specific unit text.' (#597) from B2025-037 into Development
good for testing phase
2025-08-13 10:52:17 -04:00
mschill 7879391de0 B2025-037 When Export an Approved procedure with multi-unit and ROs with Parent Child, it exports as the default text and not the specific unit text. 2025-08-13 10:45:49 -04:00
jjenko 11ba9ea418 Merge pull request 'C2025-048-Set-Quick-Print-overwrite-pdf-to-false' (#596) from C2025-048-Set-Quick-Print-overwrite-pdf-to-false into Development
good for testing phase
2025-08-13 10:34:12 -04:00
jjenko 0fe84ca17c Merge pull request 'C2025-045 Improve Performance loading procedures with Alarms.' (#594) from C2025-045 into Development
good for testing phase
2025-08-13 09:17:55 -04:00
plarsen 1009ca5111 Merge remote-tracking branch 'origin/Development' into C2025-048-Set-Quick-Print-overwrite-pdf-to-false 2025-08-13 09:14:34 -04:00
mschill 2c973fb0be C2025-045 Improve Performance loading procedures with Alarms. 2025-08-13 09:12:04 -04:00
plarsen dba1f4e71c C2025-048-Set-Quick-Print-overwrite-pdf-to-false 2025-08-13 09:11:52 -04:00
mschill 46fe124fe1 Merge pull request 'C2025-049 Added a check and fix for a different hyphen character that is in Vogtle’s 3 & 4 procedures, introduced by automatic importing and copy/paste from Word documents.' (#593) from C2025-049-update_StandardHyphens_AdminTools into Development
Looks good. Ready for QA testing.
2025-08-13 07:52:27 -04:00
jjenko 50688d7d8a C2025-049 Added a check and fix for a different hyphen character that is in Vogtle’s 3 & 4 procedures, introduced by automatic importing and copy/paste from Word documents. 2025-08-12 16:16:59 -04:00
plarsen a7396e3c4a Merge pull request 'C2025-015 Added logic to make approved PDF names unique to allow procedures from different sets or different revs of the same procedure to be opened (viewed) at the same time.' (#592) from C2025-015_ViewMultipleApprovedPDFsOfSameName into Development
Reviewed-on: #592
Reviewed-by: Matthew Schill <mschill@volian.com>
Reviewed-by: Paul Larsen <plarsen@volian.com> merge after successful code review.
2025-08-12 10:28:04 -04:00
jjenko 41e969f79e C2025-015 Added logic to make approved PDF names unique to allow procedures from different sets or different revs of the same procedure to be opened (viewed) at the same time. 2025-08-12 09:21:26 -04:00
jjenko 7b3f78f745 Merge pull request 'B2025-038-Copy-a-step-between-two-screens' (#591) from B2025-038-Copy-a-step-between-two-screens into Development
ready for testing phase
2025-08-12 08:45:59 -04:00
plarsen 14bc171246 B2025-038-Copy-a-step-between-two-screens 2025-08-12 08:09:38 -04:00
jjenko a584c0751e Merge pull request 'C2025-024' (#590) from C2025-024 into Development
good for testing phase
2025-08-08 10:18:59 -04:00
mschill 3d7528e069 Merge branch 'Development' into C2025-024 2025-08-08 09:56:33 -04:00
mschill 58cc75ef71 C2025-024
Fix merge conflict
2025-08-08 09:44:51 -04:00
mschill b5a9462e95 C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
Fix Regular Expression RO Resolution for when multi ROs  and multi-unit
2025-08-06 14:41:15 -04:00
jjenko 1bc421ac6d Merge pull request 'B2025-036-SplitScreen-Print-Error' (#587) from B2025-036-SplitScreen-Print-Error into Development
ready for testing
2025-08-06 11:37:03 -04:00
plarsen ad0d091b49 B2025-036-SplitScreen-Print-Error 2025-08-06 11:28:28 -04:00
plarsen 22de686a44 B2025-036-SplitScreen-Print-Error 2025-08-06 11:25:44 -04:00
jjenko 3e7eb09758 Merge pull request 'C2025-039 Per the customer’s request, adjusted the “{Proc Num} (Procedure Number Only)" transition type in the Beaver Valley formats so that a procedure that contains only Word sections can be referenced.' (#586) from C2025-039_allowStepTransToAllWordProc into Development
format only change - ready for testing
2025-08-04 10:31:38 -04:00
jjenko e2a276085b C2025-039 Per the customer’s request, adjusted the “{Proc Num} (Procedure Number Only)" transition type in the Beaver Valley formats so that a procedure that contains only Word sections can be referenced. 2025-08-04 10:30:20 -04:00
jjenko d561c579e0 Merge pull request 'C2025-047-cleanup' (#585) from C2025-047-cleanup into Development
good for testing
2025-08-01 14:58:51 -04:00
plarsen 371d117746 C2025-047-cleanup 2025-08-01 14:44:48 -04:00
mschill 28c681a562 C2025-024 Electronic Procedures Phase 2 - XML Export
Enhanced Doc Links
2025-08-01 13:53:08 -04:00
jjenko 2131efb522 Merge pull request 'C2025-047-AnnotationsTypeSelectChanges' (#583) from C2025-047-AnnotationsTypeSelectChanges into Development
good for testing phase
2025-08-01 10:13:46 -04:00
plarsen 6e20774edf C2025-047-AnnotationsTypeSelectChanges 2025-08-01 07:34:33 -04:00
plarsen a7c7744ff3 C2025-047-AnnotationsTypeSelectChanges 2025-07-31 23:06:29 -04:00
jjenko 019aefbc61 Merge pull request 'SQL optimization to use AnnotationTypeSelections Index' (#582) from SQL_Optimization_7_31_2025 into Development
good for testing phase
2025-07-31 11:03:14 -04:00
mschill 81a23305ba SQL optimization to used AnnotationTypeSelections Index 2025-07-31 10:48:39 -04:00
jjenko 4001abff02 Merge pull request 'C2025-027-AnnotationsTypeSelect-3' (#581) from C2025-027-AnnotationsTypeSelect-3 into Development
good for testing phase
2025-07-31 08:49:37 -04:00
plarsen 25bfbeb8d6 C2025-027-AnnotationsTypeSelect-3 2025-07-30 23:05:11 -04:00
mschill 44025c3978 C2025-024 Electronic Procedures Phase 2 - XML Export
Multi-Unit Resolution, and Fix RO Annotation resolution in Text
2025-07-30 13:47:25 -04:00
jjenko a3aa9747b8 Merge pull request 'C2025-027-AnnotationsTypeSelect-2' (#580) from C2025-027-AnnotationsTypeSelect-2 into Development
good for testing phase
2025-07-30 11:28:55 -04:00
plarsen 009243b091 C2025-027-AnnotationsTypeSelect-2 2025-07-30 11:18:33 -04:00
plarsen e31e0b6680 C2025-027-AnnotationsTypeSelect-2 2025-07-30 10:58:58 -04:00
plarsen 449bb2522b C2025-027-AnnotationsTypeSelect-2 2025-07-30 10:25:07 -04:00
jjenko 453dce9520 Merge pull request 'C2025-027-AnnotationsTypeSelect' (#574) from C2025-027-AnnotationsTypeSelect into Development
good for the testing phase
2025-07-30 08:23:06 -04:00
plarsen 655592186b C2025-027-AnnotationsTypeSelect 2025-07-29 22:54:44 -04:00
plarsen 1ebf67233b C2025-027-AnnotationsTypeSelect 2025-07-29 15:34:13 -04:00
jjenko 1588dabcbe Merge pull request 'C2025-044 Update PROMS Fixes to be SQL 2016 compatible' (#579) from C2025-044 into Development
good for testing phase
2025-07-29 15:18:37 -04:00
mschill 09d3995e6c C2025-044 Update PROMS Fixes to be SQL 2016 compatible 2025-07-29 15:12:51 -04:00
jjenko db20385a6d Merge pull request 'DEV_Proj_File_Dependency_Update' (#578) from DEV_Proj_File_Dependency_Update into Development
Good to use. - no testing required this update is for developers only.
2025-07-29 10:06:11 -04:00
mschill d701935ddf DEV_Proj_File_Dependency_Update
Visual Studio 2022 changed the default build order --- this will alow rebuild all in VS2022
2025-07-29 09:21:51 -04:00
plarsen d3888e3c32 C2025-027-AnnotationsTypeSelect 2025-07-29 09:20:58 -04:00
mschill 94f0795247 Merge pull request 'B2025-039 Needed to include the Blue color to the RTF color table for formats that use a proportional font.' (#577) from B2025-039_PropFontColorRplWrds into Development
Looks Good.

Ready for QA Testing.
2025-07-28 16:14:29 -04:00
jjenko 4def73d738 B2025-039 Needed to include the Blue color to the RTF color table for formats that use a proportional font. 2025-07-28 16:06:55 -04:00
plarsen 99445406fc C2025-027-AnnotationsTypeSelect 2025-07-25 23:06:50 -04:00
mschill 8c32d18aec C2025-024 Electronic Procedures Phase 2 - XML Export
Multi-Unit RO Resolution
2025-07-24 08:08:18 -04:00
mschill 20c31153de C2025-024 Electronic Procedures Phase 2 - XML Export
Multi-Unit RO Resolution
2025-07-23 15:26:45 -04:00
plarsen 025fa57e24 Merge remote-tracking branch 'origin/Development' into C2025-027-AnnotationsTypeSelect 2025-07-22 09:13:11 -04:00
plarsen 6f04d0bf07 C2025-027-AnnotationsTypeSelect 2025-07-22 09:06:11 -04:00
mschill ecb9a805e5 C2025-024 Electronic Procedures Phase 2 - XML Export
UI / menu filtering for EP only procedures
2025-07-21 13:47:23 -04:00
mschill 0577acad93 C2025-024 Electronic Procedures Phase 2 - XML Export
Removed unnecessary usings
2025-07-18 16:13:16 -04:00
mschill d7f83fa4d4 C2025-024 Electronic Procedures Phase 2 - XML Export
Export Cleanup
2025-07-18 14:52:05 -04:00
mschill 4c4f4d52d2 C2025-024 Electronic Procedures Phase 2 - XML Export
Code refactor and added comment
2025-07-18 13:26:16 -04:00
mschill 0bf9025c0d C2025-024 Electronic Procedures Phase 2 - XML Export
Multi-unit
2025-07-17 13:59:11 -04:00
plarsen 7a0f56cad8 C2025-027-AnnotationsTypeSelect 2025-07-16 15:03:32 -04:00
mschill 2784b57a05 C2025-023 - Electronic Procedures - Modifications to PROMS
Working on multiunit for DB Sequence
2025-07-16 14:23:55 -04:00
mschill b9fc9748c7 C2025-024 Electronic Procedures Phase 2 - XML Export
set RO Location code for pre-existing RO usages
2025-07-16 10:09:01 -04:00
plarsen c98299d916 C2025-027-AnnotationsTypeSelect 2025-07-15 23:32:31 -04:00
plarsen f6e25fd966 C2025-027-AnnotationsTypeSelect 2025-07-15 23:14:26 -04:00
jjenko 557b9429bf Merge pull request 'F2025-017 Created a new cover page type for Wolf Creek Single Column format.' (#575) from General_Debugging into Development
Format only change- ready for testing
2025-07-15 15:34:24 -04:00
jjenko 139f7bbd0a F2025-017 Created a new cover page type for Wolf Creek Single Column format. 2025-07-15 15:25:52 -04:00
mschill ec25f6426a C2025-024 Electronic Procedures Phase 2 - XML Export
Export code cleanup and initial set RO Location code
2025-07-15 13:43:19 -04:00
mschill 00283b4f28 C2025-024 Electronic Procedures Phase 2 - XML Export
Export code cleanup and initial set RO Location code
2025-07-15 13:31:12 -04:00
plarsen e08b5cde69 C2025-027-AnnotationsTypeSelect 2025-07-11 16:08:14 -04:00
mschill ec8e4c36a4 C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
RO image resolution for Annotations
2025-07-11 15:26:22 -04:00
mschill 07c7718320 Merge pull request 'C2025-038 Code cleanup to prevent multiple events from being assigned to the same method.' (#573) from C2025-038_EventCalls into Development
Looks good - ready for QA testing.
2025-07-10 11:23:25 -04:00
jjenko 2953e977ef C2025-038 Code cleanup to prevent multiple events from being assigned to the same method. 2025-07-10 10:47:06 -04:00
mschill 92522b1229 C2025-024 Electronic Procedures - Phase 2 (PROMS XML output)
Initial check-in / adding ui options / base for export
2025-06-30 14:32:24 -04:00
jjenko 9ef9dcd7b9 Merge pull request 'F2025-016 fixed the Open Bullet with Blank Line "o" designator to use the greek "o" lower cased omicron symbol' (#572) from F2025-016 into Development
Format only change.  good for testing
2025-06-26 16:08:44 -04:00
jjenko 5fd8096ef0 F2025-016 fixed the Open Bullet with Blank Line "o" designator to use the greek "o" lower cased omicron symbol 2025-06-26 16:08:21 -04:00
jjenko 5f59543a14 Merge pull request 'B2025-035-Hold-Procedure-Set-Bug' (#571) from B2025-035-Hold-Procedure-Set-Bug into Development
good for testing phase
2025-06-25 08:28:02 -04:00
plarsen d44593d6d4 B2025-035-Hold-Procedure-Set-Bug 2025-06-24 19:48:48 -04:00
jjenko 38744ff8e8 Merge pull request 'C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1)' (#565) from C2025-023 into Development
good for testing phase
2025-06-23 08:32:55 -04:00
mschill 83e935a3f4 C2025-023 updated revision wording 2025-06-20 15:36:08 -04:00
mschill 4d96e73866 Remove from checkin - should be in phase 2 2025-06-20 14:39:42 -04:00
mschill a55ce75e2e C2025-023 Bringing branch up to date to resolve merge conflicts 2025-06-20 14:33:58 -04:00
mschill c45dbf1dac Resolved merge conflicts with Development 2025-06-20 14:29:18 -04:00
mschill 2d08629608 C2025-023 attempt to resolve merge conflict 2025-06-20 13:56:41 -04:00
mschill 49bc67a64f Merge pull request 'C2025-036 - Cleaned up logic in PROMS code that generates the step/sub-step tabs to reduce un-needed processing in certain cases' (#569) from C2025-036_CleanupTabCode into Development
Looks good. Ready for QA testing.
2025-06-18 09:29:10 -04:00
jjenko abec4d9281 C2025-036 - Cleaned up logic in PROMS code that generates the step/sub-step tabs to reduce un-needed processing in certain cases 2025-06-18 09:20:17 -04:00
jjenko 149bc601e2 Merge pull request 'B2025-034-Add-error-message-documents-2' (#568) from B2025-034-Add-error-message-documents-2 into Development
good for testing phase
2025-06-12 08:36:28 -04:00
plarsen 66deede936 B2025-034-Add-error-message-documents-2 2025-06-11 18:24:59 -04:00
jjenko 0df5511bf7 Merge pull request 'B2025-034-Add-error-message-documents' (#567) from B2025-034-Add-error-message-documents into Development
good for testing phase
2025-06-11 08:42:44 -04:00
plarsen 2e68218cfe B2025-034-Add-error-message-documents 2025-06-10 16:34:22 -04:00
plarsen 80f3568dbd Merge pull request 'F2025-015 Shearon Harris add sub-steps in Notes and Cautions and to add an Open Bullet sub-step type in both the EOP and AOP formats.' (#566) from F2025-015_SharonHarris into Development
Reviewed-on: #566
2025-06-03 11:43:26 -04:00
jjenko 5fd0ff9e71 F2025-015 Shearon Harris add sub-steps in Notes and Cautions and to add an Open Bullet sub-step type in both the EOP and AOP formats. 2025-06-03 10:46:41 -04:00
jjenko 4dcfa05157 Merge pull request 'B2025-024-Document-Unit-Print' (#564) from B2025-024-Document-Unit-Print into Development
good for testing phase
2025-05-29 10:14:00 -04:00
jjenko 42648f31a5 Merge pull request 'C2025-021 Add logic to PROMS to support a special High Level Step type that is not printed.' (#563) from C2025-021 into Development
Good for testing phase
2025-05-29 10:06:34 -04:00
plarsen e0b628dce9 B2025-024-Document-Unit-Print 2025-05-28 18:19:24 -04:00
mschill 6e9c7e28e6 C2025-021 Add logic to PROMS to support a special High Level Step type that is not printed.
Make Inactive by Default
2025-05-28 14:37:14 -04:00
mschill ac091a7d26 C2025-021 Add logic to PROMS to support a special High Level Step type that is not printed. 2025-05-28 14:15:21 -04:00
plarsen 8f31532917 C2025-023-Format2-Update 2025-05-27 10:56:14 -04:00
mschill 612e7955cf Merge pull request 'F2024-089 - Barakah requested a newly formatted Cover page section style to make room for new Corporate Logo.' (#561) from F2024-089_BNPP_LOGO into Development
Looks good.
Ready for QA.
2025-05-23 09:08:51 -04:00
jjenko ce92031ff7 F2024-089 - Barakah requested a newly formatted Cover page section style to make room for new Corporate Logo. 2025-05-22 15:05:27 -04:00
mschill 5a7e63871d C2025-023 - Electronic Procedures - Modifications to PROMS
Simplified to textboxes as RTF was impacting possible tags / directories
2025-05-21 09:34:07 -04:00
plarsen 7ade7f6e24 Merge pull request 'C2025-023-New-EP-Format-File' (#560) from C2025-023-New-EP-Format-File into C2025-023
Reviewed-on: #560
2025-05-20 17:21:25 -04:00
plarsen e470ef0553 C2025-023-New-EP-Format-File 2025-05-20 16:53:16 -04:00
jjenko fb01a4f8df Merge pull request 'C2025-013 Option to Disable “Message Prompt when a Summary will open in MS Word”' (#558) from C2025-013 into Development
good for testing phase
2025-05-19 15:44:18 -04:00
mschill eacdca8669 C2025-013 Option to Disable “Message Prompt when a Summary will open in MS Word” 2025-05-19 15:37:46 -04:00
jjenko df97a6dd01 Merge pull request 'C2025-028 Add a Quick Print Section option / B2025-032 Fix Section not Printing Applicability Properly' (#557) from C2025-028_B2025-032 into Development
good for testing phase
2025-05-16 15:37:01 -04:00
mschill 0259d4ff1d C2025-028 Add a Quick Print Section option / B2025-032 Fix Section not Printing Applicability Properly
Added an option to quick print a section.

Fixed a bug where: If you went to a section that had Applicability and select "Print Section" for a specific unit, it would sometimes print all units.
2025-05-16 14:10:56 -04:00
mschill f71e9938bb Merge pull request 'C2025-033 Added a new field and supporting logic to specify if a PageStyle item should be printed for the Child procedure being printed.' (#556) from DemoFormats into Development
Looks good.
Ready for QA.
2025-05-16 11:01:18 -04:00
jjenko 69f8e3f4fc C2025-033 Added a new field and supporting logic to specify if a PageStyle item should be printed for the Child procedure being printed. 2025-05-16 10:52:37 -04:00
mschill f49c888307 C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1)
Changed linq to use builtin Find method per code analyzer recommendation
2025-05-15 10:57:28 -04:00
mschill 04a2da4371 C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1)
Change to not show open button if is an invalid step type
2025-05-15 10:45:52 -04:00
jjenko 59372b23e4 Merge pull request 'B2025-028 RO Editor - Parent Child Applicability - Default Values' (#554) from B2025-028 into Development
good for testing phase
2025-05-15 10:41:40 -04:00
mschill 2970c0d7d4 B2025-028 RO Editor - Parent Child Applicability - Default Values
While working with parent/child applicability with child applicability set for a setpoint group - assign the Setpoint Values and Short Description fields to have Child values.  All child values default to their parent values as expected.  However, if you click in the Parent field for the Short Description, the Child Values for the Short Description fields incorrectly defaulted to the Parent Setpoint Value instead of keeping the parent Short Description.
2025-05-15 10:28:47 -04:00
jjenko 392f1b09b2 Merge pull request 'C2025-031 Fixed typos found in Tool Tip message from previous check-in of this code change' (#553) from C2025_031_OptionsTooltips_Cleanup into Development
Change just fixes typos in tool tip messages.  No code review needed.
Ready for testing phase
2025-05-15 09:03:53 -04:00
jjenko 79f66e9641 C2025-031 Fixed typos found in Tool Tip message from previous check-in of this code change 2025-05-15 09:01:43 -04:00
jjenko e90fceca86 Merge pull request 'B2025-031 Improve wording for if attempting to delete copied section' (#552) from B2025-031 into Development
good for testing phase
2025-05-15 08:40:23 -04:00
mschill 24d5cee8b4 B2025-031 Improve wording for if attempting to delete copied section
When an attempt is made to delete a section in the edit window that has been copied, the "Attempting to delete copied step" message box appears.   This message box is incorrect because you're attempting to delete the section, not a step in the section.   This only happens on a section that has been copied.
2025-05-15 07:34:19 -04:00
mschill 31f608a9ec C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1)
Change to not show open button if using a format that is not attached to an EP format file.
2025-05-14 15:05:58 -04:00
jjenko 1ba4c4f343 Merge pull request 'B2025-028 RO Editor - Parent Child Applicability - Default Values' (#551) from B2025-028 into Development
ready for testing phase
2025-05-14 11:49:10 -04:00
mschill 700d9656b2 B2025-028 RO Editor - Parent Child Applicability - Default Values
While working with parent/child applicability with child applicability set for a setpoint group - assign the Setpoint Values and Short Description fields to have Child values.  All child values default to their parent values as expected.  However, if you click in the Parent field for the Short Description, the Child Values for the Short Description fields incorrectly defaulted to the Parent Setpoint Value instead of keeping the parent Short Description.
2025-05-14 11:42:51 -04:00
mschill 0c17d9abc2 Merge pull request 'C2025-031 - Added Tool Tip text for button on V button. Code fix for DotNetBar Visual UI rendering' (#550) from C2025_031_OptionsTooltips_Cleanup into Development
looks good. Ready for QA.
2025-05-13 16:09:26 -04:00
jjenko 2c1476b74c C2025-031 - Added Tool Tip text for button on V button. Code fix for DotNetBar Visual UI rendering 2025-05-13 16:03:44 -04:00
jjenko 0fa71727ac Merge pull request 'B2025-030 Show Cannot restore wording if restoring Annotation with a deleted annotation type.' (#549) from B2025-030 into Development
good for testing phase
2025-05-13 14:27:23 -04:00
mschill 20cacf26ae B2025-030 Show Cannot restore wording if restoring Annotation with a deleted annotation type. 2025-05-13 14:17:57 -04:00
jjenko 1d406b0c7e Merge pull request 'C2025-032 Add check if user is sure want to paste replace section.' (#548) from C2025-032 into Development
good for testing phase
2025-05-13 10:56:51 -04:00
mschill a099d27b86 C2025-032 Add check if user is sure want to paste replace section. 2025-05-13 08:19:23 -04:00
mschill 3e53ec9191 C2025-023 - Electronic Procedures - Modifications to PROMS
Small change to handle removed items that were selected.
2025-05-13 07:48:50 -04:00
mschill 637cbd9954 C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1)
RO/table entry - Dev Testing related changes
2025-05-08 10:18:50 -04:00
jjenko 717251ca5e Merge pull request 'Added PROMS Demo Fromats and dded a checkbox on the Copy Formats dialog to include the PROMS Demo formats.' (#547) from DemoFormats into Development
Developer tool update and PROMS Demo formats.
Not testing required.
2025-05-06 14:43:00 -04:00
jjenko 5d3bb41275 Added PROMS Demo Fromats and dded a checkbox on the Copy Formats dialog to include the PROMS Demo formats. 2025-05-06 14:41:50 -04:00
mschill e5211fee00 Merge pull request 'F2025-012 Format changes are needed to account for ABN procedures.' (#546) from F2025-012 into Development
Format change only - per John, no review needed.

Reviewed-on: #546
2025-05-05 14:37:14 -04:00
mschill 41cb078a94 F2025-012 Format changes are needed to account for ABN procedures.
In the ERG and ABN format, Attachment Step Editor (Two Column), the following changes need made:
- add a blank line between the Initial Action Step and the following high level step
- need the ability to insert sub-steps off of the Initial Action Step
- adjust extra line spacing above Initial Action Steps
- add a step designator in the edit window to indicate an Immediate Action Step
2025-05-05 14:36:23 -04:00
jjenko 0a5e4076e1 Merge pull request 'B2025-026 - AND Substeps are Printing as Sequential Substeps in the ERG format /' (#545) from B2025-026_B2025-027 into Development
good for testing
2025-05-05 08:48:11 -04:00
mschill c3534e21fa B2025-026 - AND Substeps are Printing as Sequential Substeps in the ERG format /
B2025-027 - Bottom Continue message now appears due to the AND step type being now sequential and step compression being shut off
2025-05-05 08:31:21 -04:00
mschill e9e934cfb1 C2025-023 - Electronic Procedures - Modifications to PROMS
RO input functionality
2025-05-02 11:46:55 -04:00
mschill a417ddda85 C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1)
RO Graphics Item Adjustment
2025-04-30 11:25:18 -04:00
jjenko 06159c6b68 Merge pull request 'F2025-011 Format changes are needed to account for ABN procedures.' (#542) from F2025-011 into Development
good for testing phase
2025-04-30 09:55:55 -04:00
mschill 22c14d169b F2025-011 Format changes are needed to account for ABN procedures.
Adjustments to PSI location and Abnormal Procedure Steps Sections
2025-04-30 09:50:09 -04:00
mschill f273a8839a C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1)
Overlapping of textbox controls
2025-04-29 10:50:59 -04:00
jjenko db09db3cd0 Merge pull request 'F2025-011 Format changes are needed to account for ABN procedures.' (#541) from F2025-011 into Development
ready for testing phase
2025-04-28 13:33:44 -04:00
mschill ba8a8b8673 F2025-011 Format changes are needed to account for ABN procedures. 2025-04-28 12:08:10 -04:00
mschill 62ae81c7b3 C2025-023 - Electronic Procedures - Modifications to PROMS
Working on Adding functionality for EP input for tables #2
2025-04-25 15:07:29 -04:00
mschill 6db9567eb9 C2025-023 - Electronic Procedures - Modifications to PROMS
Working on Adding functionality for EP input for tables
2025-04-23 07:42:28 -04:00
mschill 8ef08c53b3 C2025-023 - Electronic Procedures - Modifications to PROMS
1. undo changes to store checkbox/textbox in cell grid
2. change to use roid as key for RO listbox items
2025-04-11 10:12:37 -04:00
jjenko 6f354bfeee Merge pull request 'B2025-010 - Adjusted the positioning of the procedure title in the Catawba Deviation Format so that it is centered' (#539) from B2025-010 into Development
Format only change.  Ready for testing
2025-04-11 09:14:38 -04:00
jjenko 818d764b3d B2025-010 - Adjusted the positioning of the procedure title in the Catawba Deviation Format so that it is centered 2025-04-11 09:11:02 -04:00
mschill 9fdbdb05f4 C2025-023 - Electronic Procedures - Modifications to PROMS (checkin 4 - added some comments) 2025-04-10 09:05:42 -04:00
mschill d392131005 C2025-023 - Electronic Procedures - Modifications to PROMS (checkin #3 - fix winforms select first item bug in listboxes) 2025-04-10 08:53:27 -04:00
mschill 389b9e382b C2025-023 - Electronic Procedures - Modifications to PROMS - checkin #2 2025-04-09 15:22:36 -04:00
mschill 6fd84e2f2a C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1) 2025-04-08 10:54:19 -04:00
jjenko 689ea71846 Merge pull request 'B2022-031-Add-filtering-for-Proc-and-Section-name-from-Global-Search-2' (#538) from B2022-031-Add-filtering-for-Proc-and-Section-name-from-Global-Search-2 into Development
good for testing phase
2025-04-07 14:05:24 -04:00
plarsen 66295594e9 B2022-031-Add-filtering-for-Proc-and-Section-name-from-Global-Search-2 2025-04-07 13:46:28 -04:00
jjenko 042b80b9f4 Merge pull request 'B2022-031-Add-filtering-for-Proc-and-Section-name-from-Global-Search' (#537) from B2022-031-Add-filtering-for-Proc-and-Section-name-from-Global-Search into Development
Good for testing phase
2025-04-07 10:59:46 -04:00
plarsen c4da241516 B2022-031-Add-filtering-for-Proc-and-Section-name-from-Global-Search 2025-04-07 10:48:40 -04:00
plarsen 74ccbfa760 B2022-031-Add-filtering-for-Proc-and-Section-name-from-Global-Search 2025-04-04 13:13:28 -04:00
plarsen 46d8838d0e B2022-031-Add-filtering-for-Proc-and-Section-name-from-Global-Search 2025-04-04 10:48:48 -04:00
jjenko 94d2c32025 Merge pull request 'Added the format file used for the pre-tend ACME data which is used when updating the PROMS User Manual' (#536) from ACME_formats into Development
format used internally when working on the PROMS User Manual
2025-04-04 10:40:40 -04:00
jjenko 64124cc0f7 Added the format file used for the pre-tend ACME data which is used when updating the PROMS User Manual 2025-04-04 10:38:26 -04:00
plarsen 24c5bc5097 B2022-031-Add-filtering-for-Proc-and-Section-name-from-Global-Search 2025-04-03 18:01:13 -04:00
plarsen 1ffde5de50 B2022-031-Add-filtering-for-Proc-and-Section-name-from-Global-Search 2025-04-03 14:20:21 -04:00
jjenko 3828da2f8f Merge pull request 'C2024-041-Disable-UCF-(User-Control-of-Format)-options-3' (#534) from C2024-041-Disable-UCF-(User-Control-of-Format)-options-3 into Development
good for testing phase
2025-03-24 08:15:21 -04:00
plarsen 1554d3cc33 C2024-041-Disable-UCF-(User-Control-of-Format)-options-3 2025-03-23 19:35:06 -04:00
jjenko d808b306b6 Merge pull request 'C2024-041-Disable-UCF-(User-Control-of-Format)-options-2' (#533) from C2024-041-Disable-UCF-(User-Control-of-Format)-options-2 into Development
good for testing phase
2025-03-21 08:18:08 -04:00
plarsen 45aeb808fa C2024-041-Disable-UCF-(User-Control-of-Format)-options-2 2025-03-20 17:06:28 -04:00
jjenko 74f9fc0c18 Merge pull request 'F2025-004 Customer requested the addition of a Two Column Attachment section type' (#531) from F2025-004_Ginna into Development
Format only change.  Good for testing phase
2025-03-06 16:15:32 -05:00
jjenko c2c90a2c2e F2025-004 Customer requested the addition of a Two Column Attachment section type 2025-03-06 16:13:52 -05:00
jjenko 05ab077dda Merge pull request 'B2025-017-Print-Section-Sub-Section-v2' (#529) from B2025-017-Print-Section-Sub-Section-v2 into Development
good for testing phase
2025-02-28 08:16:52 -05:00
plarsen 1ae422c74e B2025-017-Print-Section-Sub-Section-v2 2025-02-27 19:16:47 -05:00
jjenko 5da62c3a5d Merge pull request 'Updated the developer tool that copied the format files to the FMTall an GENMACall folders. Added a list box to show what format files will not be copied.' (#528) from DeveloperToolUpdate into Development
This is an update to a tool that the developers use and is not released to the customers.
No testing required,
2025-02-27 11:21:53 -05:00
jjenko 86a98118fb Updated the developer tool that copied the format files to the FMTall an GENMACall folders. Added a list box to show what format files will not be copied. 2025-02-27 11:20:31 -05:00
mschill 6a51208a13 Merge pull request 'B2025-020 Fixed NULL reference error while running the Refresh Transitions administrator tool.' (#527) from B2025-020_UpdateTransitions into Development
Looks good.
Ready for QA.
2025-02-26 11:48:06 -05:00
jjenko 0749f5e724 B2025-020 Fixed NULL reference error while running the Refresh Transitions administrator tool. 2025-02-26 11:07:17 -05:00
jjenko f65644f553 Merge pull request 'B2025-018 PROMS - Issues with folder order in tree view.' (#526) from B2025-018 into Development
good for testing phase
2025-02-21 16:05:19 -05:00
mschill dc74da6e86 B2025-018 PROMS - Issues with folder order in tree view. 2025-02-21 15:52:16 -05:00
jjenko 301c4c2c97 Merge pull request 'C2025-019 RO Editor - Update the Orphaned RO Record text file to save in the current RO folder instead of the users appdata folder.' (#525) from C2025-019 into Development
Good for testing phase.
2025-02-20 16:04:06 -05:00
mschill 8ec820a7f7 C2025-019 RO Editor - Update the Orphaned RO Record text file to save in the current RO folder instead of the users appdata folder.
Found while using the WEP ROMOD database and the ROEPU folder.
Note for Word doc:  Update D.2.10 in the PROMS Manual for this update
2025-02-20 15:54:29 -05:00
jjenko 18734e0f85 Merge pull request 'B2025-015 RO Editor - PROMS will get stuck in a loop (hang) while placing RO.FST information in the plant database (loading RO's) when Unit Values contain brackets. Example is Point Beach data.' (#523) from B2025-015 into Development
good for testing phase
2025-02-20 10:08:52 -05:00
mschill 9980504c47 B2025-015 RO Editor - PROMS will get stuck in a loop (hang) while placing RO.FST information in the plant database (loading RO's) when Unit Values contain brackets. Example is Point Beach data.
Some of Point Beach RO's have curly braces in the RO return value for the units in P/C.  Found this on some (5-7) Annunciator RO values.  The definition of the return value (multiple return values) uses curly braces so PROMS cannot distinguish between brackets being part of a unit value or part of the format for multiple return values.

Equipment Designation, Main Steam (MS), Annunciators have examples of return values with curly braces.  Look at the Referenced Object Definition on the Annunciators tree node for the definition of the return value.
2025-02-20 10:03:05 -05:00
mschill 626960da9f Merge pull request 'C2025-014 The zoom setting on step level bookmarks in generated PDFs will now jump to the page containing the step (like it does when a section bookmark is selected) instead of zooming in on the step.' (#522) from C2025-014_PDF_Step_BckMrk_Zoom into Development
Looks Good - Ready for QA testing
2025-02-18 15:52:52 -05:00
jjenko 535728b982 C2025-014 The zoom setting on step level bookmarks in generated PDFs will now jump to the page containing the step (like it does when a section bookmark is selected) instead of zooming in on the step. 2025-02-18 15:39:55 -05:00
jjenko ace9672a2e Merge pull request 'B2025-019 RO Editor - When selecting an RO Definition, clicking the X in the corner or selecting Cancel prompts you to verify you want to close without saving changes when no changes were made if there is Parent/Child & applicability was never set for …' (#521) from B2025-019 into Development
good for testing phase (remember to build the Reference Objects project)
2025-02-18 15:38:10 -05:00
mschill 05a13861ac B2025-019 RO Editor - When selecting an RO Definition, clicking the X in the corner or selecting Cancel prompts you to verify you want to close without saving changes when no changes were made if there is Parent/Child & applicability was never set for the in-use fields. 2025-02-18 15:21:19 -05:00
jjenko 24374b85c1 Merge pull request 'C2024-038 - Bringing date control to the front so left side of box shows' (#520) from C2024-038_v2 into Development
good for testing phase
2025-02-18 09:01:05 -05:00
mschill 8c358f1e3c C2024-038 - Bringing date control to the front so left side of box shows 2025-02-18 07:42:35 -05:00
jjenko 289285f517 Merge pull request 'F2025-002 Per customer, remove the newly added Action Verbs from the PROMS ReplaceWords list.' (#519) from F2025-002_Farley into Development
Format only change.  Good for testing.
2025-02-17 15:12:22 -05:00
jjenko 3ee9e0f4eb F2025-002 Per customer, remove the newly added Action Verbs from the PROMS ReplaceWords list. 2025-02-17 15:12:06 -05:00
jjenko d6c924a51f Merge pull request 'B2025-016 – Quick Print Shortcut Key' (#518) from B2025-016 into Development
good for testing phase
2025-02-17 08:41:17 -05:00
mschill 3a739c5b64 B2025-016 – Quick Print Shortcut Key
Found during Functional Testing:
Using "ALT R" shortcut key shows that Quick Print PDF & Create PDF both then have "P" as their shortcut. Kept Create PDF/Print as Ctrl-P. Changed Quick Print to be shortcut of Ctrl-Q.
2025-02-17 08:21:16 -05:00
jjenko 3564f4ba8e Merge pull request 'C2024-038 PROMS – Summary of Changes report generation enhancements' (#517) from C2024-038 into Development
Good for testing phase
2025-02-14 15:21:08 -05:00
mschill 5ad9d81cc1 C2024-038 PROMS – Summary of Changes report generation enhancements
This is an upgrade item to add a method to exclude annotations and a way run the summary of changes report from a specific date.
2025-02-14 15:10:40 -05:00
jjenko 0292634374 Merge pull request 'We are reverting back to the last DotNetBar install. We found issues on the developer side of maintaining the dialogs and forms in PROMS.' (#515) from OrgDotNetBar into Development
Software Development Environment update.  No source control document  needed.
2025-02-11 15:06:39 -05:00
jjenko d4418b8d8a We are reverting back to the last DotNetBar install. We found issues on the developer side of maintaining the dialogs and forms in PROMS. 2025-02-11 15:02:58 -05:00
jjenko a33f136e77 Merge pull request 'B2025-011-Global-search-is-not-finding-question-marks' (#514) from B2025-011-Global-search-is-not-finding-question-marks into Development
good for testing phase
2025-02-11 09:07:12 -05:00
jjenko f85f8e9e2c Merge pull request 'B2025-013 PROMS –Admin Tool Tree Behavior' (#513) from B2025-013 into Development
good for testing phase
2025-02-10 11:04:07 -05:00
mschill 01541c9e0d B2025-013 PROMS –Admin Tool Tree Behavior 2025-02-10 10:57:01 -05:00
plarsen 4bfffc945a Merge remote-tracking branch 'origin/Development' into B2025-011-Global-search-is-not-finding-question-marks 2025-02-10 10:23:24 -05:00
plarsen 16509c2eab B2025-011-Global-search-is-not-finding-question-marks 2025-02-09 22:44:01 -05:00
jjenko bc1f85b657 Merge pull request 'DotNet 4.8.1 build of DotNetBar' (#511) from DotNetBar_net4.8.1 into Development
.Net 4.8.1 build of Dot Net Bar's dll
2025-02-07 10:36:55 -05:00
jjenko 6b0a5d60f4 DotNet 4.8.1 build of DotNetBar 2025-02-07 10:35:23 -05:00
jjenko 33439b63a0 Merge pull request 'Using Net 4.8.1 build of CSLA' (#510) from CLSA481Build into Development
.Net 4.8.1 build of CSLA.dll.
testing will be done during User Manual Updates and baseline print testing.
2025-02-06 16:04:27 -05:00
jjenko bb24d1207d Using Net 4.8.1 build of CSLA 2025-02-06 15:57:41 -05:00
jjenko 8fc477ec04 Merge pull request 'B2025-014 PROMS – RO Update Admin Tool Error when updating RO containing carats/deltas' (#509) from B2025-014 into Development
good for testing phase
2025-02-05 14:03:18 -05:00
mschill bf06c9e14f B2025-014 PROMS – RO Update Admin Tool Error when updating RO containing carats/deltas
While testing an update for C2025-0011, using BNPP data and ROs, the update ro values crashes at the next to the last procedure set which is folder called "PROMS Tests." It crashes with a null reference as it is not able to detect the format. This is to change this to use the “ActiveFormat” of the Working Folder instead of utilizing “MyFormat”.
2025-02-05 13:34:18 -05:00
jjenko 5a263107da Merge pull request 'B2025-012 PROMS – Searching Step Elements – All Step Types' (#507) from B2025-012 into Development
good for testing phase
2025-02-05 10:01:13 -05:00
mschill d30bb2e329 B2025-012 PROMS – Searching Step Elements – All Step Types
When searching for step elements (the Find Selected Step Elements option is selected) and "All Types." Is selected for step types, you incorrectly get the "No Types Selected" message box when clicking on search.
2025-02-05 08:38:18 -05:00
jjenko 8248bd8e47 Merge pull request 'C2025-011 PROMS – RO Update Admin Tool Memory Enhancements' (#506) from C2025-011 into Development
good for the testing phase
2025-02-04 13:47:24 -05:00
mschill 378653c536 C2025-011 PROMS – RO Update Admin Tool Memory Enhancements
The purpose of this upgrade is to improve the user experience when using the Admin tool to Update ROs. Currently for larger RO dbs (like Barakah) we can run up against memory constraints that do not allow all the ROs to be updated at one time. This is based upon some initial resource where some places were identified where we could improve memory usage.  Some of these should benefit PROMS as a whole while others will be specific to the RO Update option in Admin Tools.
2025-02-04 13:23:21 -05:00
jjenko f2d330bd0e Merge pull request 'F2025-001 Barakah provided us with format changes to add more signoffs to the "BNPP Single Column Format - 2021" in which they had made.' (#505) from F2025-001_BNPP into Development
format only change - ready for testing
2025-02-03 13:41:58 -05:00
jjenko c1c93cbdc4 F2025-001 Barakah provided us with format changes to add more signoffs to the "BNPP Single Column Format - 2021" in which they had made. 2025-02-03 13:40:18 -05:00
jjenko 47a14e143e Merge pull request 'C2019-025_Ability-to-Toggle-Replace-Words-3' (#503) from C2019-025_Ability-to-Toggle-Replace-Words-3 into Development
good for testing phase
2025-01-30 09:26:20 -05:00
plarsen b7aa85f4fc C2019-025_Ability-to-Toggle-Replace-Words-3 2025-01-30 09:22:51 -05:00
plarsen 90e25f3fcf C2019-025_Ability-to-Toggle-Replace-Words-3 2025-01-30 09:09:39 -05:00
jjenko d67e81d8a6 Merge pull request 'C2025-005 PROMS – Searching Step Elements' (#502) from C2025-005 into Development
good for testing phase
2025-01-29 15:31:59 -05:00
mschill 057915baaa C2025-005 PROMS – Searching Step Elements
When searching for step elements (the Find Selected Step Elements option is selected) and multiple procedure sets are selected, but the procedure sets use different formats, PROMS puts a message in the Results area that says "folders selected contain multiple formats". Need to expand this messaging to provide more clear information regarding which formats are causing the issue, so that they can more easily decide which sets to de-select rather than doing so randomly.  There is also a refresh issue where deselecting everything, it will not always refresh properly.
2025-01-29 15:26:29 -05:00
jjenko fe268b6122 Merge pull request 'C2019-025_Ability-to-Toggle-Replace-Words-2' (#501) from C2019-025_Ability-to-Toggle-Replace-Words-2 into Development
good for testing phase
2025-01-29 15:04:09 -05:00
plarsen ca61597863 C2019-025_Ability-to-Toggle-Replace-Words-2 2025-01-29 14:21:14 -05:00
jjenko a04def360d Merge pull request 'B2025-010 PROMS – Change ID Issues' (#500) from B2025-010 into Development
good for testing phase
2025-01-28 09:05:28 -05:00
mschill 5e43a8501b B2025-010 PROMS – Change ID Issues
Removing the change id via backspaces in the change id box in the step properties panel can cause PROMS to crash. Also, it doesn’t always remove the change id properly. Changing this to instead of updating every time text changes in the box, adding a save button. Also, adding some null exception error handling.
2025-01-27 16:09:19 -05:00
jjenko e893264075 Merge pull request 'C2019-025_Ability-to-Toggle-Replace-Words' (#499) from C2019-025_Ability-to-Toggle-Replace-Words into Development
OK for testing phase
2025-01-27 15:51:01 -05:00
plarsen cf20704811 C2019-025_Ability-to-Toggle-Replace-Words 2025-01-27 15:45:09 -05:00
plarsen 37c5b23a86 C2019-025_Ability-to-Toggle-Replace-Words 2025-01-27 13:38:48 -05:00
jjenko 82d8fe6e17 Merge pull request 'B2025-005 PROMS - Change Reports - Invalid Transitions showing Incorrectly' (#498) from B2025-005 into Development
good for testing phase
2025-01-24 15:53:37 -05:00
mschill 4ca3697845 B2025-005 PROMS - Change Reports - Invalid Transitions showing Incorrectly 2025-01-24 15:29:07 -05:00
plarsen 71130bd26b C2019-025_Ability-to-Toggle-Replace-Words 2025-01-24 10:12:43 -05:00
jjenko 37626d8f45 Merge pull request 'C2025-008 RO Editor – Remove redundant Save Failed message box' (#497) from C2025-008 into Development
Good for testing phase
2025-01-24 08:36:04 -05:00
mschill f95369d3a4 C2025-008 RO Editor – Remove redundant Save Failed message box 2025-01-24 08:02:24 -05:00
jjenko aa00891f8e Merge pull request 'B2025-008 PROMS - Display RO Step Properties - RO Tables' (#496) from B2025-008 into Development
good for testing phase
2025-01-23 16:13:56 -05:00
mschill d44f9ba2b6 B2025-008 PROMS - Display RO Step Properties - RO Tables 2025-01-23 15:50:52 -05:00
jjenko c3b7b1e5a4 Merge pull request 'B2025-007 RO Editor – RO Figure Default File extension' (#495) from B2025-007 into Development
good for testing phase
2025-01-23 11:06:24 -05:00
mschill f3309e4a40 B2025-007 RO Editor – RO Figure Default File extension 2025-01-23 11:02:15 -05:00
jjenko 8fa059c186 Merge pull request 'C2025-007 ROEditor - PROMPT to Confirm Deletion' (#494) from C2025-007 into Development
good for testing phase
2025-01-22 13:31:24 -05:00
mschill 96e61aea2b C2025-007 ROEditor - PROMPT to Confirm Deletion
When deleting a group or an RO in the RO Editor, consider adding a prompte for the user asking if they are sure they want to delete the ro/group.  Perhaps also add text to the message saying they may want to consider creating a zip file of the RO folder prior to deleting ROs/groups.
2025-01-22 12:45:27 -05:00
jjenko 565779c9c8 Merge pull request 'B2025-009 RO Editor - Disable the Save As button if it is a new RO that has not been saved yet.' (#493) from B2025-009 into Development
change ready for testing
2025-01-22 12:01:04 -05:00
mschill b4ccd682c3 B2025-009 RO Editor - Disable the Save As button if it is a new RO that has not been saved yet.
Adding a new RO:  when you click Save As, you get the Problem Saving Data message box. Should only be able to “Save As” if it has already been previously saved.
2025-01-22 11:57:57 -05:00
jjenko dba1331556 Merge pull request 'B2025-004 Remove dependency on stored procedure (GetDisplayTabdata).' (#492) from B2025-004_v2 into Development
changes good for testing phase
2025-01-22 10:39:24 -05:00
mschill 8803ae2274 B2025-004 Remove dependency on stored procedure (GetDisplayTabdata).
-- Found during testing that needed a few additional items that needed to not create hard errors
2025-01-22 10:35:44 -05:00
jjenko 69d09b7fc2 Merge pull request 'B2025-004 Remove dependency on stored procedure (GetDisplayTabdata).' (#491) from B2025-004 into Development
good for testing phase
2025-01-22 08:25:26 -05:00
jjenko 8ddfc8654e Merge pull request 'C2025-006_B2025-006 - C2025-006 RO Editor Figure wording update, B2025-006 RO Editor Figure Height or Width warning message update' (#490) from C2025-006_B2025-006 into Development
good for testing phase
2025-01-22 08:19:05 -05:00
mschill 7a3243e882 B2025-004 Remove dependency on stored procedure (GetDisplayTabdata). 2025-01-22 06:59:03 -05:00
mschill 4fc3b89e06 C2025-006_B2025-006 - C2025-006 RO Editor Figure wording update, B2025-006 RO Editor Figure Height or Width warning message update 2025-01-22 06:26:48 -05:00
jjenko 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
djankowski 88905132e7 Merge branch 'Development' of https://git.volian.com/Volian/SourceCode into Development 2025-01-21 10:40:06 -05:00
mschill 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
mschill bed61324d6 C2025-003 Enhanced Copy/Paste Upgrade - Add ability to copy/paste over enhanced master documents 2025-01-20 14:43:54 -05:00
jjenko 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
mschill 5bba126a36 B2025-003 Chronology/Summary of Changes Reports 2025-01-09 11:08:30 -05:00
jjenko 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
jjenko 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
jjenko 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
mschill 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
jjenko 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
mschill 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
jjenko 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
jjenko 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
jjenko 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
mschill 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
jjenko 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
mschill 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
jjenko 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
mschill 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
jjenko 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
mschill a223dfd463 B2024-067 Deleting Folders through Admin Tools missing some folders 2024-12-05 15:27:46 -05:00
jjenko 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
mschill 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
jjenko 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
mschill 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
jjenko 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
mschill 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
jjenko 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
jjenko 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
jjenko 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
jjenko 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
jjenko 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
jjenko 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
jjenko 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
mschill 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
mschill 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
jjenko 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
jjenko 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
mschill 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
jjenko 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
mschill 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
mschill 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
jjenko 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
jjenko 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
mschill 4bc73f847c B2024-092 Add Initial Line/Ability to Disable to UI for South Texas 2024-11-11 07:15:02 -05:00
jjenko 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
mschill 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
jjenko 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
mschill 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
jjenko 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
mschill 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
jjenko 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
mschill 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
jjenko 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
mschill b972e40a28 C2024-025 Remove the tall box characters from the search results. 2024-11-07 08:26:26 -05:00
jjenko 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
mschill 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
jjenko 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
mschill 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
mschill 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
jjenko 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
jjenko 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
jjenko 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
jjenko 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
mschill 0b12805d4a C2024-034 RO Editor – Enhancement for when “Standard Fields” are modified. 2024-10-31 15:44:28 -04:00
jjenko 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
mschill 2cf164c445 C2024-035 RO Editor – Enhancement to Handle renaming of Setpoint Value. 2024-10-31 15:11:04 -04:00
jjenko 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
mschill 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
jjenko 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
jjenko 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
jjenko 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
mschill 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
jjenko 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
jjenko 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
jjenko 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
mschill 23a4edb610 C2024-031 Option to Disable reopen closed tabs on PROMS reentry 2024-10-28 13:28:35 -04:00
jjenko 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
jjenko 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
jjenko 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
mschill 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
jjenko 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
mschill fd0ea4404b F2024-080 Add Initial Line/Ability to Disable to UI for South Texas 2024-10-25 09:19:20 -04:00
jjenko 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
mschill 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
jjenko 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
jjenko 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
jjenko 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
mschill 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
jjenko 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
mschill 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
jjenko 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
mschill 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
jjenko 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
jjenko 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
jjenko 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
jjenko 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
jjenko 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
jjenko 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
mschill aceb928dba Delete .gitattributes
remove gitattributes file
2024-10-17 09:17:01 -04:00
plarsen f17db695d3 C2020-049-Add-the-ability-for-PROMS-to-remember-open-procedure-tabs-fixed-print 2024-10-16 16:23:31 -04:00
jjenko 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
jjenko 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
mschill 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
mschill 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
jjenko 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
mschill 7d408df904 B2024-079 Consistency of adding_editing_removing fields in RO Editor - Referenced Object Definition Form 2024-10-14 16:17:19 -04:00
jjenko 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
jjenko 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
jjenko 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
mschill 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
jjenko 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
mschill 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
jjenko 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
jjenko 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
jjenko 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
mschill 591fc03ca2 C2024-024 Simple Selection of Fields to add to Return Values and Menu Values 2024-10-09 13:12:29 -04:00
jjenko 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
mschill 1b6eeaf4ad C2024-023 Autocomplete on Group Definition Accessory Page Access Values. 2024-10-08 15:02:47 -04:00
jjenko 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
plarsen 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
mschill 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
plarsen 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
plarsen 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
plarsen 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
jjenko 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
mschill dd83491169 B2024-076 Correct Linking / Numbering when utilizing Paste Replace with Enhanced Steps over unlinked steps 2024-10-04 12:46:23 -04:00
mschill 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
plarsen 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
jjenko 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
mschill 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
jjenko 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
mschill bb45e551a3 C2017-031 Extend Copy / Paste Replace Functionality for Enhanced Background Steps 2024-09-30 15:02:35 -04:00
jjenko 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
jjenko 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
jjenko 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
mschill 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
plarsen 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
plarsen 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
mschill 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
mschill 1c9334a52b B2024-070_072_Correct_Typos__Setpoint_ID__and__Category_of_Transitions 2024-09-16 11:53:20 -04:00
jjenko 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
mschill 8617ce4562 B2024-068_069_check_if_current_annotation_is_not_selected_before_removal_of_annotation 2024-09-11 15:34:22 -04:00
jjenko 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
jjenko 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
jjenko 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
plarsen a25b5fc6b8 C2021-038-No-and_Cancel-button-2 2024-09-10 17:54:54 -04:00
jjenko 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
plarsen a571cb5f15 C2021-040-Change-dialog-box-when-canceling-import-procedure 2024-09-09 14:58:03 -04:00
plarsen 2e00c94d34 C2021-040-Change-dialog-box-when-canceling-import-procedure 2024-09-09 13:47:44 -04:00
jjenko 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
plarsen 2805471301 C2021-034-Change-applicability-dialog-box-response-from-Yes_No_Cancel-to-Yes_No 2024-09-05 16:50:06 -04:00
jjenko 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
plarsen da6c47d0ff B2024-065-Print-dialog-initalize-to-Working-Default-Level-Setting 2024-09-04 11:59:48 -04:00
jjenko 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
plarsen c8ed5b0565 B2024-063-Invalid-Format-message-box-displays-when-rev-date-empty-2 2024-08-27 11:04:23 -04:00
jjenko 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
plarsen 7a3748f7e0 B2024-060-Adding-a-picture-PROMS-crashes 2024-08-26 11:11:03 -04:00
plarsen 516b479c0c B2024-060-Adding-a-picture-PROMS-crashes 2024-08-26 10:00:31 -04:00
jjenko a43e059733 Merge pull request 'F2024-070 - Add “DEVIATION:” to the enhanced background template after “KNOWLOEDGE/ABILITY”' (#395) from F2024-070_Catawba into Development
Format only change. ready for testing phase.
2024-08-22 11:26:17 -04:00
jjenko 0ac79f4e46 F2024-070 - Add “DEVIATION:” to the enhanced background template after “KNOWLOEDGE/ABILITY” 2024-08-22 11:24:17 -04:00
plarsen c06744b3bb B2024-060-Adding-a-picture-PROMS-crashes 2024-08-22 08:19:20 -04:00
jjenko 218a2c17a2 Merge pull request 'B2024-061- Added a null reference check in the save annotation code. Need for when Admin deletes the annotation while a user modified the text of it' (#394) from B2024-061 into Development
null reference check added to the code, tested locally before uploading
2024-08-21 11:45:10 -04:00
jjenko a629f6834b B2024-061- Added a null reference check in the save annotation code. Need for when Admin deletes the annotation while a user modified the text of it 2024-08-21 11:37:37 -04:00
jjenko bf5337cf63 B2024-062 printing a procedure that is empty displays the Empty Procedure message. WhenOK button is clicked, PROMS will exit the Print function.. (#393)
B2024-062
When you attempt to print a procedure that is empty (i.e. none of the sections are applicable to the selected Child to print), the Empty Procedure message appears. When you click the OK button PROMS will now simply exit the Print function instead of displaying the “Try Again” message box.

Reviewed-on: #393
Reviewed-by: Paul Larsen <plarsen@volian.com>
Co-authored-by: John Jenko <jjenko@volian.com>
Co-committed-by: John Jenko <jjenko@volian.com>
2024-08-20 12:25:42 -04:00
plarsen 7713f0cd63 Merge pull request 'B2024-059: Paste source section has bad links.' (#391) from B2024-059 into Development
Reviewed-on: #391
Reviewed-by: Paul Larsen <plarsen@volian.com>
2024-08-15 10:10:13 -04:00
Kathy Ruffing 2711520666 B2024-059: Paste source section has bad links. 2024-08-15 06:51:02 -04:00
Kathy Ruffing 4a6c0ba447 Merge pull request 'B2024-058-RevisionDate-field-Print-dialog' (#390) from B2024-058-RevisionDate-field-Print-dialog into Development
Reviewed-on: #390
Reviewed-by: Kathy Ruffing <kruffing@volian.com>
2024-08-14 12:04:36 -04:00
plarsen 3f3281e2f4 B2024-058-RevisionDate-field-Print-dialog 2024-08-14 09:37:26 -04:00
plarsen 0eadd3fe33 B2024-058-RevisionDate-field-Print-dialog 2024-08-13 14:01:38 -04:00
plarsen 4bf42be80a B2024-058-RevisionDate-field-Print-dialog 2024-08-13 10:05:05 -04:00
plarsen d7f829737a B2024-058-RevisionDate-field-Print-dialog 2024-08-08 15:21:11 -04:00
jjenko 25cc62c7c6 Merge pull request 'F2024-069-Procedure-Set-Specific-Information-dialog-ajustments' (#388) from F2024-069-Procedure-Set-Specific-Information-dialog-ajustments into Development
changes good. ready for testing
2024-08-08 14:13:28 -04:00
jjenko 47596c7bca Merge pull request 'F2024-067 - Updates to VCSummer for time sensitive stes (clock)' (#387) from F2024-067 into Development
format change ready for testing
2024-08-08 14:12:05 -04:00
plarsen 7129853902 F2024-069-Procedure-Set-Specific-Information-dialog-ajustments 2024-08-08 13:33:16 -04:00
Kevin Laskey f08466f702 Merge pull request 'B2024-038: tree view menuing for paste/replace of sections' (#386) from B2024-038 into Development
Reviewed-on: #386
Reviewed-by: Kevin Laskey <klaskey@volian.com>
2024-08-08 10:18:27 -04:00
plarsen 4248d40917 B2024-058-RevisionDate-field-Print-dialog 2024-08-08 09:27:27 -04:00
Kathy Ruffing 7cf28366f4 B2024-038: tree view menuing for paste/replace of sections 2024-08-08 09:01:31 -04:00
jjenko 037c82e22e Merge pull request 'F2024-068-VCS-Deviation-Format' (#385) from F2024-068-VCS-Deviation-Format into Development
ok for testing phase
2024-08-08 08:29:10 -04:00
plarsen 6de13b12f9 F2024-068-VCS-Deviation-Format 2024-08-07 21:59:59 -04:00
jjenko cf69aa93e6 Merge pull request 'B2024-057 - Updated sizes of tooltips in delete area of admin' (#384) from B2024-057 into Development
OK for testing
2024-08-07 15:22:41 -04:00
Kevin Laskey 4b915b78b6 B2024-057 - Updated sizes of tooltips in delete area of admin 2024-08-07 14:37:31 -04:00
Kevin Laskey a891a62ffa F2024-067 - Updates to VCSummer for time sensitive stes (clock) 2024-08-07 14:15:57 -04:00
jjenko 7a768484a1 Merge pull request 'B2024-057' (#382) from B2024-057 into Development
approved, ready for testing
2024-08-06 11:18:30 -04:00
Kevin Laskey 5f7af3309d B2024-054 - Update Annotation tooltip 2024-08-06 11:17:17 -04:00
Kevin Laskey 1f3a1dabbc B2024-055 - Update tooltips for the labels on delete annotations and delete folders 2024-08-06 10:58:04 -04:00
Kevin Laskey 4b61495960 B2024-057 - updated curors 2024-08-06 10:48:05 -04:00
Kevin Laskey d091a37171 B2024-055 - Update tooltips on admin delete functions 2024-08-06 10:29:06 -04:00
Kevin Laskey 189b78d7d3 B2024-057 - Added check to see if anything is checked out for annotations and folder delete from admin area. 2024-08-06 09:14:36 -04:00
jjenko 8ee7a31b97 Merge pull request 'C2024-018 - Update to use results pane' (#381) from C2024-018 into Development
approved and ready for testing phase
2024-08-05 15:29:46 -04:00
Kevin Laskey 055be66421 C2024-018 - Update to use results pane 2024-08-05 15:24:43 -04:00
jjenko 86a3e56a27 Merge pull request 'C2024-018 - Updated fixes per Michelle testing. Added some confirmation messages' (#380) from C2024-018 into Development
changes approved. - ready for testing phase
2024-08-05 12:12:05 -04:00
Kevin Laskey 0db98e4182 C2024-018 - Updated fixes per Michelle testing. Added some confirmation messages 2024-08-05 11:12:21 -04:00
jjenko 3102596a3d Merge pull request 'C2021-059_deleteFolders' (#379) from C2021-059_deleteFolders into Development
code changes look good.  - on to testing phase
2024-08-02 14:05:24 -04:00
Kevin Laskey 41aa195785 C2021-059 - Added extra code to ensure delect sets parent tree items deslected 2024-08-02 13:08:19 -04:00
Kevin Laskey 954186265e C2021-059 - Patch in auto checkbox filling for delete tree. 2024-08-02 12:56:12 -04:00
Kevin Laskey 33cced07c6 C2021-059 Added veProms connection to remove the node in the main tree 2024-08-02 10:31:50 -04:00
Kevin Laskey afbf6f360d C2021-059 - Updates to get build moving after custom merging 2024-08-02 10:13:05 -04:00
Kevin Laskey df2be585a1 C2021-059 - Moved updates to branch 2024-08-01 15:54:28 -04:00
Kevin Laskey c81f527cb8 C2021-059 - Update Proms Fixes 2024-08-01 15:05:42 -04:00
jjenko 0f67382c27 Merge pull request 'B2024-054_Update_Tool_tip_text_for_delete_annotations' (#375) from B2024-054_Update_Tool_tip_text_for_delete_annotations into Development
changes look good - onto testing phase
2024-08-01 11:07:59 -04:00
plarsen b42b8ddfa3 B2024-054_Update_Tool_tip_text_for_delete_annotations 2024-08-01 10:42:53 -04:00
jjenko f3efd409c6 Merge pull request 'B2024-053_Submitted_for_Admin_Tools-Delete' (#372) from B2024-053_Submitted_for_Admin_Tools-Delete into Development
passed code review - on to testing phase.
2024-07-31 14:41:13 -04:00
plarsen 9011b134d6 B2024-053_Submitted_for_Admin_Tools-Delete 2024-07-31 14:34:49 -04:00
jjenko 7c33bad362 Merge pull request 'B2024-052-In-Annotations-pop-up-no-Annotation-type-should-be-selected-by-default' (#371) from B2024-052-In-Annotations-pop-up-no-Annotation-type-should-be-selected-by-default into Development
changes look good - onto testing phase
2024-07-31 09:49:30 -04:00
Kevin Laskey e49a4d674f Merge pull request 'B2024-045, B2024-049, B2024-050 crash on paste/replace' (#370) from B2024-045 into Development
Reviewed-on: #370
Reviewed-by: Kevin Laskey <klaskey@volian.com>
2024-07-31 09:48:50 -04:00
plarsen 7872f192ed B2024-052-In-Annotations-pop-up-no-Annotation-type-should-be-selected-by-default 2024-07-31 09:23:34 -04:00
Kathy Ruffing 870bba0aa6 B2024-045, B2024-049, B2024-050 crash on paste/replace 2024-07-31 07:21:30 -04:00
plarsen 35c7b2b0cf Merge pull request 'B2024-051 Added null checks in the MultiUser.cs file to handle when a user as access to a procedure set that no longer exists.' (#369) from B2024-051 into Development
Reviewed-on: #369
2024-07-30 15:46:21 -04:00
jjenko 9e6c8acca4 B2024-051 Added null checks in the MultiUser.cs file to handle when a user as access to a procedure set that no longer exists. 2024-07-30 14:48:34 -04:00
jjenko 099bbdd328 Merge pull request 'B2024-043-Fix-User-Tab2' (#368) from B2024-043-Fix-User-Tab2 into Development
changes look good. onto the testing phase
2024-07-30 10:38:31 -04:00
plarsen 720c5db2d0 B2024-043-Fix-User-Tab2 2024-07-30 10:09:40 -04:00
jjenko 659833c5bf Merge pull request 'C2024-016-Annotations-Delete-Info-to-results-panel' (#366) from C2024-016-Annotations-Delete-Info-to-results-panel into Development
changes OK. ready to create test exe.
2024-07-29 14:12:10 -04:00
plarsen 5ea9bcdd8b C2024-016-Annotations-Delete-Info-to-results-panel 2024-07-29 12:52:29 -04:00
jjenko 3ec7c11797 Merge pull request 'C2024-017 Removed old (not implemented) format variables and settings from the format files and removed incomplete references to them in the C# code. Also added descriptions of the used format variables in the C# code that hooks the XML format files t…' (#364) from C2024-017_RemoveUnUsedFormatItems into Development
format cleanup. any code changes were to add comments (description of format variables) and to remove commented out and un-used code.
2024-07-26 14:57:56 -04:00
jjenko 7f899175d1 C2024-017 Removed old (not implemented) format variables and settings from the format files and removed incomplete references to them in the C# code. Also added descriptions of the used format variables in the C# code that hooks the XML format files to the PROMS C# logic. 2024-07-26 14:54:11 -04:00
jjenko 112edd1c8a Merge pull request 'B2024-048-Annotations-Cleanup-tools-tips' (#363) from B2024-048-Annotations-Cleanup-tools-tips into Development
changes are good. ready for testing phase
2024-07-26 10:57:20 -04:00
plarsen 819c1bbec4 B2024-048-Annotations-Cleanup-tools-tips 2024-07-26 09:38:25 -04:00
plarsen 6b6968561b B2024-048-Annotations-Cleanup-tools-tips 2024-07-25 08:13:20 -04:00
jjenko 24fbb69e25 Merge pull request 'B2024-047-Fix-Size-Treeview-In-Link-Tab-Admin-Tools' (#361) from B2024-047-Fix-Size-Treeview-In-Link-Tab-Admin-Tools into Development
ready for testing phase
2024-07-24 16:28:04 -04:00
plarsen 79751732a3 B2024-047-Fix-Size-Treeview-In-Link-Tab-Admin-Tools 2024-07-24 16:11:52 -04:00
jjenko e6e62ed2c8 Merge pull request 'B2024-046-Set-Default-Tab-In-Admin-Tools' (#360) from B2024-046-Set-Default-Tab-In-Admin-Tools into Development
change looks good to continue with testing phase.
2024-07-24 10:44:56 -04:00
plarsen 8f2cbf4081 B2024-046-Set-Default-Tab-In-Admin-Tools 2024-07-24 10:37:59 -04:00
Kathy Ruffing c25f501909 Merge pull request 'B2024-042 - When replacing a procedure, this change will now replace the procedure correctly and add it to the tree node, previously it would replace th eprocedure, then add a whole new procedure to the node, incorrectly using the copy procedure which …' (#358) from B2024-042 into Development
Reviewed-on: #358
Reviewed-by: Kathy Ruffing <kruffing@volian.com>
2024-07-22 09:45:17 -04:00
Kevin Laskey bf72a6bf78 B2024-042 - Update TreeNodeReplace section when adding a node to working draft (remove unneeded code) 2024-07-22 09:39:13 -04:00
Kevin Laskey a1380dbb8a B2024-042 - When replacing a procedure, this change will now replace the procedure correctly and add it to the tree node, previously it would replace th eprocedure, then add a whole new procedure to the node, incorrectly using the copy procedure which appended "copy of". 2024-07-18 14:06:01 -04:00
Kathy Ruffing 501798a8cb Merge pull request 'C2024-005-Annotations-Cleanup-2' (#355) from C2024-005-Annototions-Cleanup-2 into Development
Reviewed-on: #355
Reviewed-by: Kathy Ruffing <kruffing@volian.com>
Code reviewed successfully
2024-07-18 11:39:12 -04:00
plarsen a240bc2c19 C2024-005-Annotations-Cleanup-2 2024-07-18 11:31:49 -04:00
plarsen a804a3866a C2024-005-Annotations-Cleanup-2 2024-07-18 11:12:30 -04:00
plarsen 069ffb80e9 C2024-005-Annotations-Cleanup-2 2024-07-17 14:28:24 -04:00
Kevin Laskey 5255080291 Merge pull request 'B2022-118: search of multi value ROs fails' (#354) from B2022-118 into Development
Reviewed-on: #354
2024-07-17 10:56:40 -04:00
Kathy Ruffing ae35d9f0d7 B2022-118: search of multi value ROs fails 2024-07-17 10:11:43 -04:00
jjenko afbd653611 Merge pull request 'B2024-041 - Update PromsFixes SQL file to acocunt for replacing vs pasting procs' (#352) from B2024-041_v2 into Development
good for testing phase
2024-07-16 16:27:35 -04:00
Kevin Laskey 9a55111e1e B2024-041 - Update PromsFixes SQL file to acocunt for replacing vs pasting procs 2024-07-16 16:20:21 -04:00
jjenko 422a3053b7 Merge pull request 'B2024-039 Customer reported that transitions to standard text get converted to text when the Refresh Transitions is done from the Admin Tools' (#350) from B2024-039_BNPP_StdtxtTrans into Development
format only changes
2024-07-12 14:16:22 -04:00
jjenko feb74ee09f B2024-039 Customer reported that transitions to standard text get converted to text when the Refresh Transitions is done from the Admin Tools 2024-07-12 14:14:23 -04:00
jjenko 7cebb2b7f1 Merge pull request 'B2024-037: Bug fix for copy/replace functionality on procedures and steps.' (#349) from B2024-037 into Development
changes look good. OK for testing phase.
2024-07-11 10:54:10 -04:00
Kevin Laskey 8097c6283c B2024-037 - Update versioning on proms fixes 2024-07-11 10:30:31 -04:00
Kevin Laskey 8f08ef5ee4 B2024-037 - Slight clean up on parentedititme 2024-07-11 08:45:18 -04:00
Kevin Laskey fd26f16776 B2024-037 Include proms sql fixes for copy replace functionality 2024-07-10 14:53:20 -04:00
Kevin Laskey 21a83df99d B2024-037 - Fixes made for replacing procs and steps via paste/replace functionality. 2024-07-10 12:15:14 -04:00
jjenko 616acf0e37 Merge pull request 'F2024-065 - Turned off the CapRoIfLastLower flag in all of the Beaver Valley formats F2024-066 - Turned off the Replace Words feature in EOP, “without Issue Number”, and the SAMG Background formats' (#347) from F2024-065-066-BeaverValley into Development
Format only changes
2024-07-03 10:08:45 -04:00
jjenko 3cff87cf97 F2024-065 - Turned off the CapRoIfLastLower flag in all of the Beaver Valley formats F2024-066 - Turned off the Replace Words feature in EOP, “without Issue Number”, and the SAMG Background formats 2024-07-03 10:01:03 -04:00
Kathy Ruffing 9202d903a5 Merge pull request 'F2024-064: underline and spacing of section titles' (#345) from F2024-064 into Development
Reviewed-on: #345
2024-07-01 09:27:34 -04:00
Kathy Ruffing a9a9a56c09 F2024-064: underline and spacing of section titles 2024-07-01 09:15:42 -04:00
jjenko aee7819a9c Merge pull request 'C2024-013: On print dialog, disable Merge button if creating hyperlinks' (#343) from C2024-013 into Development
code changed reviewed and can proceed to testing phase
2024-06-25 13:42:33 -04:00
Kathy Ruffing d3bc1c4725 C2024-013: On print dialog, disable Merge button if creating hyperlinks 2024-06-25 12:14:26 -04:00
jjenko d0474b22f9 Merge pull request 'C2022-029 - Export Single Procedure (Overwrite/Rename/Cancel)' (#341) from C2022-029 into Development
passed code review. ready for testing phase
2024-06-20 10:02:52 -04:00
jjenko 5bd1f94be0 Merge pull request 'C2024-004' (#339) from C2024-004 into Development
code changes look good. ready for testing phase.
2024-06-19 14:12:03 -04:00
Kevin Laskey 629fe1b615 Updated to include passing teh selected tree node parent for cases where the only procedure in a folder is being replaced. otherwise i pass null for that as its not really used. 2024-06-19 13:50:52 -04:00
Kevin Laskey c92b888ec2 Update to close the procedure when opened during the paste/replace option. 2024-06-18 10:48:28 -04:00
jjenko 5df42daa71 Merge pull request 'C2019-047' (#337) from C2019-047 into Development
changes approved.  Ready for testing phase
2024-06-14 13:24:51 -04:00
Kevin Laskey 9349396d9a Updates to display tags page for inital load of RO images and other images, updates to set some pre values for resizing and ratios. 2024-06-14 11:46:08 -04:00
Kevin Laskey 38425a05f9 Updates to pass through image details to the tag setting. 2024-06-13 15:14:35 -04:00
Kevin Laskey 9d1b99b08e Update 2024-06-13 09:00:49 -04:00
Kevin Laskey 4f7a762bf1 Updated to use modified date, shortened code a bit. 2024-06-13 08:35:13 -04:00
Kevin Laskey 11cb2e0efd Updated message 2024-06-07 15:14:33 -04:00
jjenko 78f58bea19 Merge pull request 'C2019-047 - Show figure size under tags when adding a new figure.' (#336) from C2019-047 into Development
changes are good. ready for testing phase.
2024-06-07 15:04:14 -04:00
Kevin Laskey a2e830d0c3 Update for "cancel" button action 2024-06-07 14:42:26 -04:00
Kevin Laskey 2ffab17caf Updates for adding custom buttons 2024-06-07 14:17:43 -04:00
Kevin Laskey 49aba5c67b update 2024-06-07 10:34:46 -04:00
jjenko 1b24177b68 Merge pull request 'B2024-036 - Removed Print button from V Menu' (#334) from B2024-036 into Development
Code changes look good.  OK to generate test exe.
2024-06-06 08:59:41 -04:00
jjenko bf7a967633 Merge pull request 'F2024-063 Beaver Valley requested that the section number be underlined at the top of the pages of the Two Column Attachment section and an extra space was added between the top continue message and first line of step text on that page.' (#333) from F2024-063_BeaverValley into Development
format only change. OK to move to testing phase.
2024-06-05 16:26:57 -04:00
jjenko f5669e50a8 F2024-063 Beaver Valley requested that the section number be underlined at the top of the pages of the Two Column Attachment section and an extra space was added between the top continue message and first line of step text on that page. 2024-06-05 16:27:08 -04:00
Kevin Laskey 2ae0d0d454 Update to ensure some size is presetned for the figure when adding a new. 2024-06-05 10:48:51 -04:00
Kevin Laskey 241785846e Update for displaying when a figure is selected or added (as opposed to a step or some other type of option) 2024-06-04 11:55:17 -04:00
Kevin Laskey 0d6fd6950c C2019-047 - Show the figure size adjustment panel before a figure is selected or inserted, so that they dont have to open/close the area to see it. 2024-06-04 09:18:58 -04:00
Kevin Laskey bb99d6444c B2024-036 - Removed Print button from V Menu 2024-06-04 09:05:22 -04:00
Kevin Laskey db4f114caf C2022-029 - Export Import changes, Set path automatically for single proc export, provide overwrite message on single prompt export. 2024-06-04 08:51:57 -04:00
jjenko 80d83da9c9 Merge pull request 'B2024-035-Overwrite-settings.' (#331) from B2024-035 into Development
OK to generate test exe.
2024-05-29 16:56:39 -04:00
plarsen 54e02e6263 B2024-035-Overwrite-settings. 2024-05-29 15:30:25 -04:00
jjenko c4af911f15 Merge pull request 'F2024-062 Removed the Unit number that was mistakenly added to the procedure steps section header.' (#330) from F2024-062_BNPP into Development
format only change.
2024-05-23 14:20:46 -04:00
jjenko f9690ee772 F2024-062 Removed the Unit number that was mistakenly added to the procedure steps section header. 2024-05-23 14:19:14 -04:00
jjenko 623c6a7941 Merge pull request 'B2024-034 Fix "Overwrite PDF File" functionality in Print Dialog Box' (#329) from B2024-034 into Development
passed code review and ready for testing
2024-05-22 16:09:56 -04:00
plarsen 7a5129208c B2024-034 Fix Overwrite PDF File. 2024-05-22 16:08:12 -04:00
jjenko e15c56f1e2 Merge pull request 'B2024-023: UI fixes for insert section with associated enhanced section' (#328) from B2024-023 into Development
ready to be tested
2024-05-22 09:04:55 -04:00
Kathy Ruffing 5d808e436a B2024-023: UI fixes for insert section with associated enhanced section 2024-05-22 08:51:22 -04:00
jjenko 20e40a5c49 Merge pull request 'F2024-061 Added an AOP Deviation format for Beaver Valley.' (#326) from F2024-061 into Development
format only change
2024-05-20 10:57:51 -04:00
jjenko 885dae812d F2024-061 Added an AOP Deviation format for Beaver Valley. 2024-05-20 10:56:13 -04:00
jjenko 35bd91f7e8 Merge pull request 'F2024-060 For the Byron and Braidwood formats, adjusted the text widths on the edit screen to be closer to that of which is printed.' (#324) from F2024-060_ByBwd_Bckgnd into Development
format only change
2024-05-16 14:58:23 -04:00
jjenko 305f2768bb F2024-060 For the Byron and Braidwood formats, adjusted the text widths on the edit screen to be closer to that of which is printed. 2024-05-16 14:58:09 -04:00
jjenko 5f733161c6 Merge pull request 'C2024-001-Update-Baseline-Auto-Testing' (#322) from C2024-011 into Development
passed code review
2024-05-16 11:44:32 -04:00
plarsen 4fc13acd1a Merge pull request 'B2024-030 On the Working Draft properties page, added a check to see if we need to create the folder(s) for the path typed into the PDF Location text box.' (#320) from B2024-030_SetOuptputPath into Development
Reviewed-on: #320
2024-05-14 15:41:41 -04:00
jjenko 365f6a23c8 B2024-030 On the Working Draft properties page, added a check to see if we need to create the folder(s) for the path typed into the PDF Location text box. 2024-05-14 14:24:01 -04:00
plarsen 331d5751c3 C2024-001-Update-Baseline-Auto-Testing 2024-05-14 11:41:45 -04:00
jjenko dfb965edbc Merge pull request 'B2024-028 consistent paste menuing in enhanced set' (#319) from B2024-028 into Development
good to test
2024-05-14 10:20:00 -04:00
Kathy Ruffing c7cc69fd73 B2024-028 consistent paste menuing in enhanced set 2024-05-14 10:09:20 -04:00
jjenko d187aa885d Merge pull request 'B2024-032 Fix Click Quick Print' (#318) from B2024-032 into Development
code OK to be tested
2024-05-13 08:46:14 -04:00
plarsen b1b4535d9b B2024-032 Fix Click Quick Print 2024-05-12 16:42:24 -04:00
5159 changed files with 1105140 additions and 754105 deletions
+2 -1
View File
@@ -401,4 +401,5 @@ FodyWeavers.xsd
/fmtall
/genmacall
*AssemblyInfo.cs
*AssemblyInfo.cs
/PROMS/Baseline/Baseline.sln
@@ -5,7 +5,7 @@
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
@@ -44,6 +44,7 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
<PlatformTarget>x64</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -53,13 +54,14 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
<PlatformTarget>x64</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
@@ -1,36 +0,0 @@
Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdjustBuildRevision", "AdjustBuildRevision.csproj", "{D1AB675E-828D-4781-BACD-8A2324CD84A5}"
ProjectSection(WebsiteProperties) = preProject
Debug.AspNetCompiler.Debug = "True"
Release.AspNetCompiler.Debug = "False"
EndProjectSection
EndProject
Global
GlobalSection(SourceCodeControl) = preSolution
SccNumberOfProjects = 2
SccProjectUniqueName0 = AdjustBuildRevision.csproj
SccLocalPath0 = .
SccLocalPath1 = .
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{D1AB675E-828D-4781-BACD-8A2324CD84A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D1AB675E-828D-4781-BACD-8A2324CD84A5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D1AB675E-828D-4781-BACD-8A2324CD84A5}.Debug|x86.ActiveCfg = Debug|x86
{D1AB675E-828D-4781-BACD-8A2324CD84A5}.Debug|x86.Build.0 = Debug|x86
{D1AB675E-828D-4781-BACD-8A2324CD84A5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D1AB675E-828D-4781-BACD-8A2324CD84A5}.Release|Any CPU.Build.0 = Release|Any CPU
{D1AB675E-828D-4781-BACD-8A2324CD84A5}.Release|x86.ActiveCfg = Release|x86
{D1AB675E-828D-4781-BACD-8A2324CD84A5}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
+2 -2
View File
@@ -32,9 +32,9 @@ namespace AdjustBuildRevision
{
// Allow for setting build revision on either proms or the roeditor:
if (Directory.GetCurrentDirectory().ToUpper().Contains("REFOBJ"))
outline = Regex.Replace(line, @"([0-9]*)\.([0-9]*)\.([0-9]*)\.([0-9]*)""\)", DateTime.Now.ToString("2.3.yyMM.dHH") + "\")");
outline = Regex.Replace(line, @"([0-9]*)\.([0-9]*)\.([0-9]*)\.([0-9]*)""\)", DateTime.Now.ToString("2.4.yyMM.dHH") + "\")");
else
outline = Regex.Replace(line, @"([0-9]*)\.([0-9]*)\.([0-9]*)\.([0-9]*)""\)", DateTime.Now.ToString("2.2.yyMM.dHH") + "\")");
outline = Regex.Replace(line, @"([0-9]*)\.([0-9]*)\.([0-9]*)\.([0-9]*)""\)", DateTime.Now.ToString("2.3.yyMM.dHH") + "\")");
// if (outline != line)
// {
// Console.WriteLine("Before: '{0}'", line);
Binary file not shown.
-20
View File
@@ -1,20 +0,0 @@
Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FindLinx", "FindLinx\FindLinx.csproj", "{48CD3831-84A5-45AB-BD36-213359779E21}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{48CD3831-84A5-45AB-BD36-213359779E21}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{48CD3831-84A5-45AB-BD36-213359779E21}.Debug|Any CPU.Build.0 = Debug|Any CPU
{48CD3831-84A5-45AB-BD36-213359779E21}.Release|Any CPU.ActiveCfg = Release|Any CPU
{48CD3831-84A5-45AB-BD36-213359779E21}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
@@ -1,78 +0,0 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.50727</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{48CD3831-84A5-45AB-BD36-213359779E21}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>FindLinx</RootNamespace>
<AssemblyName>FindLinx</AssemblyName>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="frmFindLinx.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmFindLinx.Designer.cs">
<DependentUpon>frmFindLinx.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="frmFindLinx.resx">
<SubType>Designer</SubType>
<DependentUpon>frmFindLinx.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
-20
View File
@@ -1,20 +0,0 @@
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace FindLinx
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new frmFindLinx());
}
}
}
@@ -1,33 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("FindLinx")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("FindLinx")]
[assembly: AssemblyCopyright("Copyright © 2014")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("864d5e18-264c-4257-98d3-a50da715ca19")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
@@ -1,71 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.5477
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace FindLinx.Properties
{
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources
{
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources()
{
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager
{
get
{
if ((resourceMan == null))
{
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("FindLinx.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture
{
get
{
return resourceCulture;
}
set
{
resourceCulture = value;
}
}
}
}
@@ -1,117 +0,0 @@
<?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.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: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" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</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" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
@@ -1,30 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.5477
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace FindLinx.Properties
{
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
{
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default
{
get
{
return defaultInstance;
}
}
}
}
-153
View File
@@ -1,153 +0,0 @@
namespace FindLinx
{
partial class frmFindLinx
{
/// <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.menuStrip1 = new System.Windows.Forms.MenuStrip();
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.chooseDBToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.findLinxToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.allDBsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.statusStrip1 = new System.Windows.Forms.StatusStrip();
this.tsslStatus = new System.Windows.Forms.ToolStripStatusLabel();
this.tbResults = new System.Windows.Forms.TextBox();
this.menuStrip1.SuspendLayout();
this.statusStrip1.SuspendLayout();
this.SuspendLayout();
//
// menuStrip1
//
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.fileToolStripMenuItem,
this.chooseDBToolStripMenuItem,
this.findLinxToolStripMenuItem,
this.allDBsToolStripMenuItem});
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
this.menuStrip1.Name = "menuStrip1";
this.menuStrip1.Size = new System.Drawing.Size(642, 24);
this.menuStrip1.TabIndex = 0;
this.menuStrip1.Text = "menuStrip1";
//
// fileToolStripMenuItem
//
this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.exitToolStripMenuItem});
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
this.fileToolStripMenuItem.Text = "&File";
//
// exitToolStripMenuItem
//
this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
this.exitToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
this.exitToolStripMenuItem.Text = "E&xit";
this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click);
//
// chooseDBToolStripMenuItem
//
this.chooseDBToolStripMenuItem.Name = "chooseDBToolStripMenuItem";
this.chooseDBToolStripMenuItem.Size = new System.Drawing.Size(77, 20);
this.chooseDBToolStripMenuItem.Text = "Choose DB";
this.chooseDBToolStripMenuItem.Click += new System.EventHandler(this.chooseDBToolStripMenuItem_Click);
//
// findLinxToolStripMenuItem
//
this.findLinxToolStripMenuItem.Enabled = false;
this.findLinxToolStripMenuItem.Name = "findLinxToolStripMenuItem";
this.findLinxToolStripMenuItem.Size = new System.Drawing.Size(63, 20);
this.findLinxToolStripMenuItem.Text = "FindLinx";
this.findLinxToolStripMenuItem.Click += new System.EventHandler(this.findLinxToolStripMenuItem_Click);
//
// allDBsToolStripMenuItem
//
this.allDBsToolStripMenuItem.Name = "allDBsToolStripMenuItem";
this.allDBsToolStripMenuItem.Size = new System.Drawing.Size(56, 20);
this.allDBsToolStripMenuItem.Text = "All DBs";
this.allDBsToolStripMenuItem.Click += new System.EventHandler(this.allDBsToolStripMenuItem_Click);
//
// statusStrip1
//
this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.tsslStatus});
this.statusStrip1.Location = new System.Drawing.Point(0, 328);
this.statusStrip1.Name = "statusStrip1";
this.statusStrip1.Size = new System.Drawing.Size(642, 22);
this.statusStrip1.TabIndex = 1;
this.statusStrip1.Text = "statusStrip1";
//
// tsslStatus
//
this.tsslStatus.Name = "tsslStatus";
this.tsslStatus.Size = new System.Drawing.Size(39, 17);
this.tsslStatus.Text = "Ready";
//
// tbResults
//
this.tbResults.Dock = System.Windows.Forms.DockStyle.Fill;
this.tbResults.Location = new System.Drawing.Point(0, 24);
this.tbResults.Multiline = true;
this.tbResults.Name = "tbResults";
this.tbResults.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
this.tbResults.Size = new System.Drawing.Size(642, 304);
this.tbResults.TabIndex = 2;
//
// frmFindLinx
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(642, 350);
this.Controls.Add(this.tbResults);
this.Controls.Add(this.statusStrip1);
this.Controls.Add(this.menuStrip1);
this.MainMenuStrip = this.menuStrip1;
this.Name = "frmFindLinx";
this.Text = "Find Links";
this.menuStrip1.ResumeLayout(false);
this.menuStrip1.PerformLayout();
this.statusStrip1.ResumeLayout(false);
this.statusStrip1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.MenuStrip menuStrip1;
private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem chooseDBToolStripMenuItem;
private System.Windows.Forms.StatusStrip statusStrip1;
private System.Windows.Forms.ToolStripStatusLabel tsslStatus;
private System.Windows.Forms.ToolStripMenuItem findLinxToolStripMenuItem;
private System.Windows.Forms.TextBox tbResults;
private System.Windows.Forms.ToolStripMenuItem allDBsToolStripMenuItem;
}
}
-378
View File
@@ -1,378 +0,0 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Text.RegularExpressions;
namespace FindLinx
{
public partial class frmFindLinx : Form
{
public frmFindLinx()
{
InitializeComponent();
}
public string MyStatus
{
get { return tsslStatus.Text; }
set { tsslStatus.Text = value; Application.DoEvents(); }
}
private static string _SelectedDatabase = null;
public static string SelectedDatabase
{
get { return frmFindLinx._SelectedDatabase; }
set
{
frmFindLinx._SelectedDatabase = value;
_ConnectionString = _MenuConnectionString.Replace("{MENU}", SelectedDatabase);
}
}
private static string _MenuConnectionString = @"Data Source=VOLIAN-SERVER;User Id=proms2010;password=proms2010;Initial Catalog={MENU}";
private static string _ConnectionString = null;
private Dictionary<int, string> _MyContents = null;
private void chooseDBToolStripMenuItem_Click(object sender, EventArgs e)
{
ChooseDatabase();
findLinxToolStripMenuItem.Enabled = true;
LoadContents();
ResetLinks();
FindLinks();
//ShowLinks(SelectedDatabase);
}
private void ChooseDatabase()
{
System.Windows.Forms.ContextMenuStrip cms = BuildDatabaseMenu();
SelectedDatabase = null;
while (SelectedDatabase == null)
{
cms.Show(new System.Drawing.Point((System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width - cms.Width) / 2, (System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height - cms.Height) / 2));
System.Windows.Forms.Application.DoEvents();
}
}
private static System.Windows.Forms.ContextMenuStrip BuildDatabaseMenu()
{
System.Windows.Forms.ContextMenuStrip cms = new System.Windows.Forms.ContextMenuStrip();
cms.Items.Add("Choose Database");
System.Windows.Forms.ToolStripMenuItem tsmi = cms.Items[0] as System.Windows.Forms.ToolStripMenuItem;
tsmi.BackColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.ActiveCaption);// System.Drawing.Color.Pink;
tsmi.ForeColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.ActiveCaptionText);
tsmi.Font = new System.Drawing.Font(tsmi.Font, System.Drawing.FontStyle.Bold);
foreach (string name in DBNames)
cms.Items.Add(name, null, new EventHandler(Database_Click));
return cms;
}
private static List<string> _DBNames;
public static List<string> DBNames
{
get
{
if (_DBNames == null)
_DBNames = GetDatabases();
return _DBNames;
}
}
private static List<string> GetDatabases()
{
List<string> dbNames;
dbNames = new List<string>();
SelectedDatabase = "master";
SqlConnection cn = new SqlConnection(_ConnectionString);
cn.Open();
// SqlDataAdapter da = new SqlDataAdapter("select name from sysdatabases where name like 'VEP%' order by name", cn);
//SqlDataAdapter da = new SqlDataAdapter("select name, case when object_id('[' + name + ']..Items') is null then 'Not PROMS' when object_id('[' + name + ']..Revisions') is not null then 'Approval' when object_id('[' + name + ']..ContentAudits') is not null then 'Change Manager' else 'Original' end functionality from sysdatabases where name not in ('master','model','msdb','tempdb') order by name", cn);
SqlDataAdapter da = new SqlDataAdapter("select name from sysdatabases where name not in ('master','model','msdb','tempdb') and name like 'VEPROMS%' order by name", cn);
da.SelectCommand.CommandTimeout = 300; // 300 sec timeout
DataSet ds = new DataSet();
try
{
da.Fill(ds);
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.GetType().Name, ex.Message);
throw (new Exception("Cannot Load Data List", ex));
}
cn.Close();
foreach (DataRow dr in ds.Tables[0].Rows)
dbNames.Add(dr["name"].ToString());
return dbNames;
}
private static void Database_Click(object sender, EventArgs e)
{
System.Windows.Forms.ToolStripMenuItem tsmi = sender as System.Windows.Forms.ToolStripMenuItem;
if (tsmi != null)
{
SelectedDatabase = tsmi.Text;
}
}
private void findLinxToolStripMenuItem_Click(object sender, EventArgs e)
{
FindLinks();
}
private Dictionary<string, int> DicPrefix;
private Dictionary<string, int> DicSuffix;
private void ResetLinks()
{
DicPrefix = new Dictionary<string, int>();
DicSuffix = new Dictionary<string, int>();
}
private void ShowLinks(string selectedDatabase)
{
tbResults.Clear();
SortedList<int, string> srtPrefixes = new SortedList<int, string>(new DegreeComparer());
foreach (string pre in DicPrefix.Keys)
{
srtPrefixes.Add(-DicPrefix[pre], pre);
}
tbResults.AppendText(string.Format("{0} Prefixes\r\n", selectedDatabase));
foreach (string pre in srtPrefixes.Values)
{
tbResults.AppendText(string.Format("{0},'{1}'\r\n", DicPrefix[pre], pre));
}
SortedList<int, string> srtSuffixes = new SortedList<int, string>(new DegreeComparer());
foreach (string suf in DicSuffix.Keys)
{
srtSuffixes.Add(-DicSuffix[suf], suf);
}
tbResults.AppendText(string.Format("\r\n{0} Suffixes\r\n", selectedDatabase));
foreach (string suf in srtSuffixes.Values)
{
tbResults.AppendText(string.Format("{0},'{1}'\r\n", DicSuffix[suf], suf));
}
}
private void FindLinks()
{
// loop through contents
foreach (int ic in _MyContents.Keys)// for each content record
{
string Text = _MyContents[ic];
// find all links
//string findLink = @"<START\](.*?)#Link:T(.*?)\[END>"; // need to only process transitions (no ros)
string findLink = @"<START\](.*?)\[END>"; // need to only process transitions (no ros)
MatchCollection ms = Regex.Matches(Text, findLink);
int ii = 0;
foreach (Match mlink in ms)// for each link
{
if (mlink.ToString().Contains("#Link:T"))
{
string key = string.Format("{0}.{1}.{2}", _SelectedDatabase, ic, ii);
if (key == "VEPROMS_BWD.16964.0") Console.WriteLine("Here");
string oldval = OldTransitionValue(mlink.ToString());
string newval = NewTransitionValue(mlink.ToString());
//if (oldval != newval && (!(oldval == "" && newval.Contains("Prerequisite {Prereq")) && !oldval.Contains("{First Step")) && !oldval.Contains("{Page Num")) tbResults.AppendText(string.Format("'{0}','{1}','{2}'\r\n", _SelectedDatabase, oldval, newval));
if (oldval != newval) tbResults.AppendText(string.Format("'{0}','{1}','{2}','{3}'\r\n", _SelectedDatabase, oldval, newval, mlink.ToString()));
ii++; // instance of transition
}
}
}
}
private string OldTransitionValue(string _TextAndLink)
{
Match m = Regex.Match(_TextAndLink, @"<START\](\\[^v \\]+)*\\v0(\\[^v \{\\]+)* (.*?)(\\[^v'? \\]+)*\\v(\\[^v \\]+)* #Link:(.*?)\[END>");
return m.Groups[3].ToString();
}
private string NewTransitionValue(string _TextAndLink)
{
Match m = Regex.Match(_TextAndLink, @"<START\](.*?)#Link:(.*?)\[END>"); // get value string including formatting.
string mtxt = m.Groups[1].ToString();
mtxt = Regex.Replace(mtxt, @"^(\\[^v \\]+)*\\v0", ""); // replace the rtf commands that occur prior to the value string
if (mtxt.StartsWith(" ")) mtxt = mtxt.Substring(1);
mtxt = Regex.Replace(mtxt, @"\\v(\\[^v \\]+)* $", ""); // replace the rtf commands that occur after to the value string
mtxt = Regex.Replace(mtxt, @"(\\ulnone|\\b0)+$", "");
return mtxt;
}
private string GetValuePrefix(string Text, Match mlink, int lastlink)
{
throw new Exception("The method or operation is not implemented.");
}
private string SuffixPattern(string suffix)
{
string firstchar = "";
suffix = suffix.Replace("\r", "{CR}");
suffix = suffix.Replace("\n", "{LF}");
if (Regex.IsMatch(suffix, @"^(\\(b0|b|ulnone|ul))+\\"))
{
firstchar = "{RTFCommand}";
suffix = Regex.Replace(suffix, @"^(\\(b0|b|ulnone|ul))+", "");
}
if (suffix == @"\v0 ")
return @"Pattern','" + firstchar + @"\v0{Space}";
if (suffix == @"\v0")
return @"Pattern','" + firstchar + @"\v0";
return _SelectedDatabase + "','" + suffix;
}
private string GetSuffix(string Text, Match mlink, int iEnd)
{
int iStart = mlink.Index + mlink.Length;
//int iEnd = (mlink.NextMatch() == null) ? Text.Length : mlink.NextMatch().Index;
string follows = Text.Substring(iStart,iEnd-iStart);
int iEndComment = follows.IndexOf("\\v0");
if (follows.Length > 3 + iEndComment)
{
if (follows.Substring(iEndComment + 3, 1) == " ")
return follows.Substring(0, iEndComment + 4);
if (follows.Substring(iEndComment + 3, 1) == "\\")
return follows.Substring(0, iEndComment + 3);
return follows.Substring(0, iEndComment + 3);
}
return follows;
}
public class DegreeComparer : IComparer<int>
{
#region IComparer<int> Members
public int Compare(int x, int y)
{
if (x < y)
return -1;
else
return 1;
}
#endregion
}
private string PrefixPattern(string prefix)
{
string firstchar = "";
if(prefix.StartsWith(" "))
{
firstchar = "{Space}";
prefix = prefix.Substring(1);
}
else if (prefix.StartsWith("\n"))
{
firstchar = "{Newline}";
prefix = prefix.Substring(1);
}
else if (prefix.StartsWith("\xa0"))
{
firstchar = "{HardSpace}";
prefix = prefix.Substring(1);
}
else if (Regex.IsMatch(prefix, @"^\\u[0-9]{1,4}\?"))
{
firstchar = "{Unicode}";
prefix=Regex.Replace(prefix, @"^\\u[0-9]{1,4}\?","");
}
else if (Regex.IsMatch(prefix, @"^\\'[0-9a-fA-F]{2}"))
{
firstchar = "{Hexcode}";
prefix = Regex.Replace(prefix, @"^\\'[0-9a-fA-F]{2}", "");
}
else if (Regex.IsMatch(prefix, @"^[:.()\[\]""*=<>]"))
{
firstchar = "{Punctuation}";
prefix = Regex.Replace(prefix, @"^[:.()\[\]""*=<>]", "");
}
else if (Regex.IsMatch(prefix, @"^\\[{}~]"))
{
firstchar = "{Special}";
prefix = Regex.Replace(prefix, @"^\\[{}~]", "");
}
else if (Regex.IsMatch(prefix, @"^\\(b0|b|ulnone|ul|line)\\"))
{
firstchar = "{RTFCommand}";
prefix = Regex.Replace(prefix, @"^\\(b0|b|ulnone|ul|line)", "");
}
if (prefix == @"\v ")
return @"Pattern','" + firstchar +@"\v ";
//if (prefix == @" \v ")
// return @"Pattern-{Space}\v ";
//if (prefix == "\xA0\\v ")
// return @"Pattern-{HardSpace}\v ";
//if (Regex.IsMatch(prefix, @"^\\u[0-9]{1,4}\?\\v $"))
// return @"Pattern-" + firstchar + @"{Unicode}\v ";
//if (Regex.IsMatch(prefix, @"^\\u[0-9]{1,4}\?.*\\v $"))
// return @"Pattern-" + firstchar + @"{Unicode}{Text}\v ";
// if (Regex.IsMatch(prefix, @"^\\[{}~]\\v $"))
// return @"Pattern-" + firstchar + @"{Special}\v ";
// if (Regex.IsMatch(prefix, @"^ ?[()""\[\]]\\v $"))
// return @"Pattern-" + firstchar + @"{Puctuation}\v ";
if (Regex.IsMatch(prefix, @"^ ?[-%A-Za-z0-9.,/()\[\]]+\\v $"))
return @"Pattern','" + firstchar + @"{Text}\v ";
//if (prefix == "\n\\v ")
// return @"Pattern-{Newline}\v ";
return SelectedDatabase + "','" + prefix;
}
private string GetPrefix(string Text, Match mlink, int lastlink)
{
string precedes = Text.Substring(lastlink, mlink.Index - lastlink);
if(mlink.Index - lastlink <= 3)
return precedes;
if (precedes.EndsWith(@"\v "))
{
//int indexSpace = Text.LastIndexOf(' ', mlink.Index - 4);
////if (indexSpace > mlink.Index) indexSpace = 0;
//int indexCR = Text.LastIndexOf('\n', mlink.Index - 4);
////if (indexCR > mlink.Index) indexCR = 0;
//if (indexCR >= 0 && indexCR > indexSpace)
// indexSpace = indexCR;
//int indexHS = Text.LastIndexOf('\xA0', mlink.Index - 4);
////if (indexHS > mlink.Index) indexHS = 0;
//if (indexHS >= 0 && indexHS > indexSpace)
// indexSpace = indexHS;
int indexSpace = Text.LastIndexOfAny(" \n\xA0:.()[]\"<>*=".ToCharArray(), mlink.Index - 4);
int indexSlash = Text.LastIndexOf('\\', mlink.Index - 4);
if (indexSlash >= 0)
{
if (indexSlash > indexSpace)
return Text.Substring(indexSlash, mlink.Index - indexSlash);
}
if (indexSpace >= 0)
{
return Text.Substring(indexSpace, mlink.Index - indexSpace);
}
}
return precedes;
}
private void LoadContents()
{
SqlConnection cn = new SqlConnection(_ConnectionString);
cn.Open();
//SqlDataAdapter da = new SqlDataAdapter("select ContentID,Text from Contents where ContentID in(select fromID from transitions union select contentid from rousages)", cn);
SqlDataAdapter da = new SqlDataAdapter("select ContentID,Text from Contents where ContentID in(select fromID from transitions)", cn);
da.SelectCommand.CommandTimeout = 300; // 300 sec timeout
DataSet ds = new DataSet();
try
{
da.Fill(ds);
_MyContents = new Dictionary<int, string>();
foreach (DataRow dr in ds.Tables[0].Rows)
{
_MyContents.Add((int)dr["ContentID"], dr["Text"].ToString());
}
//MessageBox.Show(string.Format("{0} Content Records Found", ds.Tables[0].Rows.Count), "Contents Loaded", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message, ex.GetType().Name, MessageBoxButtons.OK, MessageBoxIcon.Error);
throw (new Exception("Cannot Load Data List", ex));
}
cn.Close();
}
private void allDBsToolStripMenuItem_Click(object sender, EventArgs e)
{
DateTime tStart = DateTime.Now;
ResetLinks();
foreach (string dbName in DBNames)
{
SelectedDatabase = dbName;
LoadContents();
MyStatus = string.Format("{0} - {1} Contents", SelectedDatabase, _MyContents.Count);
FindLinks();
}
//ShowLinks("All Databases");
DateTime tEnd = DateTime.Now;
TimeSpan ts = TimeSpan.FromTicks(tEnd.Ticks - tStart.Ticks);
MyStatus = string.Format("{0:0.000} Seconds", ts.TotalSeconds);
}
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
-126
View File
@@ -1,126 +0,0 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>132, 17</value>
</metadata>
</root>
-105
View File
@@ -1,105 +0,0 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.21005.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XMLConvert", "XMLConvert\XMLConvert.csproj", "{C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CPPConvert", "CPPConvert\CPPConvert.csproj", "{1153363A-3395-4BBA-A507-4FA69132CDFC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConvertAlarms", "ConvertAlarms\ConvertAlarms.csproj", "{8185CA5B-2403-450A-9989-C7E4A2A5D7A1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConvertLocalAlarms", "ConvertLocalAlarms\ConvertLocalAlarms.csproj", "{BF0EEE6A-5350-4CE7-8E28-73F1A3811870}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReadFile", "ReadFile\ReadFile.csproj", "{D83BC593-811C-4D32-81B2-9C6031AFDAF5}"
EndProject
Global
GlobalSection(SourceCodeControl) = preSolution
SccNumberOfProjects = 6
SccLocalPath0 = .
SccProjectUniqueName1 = ConvertAlarms\\ConvertAlarms.csproj
SccLocalPath1 = .
SccProjectFilePathRelativizedFromConnection1 = ConvertAlarms\\
SccProjectUniqueName2 = ConvertLocalAlarms\\ConvertLocalAlarms.csproj
SccLocalPath2 = .
SccProjectFilePathRelativizedFromConnection2 = ConvertLocalAlarms\\
SccProjectUniqueName3 = CPPConvert\\CPPConvert.csproj
SccLocalPath3 = .
SccProjectFilePathRelativizedFromConnection3 = CPPConvert\\
SccProjectUniqueName4 = ReadFile\\ReadFile.csproj
SccLocalPath4 = .
SccProjectFilePathRelativizedFromConnection4 = ReadFile\\
SccProjectUniqueName5 = XMLConvert\\XMLConvert.csproj
SccLocalPath5 = .
SccProjectFilePathRelativizedFromConnection5 = XMLConvert\\
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|Mixed Platforms = Debug|Mixed Platforms
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|Mixed Platforms = Release|Mixed Platforms
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Debug|Mixed Platforms.Build.0 = Debug|x86
{C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Debug|x86.ActiveCfg = Debug|x86
{C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Debug|x86.Build.0 = Debug|x86
{C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Release|Any CPU.Build.0 = Release|Any CPU
{C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Release|Mixed Platforms.ActiveCfg = Release|x86
{C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Release|Mixed Platforms.Build.0 = Release|x86
{C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Release|x86.ActiveCfg = Release|x86
{C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Release|x86.Build.0 = Release|x86
{1153363A-3395-4BBA-A507-4FA69132CDFC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1153363A-3395-4BBA-A507-4FA69132CDFC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1153363A-3395-4BBA-A507-4FA69132CDFC}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{1153363A-3395-4BBA-A507-4FA69132CDFC}.Debug|Mixed Platforms.Build.0 = Debug|x86
{1153363A-3395-4BBA-A507-4FA69132CDFC}.Debug|x86.ActiveCfg = Debug|x86
{1153363A-3395-4BBA-A507-4FA69132CDFC}.Debug|x86.Build.0 = Debug|x86
{1153363A-3395-4BBA-A507-4FA69132CDFC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1153363A-3395-4BBA-A507-4FA69132CDFC}.Release|Any CPU.Build.0 = Release|Any CPU
{1153363A-3395-4BBA-A507-4FA69132CDFC}.Release|Mixed Platforms.ActiveCfg = Release|x86
{1153363A-3395-4BBA-A507-4FA69132CDFC}.Release|Mixed Platforms.Build.0 = Release|x86
{1153363A-3395-4BBA-A507-4FA69132CDFC}.Release|x86.ActiveCfg = Release|x86
{1153363A-3395-4BBA-A507-4FA69132CDFC}.Release|x86.Build.0 = Release|x86
{8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Debug|Mixed Platforms.Build.0 = Debug|x86
{8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Debug|x86.ActiveCfg = Debug|x86
{8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Debug|x86.Build.0 = Debug|x86
{8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Release|Any CPU.Build.0 = Release|Any CPU
{8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Release|Mixed Platforms.ActiveCfg = Release|x86
{8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Release|Mixed Platforms.Build.0 = Release|x86
{8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Release|x86.ActiveCfg = Release|x86
{8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Release|x86.Build.0 = Release|x86
{BF0EEE6A-5350-4CE7-8E28-73F1A3811870}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BF0EEE6A-5350-4CE7-8E28-73F1A3811870}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BF0EEE6A-5350-4CE7-8E28-73F1A3811870}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{BF0EEE6A-5350-4CE7-8E28-73F1A3811870}.Debug|Mixed Platforms.Build.0 = Debug|x86
{BF0EEE6A-5350-4CE7-8E28-73F1A3811870}.Debug|x86.ActiveCfg = Debug|Any CPU
{BF0EEE6A-5350-4CE7-8E28-73F1A3811870}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BF0EEE6A-5350-4CE7-8E28-73F1A3811870}.Release|Any CPU.Build.0 = Release|Any CPU
{BF0EEE6A-5350-4CE7-8E28-73F1A3811870}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{BF0EEE6A-5350-4CE7-8E28-73F1A3811870}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{BF0EEE6A-5350-4CE7-8E28-73F1A3811870}.Release|x86.ActiveCfg = Release|Any CPU
{D83BC593-811C-4D32-81B2-9C6031AFDAF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D83BC593-811C-4D32-81B2-9C6031AFDAF5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D83BC593-811C-4D32-81B2-9C6031AFDAF5}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{D83BC593-811C-4D32-81B2-9C6031AFDAF5}.Debug|Mixed Platforms.Build.0 = Debug|x86
{D83BC593-811C-4D32-81B2-9C6031AFDAF5}.Debug|x86.ActiveCfg = Debug|Any CPU
{D83BC593-811C-4D32-81B2-9C6031AFDAF5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D83BC593-811C-4D32-81B2-9C6031AFDAF5}.Release|Any CPU.Build.0 = Release|Any CPU
{D83BC593-811C-4D32-81B2-9C6031AFDAF5}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{D83BC593-811C-4D32-81B2-9C6031AFDAF5}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{D83BC593-811C-4D32-81B2-9C6031AFDAF5}.Release|x86.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/>
</startup>
</configuration>
@@ -1,112 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{1153363A-3395-4BBA-A507-4FA69132CDFC}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>CPPConvert</RootNamespace>
<AssemblyName>CPPConvert</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<PlatformTarget>x86</PlatformTarget>
<OutputPath>bin\x86\Debug\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<PlatformTarget>x86</PlatformTarget>
<OutputPath>bin\x86\Release\</OutputPath>
</PropertyGroup>
<ItemGroup>
<Reference Include="Csla">
<HintPath>..\..\..\..\..\..\..\Development\csla20cs\Csla\bin\Debug\Csla.dll</HintPath>
</Reference>
<Reference Include="DevComponents.DotNetBar2, Version=14.0.0.11, Culture=neutral, PublicKeyToken=7eb7c3a35b91de04, processorArchitecture=MSIL" />
<Reference Include="log4net">
<HintPath>..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\log4net.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="VEPROMS.CSLA.Library">
<HintPath>..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\VEPROMS.CSLA.Library.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="frmCPPConvert.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmCPPConvert.Designer.cs">
<DependentUpon>frmCPPConvert.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="frmCPPConvert.resx">
<DependentUpon>frmCPPConvert.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
@@ -1,22 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace CPPConvert
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new frmCPPConvert());
}
}
}
@@ -1,36 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("CPPConvert")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("CPPConvert")]
[assembly: AssemblyCopyright("Copyright © 2018")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("1e1f432a-54d7-4c79-a5ed-c8c863ca75b0")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
@@ -1,63 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace CPPConvert.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CPPConvert.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}
@@ -1,26 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace CPPConvert.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
}
}
-236
View File
@@ -1,236 +0,0 @@
namespace CPPConvert
{
partial class frmCPPConvert
{
/// <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()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmCPPConvert));
this.label1 = new System.Windows.Forms.Label();
this.tbFile = new System.Windows.Forms.TextBox();
this.tbResults = new System.Windows.Forms.TextBox();
this.btnBrowse = new System.Windows.Forms.Button();
this.tbDest = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label();
this.btnBrowseDest = new System.Windows.Forms.Button();
this.fbd = new System.Windows.Forms.FolderBrowserDialog();
this.ofd = new System.Windows.Forms.OpenFileDialog();
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.processToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.allToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.pb = new DevComponents.DotNetBar.Controls.ProgressBarX();
this.testToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.menuStrip1.SuspendLayout();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(14, 30);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(47, 13);
this.label1.TabIndex = 0;
this.label1.Text = "CPP File";
//
// tbFile
//
this.tbFile.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tbFile.Location = new System.Drawing.Point(83, 27);
this.tbFile.Name = "tbFile";
this.tbFile.Size = new System.Drawing.Size(482, 20);
this.tbFile.TabIndex = 1;
this.tbFile.Text = "C:\\Development\\Proms\\Barakah\\SGTR\\1N2-OP-EOP-RC-0002 Rev00 - Steam Generator Tube" +
" Rupture (CPS-CPP).cpp";
//
// tbResults
//
this.tbResults.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tbResults.Location = new System.Drawing.Point(12, 124);
this.tbResults.Multiline = true;
this.tbResults.Name = "tbResults";
this.tbResults.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.tbResults.Size = new System.Drawing.Size(637, 169);
this.tbResults.TabIndex = 3;
//
// btnBrowse
//
this.btnBrowse.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnBrowse.Location = new System.Drawing.Point(571, 25);
this.btnBrowse.Name = "btnBrowse";
this.btnBrowse.Size = new System.Drawing.Size(72, 23);
this.btnBrowse.TabIndex = 4;
this.btnBrowse.Text = "Browse...";
this.btnBrowse.UseVisualStyleBackColor = true;
this.btnBrowse.Click += new System.EventHandler(this.btnBrowse_Click);
//
// tbDest
//
this.tbDest.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tbDest.Location = new System.Drawing.Point(83, 53);
this.tbDest.Name = "tbDest";
this.tbDest.Size = new System.Drawing.Size(482, 20);
this.tbDest.TabIndex = 5;
this.tbDest.Text = "C:\\Development\\Proms\\Barakah\\EOP CPPs\\Output";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(14, 53);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(60, 13);
this.label2.TabIndex = 6;
this.label2.Text = "Destination";
//
// btnBrowseDest
//
this.btnBrowseDest.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnBrowseDest.Location = new System.Drawing.Point(571, 50);
this.btnBrowseDest.Name = "btnBrowseDest";
this.btnBrowseDest.Size = new System.Drawing.Size(72, 23);
this.btnBrowseDest.TabIndex = 7;
this.btnBrowseDest.Text = "Browse...";
this.btnBrowseDest.UseVisualStyleBackColor = true;
this.btnBrowseDest.Click += new System.EventHandler(this.btnBrowseDest_Click);
//
// ofd
//
this.ofd.FileName = "openFileDialog1";
//
// menuStrip1
//
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.fileToolStripMenuItem});
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
this.menuStrip1.Name = "menuStrip1";
this.menuStrip1.Size = new System.Drawing.Size(661, 24);
this.menuStrip1.TabIndex = 8;
this.menuStrip1.Text = "menuStrip1";
//
// fileToolStripMenuItem
//
this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.processToolStripMenuItem,
this.allToolStripMenuItem,
this.testToolStripMenuItem,
this.exitToolStripMenuItem});
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
this.fileToolStripMenuItem.Text = "&File";
//
// processToolStripMenuItem
//
this.processToolStripMenuItem.Name = "processToolStripMenuItem";
this.processToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
this.processToolStripMenuItem.Text = "&Process";
this.processToolStripMenuItem.Click += new System.EventHandler(this.processToolStripMenuItem_Click);
//
// allToolStripMenuItem
//
this.allToolStripMenuItem.Name = "allToolStripMenuItem";
this.allToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
this.allToolStripMenuItem.Text = "&All";
this.allToolStripMenuItem.Click += new System.EventHandler(this.allToolStripMenuItem_Click);
//
// exitToolStripMenuItem
//
this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
this.exitToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
this.exitToolStripMenuItem.Text = "E&xit";
this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click);
//
// pb
//
this.pb.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
//
//
//
this.pb.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.pb.Location = new System.Drawing.Point(12, 91);
this.pb.Name = "pb";
this.pb.Size = new System.Drawing.Size(637, 23);
this.pb.TabIndex = 9;
this.pb.Text = "progressBarX1";
//
// testToolStripMenuItem
//
this.testToolStripMenuItem.Name = "testToolStripMenuItem";
this.testToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
this.testToolStripMenuItem.Text = "&Test";
this.testToolStripMenuItem.Click += new System.EventHandler(this.testToolStripMenuItem_Click);
//
// frmCPPConvert
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(661, 305);
this.Controls.Add(this.pb);
this.Controls.Add(this.btnBrowseDest);
this.Controls.Add(this.label2);
this.Controls.Add(this.tbDest);
this.Controls.Add(this.btnBrowse);
this.Controls.Add(this.tbResults);
this.Controls.Add(this.tbFile);
this.Controls.Add(this.label1);
this.Controls.Add(this.menuStrip1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MainMenuStrip = this.menuStrip1;
this.Name = "frmCPPConvert";
this.Text = "Extract XML and Image Files";
this.menuStrip1.ResumeLayout(false);
this.menuStrip1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox tbFile;
private System.Windows.Forms.TextBox tbResults;
private System.Windows.Forms.Button btnBrowse;
private System.Windows.Forms.TextBox tbDest;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Button btnBrowseDest;
private System.Windows.Forms.FolderBrowserDialog fbd;
private System.Windows.Forms.OpenFileDialog ofd;
private System.Windows.Forms.MenuStrip menuStrip1;
private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem processToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem;
private DevComponents.DotNetBar.Controls.ProgressBarX pb;
private System.Windows.Forms.ToolStripMenuItem allToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem testToolStripMenuItem;
}
}
@@ -1,310 +0,0 @@
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;
using System.IO;
namespace CPPConvert
{
public partial class frmCPPConvert : Form
{
public frmCPPConvert()
{
InitializeComponent();
}
private long _Offset;
private static long _lastPos = 0l;
private void ReadRecord(BinaryReader br)
{
long curPos = FS.Position;
int nxtPos = PathStartList[0];
if (nxtPos - 4 != curPos)
{
Console.WriteLine("curpos, nxtpos, lastpos\t{0:X08}\t{1:X08}", curPos - _lastPos, nxtPos- _lastPos);
FS.Seek(nxtPos - 4, SeekOrigin.Begin);
}
PathStartList.RemoveAt(0);
_lastPos = FS.Position;
string filePath = ReadString(br);
Console.WriteLine(filePath.Substring(120,filePath.Length-120));
string type = ReadString(br);
int pos = (int) FS.Position;
byte [] buf = ReadBuffer(br);
int size = buf.Length;
if (buf.Length > 4 && StartsWith(buf, "<?xml"))
{
int HowMany0Ds = 0;
int HowMany0As = 0;
int j = 0;
while (j < buf.Length - HowMany0As - HowMany0Ds)
{
if (buf[j] == 0x0D) HowMany0Ds++;
if (buf[j] == 0x0A) HowMany0As++;
j++;
}
int misMatch = HowMany0As - HowMany0Ds;
if (misMatch > 0)
{
FS.Position = pos + buf.Length + 4 - misMatch;
size -= misMatch;
}
}
//Console.WriteLine("filePath={0}\r\ntype={1}", filePath, type);
if(type.ToLower().Contains("procedure"))
{
tbResults.AppendText(string.Format("Extracted {0}\r\n",PartialName(filePath,type)));
SaveFile(filePath,type,buf,size);
}
}
private string PartialName(string filePath, string type)
{
int skipSlashes = 2 +type.Length - type.Replace("/", "").Length;
int start = filePath.Length;
while(skipSlashes-- > 0)
start = filePath.LastIndexOf('/', start-1);
return filePath.Substring(start+1);
}
private void SaveFile(string filePath, string type, byte[] buf,int size)
{
string fn = (tbDest.Text.EndsWith("/") ? tbDest.Text : tbDest.Text + "/") + PartialName(filePath, type);
BuildPath(fn);
FileStream fs = File.Create(fn);
BinaryWriter bw = new BinaryWriter(fs);
if (filePath.ToUpper().EndsWith(".PNG") && buf[4]==0xA)
{
bw.Write(buf, 0, 4);
bw.Write(Encoding.ASCII.GetBytes("\xD"));
bw.Write(buf, 4, size-4);
}
else
{
}
bw.Write(buf,0,size);
bw.Close();
}
private void BuildPath(string fn)
{
FileInfo fi = new FileInfo(fn);
fi.Directory.Create();
}
private string ReadString(BinaryReader br)
{
byte[] buffer = ReadBuffer(br);
return Encoding.BigEndianUnicode.GetString(buffer, 0, buffer.Length);
}
private byte[] ReadBuffer(BinaryReader br)
{
int size = ReadBytesToInt32(br);
if (size == -1) size = 0;
if(size > FS.Length || size < 0)
throw(new Exception(string.Format("Location {0:X08} has a buffer that is too big {1:X08}",FS.Position,size)));
byte[] buffer = new byte[size];
br.Read(buffer, 0, size);
_Offset += size;
return buffer;
}
private int ReadBytesToInt32(BinaryReader br)
{
byte[] buffer = new byte[4];
long off = Offset;
br.Read(buffer, 0, 4);
int i = BitConverter.ToInt32(buffer.Reverse().ToArray(), 0);
//if(i>255) Console.WriteLine("{0:X8} - {1:X8}", off,i);
_Offset += 4;
return i;
}
private void btnBrowse_Click(object sender, EventArgs e)
{
ofd.FileName = tbFile.Text;
if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
tbFile.Text = ofd.FileName;
}
private void btnBrowseDest_Click(object sender, EventArgs e)
{
fbd.SelectedPath = tbDest.Text;
if (fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
tbDest.Text = fbd.SelectedPath;
}
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
public long Offset
{
get
{
return FS.Seek(0, SeekOrigin.Current);
}
}
FileStream _FS;
public FileStream FS
{
get { return _FS; }
set { _FS = value; }
}
private List<int> _PathStartList;
public List<int> PathStartList
{
get { return _PathStartList; }
set { _PathStartList = value; }
}
private List<int> GetPathStartList(string findIt,FileStream fs)
{
List<int> lst= new List<int>();
BinaryReader br = new BinaryReader(FS);
int buflen = (int) FS.Length;
byte [] buf =br.ReadBytes(buflen);
byte[] bFindIt = Encoding.BigEndianUnicode.GetBytes(findIt);
int findlen = bFindIt.Length;
pb.Text = "Looking for C:/";
pb.Maximum = (int) fs.Length;
for (int i = 0; i < buflen - 4; i++)
{
if (buf[i] == bFindIt[0])
{
int k=0;
for (; k < findlen; k++)
if (buf[k + i] != bFindIt[k])
break;
if (k == findlen) lst.Add(i);
}
pb.Value = i;
}
pb.Text = "Done";
br.Close();
return lst;
}
private bool Foundit(byte[] buf, int offset, byte [] bFindIt)
{
for (int i = 0; i < bFindIt.Length; i++)
if (buf[i + offset] != (int)bFindIt[i])
return false;
return true;
}
private void processToolStripMenuItem_Click(object sender, EventArgs e)
{
tbResults.Clear();
ConvertCPP(tbFile.Text);
pb.Text = "All Done";
}
private void ConvertCPP(string fileName)
{
FS = File.OpenRead(fileName);
PathStartList = GetPathStartList("C:/", FS);
//Console.WriteLine("===> {0} Paths", PathStartList.Count);
FS = File.OpenRead(fileName);
BinaryReader br = new BinaryReader(FS);
try
{
_Offset = 0;
int nRecords = ReadBytesToInt32(br);
//Console.WriteLine("===> {0} Records", nRecords);
int i = 0;
pb.Text = "Splitting File";
pb.Maximum = nRecords;
while (_Offset < FS.Length && nRecords-- > 0)
{
ReadRecord(br);
pb.Value = ++i;
}
}
catch (Exception ex)
{
tbResults.AppendText(string.Format("{0} - {1}-{2}\r\n{3}\r\n\r\n", fileName, ex.GetType().Name, ex.Message, ex.StackTrace));
}
finally
{
br.Close();
}
}
private void allToolStripMenuItem_Click(object sender, EventArgs e)
{
tbResults.Clear();
FileInfo[] myFiles = new FileInfo(tbFile.Text).Directory.GetFiles("*.cpp");
foreach (FileInfo fi in myFiles)
ConvertCPP(fi.FullName);
pb.Text = "All Done";
}
private void testToolStripMenuItem_Click(object sender, EventArgs e)
{
FS = File.OpenRead(tbFile.Text);
PathStartList = GetPathStartList("C:/", FS);
FS = File.OpenRead(tbFile.Text);
BinaryReader br = new BinaryReader(FS);
int nRecords = ReadBytesToInt32(br);
int bytesRead = 4;
int countByThree = 0;
while (bytesRead < FS.Length)
{
if(countByThree % 3 == 0)
{
long curPos = FS.Position;
int nxtPos = PathStartList[0];
if (nxtPos - 4 != curPos)
{
Console.WriteLine("curpos, nxtpos, lastpos\t{0:X08}\t{1:X08}", curPos - _lastPos, nxtPos - _lastPos);
FS.Seek(nxtPos - 4, SeekOrigin.Begin);
}
PathStartList.RemoveAt(0);
}
_lastPos = FS.Position;
long pos = FS.Position;
int size = ReadBytesToInt32(br);
bytesRead += 4;
byte[] buf = br.ReadBytes(size);
bytesRead += size;
StringBuilder sb = new StringBuilder();
sb.Append(string.Format("{0:D4} {1:X08} {2:X08} ",countByThree ,pos,size));
for (int i = 0; i < 120 && i < size; i++)
{
if(buf[i] < 0x20)
sb.Append('.');
else
sb.Append((char) buf[i]);
}
Console.WriteLine(sb.ToString());
if (StartsWith(buf, "<?xml"))
{
int HowMany0Ds = 0;
int HowMany0As = 0;
int j = 0;
while (j < buf.Length - HowMany0As - HowMany0Ds)
{
if (buf[j] == 0x0D) HowMany0Ds++;
if (buf[j] == 0x0A) HowMany0As++;
j++;
}
int misMatch = HowMany0As - HowMany0Ds;
if (misMatch > 0)
{
FS.Position = pos + size + 4 - misMatch;
bytesRead -= misMatch;
}
}
countByThree++;
}
}
private bool StartsWith(byte[] buf, string findIt)
{
byte[] bFindIt = Encoding.ASCII.GetBytes(findIt);
int findlen = bFindIt.Length;
int k=0;
for (; k < findlen; k++)
if (buf[k] != bFindIt[k])
return false;
return true;
}
}
}
File diff suppressed because it is too large Load Diff
@@ -1,36 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="ConvertAlarms.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
</sectionGroup>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/>
</startup>
<userSettings>
<ConvertAlarms.Properties.Settings>
<setting name="Size" serializeAs="String">
<value>1000, 600</value>
</setting>
<setting name="Location" serializeAs="String">
<value>0, 0</value>
</setting>
<setting name="FileName" serializeAs="String">
<value />
</setting>
<setting name="Split1" serializeAs="String">
<value>250</value>
</setting>
<setting name="SqlServer" serializeAs="String">
<value>.\Sql2008Express</value>
</setting>
<setting name="Database" serializeAs="String">
<value>VEPROMS_Barakah</value>
</setting>
<setting name="ProcedureSet" serializeAs="String">
<value>0</value>
</setting>
</ConvertAlarms.Properties.Settings>
</userSettings>
</configuration>
@@ -1,145 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{8185CA5B-2403-450A-9989-C7E4A2A5D7A1}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ConvertAlarms</RootNamespace>
<AssemblyName>ConvertAlarms</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>x86</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x86\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<OutputPath>bin\x86\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="C1.Win.C1FlexGrid.2, Version=2.6.20142.835, Culture=neutral, PublicKeyToken=79882d576c6336da, processorArchitecture=MSIL" />
<Reference Include="Csla">
<HintPath>..\..\..\..\..\..\..\Development\csla20cs\Csla\bin\Debug\Csla.dll</HintPath>
</Reference>
<Reference Include="DevComponents.DotNetBar2, Version=12.5.0.2, Culture=neutral, PublicKeyToken=7eb7c3a35b91de04, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\Program Files\DotNetBar for Windows Forms\DevComponents.DotNetBar2.dll</HintPath>
</Reference>
<Reference Include="log4net">
<HintPath>..\..\..\..\..\..\..\Development\Proms\VEPROMS User Interface\bin\Debug\log4net.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Design" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="VEPROMS.CSLA.Library, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\VEPROMS.CSLA.Library.dll</HintPath>
</Reference>
<Reference Include="Volian.Base.Library">
<HintPath>..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\Volian.Base.Library.dll</HintPath>
</Reference>
<Reference Include="Volian.Controls.Library">
<HintPath>..\..\..\..\..\..\..\Development\Proms\Volian.Controls.Library\bin\Debug\Volian.Controls.Library.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="ConvertTable.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmConvertAlarms.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmConvertAlarms.Designer.cs">
<DependentUpon>frmConvertAlarms.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="SaveProcedure.cs">
<SubType>Form</SubType>
</Compile>
<EmbeddedResource Include="frmConvertAlarms.resx">
<DependentUpon>frmConvertAlarms.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\licenses.licx" />
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="App.config">
<SubType>Designer</SubType>
</None>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
@@ -1,197 +0,0 @@
using C1.Win.C1FlexGrid;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml;
using VEPROMS.CSLA.Library;
using Volian.Controls.Library;
namespace ConvertAlarms
{
public partial class frmConvertAlarms
{
private static string GetTableText()
{
return _MyFlexGrid.GetSearchableText();
}
private static void LoadTable2(XmlNode xn, StepLookup mySteps, int level)
{
XmlNode xn2 = xn.SelectSingleNode("tr/td/table");
if (xn2 != null) xn = xn2;
VlnFlexGrid fg = _MyFlexGrid;
fg.Font = new Font("Arial", 11, FontStyle.Regular, GraphicsUnit.Point);
fg.Clear();
fg.Rows.Count = 1;
fg.Cols.Count = 1;
int rows = 0;
fg.MergedRanges.Clear();
foreach (XmlNode xr in xn.ChildNodes)
{
if (xr.Name == "tr")
{
++rows;
AddTableRow(xr, fg, rows);
}
}
fg.MyBorders = new VlnBorders(GridLinePattern.Single, fg.Rows.Count, fg.Cols.Count);
fg.BringToFront();
fg.Invalidate();
Application.DoEvents();
//ShowColumnWidths(fg);
fg.MakeRTFcells(false);
//ShowMergedCells(fg);
//ShowColumnWidths(fg);
//Well, Can I save the table
//using (Step step = MakeCSLAStep(mySteps, mySteps.Count, null, {TableContent}, 20008, E_FromType.Table))
//{
// Grid.MakeGrid(step.MyContent, fg.GetXMLData(), "");
//}
}
public static VlnFlexGrid _MyFlexGrid = null;
private static void AddTableRow(XmlNode xr, VlnFlexGrid fg, int rows)
{
if (rows > fg.Rows.Count)
fg.Rows.Count = rows;
int cols = 0;
foreach (XmlNode xc in xr.ChildNodes)
{
++cols;
//if (xc.InnerText.Contains("RC-V200"))
// Console.WriteLine(xc.InnerText);
//if (xc.InnerText.Contains("RC-V121"))
// Console.WriteLine(xc.InnerText);
//if (xc.InnerXml.Contains("AB 137") || xc.InnerXml.Contains("3013N01"))
// Console.WriteLine("here");
CellRange cr2 = GetMyMergedRange(fg, rows - 1, cols - 1);
//Console.WriteLine("Check {0}", cr2);
while (cr2.c1 != cols - 1 || cr2.r1 != rows - 1)
{
cols++;
cr2 = GetMyMergedRange(fg, rows - 1, cols - 1);
}
AddMergedCells(fg, rows, cols, xc);
//ShowMergedCells(fg);
if (xc.Name == "td")
{
AddTableColumn(xc, fg, rows, cols);
}
}
}
//private static void ShowColumnWidths(VlnFlexGrid fg)
//{
// foreach (Column c in fg.Cols)
// Console.WriteLine("Width[{0}]={1}", c.Index, c.Width);
//}
private static void ShowMergedCells(VlnFlexGrid fg)
{
for (int r = 0; r < fg.Rows.Count; r++)
{
for (int c = 0; c < fg.Cols.Count; c++)
{
CellRange cr3 = GetMyMergedRange(fg, r, c);
if (fg.MergedRanges.Contains(cr3))
Console.WriteLine("cr3 r={0},c={1},rng={2}", r, c, cr3);
}
}
}
private static int GetSpan(string span)
{
int retval = int.Parse("0" + (span ?? ""));
if (retval == 0) return 0;
return retval - 1;
}
private static string GetAttribute(XmlNode xc, string attName)
{
string retval = null;
XmlAttribute xa = xc.Attributes[attName];
if (xa != null)
retval = xa.Value;
return retval;
}
private static void AddMergedCells(VlnFlexGrid fg, int rows, int cols, XmlNode xc)
{
string colspan = GetAttribute(xc, "colspan");
string rowspan = GetAttribute(xc, "rowspan");
if (colspan != null || rowspan != null)
{
//AddMergedRanges
int r1 = rows;
int c1 = cols;
int r2 = r1 + GetSpan(rowspan);
if (r2 > fg.Rows.Count) fg.Rows.Count = r2;
int c2 = c1 + GetSpan(colspan);
if (c2 > fg.Cols.Count) fg.Cols.Count = c2;
CellRange cr = new CellRange();
cr.r1 = r1 - 1;
cr.r2 = r2 - 1;
cr.c1 = c1 - 1;
cr.c2 = c2 - 1;
fg.MergedRanges.Add(cr);
//Console.WriteLine("Merged {0}", cr);
}
}
private static CellRange GetMyMergedRange(VlnFlexGrid fg, int r, int c)
{
foreach (CellRange cr in fg.MergedRanges)
{
if (cr.r1 <= r && cr.r2 >= r && cr.c1 <= c && cr.c2 >= c)
return cr;
}
return fg.GetMergedRange(r, c);
}
private static Regex regNumber = new Regex("^[0-9]+$", RegexOptions.Compiled);
private static void AddTableColumn(XmlNode xc, VlnFlexGrid fg, int rows, int cols)
{
//Console.WriteLine("Rows {0}, Cols {1}", rows, cols);
if (cols > fg.Cols.Count)
fg.Cols.Count = cols;
string width = GetAttribute(xc, "width");
if (width != null && width != "" && regNumber.IsMatch(width))
{
if (width.EndsWith("%"))
fg.Cols[cols - 1].Width = (int)(int.Parse(width.Replace("%", "")) * 96 * 6.5F / 100);
else
{
int w = int.Parse(width)*96/72;
//Console.WriteLine("w[{0}]={1}", cols - 1, w);
fg.Cols[cols - 1].Width = w;
}
}
StringBuilder sb = new StringBuilder();
string prefix = "";
foreach (XmlNode xn in xc.ChildNodes)
{
if (xn.Name == "p")
{
sb.Append(prefix + xn.InnerText);
}
if (xn.Name == "ul")
{
foreach (XmlNode xn2 in xn.ChildNodes)
{
if (xn2.Name == "li")
{
sb.Append(prefix + "*" + xn.InnerText);
}
if (xn2.Name == "p")
{
sb.Append(prefix + xn.InnerText);
}
}
}
}
if (width != null && width != "" && !regNumber.IsMatch(width))
{
Console.WriteLine("width is not a number {0}, rows {1}, cols {2}, Text='{3}'", width, rows, cols, xc.OuterXml);
}
fg[rows - 1, cols - 1] = sb.ToString();
}
}
}
@@ -1,22 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ConvertAlarms
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new frmConvertAlarms());
}
}
}
@@ -1,36 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("ConvertAlarms")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ConvertAlarms")]
[assembly: AssemblyCopyright("Copyright © 2019")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("80225e3c-f32e-41b5-8b31-b8301eea4831")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
@@ -1,63 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace ConvertAlarms.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ConvertAlarms.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}
@@ -1,117 +0,0 @@
<?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.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: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" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</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" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
@@ -1,110 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace ConvertAlarms.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("1000, 600")]
public global::System.Drawing.Size Size {
get {
return ((global::System.Drawing.Size)(this["Size"]));
}
set {
this["Size"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0, 0")]
public global::System.Drawing.Point Location {
get {
return ((global::System.Drawing.Point)(this["Location"]));
}
set {
this["Location"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string FileName {
get {
return ((string)(this["FileName"]));
}
set {
this["FileName"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("250")]
public int Split1 {
get {
return ((int)(this["Split1"]));
}
set {
this["Split1"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute(".\\Sql2008Express")]
public string SqlServer {
get {
return ((string)(this["SqlServer"]));
}
set {
this["SqlServer"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("VEPROMS_Barakah")]
public string Database {
get {
return ((string)(this["Database"]));
}
set {
this["Database"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0")]
public int ProcedureSet {
get {
return ((int)(this["ProcedureSet"]));
}
set {
this["ProcedureSet"] = value;
}
}
}
}
@@ -1,27 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="ConvertAlarms.Properties" GeneratedClassName="Settings">
<Profiles />
<Settings>
<Setting Name="Size" Type="System.Drawing.Size" Scope="User">
<Value Profile="(Default)">1000, 600</Value>
</Setting>
<Setting Name="Location" Type="System.Drawing.Point" Scope="User">
<Value Profile="(Default)">0, 0</Value>
</Setting>
<Setting Name="FileName" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="Split1" Type="System.Int32" Scope="User">
<Value Profile="(Default)">250</Value>
</Setting>
<Setting Name="SqlServer" Type="System.String" Scope="User">
<Value Profile="(Default)">.\Sql2008Express</Value>
</Setting>
<Setting Name="Database" Type="System.String" Scope="User">
<Value Profile="(Default)">VEPROMS_Barakah</Value>
</Setting>
<Setting Name="ProcedureSet" Type="System.Int32" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
</Settings>
</SettingsFile>
@@ -1 +0,0 @@
C1.Win.C1FlexGrid.C1FlexGrid, C1.Win.C1FlexGrid.2, Version=2.6.20142.835, Culture=neutral, PublicKeyToken=79882d576c6336da
@@ -1,517 +0,0 @@
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;
using System.IO;
using System.Xml;
using System.Text.RegularExpressions;
using VEPROMS.CSLA.Library;
using log4net;
using Volian.Controls.Library;
using C1.Win.C1FlexGrid;
using System.Data.SqlClient;
namespace ConvertAlarms
{
public partial class frmConvertAlarms : Form
{
//private void SaveProcedure(string text, string procNumber, string procTitle, int serialNo)
private static DocVersionInfo DVI;
private void SaveProcedure(string text, string procNumber, string procTitle, string fileName)
{
MatchCollection mc = Regex.Matches(text, "pNote");
if (mc.Count > 1) Console.WriteLine("-------> {0} Notes", mc.Count);
// Add Procedure Number and Title
ItemInfo prev = null;
//if (serialNo == 999999)
prev = DVI.MyItem == null ? null : DVI.MyItem.LastSibling; //FindLocation(DVI.MyItem,procNumber);
//else
//{
// prev = FindPrevious(dicSerialNo, serialNo);
//}
using (Procedure prc = Procedure.MakeProcedure(DVI, prev, procNumber, procTitle, 0))
{
MyLookUp = DVI.DocVersionAssociations[0].MyROFst.GetROFSTLookup(DVI);
if (MyLookUp.GetROIDByAccPagID("ALR-" + procNumber, "SP", "IG") == null)
{
prc.MyContent.Config = MakeConfig("<config><PSI ALMSERIALNUMBER=\"{0}\" ALM=\"{1}\" ALMID=\"{2}\" ALMSOURCE=\"{3}\" ALMSETPOINT=\"{4}\" KEPCOPROCNUM=\"{5}\" KEPCOPROCTITLE1=\"{6}\" /></config>",
prcSerialNoValue, prcTitleValue, prcNumberValue, prcSourceValue, prcSetpointValue, FullName.Substring(0, 13), FullName.Substring(14));
Annotation.MakeAnnotation(prc, AnnotationType.GetByNameOrCreate("Conversion Error"), null, "Missing Referenced Object " + procNumber , null);
}
else
prc.MyContent.Config = MakeConfig("<config><PSI KEPCOPROCNUM=\"{0}\" KEPCOPROCTITLE1=\"{1}\" /></config>",
FullName.Substring(0, 13), FullName.Substring(14));
prc.MyContent.Config = prc.MyContent.Config.Replace("<config><",string.Format("<config><Procedure Rev=\"{0}\"/><",RevisionNumber));
Annotation.MakeAnnotation(prc, AnnotationType.GetByNameOrCreate("Conversion Info"), null, GetAnnotationText(fileName), null);
ProcedureInfo prci = ProcedureInfo.Get(prc.ItemID);
// dicSerialNo.Add(serialNo, prci);
// Console.WriteLine("{0},{1}", serialNo, prci.ShortPath);
// Add Section
using (Section sec = Section.MakeSection(prci, null, null, "Procedure Content", 10006))
{
sec.SectionConfig.Section_ColumnMode = SectionConfig.SectionColumnMode.One;
sec.SectionConfig.Section_Pagination = SectionConfig.SectionPagination.Separate;
sec.Save();
SectionInfo seci = SectionInfo.Get(sec.ItemID);
// TODO: Add High Level Steps
// TODO: Add Substeps
MemoryStream ms = GetMemoryStream(text);
Queue<string> qread = new Queue<string>();
using (StreamReader sr = new StreamReader(ms))
fillQueue(qread, sr);
Dictionary<int, ItemInfo> lookup = new Dictionary<int, ItemInfo>();
lookup.Add(0, prci);
lookup.Add(1, seci);
int level = 2;
int type = 20001;
int lastLevel = 2;
int lastType = 0;
int lastIndent = 0;
int extra = 0;
string lastTab = "";
int? DeQueueType = null;
E_FromType myFromType = E_FromType.Step;
Queue<string> enQueue = null;
Queue<string> deQueue = null;
int deQueueLevel = 0;
int deQueueLevelLast = 0;
bool wasFromQueue;
bool firstQueue = false;
ItemInfo deQueueItem = null;
bool saveDeQueueInfo = false;
bool isTable = false;
bool lastWasTable = false;
string tableText = null;
string tab = "";
bool strangeBullet = false;
while (qread.Count > 0 || deQueue != null)
{
string lineText;
tableText = null;
if (deQueue != null)
{
wasFromQueue = true;
extra = 1;
lineText = deQueue.Dequeue().Trim();
if (deQueue.Count == 0)
deQueue = null;
if (Regex.IsMatch(lineText, "(NOTE|CAUTION|WARNING)"))
{
Console.WriteLine("Level {0} Type = {1}", deQueueLevel, DeQueueType);
switch (lineText)
{
case "<NOTE>":
DeQueueType = 20007;
break;
case "<CAUTION>":
DeQueueType = 20006;
break;
case "<WARNING>":
DeQueueType = 20020;
break;
}
firstQueue = true;
lineText = "\t" + deQueue.Dequeue();
while (deQueue.Count > 0 && deQueue.Peek().ToString().Trim().StartsWith("\u2022") == false && !Regex.IsMatch(deQueue.Peek(), "<(NOTE|CAUTION|WARNING)>"))
lineText += " " + deQueue.Dequeue();
myFromType = E_FromType.Note;
}
if (deQueue.Count == 0)
{
deQueue = null;
}
}
else
{
wasFromQueue = false;
DeQueueType = null;
extra = 0;
//if (NextLine != null)
//{
// lineText = NextLine;
// NextLine = null;
//}
//else
//{
lineText = qread.Dequeue().TrimEnd(" ".ToCharArray());
while (lineText.Trim() == "<pNOTE>" || lineText.Trim() == "<pCAUTION>" || lineText.Trim() == "<pWARNING>")
{
if (enQueue == null) enQueue = new Queue<string>();
lineText = qread.Dequeue().Trim();
//Console.WriteLine("======> {0},Count Before = {1} ", lineText.Trim(), enQueue.Count());
while (lineText != "</pNOTE>" && lineText != "</pCAUTION>" && lineText != "</pWARNING>")
{
enQueue.Enqueue(lineText.Trim());
lineText = qread.Dequeue().Trim();
}
lineText = qread.Dequeue().Trim();
//Console.WriteLine("======> {0},Count After = {1} ", lineText.Trim(), enQueue.Count());
}
if (lineText == "&gt;") lineText = lineText.Replace("&gt;", "");
else lineText = lineText.Replace("&lt;", "<").Replace("&gt;", ">");
//}
HasSpecialCharacters(lineText);
if (lineText.StartsWith("<table>"))
{
while (!lineText.Contains("</table>"))
{
lineText += " " + qread.Dequeue();
lineText = Regex.Replace(lineText, "</table>.*", "</table>");
}
XmlDocument xd = new XmlDocument();
xd.LoadXml(lineText);
LoadTable2(xd.DocumentElement, null, 0);
isTable = true;
if (!lastWasTable) level = lastLevel + 1;
else level = lastLevel;
type = 20008;
tableText = GetTableText();
//StringBuilder sbxml= new StringBuilder();
//using(StringWriter sw = new StringWriter(sbxml))
// _MyFlexGrid.WriteXml(sw);
//using(StringReader sr= new StringReader(sbxml.ToString()))
// _MyFlexGrid.ReadXml(sr);
//Application.DoEvents();
}
else lineText = Regex.Replace(lineText, "<[^<>]+>", "");
}
if (lineText.Replace("\t", "").Replace(" ", "") != "")
{
lastLine = lineText;
Match m = Regex.Match(lineText, @"^(\t*)([1-9][0-9]*\.0|[1-9][0-9]*\.[1-9][0-9]*|[1-9][0-9]*\.[1-9][0-9]*\.[1-9][0-9]*|[A-Z]\.|\u2022|)([\t ]+)([^\u2022]*)$", RegexOptions.Multiline);
if (m.Groups[4].Value != "")
{
tab = m.Groups[2].Value;
int indent = m.Groups[1].Value.Length;
if (isTable)
{
// do nothing
if (lastWasTable)
level = lastLevel;
else
level = 1 + lastLevel;
type = 20008;
myFromType = E_FromType.Table;
}
else if (indent == 0 && tab.EndsWith(".0")) // High Level Step
{
level = 2;
type = 20002;
}
else if (Regex.IsMatch(tab, "[1-9][0-9]*\\.[1-9][0-9]*\\.[1-9][0-9]*")) // Sub-Substep
{
level = 4;
type = 20001;
}
else if (Regex.IsMatch(tab, "[1-9][0-9]*\\.[1-9][0-9]*")) // Substep
{
level = 3;
type = 20001;
}
else if (Regex.IsMatch(tab, "[A-Z]\\.")) // Sub-Substep
{
level = 5;
type = 20001;
}
else if (tab == "") // Paragraph
{
level = lastLevel + 1;
type = 20024;
}
else if (tab == "\u2022")//bullet
{
if (firstQueue)
level = lastLevel + 1;
else if (lastTab == "\u2022")
level = lastLevel;
else
if (lastType == 20007 && lastTab == "")
level = lastLevel + 1;
else
{
level = indent + 3;
strangeBullet = true;
}
type = 20004;
if (Regex.IsMatch(m.Groups[4].Value, "^[0-9]"))
type = 20011;
}
else if (tab == "\u25CB")//bullet
{
level = indent + 4;
type = 20004;
if (Regex.IsMatch(m.Groups[4].Value, "^[0-9]"))
type = 20011;
}
//while (level < lastLevel)
// lookup.Remove(lastLevel--);
if (firstQueue && deQueueLevelLast > 0) level = deQueueLevelLast+1;
while (level < lookup.Count - 1)
lookup.Remove(lookup.Count - 1);
lastTab = tab;
lastLevel = level;
//lastIndent = indent;
lastWasTable = isTable;
deQueueLevelLast = deQueueLevel;
}
if (deQueue == null && enQueue != null)
{
deQueue = enQueue;
saveDeQueueInfo = true;
enQueue = null;
}
int newType = DeQueueType ?? (isTable ? 20008 : type);
lastType = newType;
if (enQueue == null)
{
if (lookup.Count < level)
{
using (Step stp = (lookup[lookup.Count - 1] as StepInfo).Get())
{
Annotation.MakeAnnotation(stp, AnnotationType.GetByNameOrCreate("Conversion Error"), null, GetAnnotationText2(lineText), null);
}
}
else if (lookup.Count == level)
{
using (Step stp = Step.MakeStep(lookup[level - 1], null, null, tableText ?? m.Groups[4].Value, newType, myFromType))
{
if (strangeBullet)
Annotation.MakeAnnotation(stp, AnnotationType.GetByNameOrCreate("Conversion Error"), null, "Strange Bullet", null);
ItemInfo myItem = StepInfo.Get(stp.ItemID);
if (isTable)
{
Grid.MakeGrid(stp.MyContent, _MyFlexGrid.GetXMLData(), "");
String footnote = GetFootNote(ms, qread);
if (footnote.Length > 0)
Step.MakeStep(myItem, null, null, footnote, 20024, E_FromType.Step);
}
isTable = false;
//Console.WriteLine("+++B tab = {0}, Lookup.Count = {1}, Level = {2}",tab, lookup.Count, level);
lookup.Add(level, myItem);
//Console.WriteLine("+++A tab = {0}, Lookup.Count = {1}, Level = {2}",tab, lookup.Count, level);
if (saveDeQueueInfo)
{
deQueueLevel = level;
deQueueItem = lookup[level];
saveDeQueueInfo = false;
}
if (firstQueue) firstQueue = false;
}
}
else
{
int previousType = ((int)lookup[level].MyContent.Type);
if (firstQueue && DeQueueType != null)
{
previousType = (int) DeQueueType;
level = deQueueLevel + 1;
}
using (Step stp = Step.MakeStep(lookup[level - 1], lookup[level], null, tableText ?? m.Groups[4].Value, previousType, myFromType))
{
Annotation.MakeAnnotation(stp, AnnotationType.GetByNameOrCreate("Conversion Error"), null, string.Format("Type Change {0} to {1}", newType, ((int)lookup[level].MyContent.Type)), null);
if (strangeBullet)
Annotation.MakeAnnotation(stp, AnnotationType.GetByNameOrCreate("Conversion Error"), null, "Strange Bullet", null);
strangeBullet = false;
ItemInfo myItem = StepInfo.Get(stp.ItemID);
if (isTable)
{
Grid.MakeGrid(stp.MyContent, _MyFlexGrid.GetXMLData(), "");
String footnote = GetFootNote(ms, qread);
if (footnote.Length > 0)
Step.MakeStep(myItem, null, null, footnote, 20024, E_FromType.Step);
}
isTable = false;
//Console.WriteLine(">>> tab = {0}, Lookup.Count = {1}, Level = {2}", tab, lookup.Count, level);
lookup[level] = myItem;
if (saveDeQueueInfo)
{
deQueueLevel = level;
deQueueItem = lookup[level];
saveDeQueueInfo = false;
}
if (firstQueue) firstQueue = false;
}
}
myFromType = E_FromType.Step;
if (deQueue == null && deQueueItem != null)
{
level = deQueueLevel;
while (level < lookup.Count)
lookup.Remove(lookup.Count - 1);
lookup[level] = deQueueItem;
deQueueItem = null;
DeQueueType = null;
}
}
//else
//{
// enQueue.Enqueue(lineText);
//}
DeQueueType = null;
}
}
}
}
if (runOne) MessageBox.Show("Done", "Converted");
}
private ItemInfo FindLocation(ItemInfo myItem, string procNumber)
{
while (myItem != null)
{
if (myItem.DisplayNumber.CompareTo(procNumber) >= 0)
return myItem.MyPrevious;
myItem = myItem.NextItem;
}
return myItem;
}
private string MakeConfig(string fmt, params string [] args)
{
string [] atts = new string[args.Length];
args.CopyTo(atts,0);
for(int i=0; i<atts.Length; i++)
atts[i] = atts[i].Replace("&","&amp;").Replace("<","&lt;").Replace(">","&gt;");
return string.Format(fmt, atts);
}
private void fillQueue(Queue<string> qread, StreamReader sr)
{
while(sr.Peek() > 0)
qread.Enqueue(sr.ReadLine());
}
//private string _NextLine;
//public string NextLine
//{
// get { return _NextLine; }
// set { _NextLine = value; }
//}
private string GetFootNote(MemoryStream ms, Queue<string> qRead)
{
string sep = "";
StringBuilder sb = new StringBuilder();
int lineCount = 0;
string lookingFor = null;
while(qRead.Count > 0)
{
// Read a line at a time
string str = qRead.Peek();
if(lineCount == 0 && str.StartsWith("<p>"))
{
lookingFor = "</p>";
str = str.Replace("<p>", "");
}
lineCount++;
str = Regex.Replace(str, "<[^<>]+>", "").Trim(" \t".ToCharArray()).Replace("&gt;", "");
str = str.Replace('\x25CB', 'o').Replace("\u2022", "\\u9679?");
//str = str.Replace('\x25CB', 'o').Replace("\u2022", "\\u7?");
// If Text begins with number then
if (lookingFor != null)
{
if (str.Contains(lookingFor))
{
sb.Append(sep + str.Replace(lookingFor, ""));
return sb.ToString();
}
}
else if (Regex.IsMatch(str, "[0-9].*") || str.StartsWith("<table>"))
return sb.ToString();
//append string
if (sb.ToString() != "" && str != "")
sep = "\r\n";
sb.Append(sep + str);
qRead.Dequeue();// Remove current line from queue
}
return sb.ToString();
}
private void ProcessChars(string str)
{
foreach (char c in str)
{
if (c < 0x20 || c > 0x7F)
Console.WriteLine("{0:X4}", (int)c);
}
}
public void ResetSpecial()
{
FoundSpecial = new List<char>();
}
List<char> FoundSpecial = new List<char>();
private void HasSpecialCharacters(string lineText)
{
StringBuilder sb = new StringBuilder();
foreach (char c in lineText)
{
if ((c < 0x20 || c > 0x7F) && !FoundSpecial.Contains(c))
{
Console.WriteLine("*** Special Character {0:X4}", (int)c);
FoundSpecial.Add(c);
}
}
}
private static string GetAnnotationText(string fileName)
{
return string.Format("FileName:{0}\r\nShortName:{1}\r\nFullName:{2}\r\nSystem:{3}\r\nPNSNo:{4}\r\nRelatedFunction:{5}" ,
fileName,ShortName,FullName,ApSystem,PNSNo ,RelatedFunction);
}
private static string GetAnnotationText2(string lineText)
{
//return string.Format("LineText:{0}\r\nShortName:{1}\r\nFullName:{2}\r\nSystem:{3}\r\nPNSNo:{4}\r\nRelatedFunction:{5}",
// lineText, ShortName, FullName, apSystem, PNSNo, RelatedFunction);
return string.Format("LineText:{0}",
lineText);
}
}
public class StepLookup : SortedDictionary<string, StepInfo>
{
public StepInfo this[int i]
{
get
{
if (this.ContainsKey(i.ToString())) return base[i.ToString()];
return null;
}
set
{
if (i > this.Count)
throw new Exception("Gap in Stack");
if (value == null)
throw new Exception("Null StepInfo");
//if (value.MyHLS.Ordinal==5 && (value.IsNote || value.IsCaution ))
// Volian.Base.Library.vlnStackTrace.ShowStackLocal(2,5,"=====> Adding Caution or Note on Step 5 {0}",value);
if (this.ContainsKey(i.ToString()))
{
base[i.ToString()] = value;
while (this.ContainsKey((i + 1).ToString()))
base.Remove((base.Count - 1).ToString());
}
else base.Add(i.ToString(), value);
//ListMySteps("Set ", this);
}
}
public void AddOne(StepInfo previousStep)
{
this[this.Count] = previousStep;
}
private static void ListMySteps(string str, StepLookup mySteps)
{
int i = 0;
foreach (string key in mySteps.Keys)
{
if (key != i.ToString())
Console.WriteLine("{0} {1} {2} {3}", str, i, key, mySteps[key].DisplayText);
i++;
}
}
}
}
@@ -1,499 +0,0 @@
namespace ConvertAlarms
{
partial class frmConvertAlarms
{
/// <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.components = new System.ComponentModel.Container();
this.panel1 = new System.Windows.Forms.Panel();
this.label1 = new System.Windows.Forms.Label();
this.tbFileName = new System.Windows.Forms.TextBox();
this.panel2 = new System.Windows.Forms.Panel();
this.btnRun = new System.Windows.Forms.Button();
this.btnBrowse = new System.Windows.Forms.Button();
this.btnAll = new System.Windows.Forms.Button();
this.label2 = new System.Windows.Forms.Label();
this.btnConvert = new System.Windows.Forms.Button();
this.label7 = new System.Windows.Forms.Label();
this.tbServer = new System.Windows.Forms.TextBox();
this.cmbDatabase = new System.Windows.Forms.ComboBox();
this.label4 = new System.Windows.Forms.Label();
this.cmbDocVersion = new System.Windows.Forms.ComboBox();
this.label6 = new System.Windows.Forms.Label();
this.ofd = new System.Windows.Forms.OpenFileDialog();
this.sc1 = new System.Windows.Forms.SplitContainer();
this.tcXML = new System.Windows.Forms.TabControl();
this.tpXML = new System.Windows.Forms.TabPage();
this.tbXML = new System.Windows.Forms.TextBox();
this.tpColorCoded = new System.Windows.Forms.TabPage();
this.rtbXML = new System.Windows.Forms.RichTextBox();
this.tabControl1 = new System.Windows.Forms.TabControl();
this.tpHTML = new System.Windows.Forms.TabPage();
this.wb = new System.Windows.Forms.WebBrowser();
this.tpRaw = new System.Windows.Forms.TabPage();
this.tbPROMS = new System.Windows.Forms.TextBox();
this.tpStructure = new System.Windows.Forms.TabPage();
this.tv = new System.Windows.Forms.TreeView();
this.tpGrid = new System.Windows.Forms.TabPage();
this.statusStrip1 = new System.Windows.Forms.StatusStrip();
this.tspb = new System.Windows.Forms.ToolStripProgressBar();
this.tsslStatus = new System.Windows.Forms.ToolStripStatusLabel();
this.tmr = new System.Windows.Forms.Timer(this.components);
this.panel1.SuspendLayout();
this.panel2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.sc1)).BeginInit();
this.sc1.Panel1.SuspendLayout();
this.sc1.Panel2.SuspendLayout();
this.sc1.SuspendLayout();
this.tcXML.SuspendLayout();
this.tpXML.SuspendLayout();
this.tpColorCoded.SuspendLayout();
this.tabControl1.SuspendLayout();
this.tpHTML.SuspendLayout();
this.tpRaw.SuspendLayout();
this.tpStructure.SuspendLayout();
this.statusStrip1.SuspendLayout();
this.SuspendLayout();
//
// panel1
//
this.panel1.Controls.Add(this.label1);
this.panel1.Controls.Add(this.tbFileName);
this.panel1.Controls.Add(this.panel2);
this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
this.panel1.Location = new System.Drawing.Point(0, 0);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(954, 88);
this.panel1.TabIndex = 0;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(12, 9);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(23, 13);
this.label1.TabIndex = 1;
this.label1.Text = "File";
//
// tbFileName
//
this.tbFileName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tbFileName.Location = new System.Drawing.Point(56, 6);
this.tbFileName.Name = "tbFileName";
this.tbFileName.Size = new System.Drawing.Size(692, 20);
this.tbFileName.TabIndex = 0;
this.tbFileName.Text = "H:\\Barakah Alarms\\1N2-OP-ARP-CS-0001_Rev_02_FINAL_Zipped_XML_20190804\\ARP-3442-10" +
"01 CS CNMT Spray HDR Block VLV V0001 TRBL.xml";
//
// panel2
//
this.panel2.Controls.Add(this.btnRun);
this.panel2.Controls.Add(this.btnBrowse);
this.panel2.Controls.Add(this.btnAll);
this.panel2.Controls.Add(this.label2);
this.panel2.Controls.Add(this.btnConvert);
this.panel2.Controls.Add(this.label7);
this.panel2.Controls.Add(this.tbServer);
this.panel2.Controls.Add(this.cmbDatabase);
this.panel2.Controls.Add(this.label4);
this.panel2.Controls.Add(this.cmbDocVersion);
this.panel2.Controls.Add(this.label6);
this.panel2.Dock = System.Windows.Forms.DockStyle.Top;
this.panel2.Location = new System.Drawing.Point(0, 0);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(954, 88);
this.panel2.TabIndex = 9;
//
// btnRun
//
this.btnRun.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnRun.Location = new System.Drawing.Point(862, 3);
this.btnRun.Name = "btnRun";
this.btnRun.Size = new System.Drawing.Size(37, 24);
this.btnRun.TabIndex = 13;
this.btnRun.Text = "Run";
this.btnRun.UseVisualStyleBackColor = true;
this.btnRun.Click += new System.EventHandler(this.btnRun_Click);
//
// btnBrowse
//
this.btnBrowse.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnBrowse.Location = new System.Drawing.Point(758, 3);
this.btnBrowse.Name = "btnBrowse";
this.btnBrowse.Size = new System.Drawing.Size(72, 24);
this.btnBrowse.TabIndex = 2;
this.btnBrowse.Text = "Browse...";
this.btnBrowse.UseVisualStyleBackColor = true;
this.btnBrowse.Click += new System.EventHandler(this.btnBrowse_Click);
//
// btnAll
//
this.btnAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnAll.Location = new System.Drawing.Point(799, 44);
this.btnAll.Name = "btnAll";
this.btnAll.Size = new System.Drawing.Size(37, 25);
this.btnAll.TabIndex = 12;
this.btnAll.Text = "All";
this.btnAll.UseVisualStyleBackColor = true;
this.btnAll.Click += new System.EventHandler(this.btnAll_Click);
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(396, 35);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(53, 13);
this.label2.TabIndex = 4;
this.label2.Text = "Database";
//
// btnConvert
//
this.btnConvert.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnConvert.Location = new System.Drawing.Point(717, 44);
this.btnConvert.Name = "btnConvert";
this.btnConvert.Size = new System.Drawing.Size(76, 28);
this.btnConvert.TabIndex = 11;
this.btnConvert.Text = "Convert";
this.btnConvert.UseVisualStyleBackColor = true;
this.btnConvert.Click += new System.EventHandler(this.btnConvert_Click);
//
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(12, 35);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(38, 13);
this.label7.TabIndex = 10;
this.label7.Text = "Server";
//
// tbServer
//
this.tbServer.Location = new System.Drawing.Point(56, 32);
this.tbServer.Name = "tbServer";
this.tbServer.Size = new System.Drawing.Size(329, 20);
this.tbServer.TabIndex = 9;
//
// cmbDatabase
//
this.cmbDatabase.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.cmbDatabase.FormattingEnabled = true;
this.cmbDatabase.Location = new System.Drawing.Point(455, 32);
this.cmbDatabase.Name = "cmbDatabase";
this.cmbDatabase.Size = new System.Drawing.Size(256, 21);
this.cmbDatabase.TabIndex = 8;
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(11, 61);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(75, 13);
this.label4.TabIndex = 7;
this.label4.Text = "Procedure Set";
//
// cmbDocVersion
//
this.cmbDocVersion.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.cmbDocVersion.FormattingEnabled = true;
this.cmbDocVersion.Location = new System.Drawing.Point(92, 58);
this.cmbDocVersion.Name = "cmbDocVersion";
this.cmbDocVersion.Size = new System.Drawing.Size(619, 21);
this.cmbDocVersion.TabIndex = 6;
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(12, 9);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(23, 13);
this.label6.TabIndex = 1;
this.label6.Text = "File";
//
// sc1
//
this.sc1.Dock = System.Windows.Forms.DockStyle.Fill;
this.sc1.Location = new System.Drawing.Point(0, 88);
this.sc1.Name = "sc1";
//
// sc1.Panel1
//
this.sc1.Panel1.Controls.Add(this.tcXML);
//
// sc1.Panel2
//
this.sc1.Panel2.Controls.Add(this.tabControl1);
this.sc1.Size = new System.Drawing.Size(954, 392);
this.sc1.SplitterDistance = 372;
this.sc1.TabIndex = 1;
//
// tcXML
//
this.tcXML.Controls.Add(this.tpXML);
this.tcXML.Controls.Add(this.tpColorCoded);
this.tcXML.Dock = System.Windows.Forms.DockStyle.Fill;
this.tcXML.Location = new System.Drawing.Point(0, 0);
this.tcXML.Name = "tcXML";
this.tcXML.SelectedIndex = 0;
this.tcXML.Size = new System.Drawing.Size(372, 392);
this.tcXML.TabIndex = 2;
//
// tpXML
//
this.tpXML.Controls.Add(this.tbXML);
this.tpXML.Location = new System.Drawing.Point(4, 22);
this.tpXML.Name = "tpXML";
this.tpXML.Padding = new System.Windows.Forms.Padding(3);
this.tpXML.Size = new System.Drawing.Size(364, 366);
this.tpXML.TabIndex = 1;
this.tpXML.Text = "XML";
this.tpXML.UseVisualStyleBackColor = true;
//
// tbXML
//
this.tbXML.Dock = System.Windows.Forms.DockStyle.Fill;
this.tbXML.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.tbXML.HideSelection = false;
this.tbXML.Location = new System.Drawing.Point(3, 3);
this.tbXML.Multiline = true;
this.tbXML.Name = "tbXML";
this.tbXML.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
this.tbXML.Size = new System.Drawing.Size(358, 360);
this.tbXML.TabIndex = 0;
this.tbXML.TextChanged += new System.EventHandler(this.tbXML_TextChanged);
//
// tpColorCoded
//
this.tpColorCoded.Controls.Add(this.rtbXML);
this.tpColorCoded.Location = new System.Drawing.Point(4, 22);
this.tpColorCoded.Name = "tpColorCoded";
this.tpColorCoded.Padding = new System.Windows.Forms.Padding(3);
this.tpColorCoded.Size = new System.Drawing.Size(364, 366);
this.tpColorCoded.TabIndex = 0;
this.tpColorCoded.Text = "Color Coded";
this.tpColorCoded.UseVisualStyleBackColor = true;
//
// rtbXML
//
this.rtbXML.Dock = System.Windows.Forms.DockStyle.Fill;
this.rtbXML.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.rtbXML.Location = new System.Drawing.Point(3, 3);
this.rtbXML.Name = "rtbXML";
this.rtbXML.Size = new System.Drawing.Size(358, 360);
this.rtbXML.TabIndex = 1;
this.rtbXML.Text = "";
this.rtbXML.SelectionChanged += new System.EventHandler(this.rtbXML_SelectionChanged);
this.rtbXML.TextChanged += new System.EventHandler(this.rtbXML_TextChanged);
//
// tabControl1
//
this.tabControl1.Controls.Add(this.tpHTML);
this.tabControl1.Controls.Add(this.tpRaw);
this.tabControl1.Controls.Add(this.tpStructure);
this.tabControl1.Controls.Add(this.tpGrid);
this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill;
this.tabControl1.Location = new System.Drawing.Point(0, 0);
this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0;
this.tabControl1.Size = new System.Drawing.Size(578, 392);
this.tabControl1.TabIndex = 0;
//
// tpHTML
//
this.tpHTML.Controls.Add(this.wb);
this.tpHTML.Location = new System.Drawing.Point(4, 22);
this.tpHTML.Name = "tpHTML";
this.tpHTML.Padding = new System.Windows.Forms.Padding(3);
this.tpHTML.Size = new System.Drawing.Size(570, 366);
this.tpHTML.TabIndex = 0;
this.tpHTML.Text = "HTML";
this.tpHTML.UseVisualStyleBackColor = true;
//
// wb
//
this.wb.Dock = System.Windows.Forms.DockStyle.Fill;
this.wb.Location = new System.Drawing.Point(3, 3);
this.wb.MinimumSize = new System.Drawing.Size(20, 20);
this.wb.Name = "wb";
this.wb.Size = new System.Drawing.Size(564, 360);
this.wb.TabIndex = 0;
//
// tpRaw
//
this.tpRaw.Controls.Add(this.tbPROMS);
this.tpRaw.Location = new System.Drawing.Point(4, 22);
this.tpRaw.Name = "tpRaw";
this.tpRaw.Padding = new System.Windows.Forms.Padding(3);
this.tpRaw.Size = new System.Drawing.Size(570, 366);
this.tpRaw.TabIndex = 1;
this.tpRaw.Text = "Raw Text";
this.tpRaw.UseVisualStyleBackColor = true;
//
// tbPROMS
//
this.tbPROMS.Dock = System.Windows.Forms.DockStyle.Fill;
this.tbPROMS.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.tbPROMS.Location = new System.Drawing.Point(3, 3);
this.tbPROMS.Multiline = true;
this.tbPROMS.Name = "tbPROMS";
this.tbPROMS.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
this.tbPROMS.Size = new System.Drawing.Size(564, 360);
this.tbPROMS.TabIndex = 0;
//
// tpStructure
//
this.tpStructure.Controls.Add(this.tv);
this.tpStructure.Location = new System.Drawing.Point(4, 22);
this.tpStructure.Name = "tpStructure";
this.tpStructure.Size = new System.Drawing.Size(570, 366);
this.tpStructure.TabIndex = 2;
this.tpStructure.Text = "Structure";
this.tpStructure.UseVisualStyleBackColor = true;
//
// tv
//
this.tv.Dock = System.Windows.Forms.DockStyle.Fill;
this.tv.Location = new System.Drawing.Point(0, 0);
this.tv.Name = "tv";
this.tv.Size = new System.Drawing.Size(570, 366);
this.tv.TabIndex = 0;
//
// tpGrid
//
this.tpGrid.Location = new System.Drawing.Point(4, 22);
this.tpGrid.Name = "tpGrid";
this.tpGrid.Size = new System.Drawing.Size(570, 366);
this.tpGrid.TabIndex = 3;
this.tpGrid.Text = "Grid";
this.tpGrid.UseVisualStyleBackColor = true;
//
// statusStrip1
//
this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.tspb,
this.tsslStatus});
this.statusStrip1.Location = new System.Drawing.Point(0, 480);
this.statusStrip1.Name = "statusStrip1";
this.statusStrip1.Size = new System.Drawing.Size(954, 22);
this.statusStrip1.TabIndex = 2;
this.statusStrip1.Text = "statusStrip1";
this.statusStrip1.Click += new System.EventHandler(this.statusStrip1_Click);
//
// tspb
//
this.tspb.Name = "tspb";
this.tspb.Size = new System.Drawing.Size(300, 16);
this.tspb.Visible = false;
//
// tsslStatus
//
this.tsslStatus.Name = "tsslStatus";
this.tsslStatus.Size = new System.Drawing.Size(39, 17);
this.tsslStatus.Text = "Ready";
this.tsslStatus.Click += new System.EventHandler(this.tsslStatus_Click);
//
// tmr
//
this.tmr.Interval = 2000;
this.tmr.Tick += new System.EventHandler(this.tmr_Tick);
//
// frmConvertAlarms
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(954, 502);
this.Controls.Add(this.sc1);
this.Controls.Add(this.panel1);
this.Controls.Add(this.statusStrip1);
this.Name = "frmConvertAlarms";
this.Text = "Convert Alarms";
this.Load += new System.EventHandler(this.frmConvertAlarms_Load);
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
this.panel2.ResumeLayout(false);
this.panel2.PerformLayout();
this.sc1.Panel1.ResumeLayout(false);
this.sc1.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.sc1)).EndInit();
this.sc1.ResumeLayout(false);
this.tcXML.ResumeLayout(false);
this.tpXML.ResumeLayout(false);
this.tpXML.PerformLayout();
this.tpColorCoded.ResumeLayout(false);
this.tabControl1.ResumeLayout(false);
this.tpHTML.ResumeLayout(false);
this.tpRaw.ResumeLayout(false);
this.tpRaw.PerformLayout();
this.tpStructure.ResumeLayout(false);
this.statusStrip1.ResumeLayout(false);
this.statusStrip1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.Button btnBrowse;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox tbFileName;
private System.Windows.Forms.OpenFileDialog ofd;
private System.Windows.Forms.SplitContainer sc1;
private System.Windows.Forms.TextBox tbXML;
private System.Windows.Forms.WebBrowser wb;
private System.Windows.Forms.TextBox tbPROMS;
private System.Windows.Forms.StatusStrip statusStrip1;
private System.Windows.Forms.ToolStripStatusLabel tsslStatus;
private System.Windows.Forms.RichTextBox rtbXML;
private System.Windows.Forms.TabControl tcXML;
private System.Windows.Forms.TabPage tpXML;
private System.Windows.Forms.TabPage tpColorCoded;
private System.Windows.Forms.TabControl tabControl1;
private System.Windows.Forms.TabPage tpHTML;
private System.Windows.Forms.TabPage tpRaw;
private System.Windows.Forms.TabPage tpStructure;
private System.Windows.Forms.TreeView tv;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Panel panel2;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.TextBox tbServer;
private System.Windows.Forms.ComboBox cmbDatabase;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.ComboBox cmbDocVersion;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Button btnConvert;
private System.Windows.Forms.Button btnAll;
private System.Windows.Forms.TabPage tpGrid;
private System.Windows.Forms.Button btnRun;
private System.Windows.Forms.ToolStripProgressBar tspb;
private System.Windows.Forms.Timer tmr;
}
}
@@ -1,886 +0,0 @@
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;
using System.IO;
using System.Xml;
using System.Text.RegularExpressions;
using VEPROMS.CSLA.Library;
using log4net;
using Volian.Controls.Library;
using C1.Win.C1FlexGrid;
using System.Data.SqlClient;
namespace ConvertAlarms
{
public partial class frmConvertAlarms : Form
{
public frmConvertAlarms()
{
InitializeComponent();
}
private void SetDatabaseConnection()
{
Database.VEPROMS_Connection = string.Format("Data Source={0};Initial Catalog={1};Integrated Security=True", tbServer.Text, cmbDatabase.SelectedText);
}
private void btnBrowse_Click(object sender, EventArgs e)
{
FileInfo fi = new FileInfo(tbFileName.Text);
ofd.InitialDirectory = fi.DirectoryName;
ofd.FileName = fi.Name;
if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
tbFileName.Text = ofd.FileName;
ProcessXML();
}
}
private void ProcessXML()
{
string fileName = tbFileName.Text;
ProcessXmlFile(fileName);
}
private void ProcessXmlFile(string fileName)
{
UpdateHTML = false;
tbXML.Clear();
UpdateHTML = true;
XmlDocument xDoc = new XmlDocument();
xDoc.Load(fileName);
XmlElement xe1 = xDoc.DocumentElement;
XmlElement xe2 = xe1.ChildNodes[0] as XmlElement;
XmlElement xe3 = xe2.ChildNodes[0] as XmlElement;
XmlElement xe4 = (xe1.ChildNodes[1] as XmlElement).ChildNodes[0] as XmlElement;
RelatedFunction = xe3.Attributes["relatedFunction"].Value;
PNSNo = xe3.Attributes["PNSNo"].Value;
ShortName = xe3.Attributes["shortName"].Value;
FullName = xe3.Attributes["fullName"].Value;
RevisionNumber = xe3.Attributes["revisionNumber"].Value;
Priority = xe3.Attributes["priority"].Value;
Number = xe3.Attributes["number"].Value;
Responsibility = xe4.Attributes["implementor"].Value;
ApSystem = GetSystem(xe3);
XmlNode xn = xDoc.DocumentElement.LastChild.LastChild.LastChild;
string html = GetHtml(xn);
tbXML.Text = html;
}
private static string _RelatedFunction;
public static string RelatedFunction
{
get { return _RelatedFunction; }
set { _RelatedFunction = value; }
}
private static string _PNSNo;
public static string PNSNo
{
get { return _PNSNo; }
set { _PNSNo = value; }
}
private static string _fullName;
public static string FullName
{
get { return _fullName; }
set { _fullName = value; }
}
private static string _Number;
public static string Number
{
get { return frmConvertAlarms._Number; }
set { frmConvertAlarms._Number = value; }
}
private static string _RevisionNumber;
public static string RevisionNumber
{
get { return frmConvertAlarms._RevisionNumber; }
set { frmConvertAlarms._RevisionNumber = value; }
}
private static string _Priority;
public static string Priority
{
get { return frmConvertAlarms._Priority; }
set { frmConvertAlarms._Priority = value; }
}
private static string Responsibility;
public static string Responsibility1
{
get { return frmConvertAlarms.Responsibility; }
set { frmConvertAlarms.Responsibility = value; }
}
private static string _shortName;
public static string ShortName
{
get { return _shortName; }
set { _shortName = value; }
}
private static string _system;
public static string ApSystem
{
get { return _system; }
set { _system = value; }
}
private static string _MyFileName;
public static string MyFileName
{
get { return frmConvertAlarms._MyFileName; }
set { frmConvertAlarms._MyFileName = value; }
}
private static string GetHtml(XmlNode xn)
{
XmlNode pr = xn.PreviousSibling;
int i = 0;
string html = xn.Attributes["content"].Value;
//Console.WriteLine(@"{0} ""{1}""", i++, html);
if (xn != pr)
{
while (pr != null && pr.Name == "NoteInstruction")
{
string html2 = pr.Attributes["content"].Value;
//Console.WriteLine(@"{0} ""{1}""", i++, html2);
html = MergeHTML(html2, html);
//Console.WriteLine(@"{0} ""{1}""", -1, html);
pr = pr.PreviousSibling;
}
}
return html;
}
private static string MergeHTML(string part1, string part2)
{
part1 = part1.Replace("</body></html", "");
part2 = Regex.Replace(part2, "^.*<body[^<>]*>", "", RegexOptions.Singleline);
//part2 = part2.Substring(part2.IndexOf("<p"));
return part1 + part2;
}
private void htmlChanged(string html)
{
byte[] bytes = Encoding.UTF8.GetBytes(html.Replace("\u2022", "&bull;"));
MemoryStream ms = new MemoryStream();
ms.Write(bytes, 0, bytes.Length);
ms.Position = 0;
wb.DocumentStream = ms;
}
private string _HtmlPrefix = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">";
public string HtmlPrefix
{
get { return _HtmlPrefix; }
set { _HtmlPrefix = value; }
}
private string prcSerialNoFldName;
private string prcSerialNoValue;
private string prcTitleFldName;
private string prcTitleValue;
private string prcNumberFldName;
private string prcNumberValue;
private string prcSourceFldName;
private string prcSourceValue;
private string prcSetpointFldName;
private string prcSetpointValue;
//private Regex myReg01 = new Regex("<br /></span>", RegexOptions.Compiled);
//private Regex myReg02 = new Regex("</span><br />", RegexOptions.Compiled);
//private Regex myReg03 = new Regex("<span [^<>]+>", RegexOptions.Compiled);
//private Regex myReg04 = new Regex("</span *>", RegexOptions.Compiled);
//private Regex myReg05 = new Regex("</p>[ \r\n]+<p [^<>]+>", RegexOptions.Compiled);
//private Regex myReg06 = new Regex("<p [^<>]+>", RegexOptions.Compiled);
////private Regex myReg07 = new Regex(@"<br /> +(?=\w)", RegexOptions.Compiled);
//private Regex myReg08 = new Regex(@"<br />[ \r\n]*\t +", RegexOptions.Compiled);
//private Regex myReg09 = new Regex(@"<br />[ \t\r\n]+\[", RegexOptions.Compiled);
//private Regex myReg10 = new Regex("</p *>", RegexOptions.Compiled);
//private Regex myReg11 = new Regex(@"] *\t{4,10}", RegexOptions.Compiled);
//private Regex myReg12 = new Regex("<br ?/>\t+(?=None)", RegexOptions.Compiled);
//private Regex myReg13 = new Regex("<br ?/>\t+(?![[\\u2022]|[1-9])", RegexOptions.Compiled);
//private Regex myReg14 = new Regex("<br />", RegexOptions.Compiled);
//private Regex myReg15 = new Regex("\t\t+", RegexOptions.Compiled);
//private Regex myReg16 = new Regex("\r\n +", RegexOptions.Compiled);
//private Regex myReg17 = new Regex("(\r\n){2,}", RegexOptions.Compiled);
//private Regex myReg18 = new Regex("<table [^<>]+>", RegexOptions.Compiled);
////private Regex myReg19 = new Regex("(?<!\\\\line )\r\n\t(?!([[\\u2022]|None|[1-9]))", RegexOptions.Compiled);
//private Regex myReg20 = new Regex("(?<!\\\\line )\r\n\t(?!([[\\u2022]|None|[1-9]))", RegexOptions.Compiled);
//private Regex myReg21 = new Regex("<table>[^<>]*<tr[^<>]*>[^<>]*<td[^<>]*>[^<>]*<p>(NOTE|CAUTION|WARNING)([^<>]+?)</p>[^<>]*</td>[^<>]*</tr>[^<>]*</table>", RegexOptions.Compiled & RegexOptions.Singleline );
//private Regex myReg22 = new Regex("\\.\\.\\.+", RegexOptions.Compiled);
private void XMLChanged(string xml)
{
Application.DoEvents();
xml = "<?xml version='1.0' encoding='UTF-8'?>\n" + xml;
xml = xml.Replace(HtmlPrefix, "");
//xml = myReg01.Replace(xml, "<br /> </span>");
//xml = myReg02.Replace(xml, "</span><br /> ");
//xml = myReg03.Replace(xml, "");// Remove Style Span start
//xml = myReg04.Replace(xml, "");//
//xml = myReg05.Replace(xml, "<br />\r\n");
//xml = myReg06.Replace(xml, "<br />\r\n<p>");
////xml = myReg07.Replace(xml, " ");//New
//xml = myReg08.Replace(xml, " ");//New
//xml = myReg09.Replace(xml, @"\line [");
//xml = myReg10.Replace(xml, "</p>");
//xml = myReg11.Replace(xml, "]\r\n");
//xml = myReg12.Replace(xml, "\r\n\t");
//xml = myReg13.Replace(xml, " ");
//xml = myReg14.Replace(xml, "\r\n");
//xml = myReg15.Replace(xml, " ");
//xml = myReg16.Replace(xml, "\r\n");
//xml = myReg17.Replace(xml, "\r\n");
//xml = myReg18.Replace(xml, "<table>");
////xml = myReg19.Replace(xml, "{SPACE}");
//xml = myReg20.Replace(xml, " ");
//xml = myReg21.Replace(xml, "<p>\r\n$1$2\r\n</p>");
//xml = myReg22.Replace(xml, ""); //Remove multiple periods
xml = Regex.Replace(xml, "<br /></span>", "<br /> </span>");
xml = Regex.Replace(xml, "</span><br />", "</span><br /> ");
xml = Regex.Replace(xml, "<span [^<>]+>", "");// Remove Style Span start
xml = Regex.Replace(xml, "</span *>", "");//
xml = Regex.Replace(xml, "</p>[ \r\n]+<p [^<>]+>", "<br />\r\n");
xml = Regex.Replace(xml, "<p [^<>]+>", "<br />\r\n<p>");
// xml = Regex.Replace(xml, @"<br /> +(?=\w)", " ");//New
xml = Regex.Replace(xml, @"<br />[ \r\n]*\t (?! +[[\\u2022]| +[1-9]| +[A-Z][.])", " ");//New
//xml = Regex.Replace(xml, @"<br />[ \r\n]*\t +", " ");//New
xml = Regex.Replace(xml, @"<br />[ \t\r\n]+\[", @"\line [");
xml = Regex.Replace(xml, "</p *>", "</p>");
xml = Regex.Replace(xml, @"] *\t{4,10}", "]\r\n");
xml = Regex.Replace(xml, "<br ?/>\t+(?=None)", "\r\n\t");
xml = Regex.Replace(xml, "<br ?/>\t+(?![[\\u2022]|[1-9]|[A-Z]\\.)", " ");
xml = Regex.Replace(xml, "<br />", "\r\n");
xml = Regex.Replace(xml, "\t\t+", " ");
xml = Regex.Replace(xml, "\r\n +", "\r\n");
xml = Regex.Replace(xml, "(\r\n){2,}", "\r\n");
xml = Regex.Replace(xml, "<table [^<>]+>", "<table>");
//xml = Regex.Replace(xml, "(?<!\\\\line )\r\n\t(?!([[\\u2022]|None|[1-9]))", "{SPACE}");
xml = Regex.Replace(xml, "(?<!\\\\line )\r\n\t(?!([[\\u2022]|None|[1-9]))", " ");
xml = Regex.Replace(xml, "<table>[^<>]*<tr[^<>]*>[^<>]*<td[^<>]*>[^<>]*<p>(NOTE|CAUTION|WARNING)([^<>]+?)</p>[^<>]*</td>[^<>]*</tr>[^<>]*</table>", "<p$1>\r\n$1$2\r\n</p$1>", RegexOptions.Singleline);
xml = Regex.Replace(xml, "\\.\\.\\.+", ""); //Remove multiple periods
//xml = Regex.Replace(xml,"
//xml = xml.Replace("&gt;", "");
Application.DoEvents();
byte[] bytes = Encoding.UTF8.GetBytes(xml);
MemoryStream ms = new MemoryStream();
ms.Write(bytes, 0, bytes.Length);
ms.Position = 0;
XmlDocument xDoc2 = new XmlDocument();
xDoc2.Load(ms);
int iStart = 1;
XmlNode xn3 = xDoc2.ChildNodes[1].ChildNodes[1].ChildNodes[0];
if (!xn3.OuterXml.Contains("table"))
{
iStart = 2;
xn3 = xDoc2.ChildNodes[1].ChildNodes[1].ChildNodes[1];
}
prcSerialNoFldName = GetProcInfo(xn3, 0, 0, 0);
prcSerialNoValue = GetProcInfo(xn3, 0, 1, 0);
SerialNo = int.Parse(prcSerialNoValue);
prcTitleFldName = GetProcInfo(xn3, 1, 0, 0);
prcTitleValue = GetProcInfo(xn3, 1, 1, 0);
prcNumberFldName = GetProcInfo(xn3, 2, 0, 0);
prcNumberValue = GetProcInfo(xn3, 2, 1, 0);
prcSourceFldName = GetProcInfo(xn3, 3, 0, 0);
prcSourceValue = GetProcInfo(xn3, 3, 1, 0);
prcSetpointFldName = GetProcInfo(xn3, 4, 0, 0);
prcSetpointValue = GetProcInfo(xn3, 4, 1, 0);
Console.WriteLine("\"FromProcedures\"\t\"{0}\"\t\"{1}\"\t\"{2}\"\t\"{3}\"\t\"{4}\"\t\"{5}\"\t\"{6}\"\t\"{7}\"\t\"{8}\"\t\"{9}\"\t\"{10}\"\t\"{11}\"\t\"{12}\"\t\"{13}\"\t\"{14}\""
, PNSNo.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;")
, ApSystem.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;")
, FullName.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;")
, ShortName.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;")
, RelatedFunction.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;")
, "Rev" + RevisionNumber.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;")
, Priority.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;")
, Number.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;")
, prcNumberValue.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;")
, prcSerialNoValue.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;")
, prcSetpointValue.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;")
, prcSourceValue.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;")
, prcTitleValue.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;")
, Responsibility.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;")
, MyFileName);
ProcNumber = prcNumberValue;
ProcTitle = prcTitleValue;
// Skip First Node
UpdateHTML = false;
tbPROMS.Clear();
tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n", prcSerialNoFldName, prcSerialNoValue));
tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n", prcTitleFldName, prcTitleValue));
tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n", prcNumberFldName, prcNumberValue));
tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n", prcSourceFldName, prcSourceValue));
tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n", prcSetpointFldName, prcSetpointValue));
StringBuilder sbAllText = new StringBuilder();
for (int i = iStart; i < xDoc2.ChildNodes[1].ChildNodes[1].ChildNodes.Count; i++)
{
XmlNode xn2 = xDoc2.ChildNodes[1].ChildNodes[1].ChildNodes[i];
if (xn2.OuterXml != "&gt;\r\n" && xn2.OuterXml != "<p></p>")
{
sbAllText.Append("\r\n" + xn2.OuterXml);
//Console.WriteLine("--{0}--|{1}|", i, IndentifySpecialCharacters(xn2.OuterXml));
}
}
tbPROMS.AppendText(sbAllText.ToString().Replace(" ", "\xB7"));
//SaveTree(sbAllText.ToString(), prcNumberValue, prcTitleValue);
ProcTextAll = sbAllText.ToString();
UpdateHTML = true;
}
String ProcTextAll;
int SerialNo;
String ProcNumber;
String ProcTitle;
TreeNode lastNode = null;
private void SaveTree(string text, string procNumber, string procTitle)
{
tv.Nodes.Clear();
MemoryStream ms = GetMemoryStream(text);
using (TextReader tr = new StreamReader(ms))
{
Dictionary<int, TreeNode> lookup = new Dictionary<int, TreeNode>();
lookup.Add(0, tv.Nodes.Add(string.Format("{0} - {1}", procNumber, procTitle)));
int level = 0;
int lastLevel = 0;
int lastIndent = 0;
int extra = 0;
bool textContinued = false;
string lastTab = "";
Queue<string> enQueue = null;
Queue<string> deQueue = null;
bool isTable = false;
while (tr.Peek() >= 0 || deQueue != null)
{
string lineText;
if (deQueue != null)
{
extra = 1;
lineText = deQueue.Dequeue();
if (deQueue.Count == 0)
deQueue = null;
}
else
{
extra = 0;
lineText = tr.ReadLine();
if (lineText.StartsWith("<table>"))
{
while (!lineText.Contains("</table>"))
{
lineText += " " + tr.ReadLine();
lineText = Regex.Replace(lineText, "</table>.*", "</table>");
}
XmlDocument xd = new XmlDocument();
xd.LoadXml(lineText);
LoadTable2(xd.DocumentElement, null, 0);
isTable = true;
//StringBuilder sbxml= new StringBuilder();
//using(StringWriter sw = new StringWriter(sbxml))
// _MyFlexGrid.WriteXml(sw);
//using(StringReader sr= new StringReader(sbxml.ToString()))
// _MyFlexGrid.ReadXml(sr);
//Application.DoEvents();
}
else if (lineText == "NOTE" || lineText == "CAUTION" || lineText == "Warning")
enQueue = new Queue<string>();
}
lineText = Regex.Replace(lineText, "<[^<>]+>", "");
textContinued = false;
if (lineText.Replace("\t", "") != "")
{
Match m = Regex.Match(lineText, @"^(\t*)([1-9][0-9]*\.0|[1-9][0-9]*\.[1-9][0-9]*|\u2022|\u25CB)([\t ]+)([^\u2022]*)$", RegexOptions.Multiline);
string tab = m.Groups[2].Value;
int indent = m.Groups[1].Value.Length;
//if (lineText.Contains("THEN·GO·TO·1N2-OP-EOP-XX-0002"))
// Console.WriteLine("here");
if (isTable)
{
// do nothing
}
if (indent == 0 && tab.EndsWith(".0")) // High Level Step
{
level = 1;
if (deQueue == null && enQueue != null)
{
deQueue = enQueue;
enQueue = null;
}
}
else if (Regex.IsMatch(tab, "[1-9][0-9]*[.0-9]*")) // Substep
{
level = 2;
if (deQueue == null && enQueue != null)
{
deQueue = enQueue;
enQueue = null;
}
}
else if (tab == "") // Paragraph
{
if (Regex.IsMatch(lineText, "(NOTE|NOTES|CAUTION|CAUTIONS|WARNING|WARNINGS)"))
extra = 0;
else
{
lastNode.Text += " " + lineText.TrimStart("\r\n \t".ToCharArray());
//Console.WriteLine("maybe continue '{0}'", lineText);
textContinued = true;
}
level = lastLevel + 1;
}
else if (tab == "\u2022")//bullet
level = indent + 2;
else if (tab == "\u25CB")//bullet
level = indent + 3;
if (level < lastLevel)
while (level < lastLevel) lookup.Remove(lastLevel--);
string txt = string.Format("{0}|{1}||{2}", m.Groups[1].Value, m.Groups[2].Value, m.Groups[4].Value);
if (txt == "|||") txt = lineText;
if (enQueue == null)
{
if (!textContinued && !isTable)
{
if (level > lookup.Count - extra) extra = 0;
//if (level + extra - 1 == lookup.Count)
// Console.WriteLine("Problems {0}, {1}", procNumber, txt);
else if (lookup.Count <= level)
lookup.Add(level + extra, lookup[level + extra - 1].Nodes.Add(txt));
else
lookup[level + extra] = lookup[level + extra - 1].Nodes.Add(txt);
lastNode = lookup[level + extra];
}
}
else
{
enQueue.Enqueue(lineText);
}
lastTab = tab;
lastLevel = level;
lastIndent = indent;
}
}
}
}
private ItemInfo FindPrevious(SortedDictionary<int, ItemInfo> dicSerialNo, int serialNo)
{
ItemInfo lastItem = null;
foreach (int serno in dicSerialNo.Keys)
{
if (serno > serialNo)
return lastItem;
lastItem = dicSerialNo[serno];
}
return lastItem;
}
private bool runOne = true;
private static MemoryStream GetMemoryStream(string text)
{
byte[] bytes = Encoding.UTF8.GetBytes(text);
MemoryStream ms = new MemoryStream(bytes);
ms.Position = 0;
return ms;
}
private string GetProcInfo(XmlNode xn3, int p1, int p2, int p3)
{
if (xn3.OuterXml == "<p></p>") xn3 = xn3.NextSibling;
return xn3.ChildNodes[p1].ChildNodes[p2].ChildNodes[p3].ChildNodes[0].Value.Trim("\r\n ".ToCharArray());
}
private bool _UpdateHTML = true;
public bool UpdateHTML
{
get { return _UpdateHTML; }
set { _UpdateHTML = value; }
}
private string IndentifySpecialCharacters(string xml)
{
StringBuilder sb = new StringBuilder();
string txt = Regex.Replace(xml, "<span[^<>]+>", "");
foreach (char c in txt)
{
if (((int)c) < 32 || ((int)c) > 256)
sb.Append(string.Format("[x{0:X4}]", (int)c));
else
sb.Append(c == ' ' ? '\xb7' : c);
}
return sb.ToString();
}
private void btnRun_Click(object sender, EventArgs e)
{
ProcessXML();
}
Regex regColorCode = new Regex(@"(\<[^<>]+\>)([^<>]*)", RegexOptions.Singleline);
Regex regColorCodeText = new Regex("(\t*)([^\t]*)", RegexOptions.Singleline);
private void ColorCoded(string str)
{
rtbXML.Clear();
Color fColor = Color.PaleTurquoise;
Color fNext = Color.PaleTurquoise;
foreach (Match m in regColorCode.Matches(str))
{
string fmt = m.Groups[1].Value;
string txt = m.Groups[2].Value;
if (fmt.StartsWith("<table"))
fNext = fColor = Color.PaleGreen;
else if (fmt == "</table>")
fNext = Color.PaleTurquoise;
else if (fmt == "<br />")
fColor = Color.PeachPuff;
else if (fmt == "</p>")
fColor = Color.LightPink;
AddToXML(fmt, fColor);
fColor = fNext;
foreach (Match mm in regColorCodeText.Matches(txt))
{
string tabs = mm.Groups[1].Value;
string nontabs = mm.Groups[2].Value;
AddToXML(tabs, Color.Khaki);
AddToXML(nontabs, Color.Yellow);
}
}
}
private void AddToXML(string txt, Color fColor)
{
if (txt == "") return;
rtbXML.SelectionStart = rtbXML.TextLength;
rtbXML.SelectionBackColor = fColor;
rtbXML.SelectedText = txt;
}
private void frmConvertAlarms_Load(object sender, EventArgs e)
{
LoadSettings();
SetEventHandlers();
_MyFlexGrid = new VlnFlexGrid();
tpGrid.Controls.Add(_MyFlexGrid);
string str = AutoFolder;
if (str != null && str.Length > 5)
{
tmr.Enabled = true;
}
}
private void SetEventHandlers()
{
tbFileName.TextChanged += tbFileName_TextChanged;
Move += frmConvertAlarms_Move;
Resize += frmConvertAlarms_Resize;
sc1.SplitterMoved += sc1_SplitterMoved;
//sc2.SplitterMoved += sc2_SplitterMoved;
tbServer.TextChanged += tbServer_TextChanged;
cmbDatabase.TextChanged += cmbDatabase_TextChanged;
cmbDatabase.Click += cmbDatabase_Click;
cmbDocVersion.TextChanged += cmbDocVersion_TextChanged;
//BuildTableCombo();
//BuildProcedureSetCombo();
}
void cmbDatabase_Click(object sender, EventArgs e)
{
Properties.Settings.Default.Database = cmbDatabase.Text;
Properties.Settings.Default.Save();
BuildProcedureSetCombo();
}
private void BuildProcedureSetCombo()
{
DocVersionInfoList dvil = DocVersionInfoList.Get();
cmbDocVersion.DataSource = dvil;
cmbDocVersion.DisplayMember = "SearchDVPath";
cmbDocVersion.ValueMember = "VersionId";
}
private void cmbDocVersion_TextChanged(object sender, EventArgs e)
{
Properties.Settings.Default.ProcedureSet = (int)cmbDocVersion.SelectedValue;
Properties.Settings.Default.Save();
}
private void cmbDatabase_TextChanged(object sender, EventArgs e)
{
Properties.Settings.Default.Database = cmbDatabase.Text;
Properties.Settings.Default.Save();
BuildProcedureSetCombo();
}
private void tbServer_TextChanged(object sender, EventArgs e)
{
Properties.Settings.Default.SqlServer = tbServer.Text;
Properties.Settings.Default.Save();
string db = cmbDatabase.Text;
try
{
BuildDatabaseCombo();
}
catch (Exception ex)
{
tsslStatus.Text = ex.Message;
}
}
private void BuildDatabaseCombo()
{
string tmp = string.Format("Data Source={0};Initial Catalog={1};Integrated Security=True", tbServer.Text, "MASTER");
SqlConnection cn = new SqlConnection(tmp);
cn.Open();
// SqlDataAdapter da = new SqlDataAdapter("select name from sysdatabases where name like 'VEP%' order by name", cn);
//SqlDataAdapter da = new SqlDataAdapter("select name, case when object_id('[' + name + ']..Items') is null then 'Not PROMS' when object_id('[' + name + ']..Revisions') is not null then 'Approval' when object_id('[' + name + ']..ContentAudits') is not null then 'Change Manager' else 'Original' end functionality from sysdatabases where name not in ('master','model','msdb','tempdb') order by name", cn);
SqlDataAdapter da = new SqlDataAdapter("select name, 'Approval' functionality from sysdatabases where name not in ('master','model','msdb','tempdb') order by name", cn);
da.SelectCommand.CommandTimeout = 300; // 300 sec timeout
DataSet ds = new DataSet();
try
{
da.Fill(ds);
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.GetType().Name, ex.Message);
throw (new Exception("Cannot Load Data List", ex));
}
cn.Close();
//System.Windows.Forms.ContextMenuStrip cms = new System.Windows.Forms.ContextMenuStrip();
//cms.Items.Add("Choose Database");
//System.Windows.Forms.ToolStripMenuItem tsmi = cms.Items[0] as System.Windows.Forms.ToolStripMenuItem;
//tsmi.BackColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.ActiveCaption);// System.Drawing.Color.Pink;
//tsmi.ForeColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.ActiveCaptionText);
//tsmi.Font = new System.Drawing.Font(tsmi.Font, System.Drawing.FontStyle.Bold);
foreach (DataRow dr in ds.Tables[0].Rows)
{
if (dr["functionality"].ToString() == "Approval")
cmbDatabase.Items.Add(dr["name"].ToString());
}
}
void frmConvertAlarms_Resize(object sender, EventArgs e)
{
Properties.Settings.Default.Size = Size;
Properties.Settings.Default.Save();
}
void frmConvertAlarms_Move(object sender, EventArgs e)
{
Properties.Settings.Default.Location = Location;
Properties.Settings.Default.Save();
}
void tbFileName_TextChanged(object sender, EventArgs e)
{
Properties.Settings.Default.FileName = tbFileName.Text;
Properties.Settings.Default.Save();
}
private void sc1_SplitterMoved(object sender, SplitterEventArgs e)
{
Properties.Settings.Default.Split1 = sc1.SplitterDistance;
Properties.Settings.Default.Save();
}
private void LoadSettings()
{
Size = Properties.Settings.Default.Size;
Location = Properties.Settings.Default.Location;
if (Properties.Settings.Default.FileName != null && Properties.Settings.Default.FileName != "")
{
FileInfo fi = new FileInfo(Properties.Settings.Default.FileName);
tbFileName.Text = fi.FullName;
}
sc1.SplitterDistance = Properties.Settings.Default.Split1;
tbServer.Text = Properties.Settings.Default.SqlServer;
cmbDatabase.Text = Properties.Settings.Default.Database;
try
{
BuildDatabaseCombo();
Database.VEPROMS_Connection = string.Format("Data Source={0};Initial Catalog={1};Integrated Security=True", tbServer.Text, cmbDatabase.Text);
BuildProcedureSetCombo();
cmbDocVersion.SelectedValue = Properties.Settings.Default.ProcedureSet;
}
catch (Exception ex)
{
tsslStatus.Text = ex.Message;
}
}
private void tsslStatus_Click(object sender, EventArgs e)
{
tsslStatus.Text = string.Format("Selection = '{0}'", IndentifySpecialCharacters(tbXML.SelectedText));
Clipboard.Clear();
if (tbXML.SelectedText != "")
Clipboard.SetText(IndentifySpecialCharacters(tbXML.SelectedText));
}
private void rtbXML_SelectionChanged(object sender, EventArgs e)
{
}
private void tbXML_TextChanged(object sender, EventArgs e)
{
if (UpdateHTML)
{
if (AutoFolder == null) htmlChanged(tbXML.Text);
XMLChanged(tbXML.Text);
if (AutoFolder == null) ColorCoded(tbXML.Text);
}
}
private bool _UpdateTbXML = true;
public bool UpdateTbXML
{
get { return _UpdateTbXML; }
set { _UpdateTbXML = value; }
}
private void rtbXML_TextChanged(object sender, EventArgs e)
{
//if (UpdateHTML)
//{
// UpdateHTML = false;
// htmlChanged(rtbXML.Text);
// XMLChanged(rtbXML.Text);
// tbXML.Text = rtbXML.Text;
// UpdateHTML = true;
//}
}
private void btnConvert_Click(object sender, EventArgs e)
{
//SaveProcedure(ProcTextAll, ProcNumber, ProcTitle,999999);
DVI = DocVersionInfo.Get((int)cmbDocVersion.SelectedValue);
SaveProcedure(ProcTextAll, ProcNumber, ProcTitle, tbFileName.Text);
}
string lastLine = "";
SortedDictionary<int, ItemInfo> dicSerialNo;
int errorCount;
private void btnAll_Click(object sender, EventArgs e)
{
DVI = DocVersionInfo.Get((int)cmbDocVersion.SelectedValue);
string fileName = tbFileName.Text;
ConvertFiles(fileName);
}
private void ConvertFiles(string fileName)
{
Application.DoEvents();
DateTime dtStart = DateTime.Now;
errorCount = 0;
dicSerialNo = new SortedDictionary<int, ItemInfo>();
runOne = false;
// Get List of files
FileInfo fi = new FileInfo(fileName);
DirectoryInfo di = fi.Directory;
// Loop through list
FileInfo[] fs = di.GetFiles("*.xml");
tspb.Visible = true;
tspb.Value = 0;
tspb.Maximum = fs.Length;
foreach (FileInfo f in fs)
{
//ResetSpecial();
MyFileName = f.FullName;
tspb.Value++;
tsslStatus.Text = f.Name;
Application.DoEvents();
// Process each file
try
{
ProcessXmlFile(f.FullName);
// Convert each file
//SaveProcedure(ProcTextAll, ProcNumber, ProcTitle, SerialNo);
SaveProcedure(ProcTextAll, ProcNumber, ProcTitle, f.Name);
}
catch (Exception ex)
{
++errorCount;
Console.WriteLine("*** {0} - {1}\r\n*** Procedure {2}\r\n*** Text: {3}\r\n*** File Name:{4} ",
ex.GetType().Name, ex.Message, ProcNumber, lastLine, f.Name);
//break;
}
//break; one Procedure per set
}
runOne = true;
tspb.Visible = false;
tsslStatus.Text = "Done";
//MessageBox.Show(string.Format(
// "{0} Errors\r\n{1} Procedures\r\n{2:F} Seconds", errorCount,
// fs.Length,
// TimeSpan.FromTicks(DateTime.Now.Ticks - dtStart.Ticks).TotalSeconds),
// "Done with this set", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
private void statusStrip1_Click(object sender, EventArgs e)
{
if (rtbXML.SelectedText != "")
{
tsslStatus.Text = string.Format("Selection = '{0}'", IndentifySpecialCharacters(rtbXML.SelectedText));
Clipboard.Clear();
Clipboard.SetText(IndentifySpecialCharacters(rtbXML.SelectedText));
}
}
ROFSTLookup MyLookUp;
private void tmr_Tick(object sender, EventArgs e)
{
tmr.Enabled = false;
// If timer on the its ready to proccess
string str = AutoFolder;
if (str != null && str.Length > 5)
{
DirectoryInfo di = new DirectoryInfo(str);
FileInfo fi = di.GetFiles("*.xml")[0];
DVI = GetDVI(fi.FullName);
ConvertFiles(fi.FullName);
}
this.Close();
}
private static string _AutoFolder = null;
private static string AutoFolder
{
get
{
if (_AutoFolder == null)
{
_AutoFolder = System.Environment.CommandLine;
_AutoFolder = _AutoFolder.Substring(_AutoFolder.IndexOf(@".exe"" ") + 6).Trim(" \t\r\n".ToCharArray());
}
if (_AutoFolder.Length < 1)
return null;
return _AutoFolder;
}
}
private DocVersionInfo GetDVI(string fileName)
{
XmlDocument xd = new XmlDocument();
xd.Load(fileName);
XmlElement xe = xd.DocumentElement;
while (xe.Name != "ident")
xe = xe.ChildNodes[0] as XmlElement;
string DVIFolderName = xe.Attributes["PNSNo"].Value;
if (cmbDocVersion.SelectedValue != null)
{
DocVersionInfo dvi = DocVersionInfo.Get((int)(cmbDocVersion.SelectedValue));
int idnew;
ROFstInfo fst = dvi.DocVersionAssociations[0].MyROFst;
FolderInfo grandParent = dvi.ActiveParent.ActiveParent as FolderInfo;
// Create a folder
double myOrder = GetMyOrder(grandParent.SortedChildFolders, DVIFolderName);
using (Folder flder = Folder.MakeFolder(grandParent.Get(), null, DVIFolderName, fileName, GetSystem(xe), null, myOrder, null))
{
flder.ManualOrder = 0;
flder.ManualOrder = myOrder;
//Console.WriteLine("myOrder = {0}, flder = {1}", myOrder, flder.ManualOrder);
flder.Save();
// create a a DocVersion
using (DocVersion dv = DocVersion.MakeDocVersion(flder, "Working Draft", null, null, null, null))
{
dv.DocVersionAssociations.Add(fst.Get());
dv.Save();
idnew = dv.VersionID;
}
}
return DocVersionInfo.Get(idnew);
}
return null;
}
private double GetMyOrder(Csla.SortedBindingList<FolderInfo> myList, string DVIFolderName)
{
double lastNum = 0;
// Console.WriteLine("--->>> FolderName {0} Insert Count {1}",DVIFolderName, myList.Count);
foreach (FolderInfo myFolder in myList)
{
// Console.WriteLine("--->>> FolderName {0} Insert Name {1} Insert Order {2}",DVIFolderName, myFolder.Name, myFolder.ManualOrder);
if (myFolder.Name.CompareTo(DVIFolderName) >= 0)
return (lastNum + (double) myFolder.ManualOrder) / 2.0;
lastNum = myFolder.ManualOrder ?? 1.0;
}
return lastNum + 1;
}
private string GetSystem(XmlElement xe)
{
XmlAttribute xa = xe.Attributes["system"];
if (xa is XmlAttribute) return xa.Value;
return "N/A";
}
}
}
@@ -1,132 +0,0 @@
<?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>
<metadata name="ofd.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>87, 17</value>
</metadata>
<metadata name="tmr.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>203, 3</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>25</value>
</metadata>
</root>
@@ -1,36 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="ConvertLocalAlarms.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
</sectionGroup>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/>
</startup>
<userSettings>
<ConvertLocalAlarms.Properties.Settings>
<setting name="Size" serializeAs="String">
<value>1000, 600</value>
</setting>
<setting name="Location" serializeAs="String">
<value>0, 0</value>
</setting>
<setting name="FileName" serializeAs="String">
<value />
</setting>
<setting name="Split1" serializeAs="String">
<value>250</value>
</setting>
<setting name="SqlServer" serializeAs="String">
<value>.\Sql2008Express</value>
</setting>
<setting name="Database" serializeAs="String">
<value>VEPROMs_BARAKAH</value>
</setting>
<setting name="ProcedureSet" serializeAs="String">
<value>0</value>
</setting>
</ConvertLocalAlarms.Properties.Settings>
</userSettings>
</configuration>
@@ -1,143 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{BF0EEE6A-5350-4CE7-8E28-73F1A3811870}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ConvertLocalAlarms</RootNamespace>
<AssemblyName>ConvertLocalAlarms</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>x86</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x86\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<OutputPath>bin\x86\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="C1.Win.C1FlexGrid.2, Version=2.6.20142.835, Culture=neutral, PublicKeyToken=79882d576c6336da, processorArchitecture=MSIL" />
<Reference Include="Csla">
<HintPath>..\..\..\..\..\..\..\Development\csla20cs\Csla\bin\Debug\Csla.dll</HintPath>
</Reference>
<Reference Include="DevComponents.DotNetBar2, Version=12.5.0.2, Culture=neutral, PublicKeyToken=7eb7c3a35b91de04, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\Program Files\DotNetBar for Windows Forms\DevComponents.DotNetBar2.dll</HintPath>
</Reference>
<Reference Include="log4net">
<HintPath>..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\log4net.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Design" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="VEPROMS.CSLA.Library">
<HintPath>..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\VEPROMS.CSLA.Library.dll</HintPath>
</Reference>
<Reference Include="Volian.Base.Library">
<HintPath>..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\Volian.Base.Library.dll</HintPath>
</Reference>
<Reference Include="Volian.Controls.Library">
<HintPath>..\..\..\..\..\..\..\Development\Proms\Volian.Controls.Library\bin\Debug\Volian.Controls.Library.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="ConvertTable.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmConvertLocalAlarms.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmConvertLocalAlarms.Designer.cs">
<DependentUpon>frmConvertLocalAlarms.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="SaveProcedureLocal.cs">
<SubType>Form</SubType>
</Compile>
<EmbeddedResource Include="frmConvertLocalAlarms.resx">
<DependentUpon>frmConvertLocalAlarms.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Properties\licenses.licx" />
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
@@ -1,197 +0,0 @@
using C1.Win.C1FlexGrid;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml;
using VEPROMS.CSLA.Library;
using Volian.Controls.Library;
namespace ConvertLocalAlarms
{
public partial class frmConvertLocalAlarms
{
private static string GetTableText()
{
return _MyFlexGrid.GetSearchableText();
}
private static void LoadTable2(XmlNode xn, StepLookup mySteps, int level)
{
XmlNode xn2 = xn.SelectSingleNode("tr/td/table");
if (xn2 != null) xn = xn2;
VlnFlexGrid fg = _MyFlexGrid;
fg.Font = new Font("Arial", 11, FontStyle.Regular, GraphicsUnit.Point);
fg.Clear();
fg.Rows.Count = 1;
fg.Cols.Count = 1;
int rows = 0;
fg.MergedRanges.Clear();
foreach (XmlNode xr in xn.ChildNodes)
{
if (xr.Name == "tr")
{
++rows;
AddTableRow(xr, fg, rows);
}
}
fg.MyBorders = new VlnBorders(GridLinePattern.Single, fg.Rows.Count, fg.Cols.Count);
fg.BringToFront();
fg.Invalidate();
Application.DoEvents();
//ShowColumnWidths(fg);
fg.MakeRTFcells(false);
//ShowMergedCells(fg);
//ShowColumnWidths(fg);
//Well, Can I save the table
//using (Step step = MakeCSLAStep(mySteps, mySteps.Count, null, {TableContent}, 20008, E_FromType.Table))
//{
// Grid.MakeGrid(step.MyContent, fg.GetXMLData(), "");
//}
}
public static VlnFlexGrid _MyFlexGrid = null;
private static void AddTableRow(XmlNode xr, VlnFlexGrid fg, int rows)
{
if (rows > fg.Rows.Count)
fg.Rows.Count = rows;
int cols = 0;
foreach (XmlNode xc in xr.ChildNodes)
{
++cols;
//if (xc.InnerText.Contains("RC-V200"))
// Console.WriteLine(xc.InnerText);
//if (xc.InnerText.Contains("RC-V121"))
// Console.WriteLine(xc.InnerText);
//if (xc.InnerXml.Contains("AB 137") || xc.InnerXml.Contains("3013N01"))
// Console.WriteLine("here");
CellRange cr2 = GetMyMergedRange(fg, rows - 1, cols - 1);
//Console.WriteLine("Check {0}", cr2);
while (cr2.c1 != cols - 1 || cr2.r1 != rows - 1)
{
cols++;
cr2 = GetMyMergedRange(fg, rows - 1, cols - 1);
}
AddMergedCells(fg, rows, cols, xc);
//ShowMergedCells(fg);
if (xc.Name == "td")
{
AddTableColumn(xc, fg, rows, cols);
}
}
}
//private static void ShowColumnWidths(VlnFlexGrid fg)
//{
// foreach (Column c in fg.Cols)
// Console.WriteLine("Width[{0}]={1}", c.Index, c.Width);
//}
private static void ShowMergedCells(VlnFlexGrid fg)
{
for (int r = 0; r < fg.Rows.Count; r++)
{
for (int c = 0; c < fg.Cols.Count; c++)
{
CellRange cr3 = GetMyMergedRange(fg, r, c);
if (fg.MergedRanges.Contains(cr3))
Console.WriteLine("cr3 r={0},c={1},rng={2}", r, c, cr3);
}
}
}
private static int GetSpan(string span)
{
int retval = int.Parse("0" + (span ?? ""));
if (retval == 0) return 0;
return retval - 1;
}
private static string GetAttribute(XmlNode xc, string attName)
{
string retval = null;
XmlAttribute xa = xc.Attributes[attName];
if (xa != null)
retval = xa.Value;
return retval;
}
private static void AddMergedCells(VlnFlexGrid fg, int rows, int cols, XmlNode xc)
{
string colspan = GetAttribute(xc, "colspan");
string rowspan = GetAttribute(xc, "rowspan");
if (colspan != null || rowspan != null)
{
//AddMergedRanges
int r1 = rows;
int c1 = cols;
int r2 = r1 + GetSpan(rowspan);
if (r2 > fg.Rows.Count) fg.Rows.Count = r2;
int c2 = c1 + GetSpan(colspan);
if (c2 > fg.Cols.Count) fg.Cols.Count = c2;
CellRange cr = new CellRange();
cr.r1 = r1 - 1;
cr.r2 = r2 - 1;
cr.c1 = c1 - 1;
cr.c2 = c2 - 1;
fg.MergedRanges.Add(cr);
//Console.WriteLine("Merged {0}", cr);
}
}
private static CellRange GetMyMergedRange(VlnFlexGrid fg, int r, int c)
{
foreach (CellRange cr in fg.MergedRanges)
{
if (cr.r1 <= r && cr.r2 >= r && cr.c1 <= c && cr.c2 >= c)
return cr;
}
return fg.GetMergedRange(r, c);
}
private static Regex regNumber = new Regex("^[0-9]+$", RegexOptions.Compiled);
private static void AddTableColumn(XmlNode xc, VlnFlexGrid fg, int rows, int cols)
{
//Console.WriteLine("Rows {0}, Cols {1}", rows, cols);
if (cols > fg.Cols.Count)
fg.Cols.Count = cols;
string width = GetAttribute(xc, "width");
if (width != null && width != "" && regNumber.IsMatch(width))
{
if (width.EndsWith("%"))
fg.Cols[cols - 1].Width = (int)(int.Parse(width.Replace("%", "")) * 96 * 6.5F / 100);
else
{
int w = int.Parse(width)*96/72;
//Console.WriteLine("w[{0}]={1}", cols - 1, w);
fg.Cols[cols - 1].Width = w;
}
}
StringBuilder sb = new StringBuilder();
string prefix = "";
foreach (XmlNode xn in xc.ChildNodes)
{
if (xn.Name == "p")
{
sb.Append(prefix + xn.InnerText);
}
if (xn.Name == "ul")
{
foreach (XmlNode xn2 in xn.ChildNodes)
{
if (xn2.Name == "li")
{
sb.Append(prefix + "*" + xn.InnerText);
}
if (xn2.Name == "p")
{
sb.Append(prefix + xn.InnerText);
}
}
}
}
if (width != null && width != "" && !regNumber.IsMatch(width))
{
Console.WriteLine("width is not a number {0}, rows {1}, cols {2}, Text='{3}'", width, rows, cols, xc.OuterXml);
}
fg[rows - 1, cols - 1] = sb.ToString();
}
}
}
@@ -1,22 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ConvertLocalAlarms
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new frmConvertLocalAlarms());
}
}
}
@@ -1,36 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("ConvertLocalAlarms")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ConvertLocalAlarms")]
[assembly: AssemblyCopyright("Copyright © 2019")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("4fbb3402-5209-47ff-a6ba-e0da93ef51c4")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
@@ -1,63 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace ConvertLocalAlarms.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ConvertLocalAlarms.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}
@@ -1,117 +0,0 @@
<?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.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: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" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</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" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
@@ -1,110 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace ConvertLocalAlarms.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("1000, 600")]
public global::System.Drawing.Size Size {
get {
return ((global::System.Drawing.Size)(this["Size"]));
}
set {
this["Size"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0, 0")]
public global::System.Drawing.Point Location {
get {
return ((global::System.Drawing.Point)(this["Location"]));
}
set {
this["Location"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string FileName {
get {
return ((string)(this["FileName"]));
}
set {
this["FileName"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("250")]
public int Split1 {
get {
return ((int)(this["Split1"]));
}
set {
this["Split1"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute(".\\Sql2008Express")]
public string SqlServer {
get {
return ((string)(this["SqlServer"]));
}
set {
this["SqlServer"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("VEPROMs_BARAKAH")]
public string Database {
get {
return ((string)(this["Database"]));
}
set {
this["Database"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0")]
public int ProcedureSet {
get {
return ((int)(this["ProcedureSet"]));
}
set {
this["ProcedureSet"] = value;
}
}
}
}
@@ -1,27 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="ConvertLocalAlarms.Properties" GeneratedClassName="Settings">
<Profiles />
<Settings>
<Setting Name="Size" Type="System.Drawing.Size" Scope="User">
<Value Profile="(Default)">1000, 600</Value>
</Setting>
<Setting Name="Location" Type="System.Drawing.Point" Scope="User">
<Value Profile="(Default)">0, 0</Value>
</Setting>
<Setting Name="FileName" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="Split1" Type="System.Int32" Scope="User">
<Value Profile="(Default)">250</Value>
</Setting>
<Setting Name="SqlServer" Type="System.String" Scope="User">
<Value Profile="(Default)">.\Sql2008Express</Value>
</Setting>
<Setting Name="Database" Type="System.String" Scope="User">
<Value Profile="(Default)">VEPROMs_BARAKAH</Value>
</Setting>
<Setting Name="ProcedureSet" Type="System.Int32" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
</Settings>
</SettingsFile>
@@ -1 +0,0 @@
C1.Win.C1FlexGrid.C1FlexGrid, C1.Win.C1FlexGrid.2, Version=2.6.20142.835, Culture=neutral, PublicKeyToken=79882d576c6336da
@@ -1,549 +0,0 @@
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;
using System.IO;
using System.Xml;
using System.Text.RegularExpressions;
using VEPROMS.CSLA.Library;
using log4net;
using Volian.Controls.Library;
using C1.Win.C1FlexGrid;
using System.Data.SqlClient;
namespace ConvertLocalAlarms
{
public partial class frmConvertLocalAlarms : Form
{
string lastLine = "";
//private void SaveProcedure(string text, string procNumber, string procTitle, int serialNo)
private void SaveProcedure(string text, string procNumber, string procTitle, DocVersionInfo dvi)
{
Console.WriteLine("===> ARP: {0}, AppContext: {1}", dvi.MyFolder.Name, procNumber);
// Add Procedure Number and Title
ItemInfo prev = null;
//if (serialNo == 999999)
prev = dvi.MyItem == null ? null : dvi.MyItem.LastSibling;
//else
//{
// prev = FindPrevious(dicSerialNo, serialNo);
//}
using (Procedure prc = Procedure.MakeProcedure(dvi, prev, procNumber, procTitle, 0))
{
ProcedureInfo prci = ProcedureInfo.Get(prc.ItemID);
// dicSerialNo.Add(serialNo, prci);
// Console.WriteLine("{0},{1}", serialNo, prci.ShortPath);
// Add Section
using (Section sec = Section.MakeSection(prci, null, null, "Procedure Content", 10000))
{
sec.SectionConfig.Section_ColumnMode = SectionConfig.SectionColumnMode.One;
sec.SectionConfig.Section_Pagination = SectionConfig.SectionPagination.Separate;
sec.Save();
SectionInfo seci = SectionInfo.Get(sec.ItemID);
// TODO: Add High Level Steps
// TODO: Add Substeps
MemoryStream ms = GetMemoryStream(text);
Queue<string> qRead = new Queue<string>();
using (StreamReader sr = new StreamReader(ms))
fillQueue(qRead, sr);
Dictionary<int, ItemInfo> lookup = new Dictionary<int, ItemInfo>();
lookup.Add(0, prci);
lookup.Add(1, seci);
int level = 2;
int type = 20001;
int lastLevel = 2;
int lastType = 0;
int lastIndent = 0;
int extra = 0;
string lastTab = "";
int? DeQueueType = null;
E_FromType myFromType = E_FromType.Step;
Queue<string> enQueue = null;
Queue<string> deQueue = null;
int deQueueLevel = 0;
int deQueueLevelLast = 0;
bool wasFromQueue;
bool firstQueue = false;
ItemInfo deQueueItem = null;
bool saveDeQueueInfo = false;
bool isTable = false;
bool lastWasTable = false;
string tableText = null;
string tab = "";
bool strangeBullet = false;
bool lastNoteHadBullet = false;
while (qRead.Count > 0 || deQueue != null)
{
string lineText;
tableText = null;
if (deQueue != null)
{
wasFromQueue = true;
extra = 1;
lineText = deQueue.Dequeue();
if (deQueue.Count == 0)
deQueue = null;
if (lineText=="<NOTE>")
{
DeQueueType = 20007;
}
if (lineText=="<CAUTION>")
{
DeQueueType = 20006;
}
if (lineText=="<WARNING>")
{
DeQueueType = 20020;
}
if (deQueue != null)
{
if (deQueue.Count > 0)
lineText = deQueue.Dequeue();
if (deQueue.Count == 0)
deQueue = null;
}
if (lastNoteHadBullet && lineText.Contains("\u2022"))
DeQueueType = lastType;
}
else
{
wasFromQueue = false;
DeQueueType = null;
extra = 0;
string findend = "";
while (Regex.IsMatch(qRead.Peek(), "<(NOTE|CAUTION|WARNING)>(.*)"))
{
if (enQueue == null) enQueue = new Queue<string>();
lineText = qRead.Dequeue();
string sType = Regex.Replace(lineText, "^<(NOTE|CAUTION|WARNING)>(.*)$", "$1");
lineText = Regex.Replace(lineText, "^<(NOTE|CAUTION|WARNING)>(.*)$", "$2");
findend = string.Format("</{0}>", sType);
enQueue.Enqueue(string.Format("<{0}>", sType));
while (!lineText.Contains(findend))
{
enQueue.Enqueue(lineText);//.Replace("\u2022","").Trim());
lineText = qRead.Dequeue().Trim();
}
lineText = lineText.Replace(findend, "");
enQueue.Enqueue(lineText); //.Replace("\u2022", "").Trim());
}
lineText = qRead.Dequeue().TrimEnd(" ".ToCharArray());
//string append = qRead.Peek();
//lineText = qRead.Dequeue().Trim();
if (lineText == "&gt;") lineText = lineText.Replace("&gt;", "");
else lineText = lineText.Replace("&lt;", "<").Replace("&gt;", ">");
//}
HasSpecialCharacters(lineText);
if (lineText.StartsWith("<table>"))
{
while (!lineText.Contains("</table>"))
{
lineText += " " + qRead.Dequeue();
lineText = Regex.Replace(lineText, "</table>.*", "</table>");
}
XmlDocument xd = new XmlDocument();
xd.LoadXml(lineText);
LoadTable2(xd.DocumentElement, null, 0);
isTable = true;
if (!lastWasTable) level = lastLevel + 1;
else level = lastLevel;
type = 20008;
tableText = GetTableText();
//StringBuilder sbxml= new StringBuilder();
//using(StringWriter sw = new StringWriter(sbxml))
// _MyFlexGrid.WriteXml(sw);
//using(StringReader sr= new StringReader(sbxml.ToString()))
// _MyFlexGrid.ReadXml(sr);
//Application.DoEvents();
}
else lineText = Regex.Replace(lineText, "<[^<>]+>", "");
}
if (lineText.Replace("\t", "").Replace(" ", "") != "")
lastLine = lineText;
Match m = Regex.Match(lineText.Replace('\xFFFD', '\x2022'), @"^(\t*)([1-9][0-9]*\.0|[1-9][0-9]*\.[1-9][0-9]*|[1-9][0-9]*\.[1-9][0-9]*\.[1-9][0-9]*|[A-Z]\.|\u2022|)([\t ]+)([^\u2022]*)$", RegexOptions.Multiline);
if (m.Groups[4].Value != "")
{
tab = m.Groups[2].Value;
int indent = m.Groups[1].Value.Length;
if (isTable)
{
// do nothing
if (lastWasTable)
level = lastLevel;
else
level = 1 + lastLevel;
type = 20008;
myFromType = E_FromType.Table;
}
else if (indent == 0 && tab.EndsWith(".0")) // High Level Step
{
level = 2;
type = 20002;
}
else if (Regex.IsMatch(tab, "[1-9][0-9]*\\.[1-9][0-9]*\\.[1-9][0-9]*")) // Sub-Substep
{
level = 4;
type = 20001;
}
else if (Regex.IsMatch(tab, "[1-9][0-9]*\\.[1-9][0-9]*")) // Substep
{
level = 3;
type = 20001;
}
else if (Regex.IsMatch(tab, "[A-Z]\\.")) // Sub-Substep
{
level = 5;
type = 20001;
}
else if (tab == "") // Paragraph
{
//Console.WriteLine("Type = 20024, deQueueuType= {0} Level = {1}", DeQueueType, level);
level = lastLevel + 1;
type = 20024;
}
else if (tab == "\u2022")//bullet
{
if (firstQueue)
level = lastLevel + 1;
else if (lastTab == "\u2022")
level = lastLevel;
else
if (lastType == 20007 && lastTab == "")
level = lastLevel + 1;
else
{
level = indent + 3;
strangeBullet = true;
}
type = 20004;
if (Regex.IsMatch(m.Groups[4].Value, "^[0-9]"))
type = 20011;
}
else if (tab == "\u25CB")//bullet
{
level = indent + 4;
type = 20004;
if (Regex.IsMatch(m.Groups[4].Value, "^[0-9]"))
type = 20011;
}
//while (level < lastLevel)
// lookup.Remove(lastLevel--);
if (firstQueue && deQueueLevelLast > 0) level = deQueueLevelLast + 1;
while (level < lookup.Count - 1)
lookup.Remove(lookup.Count - 1);
lastTab = tab;
lastLevel = level;
//lastIndent = indent;
lastWasTable = isTable;
deQueueLevelLast = deQueueLevel;
}
if (deQueue == null && enQueue != null)
{
deQueue = enQueue;
saveDeQueueInfo = true;
enQueue = null;
}
int newType = DeQueueType ?? (isTable ? 20008 : type);
if (DeQueueType != null)
{
myFromType = E_FromType.Note;
level = 3;
if(deQueue!=null)
Console.WriteLine("Multiple NoteLines");
if (tab == "\u2022")
lastNoteHadBullet = true;
}
lastType = newType;
if (enQueue == null)
{
if (lookup.Count < level)
{
using (Step stp = (lookup[lookup.Count - 1] as StepInfo).Get())
{
Annotation.MakeAnnotation(stp, AnnotationType.GetByNameOrCreate("Conversion Error"), null, GetAnnotationText2(lineText), null);
}
}
else if (lookup.Count == level)
{ // Make new Step Type Child
using (Step stp = Step.MakeStep(lookup[level - 1], null, null, tableText ?? m.Groups[4].Value, newType, myFromType))
{
if (strangeBullet)
Annotation.MakeAnnotation(stp, AnnotationType.GetByNameOrCreate("Conversion Error"), null, "Strange Bullet", null);
ItemInfo myItem = StepInfo.Get(stp.ItemID);
if (isTable)
{
Grid.MakeGrid(stp.MyContent, _MyFlexGrid.GetXMLData(), "");
String footnote = GetFootNote(ms, qRead);
if (footnote.Length > 0) // Make Table FootNote
Step.MakeStep(myItem, null, null, footnote, 20024, E_FromType.Step);
}
isTable = false;
lookup.Add(level, myItem);
//Console.WriteLine("+++B tab = {0}, Lookup.Count = {1}, Level = {2}",tab, lookup.Count, level);
//Console.WriteLine("+++A tab = {0}, Lookup.Count = {1}, Level = {2}",tab, lookup.Count, level);
if (saveDeQueueInfo)
{
deQueueLevel = level;
deQueueItem = lookup[level];
saveDeQueueInfo = false;
}
if (firstQueue) firstQueue = false;
}
}
else
{ // MakeConfig Next Child
int previousType = ((int)lookup[level].MyContent.Type);
if (firstQueue && DeQueueType != null)
{
previousType = (int)DeQueueType;
level = deQueueLevel + 1;
}
using (Step stp = Step.MakeStep(lookup[level - 1], lookup[level], null, tableText ?? m.Groups[4].Value, previousType, myFromType))
{
Annotation.MakeAnnotation(stp, AnnotationType.GetByNameOrCreate("Conversion Error"), null, string.Format("Type Change {0} to {1}", newType, ((int)lookup[level].MyContent.Type)), null);
if (strangeBullet)
Annotation.MakeAnnotation(stp, AnnotationType.GetByNameOrCreate("Conversion Error"), null, "Strange Bullet", null);
strangeBullet = false;
ItemInfo myItem = StepInfo.Get(stp.ItemID);
if (isTable)
{
Grid.MakeGrid(stp.MyContent, _MyFlexGrid.GetXMLData(), "");
String footnote = GetFootNote(ms, qRead);
if (footnote.Length > 0)// Make Table Footnote
Step.MakeStep(myItem, null, null, footnote, 20024, E_FromType.Step);
}
isTable = false;
//Console.WriteLine(">>> tab = {0}, Lookup.Count = {1}, Level = {2}", tab, lookup.Count, level);
lookup[level] = myItem;
if (saveDeQueueInfo)
{
deQueueLevel = level;
deQueueItem = lookup[level];
saveDeQueueInfo = false;
}
if (firstQueue) firstQueue = false;
}
}
myFromType = E_FromType.Step;
if (deQueue == null && deQueueItem != null)
{
level = deQueueLevel;
while (level < lookup.Count)
lookup.Remove(lookup.Count - 1);
lookup[level] = deQueueItem;
deQueueItem = null;
DeQueueType = null;
}
}
//else
//{
// enQueue.Enqueue(lineText);
//}
DeQueueType = null;
}
}
}
if (runOne) MessageBox.Show("Done", "Converted");
}
private ItemInfo FindLocation(ItemInfo myItem, string procNumber)
{
while (myItem != null)
{
if (myItem.DisplayNumber.CompareTo(procNumber) >= 0)
return myItem.MyPrevious;
myItem = myItem.NextItem;
}
return myItem;
}
private string MakeConfig(string fmt, params string [] args)
{
string [] atts = new string[args.Length];
args.CopyTo(atts,0);
for(int i=0; i<atts.Length; i++)
atts[i] = atts[i].Replace("&","&amp;").Replace("<","&lt;").Replace(">","&gt;");
return string.Format(fmt, atts);
}
private void fillQueue(Queue<string> qread, StreamReader sr)
{
while(sr.Peek() > 0)
qread.Enqueue(sr.ReadLine());
}
//public string NextLine
//{
// get { return _NextLine; }
// set { _NextLine = value; }
//}
private string GetFootNote(MemoryStream ms, Queue<string> qRead)
{
string sep = "";
StringBuilder sb = new StringBuilder();
while(qRead.Count > 0)
{
// Read a line at a time
string str = qRead.Peek();
str = Regex.Replace(str, "<[^<>]+>", "").Trim(" \t".ToCharArray()).Replace("&gt;", "");
str = str.Replace('\x25CB', 'o').Replace("\u2022", "\\u9679?");
//str = str.Replace('\x25CB', 'o').Replace("\u2022", "\\u7?");
// If Text begins with number then
if(Regex.IsMatch(str,"[0-9].*") || str.StartsWith("<table>"))
return sb.ToString();
//append string
if (sb.ToString() != "" || str != "")
{
sep = "\r\n";
}
sb.Append(sep + qRead.Dequeue());
}
return sb.ToString();
}
private void ProcessChars(string str)
{
foreach (char c in str)
{
if (c < 0x20 || c > 0x7F)
Console.WriteLine("{0:X4}", (int)c);
}
}
public void ResetSpecial()
{
FoundSpecial = new List<char>();
}
List<char> FoundSpecial = new List<char>();
private void HasSpecialCharacters(string lineText)
{
StringBuilder sb = new StringBuilder();
foreach (char c in lineText)
{
if ((c < 0x20 || c > 0x7F) && !FoundSpecial.Contains(c))
{
Console.WriteLine("*** Special Character {0:X4}", (int)c);
FoundSpecial.Add(c);
}
}
}
//private static string GetAnnotationText(string fileName)
//{
// return string.Format("FileName:{0}\r\nShortName:{1}\r\nFullName:{2}\r\nSystem:{3}\r\nPNSNo:{4}\r\nRelatedFunction:{5}" ,
// fileName,ShortName,FullName,ApSystem,PNSNo ,RelatedFunction);
//}
private static string GetAnnotationText2(string lineText)
{
//return string.Format("LineText:{0}\r\nShortName:{1}\r\nFullName:{2}\r\nSystem:{3}\r\nPNSNo:{4}\r\nRelatedFunction:{5}",
// lineText, ShortName, FullName, apSystem, PNSNo, RelatedFunction);
return string.Format("LineText:{0}",
lineText);
}
//private void fillQueue(Queue<string> qread, StreamReader sr)
//{
// while (sr.Peek() > 0)
// qread.Enqueue(sr.ReadLine());
//}
//private string _NextLine;
//public string NextLine
//{
// get { return _NextLine; }
// set { _NextLine = value; }
//}
//private string GetFootNote(MemoryStream ms, Queue<string> qRead)
//{
// string sep = "";
// StringBuilder sb = new StringBuilder();
// while (qRead.Count > 0)
// {
// // Read a line at a time
// string str = qRead.Peek();
// str = Regex.Replace(str, "<[^<>]+>", "").Trim(" \t".ToCharArray()).Replace("&gt;", "");
// str = str.Replace('\x25CB', 'o').Replace("\u2022", "\\u9679?");
// //str = str.Replace('\x25CB', 'o').Replace("\u2022", "\\u7?");
// // If Text begins with number then
// if (Regex.IsMatch(str, "[0-9].*") || str.StartsWith("<table>"))
// return sb.ToString();
// //append string
// if (sb.ToString() != "" || str != "")
// {
// sep = "\r\n";
// }
// sb.Append(sep + qRead.Dequeue());
// }
// return sb.ToString();
//}
//private void ProcessChars(string str)
//{
// foreach (char c in str)
// {
// if (c < 0x20 || c > 0x7F)
// Console.WriteLine("{0:X4}", (int)c);
// }
//}
//public void ResetSpecial()
//{
// FoundSpecial = new List<char>();
//}
//List<char> FoundSpecial = new List<char>();
//private void HasSpecialCharacters(string lineText)
//{
// StringBuilder sb = new StringBuilder();
// foreach (char c in lineText)
// {
// if ((c < 0x20 || c > 0x7F) && !FoundSpecial.Contains(c))
// {
// Console.WriteLine("*** Special Character {0:X4}", (int)c);
// FoundSpecial.Add(c);
// }
// }
//}
}
public class StepLookup : SortedDictionary<string, StepInfo>
{
public StepInfo this[int i]
{
get
{
if (this.ContainsKey(i.ToString())) return base[i.ToString()];
return null;
}
set
{
if (i > this.Count)
throw new Exception("Gap in Stack");
if (value == null)
throw new Exception("Null StepInfo");
//if (value.MyHLS.Ordinal==5 && (value.IsNote || value.IsCaution ))
// Volian.Base.Library.vlnStackTrace.ShowStackLocal(2,5,"=====> Adding Caution or Note on Step 5 {0}",value);
if (this.ContainsKey(i.ToString()))
{
base[i.ToString()] = value;
while (this.ContainsKey((i + 1).ToString()))
base.Remove((base.Count - 1).ToString());
}
else base.Add(i.ToString(), value);
//ListMySteps("Set ", this);
}
}
public void AddOne(StepInfo previousStep)
{
this[this.Count] = previousStep;
}
private static void ListMySteps(string str, StepLookup mySteps)
{
int i = 0;
foreach (string key in mySteps.Keys)
{
if (key != i.ToString())
Console.WriteLine("{0} {1} {2} {3}", str, i, key, mySteps[key].DisplayText);
i++;
}
}
}
}
@@ -1,406 +0,0 @@
namespace ConvertLocalAlarms
{
partial class frmConvertLocalAlarms
{
/// <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.components = new System.ComponentModel.Container();
this.panel1 = new System.Windows.Forms.Panel();
this.label1 = new System.Windows.Forms.Label();
this.panel2 = new System.Windows.Forms.Panel();
this.btn_All = new System.Windows.Forms.Button();
this.btnConvert = new System.Windows.Forms.Button();
this.label7 = new System.Windows.Forms.Label();
this.tbServer = new System.Windows.Forms.TextBox();
this.cmbDatabase = new System.Windows.Forms.ComboBox();
this.label4 = new System.Windows.Forms.Label();
this.cmbDocVersion = new System.Windows.Forms.ComboBox();
this.label5 = new System.Windows.Forms.Label();
this.btn_Run = new System.Windows.Forms.Button();
this.btn_Browse = new System.Windows.Forms.Button();
this.label6 = new System.Windows.Forms.Label();
this.tbFileName = new System.Windows.Forms.TextBox();
this.ofd = new System.Windows.Forms.OpenFileDialog();
this.sc1 = new System.Windows.Forms.SplitContainer();
this.tcXML = new System.Windows.Forms.TabControl();
this.tpXML = new System.Windows.Forms.TabPage();
this.tbPROMS = new System.Windows.Forms.TextBox();
this.tabControl1 = new System.Windows.Forms.TabControl();
this.tpStructure = new System.Windows.Forms.TabPage();
this.tv = new System.Windows.Forms.TreeView();
this.tpGrid = new System.Windows.Forms.TabPage();
this.statusStrip1 = new System.Windows.Forms.StatusStrip();
this.tsslStatus = new System.Windows.Forms.ToolStripStatusLabel();
this.tmr = new System.Windows.Forms.Timer(this.components);
this.panel1.SuspendLayout();
this.panel2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.sc1)).BeginInit();
this.sc1.Panel1.SuspendLayout();
this.sc1.Panel2.SuspendLayout();
this.sc1.SuspendLayout();
this.tcXML.SuspendLayout();
this.tpXML.SuspendLayout();
this.tabControl1.SuspendLayout();
this.tpStructure.SuspendLayout();
this.statusStrip1.SuspendLayout();
this.SuspendLayout();
//
// panel1
//
this.panel1.Controls.Add(this.label1);
this.panel1.Controls.Add(this.panel2);
this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
this.panel1.Location = new System.Drawing.Point(0, 0);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(954, 88);
this.panel1.TabIndex = 0;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(12, 9);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(23, 13);
this.label1.TabIndex = 1;
this.label1.Text = "File";
//
// panel2
//
this.panel2.Controls.Add(this.btn_All);
this.panel2.Controls.Add(this.btnConvert);
this.panel2.Controls.Add(this.label7);
this.panel2.Controls.Add(this.tbServer);
this.panel2.Controls.Add(this.cmbDatabase);
this.panel2.Controls.Add(this.label4);
this.panel2.Controls.Add(this.cmbDocVersion);
this.panel2.Controls.Add(this.label5);
this.panel2.Controls.Add(this.btn_Run);
this.panel2.Controls.Add(this.btn_Browse);
this.panel2.Controls.Add(this.label6);
this.panel2.Controls.Add(this.tbFileName);
this.panel2.Dock = System.Windows.Forms.DockStyle.Top;
this.panel2.Location = new System.Drawing.Point(0, 0);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(954, 88);
this.panel2.TabIndex = 9;
//
// btn_All
//
this.btn_All.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btn_All.Location = new System.Drawing.Point(862, 46);
this.btn_All.Name = "btn_All";
this.btn_All.Size = new System.Drawing.Size(37, 25);
this.btn_All.TabIndex = 12;
this.btn_All.Text = "All";
this.btn_All.UseVisualStyleBackColor = true;
this.btn_All.Click += new System.EventHandler(this.btnAll_Click);
//
// btnConvert
//
this.btnConvert.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnConvert.Location = new System.Drawing.Point(754, 46);
this.btnConvert.Name = "btnConvert";
this.btnConvert.Size = new System.Drawing.Size(76, 28);
this.btnConvert.TabIndex = 11;
this.btnConvert.Text = "Convert";
this.btnConvert.UseVisualStyleBackColor = true;
this.btnConvert.Click += new System.EventHandler(this.btnConvert_Click);
//
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(12, 35);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(38, 13);
this.label7.TabIndex = 10;
this.label7.Text = "Server";
//
// tbServer
//
this.tbServer.Location = new System.Drawing.Point(56, 32);
this.tbServer.Name = "tbServer";
this.tbServer.Size = new System.Drawing.Size(190, 20);
this.tbServer.TabIndex = 9;
//
// cmbDatabase
//
this.cmbDatabase.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.cmbDatabase.FormattingEnabled = true;
this.cmbDatabase.Location = new System.Drawing.Point(331, 32);
this.cmbDatabase.Name = "cmbDatabase";
this.cmbDatabase.Size = new System.Drawing.Size(417, 21);
this.cmbDatabase.TabIndex = 8;
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(11, 61);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(75, 13);
this.label4.TabIndex = 7;
this.label4.Text = "Procedure Set";
//
// cmbDocVersion
//
this.cmbDocVersion.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.cmbDocVersion.FormattingEnabled = true;
this.cmbDocVersion.Location = new System.Drawing.Point(92, 58);
this.cmbDocVersion.Name = "cmbDocVersion";
this.cmbDocVersion.Size = new System.Drawing.Size(656, 21);
this.cmbDocVersion.TabIndex = 6;
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(259, 35);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(53, 13);
this.label5.TabIndex = 4;
this.label5.Text = "Database";
//
// btn_Run
//
this.btn_Run.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btn_Run.Location = new System.Drawing.Point(905, 3);
this.btn_Run.Name = "btn_Run";
this.btn_Run.Size = new System.Drawing.Size(37, 25);
this.btn_Run.TabIndex = 3;
this.btn_Run.Text = "Run";
this.btn_Run.UseVisualStyleBackColor = true;
this.btn_Run.Click += new System.EventHandler(this.btnRun_Click);
//
// btn_Browse
//
this.btn_Browse.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btn_Browse.Location = new System.Drawing.Point(827, 3);
this.btn_Browse.Name = "btn_Browse";
this.btn_Browse.Size = new System.Drawing.Size(72, 24);
this.btn_Browse.TabIndex = 2;
this.btn_Browse.Text = "Browse...";
this.btn_Browse.UseVisualStyleBackColor = true;
this.btn_Browse.Click += new System.EventHandler(this.btnBrowse_Click);
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(12, 9);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(23, 13);
this.label6.TabIndex = 1;
this.label6.Text = "File";
//
// tbFileName
//
this.tbFileName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tbFileName.Location = new System.Drawing.Point(56, 6);
this.tbFileName.Name = "tbFileName";
this.tbFileName.Size = new System.Drawing.Size(756, 20);
this.tbFileName.TabIndex = 0;
this.tbFileName.Text = "H:\\Barakah Alarms\\1N2-OP-ARP-CS-0001_Rev_02_FINAL_Zipped_XML_20190804\\ARP-3442-10" +
"01 CS CNMT Spray HDR Block VLV V0001 TRBL.xml";
this.tbFileName.TextChanged += new System.EventHandler(this.tbFileName_TextChanged);
//
// ofd
//
this.ofd.Filter = "Text Files|*.txt";
//
// sc1
//
this.sc1.Dock = System.Windows.Forms.DockStyle.Fill;
this.sc1.Location = new System.Drawing.Point(0, 88);
this.sc1.Name = "sc1";
//
// sc1.Panel1
//
this.sc1.Panel1.Controls.Add(this.tcXML);
//
// sc1.Panel2
//
this.sc1.Panel2.Controls.Add(this.tabControl1);
this.sc1.Size = new System.Drawing.Size(954, 392);
this.sc1.SplitterDistance = 372;
this.sc1.TabIndex = 1;
//
// tcXML
//
this.tcXML.Controls.Add(this.tpXML);
this.tcXML.Dock = System.Windows.Forms.DockStyle.Fill;
this.tcXML.Location = new System.Drawing.Point(0, 0);
this.tcXML.Name = "tcXML";
this.tcXML.SelectedIndex = 0;
this.tcXML.Size = new System.Drawing.Size(372, 392);
this.tcXML.TabIndex = 2;
//
// tpXML
//
this.tpXML.Controls.Add(this.tbPROMS);
this.tpXML.Location = new System.Drawing.Point(4, 22);
this.tpXML.Name = "tpXML";
this.tpXML.Padding = new System.Windows.Forms.Padding(3);
this.tpXML.Size = new System.Drawing.Size(364, 366);
this.tpXML.TabIndex = 1;
this.tpXML.Text = "Raw";
this.tpXML.UseVisualStyleBackColor = true;
//
// tbPROMS
//
this.tbPROMS.Dock = System.Windows.Forms.DockStyle.Fill;
this.tbPROMS.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.tbPROMS.Location = new System.Drawing.Point(3, 3);
this.tbPROMS.Multiline = true;
this.tbPROMS.Name = "tbPROMS";
this.tbPROMS.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
this.tbPROMS.Size = new System.Drawing.Size(358, 360);
this.tbPROMS.TabIndex = 1;
//
// tabControl1
//
this.tabControl1.Controls.Add(this.tpStructure);
this.tabControl1.Controls.Add(this.tpGrid);
this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill;
this.tabControl1.Location = new System.Drawing.Point(0, 0);
this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0;
this.tabControl1.Size = new System.Drawing.Size(578, 392);
this.tabControl1.TabIndex = 0;
//
// tpStructure
//
this.tpStructure.Controls.Add(this.tv);
this.tpStructure.Location = new System.Drawing.Point(4, 22);
this.tpStructure.Name = "tpStructure";
this.tpStructure.Size = new System.Drawing.Size(570, 366);
this.tpStructure.TabIndex = 2;
this.tpStructure.Text = "Structure";
this.tpStructure.UseVisualStyleBackColor = true;
//
// tv
//
this.tv.Dock = System.Windows.Forms.DockStyle.Fill;
this.tv.Location = new System.Drawing.Point(0, 0);
this.tv.Name = "tv";
this.tv.Size = new System.Drawing.Size(570, 366);
this.tv.TabIndex = 0;
//
// tpGrid
//
this.tpGrid.Location = new System.Drawing.Point(4, 22);
this.tpGrid.Name = "tpGrid";
this.tpGrid.Size = new System.Drawing.Size(570, 366);
this.tpGrid.TabIndex = 3;
this.tpGrid.Text = "Grid";
this.tpGrid.UseVisualStyleBackColor = true;
//
// statusStrip1
//
this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.tsslStatus});
this.statusStrip1.Location = new System.Drawing.Point(0, 480);
this.statusStrip1.Name = "statusStrip1";
this.statusStrip1.Size = new System.Drawing.Size(954, 22);
this.statusStrip1.TabIndex = 2;
this.statusStrip1.Text = "statusStrip1";
this.statusStrip1.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.statusStrip1_ItemClicked);
this.statusStrip1.Click += new System.EventHandler(this.tsslStatus_Click);
//
// tsslStatus
//
this.tsslStatus.Name = "tsslStatus";
this.tsslStatus.Size = new System.Drawing.Size(39, 17);
this.tsslStatus.Text = "Ready";
this.tsslStatus.Click += new System.EventHandler(this.tsslStatus_Click);
//
// tmr
//
this.tmr.Tick += new System.EventHandler(this.tmr_Tick);
//
// frmConvertLocalAlarms
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(954, 502);
this.Controls.Add(this.sc1);
this.Controls.Add(this.panel1);
this.Controls.Add(this.statusStrip1);
this.Name = "frmConvertLocalAlarms";
this.Text = "Convert Alarms";
this.Load += new System.EventHandler(this.frmConvertAlarms_Load);
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
this.panel2.ResumeLayout(false);
this.panel2.PerformLayout();
this.sc1.Panel1.ResumeLayout(false);
this.sc1.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.sc1)).EndInit();
this.sc1.ResumeLayout(false);
this.tcXML.ResumeLayout(false);
this.tpXML.ResumeLayout(false);
this.tpXML.PerformLayout();
this.tabControl1.ResumeLayout(false);
this.tpStructure.ResumeLayout(false);
this.statusStrip1.ResumeLayout(false);
this.statusStrip1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.OpenFileDialog ofd;
private System.Windows.Forms.SplitContainer sc1;
private System.Windows.Forms.StatusStrip statusStrip1;
private System.Windows.Forms.ToolStripStatusLabel tsslStatus;
private System.Windows.Forms.TabControl tcXML;
private System.Windows.Forms.TabPage tpXML;
private System.Windows.Forms.TabControl tabControl1;
private System.Windows.Forms.TabPage tpStructure;
private System.Windows.Forms.TreeView tv;
private System.Windows.Forms.Panel panel2;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.TextBox tbServer;
private System.Windows.Forms.ComboBox cmbDatabase;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.ComboBox cmbDocVersion;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.Button btn_Run;
private System.Windows.Forms.Button btn_Browse;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.TextBox tbFileName;
private System.Windows.Forms.Button btnConvert;
private System.Windows.Forms.Button btn_All;
private System.Windows.Forms.TabPage tpGrid;
private System.Windows.Forms.TextBox tbPROMS;
private System.Windows.Forms.Timer tmr;
}
}
@@ -1,727 +0,0 @@
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;
using System.IO;
using System.Xml;
using System.Text.RegularExpressions;
using log4net;
using VEPROMS.CSLA.Library;
using Volian.Controls.Library;
using C1.Win.C1FlexGrid;
using System.Data.SqlClient;
namespace ConvertLocalAlarms
{
public partial class frmConvertLocalAlarms : Form
{
public frmConvertLocalAlarms()
{
InitializeComponent();
}
private void SetDatabaseConnection()
{
Database.VEPROMS_Connection = string.Format("Data Source={0};Initial Catalog={1};Integrated Security=True",tbServer.Text,cmbDatabase.SelectedText );
}
private void btnBrowse_Click(object sender, EventArgs e)
{
FileInfo fi = new FileInfo(tbFileName.Text);
ofd.InitialDirectory = fi.DirectoryName;
ofd.FileName = fi.Name;
if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
tbFileName.Text = ofd.FileName;
ProcessTxt();
}
}
private void ProcessTxtFile(string fileName)
{
//FileInfo fi = new FileInfo(fileName);
//StreamReader sr = fi.OpenText();
//ProcessHeader(sr);
//ProcTextAll = tbPROMS.Text = sr.ReadToEnd();
//HasSpecialCharacters(ProcTextAll);
//sr.Close();
//SaveTree(ProcTextAll, ProcNumber, ProcTitle);
FileInfo fi = new FileInfo(fileName);
FileStream sr = fi.OpenRead();
byte[] buffer = new byte[fi.Length];
sr.Read(buffer, 0, (int) fi.Length);
string str = Encoding.UTF7.GetString(buffer).Replace("\x95", "\u2022");
ProcessHeader(str);
int headercount = str.IndexOf("Setpoint");
headercount = str.IndexOf("\r\n", headercount);
ProcTextAll = tbPROMS.Text = str.Substring(headercount + 2);
sr.Close();
SaveTree(ProcTextAll, ProcNumber, ProcTitle);
}
Regex regHeader = new Regex("([ A-Z.a-z]+) = '([^']+)'.*", RegexOptions.Compiled);
private void ProcessHeader(string str)
{
ProcNumber="";
ProcTitle="";
int offset = 0;
int linelength = 0;
for (int i = 0; i < 5; i++)
{
linelength = str.IndexOf("\r\n",offset)-offset;
string txt = str.Substring(offset,linelength);
offset += linelength + 2;
Match m = regHeader.Match(txt);
switch (i)
{
case 0:
break;
case 1:
if(m.Groups[1].Value == "Alarm") ProcTitle = m.Groups[2].Value;
break;
case 2:
if(m.Groups[1].Value == "AlarmID") ProcNumber = m.Groups[2].Value;
break;
case 3:
break;
case 4:
break;
}
}
}
private void ProcessTxt()
{
ProcessTxtFile(tbFileName.Text);
}
//private void ProcessXML()
//{
// //string fileName = tbFileName.Text;
// //ProcessXmlFile(fileName);
//}
//private void ProcessXmlFile(string fileName)
//{
// //UpdateHTML = false;
// //tbXML.Clear();
// //UpdateHTML = true;
// //XmlDocument xDoc = new XmlDocument();
// //xDoc.Load(fileName);
// //XmlNode xn = xDoc.DocumentElement.LastChild.LastChild.LastChild;
// //string html = GetHtml(xn);
// //tbXML.Text = html;
//}
//private static string GetHtml(XmlNode xn)
//{
// XmlNode pr = xn.PreviousSibling;
// XmlAttribute xa;
// string html = xn.Attributes["content"].Value;
// while (pr != null && pr.Name == "NoteInstruction")
// {
// html = MergeHTML(pr.Attributes["content"].Value, html);
// pr = pr.PreviousSibling;
// }
// return html;
//}
//private static string MergeHTML(string part1, string part2)
//{
// part1 = part1.Replace("</body></html","");
// part2 = part2.Substring(part2.IndexOf("<p"));
// return part1 + part2;
//}
//private string _HtmlPrefix = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">";
//public string HtmlPrefix
//{
// get { return _HtmlPrefix; }
// set { _HtmlPrefix = value; }
//}
//private void XMLChanged(string xml)
//{
// Application.DoEvents();
// xml = "<?xml version='1.0' encoding='UTF-8'?>\n" + xml;
// xml = xml.Replace(HtmlPrefix, "");
// //xml = xml.Replace("\x09", "[Tab]");
// //xml = xml.Replace("text-indent:0px;\">", "text-indent:0px;\">\r\n");
// //xml = xml.Replace(" \x09", "\r\n&#x09;");
// //xml = xml.Replace("\x09", "&#x09;");
// xml = Regex.Replace(xml, "<br /></span>", "<br /> </span>");
// xml = Regex.Replace(xml, "</span><br />", "</span><br /> ");
// xml = Regex.Replace(xml, "\\<span [^<>]+\\>", "");
// xml = Regex.Replace(xml, "\\</span *\\>", "");
// xml = Regex.Replace(xml, "\\</p\\>[ \r\n]+\\<p [^<>]+\\>", "<br />\r\n");
// xml = Regex.Replace(xml, "\\<p [^<>]+\\>", "<br />\r\n");
// xml = Regex.Replace(xml, @"<br />[ \t\r\n]+\[", @"\line [");
// xml = Regex.Replace(xml, "\\</p *\\>", "");
// xml = Regex.Replace(xml, @"\]\t{4,5}", "]\r\n");
// xml = Regex.Replace(xml, "<br ?/>\t+(?![[\\u2022])", " ");
// xml = Regex.Replace(xml, "<br ?/>\t+(?![[\\u2022])", " ");
// xml = Regex.Replace(xml, "\t\t+", " ");
// xml = Regex.Replace(xml, "<br />", "\r\n");
// xml = Regex.Replace(xml, "\r\n +", "\r\n");
// xml = Regex.Replace(xml, "(\r\n){2,}", "\r\n");
// //aml = Regex.Replace(xml,"
// Application.DoEvents();
// byte[] bytes = Encoding.UTF8.GetBytes(xml);
// MemoryStream ms = new MemoryStream();
// ms.Write(bytes, 0, bytes.Length);
// ms.Position = 0;
// XmlDocument xDoc2 = new XmlDocument();
// xDoc2.Load(ms);
// //FileInfo fi = new FileInfo("C:\\Temp\\Alarm.xml");
// //StreamWriter sw = fi.CreateText();
// //sw.Write(xml);
// //sw.Close();
// //XmlDocument xDoc2 = new XmlDocument();
// //// Lookfor special characters
// ////FindSpecialCharacters(xml);
// //xDoc2.Load(fi.FullName);
// XmlNode xn3 = xDoc2.ChildNodes[1].ChildNodes[1].ChildNodes[0];
// string prcSerialNoFldName = GetProcInfo(xn3, 0, 0, 0);
// string prcSerialNoValue = GetProcInfo(xn3, 0, 1, 0);
// SerialNo = int.Parse(prcSerialNoValue);
// string prcTitleFldName = GetProcInfo(xn3, 1, 0, 0);
// string prcTitleValue = GetProcInfo(xn3, 1, 1, 0);
// string prcNumberFldName = GetProcInfo(xn3, 2, 0, 0);
// string prcNumberValue = GetProcInfo(xn3, 2, 1, 0);
// string prcSourceFldName = GetProcInfo(xn3, 3, 0, 0);
// string prcSourceValue = GetProcInfo(xn3, 3, 1, 0);
// string prcSetpointFldName = GetProcInfo(xn3, 4, 0, 0);
// string prcSetpointValue = GetProcInfo(xn3, 4, 1, 0);
// ProcNumber = prcNumberValue;
// ProcTitle = prcTitleValue;
// // Skip First Node
// UpdateHTML = false;
// tbPROMS.Clear();
// tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n",prcSerialNoFldName,prcSerialNoValue));
// tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n",prcTitleFldName,prcTitleValue));
// tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n",prcNumberFldName,prcNumberValue));
// tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n",prcSourceFldName,prcSourceValue));
// tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n",prcSetpointFldName,prcSetpointValue));
// StringBuilder sbAllText = new StringBuilder();
// for (int i = 1; i < xDoc2.ChildNodes[1].ChildNodes[1].ChildNodes.Count; i++)
// {
// XmlNode xn2 = xDoc2.ChildNodes[1].ChildNodes[1].ChildNodes[i];
// sbAllText.Append(xn2.OuterXml);
// }
// tbPROMS.AppendText(sbAllText.ToString().Replace(" ", "\xB7"));
// SaveTree(sbAllText.ToString(), prcNumberValue, prcTitleValue);
// ProcTextAll = sbAllText.ToString();
// UpdateHTML = true;
//}
String ProcTextAll;
//int SerialNo;
String ProcNumber;
String ProcTitle;
private void SaveTree(string text, string procNumber, string procTitle)
{
tv.Nodes.Clear();
MemoryStream ms = GetMemoryStream(text);
using (TextReader tr = new StreamReader(ms))
{
Dictionary<int, TreeNode> lookup = new Dictionary<int, TreeNode>();
lookup.Add(0, tv.Nodes.Add(string.Format("{0} - {1}", procNumber, procTitle)));
int level = 0;
int lastLevel = 0;
int lastIndent = 0;
int extra = 0;
string lastTab = "";
Queue<string> enQueue = null;
Queue<string> deQueue = null;
while (tr.Peek() >= 0 || deQueue != null)
{
string lineText;
if (deQueue != null)
{
extra = 1;
lineText = deQueue.Dequeue();
if (deQueue.Count == 0)
deQueue = null;
}
else
{
extra = 0;
lineText = tr.ReadLine();
if (lineText == "NOTE")
enQueue = new Queue<string>();
if (lineText.StartsWith("<NOTE>"))
{
enQueue = new Queue<string>();
enQueue.Enqueue("NOTE");
}
lineText = lineText.Replace("<NOTE>", "");
}
// Strip XML Tags
lineText = Regex.Replace(lineText, "<[^<>]+>", "");
if (lineText.Replace("\t", "") != "")
{
Match m = Regex.Match(lineText, @"^(\t*)([1-9][0-9]*\.0|[1-9][0-9]*\.[1-9][0-9]*|[1-9][0-9]*\.[1-9][0-9]*\.[1-9][0-9]*|\u2022)([\t ]+)([^\u2022]*)$", RegexOptions.Multiline);
string tab = m.Groups[2].Value;
int indent = m.Groups[1].Value.Length;
if (indent == 0 && tab.EndsWith(".0")) // High Level Step
{
level = 1;
if (deQueue == null && enQueue != null)
{
deQueue = enQueue;
enQueue = null;
}
}
else if (Regex.IsMatch(tab, "[1-9][0-9]*[.0-9]*")) // Substep
{
level = 1 + tab.Length - tab.Replace(".","").Length;
if (deQueue == null && enQueue != null)
{
deQueue = enQueue;
enQueue = null;
}
}
else if (tab == "") // Paragraph
{
if (Regex.IsMatch(lineText, "(NOTE|NOTES|CAUTION|CAUTIONS)")) extra = 0;
level = lastLevel + 1;
}
else if (tab == "\u2022")//bullet
level = indent + 2;
if (level < lastLevel)
while (level < lastLevel) lookup.Remove(lastLevel--);
string txt = string.Format("{0}|{1}||{2}", m.Groups[1].Value, m.Groups[2].Value, m.Groups[4].Value);
if (txt == "|||") txt = lineText;
if (enQueue == null)
{
if (level > lookup.Count - extra) extra = 0;
if(level + extra -1 == lookup.Count)
Console.WriteLine("Problems {0}, {1}",procNumber,txt);
else if (lookup.Count <= level)
lookup.Add(level + extra, lookup[level + extra - 1].Nodes.Add(txt));
else
lookup[level + extra] = lookup[level + extra - 1].Nodes.Add(txt);
}
else
{
enQueue.Enqueue(lineText);
}
lastTab = tab;
lastLevel = level;
lastIndent = indent;
}
}
}
}
//private ItemInfo FindPrevious(SortedDictionary<int, ItemInfo> dicSerialNo, int serialNo)
//{
// ItemInfo lastItem = null;
// foreach (int serno in dicSerialNo.Keys)
// {
// if (serno > serialNo)
// return lastItem;
// lastItem = dicSerialNo[serno];
// }
// return lastItem;
//}
private bool runOne = true;
private static MemoryStream GetMemoryStream(string text)
{
byte[] bytes = Encoding.UTF8.GetBytes(text);
MemoryStream ms = new MemoryStream(bytes);
ms.Position = 0;
return ms;
}
//private string GetProcInfo(XmlNode xn3, int p1, int p2, int p3)
//{
// return xn3.ChildNodes[p1].ChildNodes[p2].ChildNodes[p3].Value.Trim("\r\n ".ToCharArray());
//}
//private bool _UpdateHTML = true;
//public bool UpdateHTML
//{
// get { return _UpdateHTML; }
// set { _UpdateHTML = value; }
//}
private string IndentifySpecialCharacters(string txt)
{
StringBuilder sb = new StringBuilder();
foreach (char c in txt)
{
if (((int)c) < 32 || ((int)c) > 256)
sb.Append(string.Format("[x{0:X4}]", (int)c));
else
sb.Append(c == ' ' ? '\xb7' : c);
}
return sb.ToString();
}
private void btnRun_Click(object sender, EventArgs e)
{
ProcessTxt();
}
//Regex regColorCode = new Regex(@"(\<[^<>]+\>)([^<>]*)", RegexOptions.Singleline);
//Regex regColorCodeText = new Regex("(\t*)([^\t]*)", RegexOptions.Singleline);
//private void ColorCoded(string str)
//{
// rtbXML.Clear();
// Color fColor = Color.PaleTurquoise;
// Color fNext = Color.PaleTurquoise;
// foreach(Match m in regColorCode.Matches(str))
// {
// string fmt = m.Groups[1].Value;
// string txt = m.Groups[2].Value;
// if (fmt.StartsWith("<table"))
// fNext = fColor = Color.PaleGreen;
// else if (fmt == "</table>")
// fNext = Color.PaleTurquoise;
// else if (fmt == "<br />")
// fColor = Color.PeachPuff;
// else if (fmt == "</p>")
// fColor = Color.LightPink;
// AddToXML(fmt, fColor);
// fColor = fNext;
// foreach (Match mm in regColorCodeText.Matches(txt))
// {
// string tabs = mm.Groups[1].Value;
// string nontabs = mm.Groups[2].Value;
// AddToXML(tabs, Color.Khaki);
// AddToXML(nontabs, Color.Yellow);
// }
// }
//}
//private void AddToXML(string txt, Color fColor)
//{
// if(txt=="") return;
// rtbXML.SelectionStart = rtbXML.TextLength;
// rtbXML.SelectionBackColor = fColor;
// rtbXML.SelectedText = txt;
//}
private double GetMyOrder(Csla.SortedBindingList<FolderInfo> myList, string DVIFolderName)
{
double lastNum = 0;
// Console.WriteLine("--->>> FolderName {0} Insert Count {1}",DVIFolderName, myList.Count);
foreach (FolderInfo myFolder in myList)
{
// Console.WriteLine("--->>> FolderName {0} Insert Name {1} Insert Order {2}",DVIFolderName, myFolder.Name, myFolder.ManualOrder);
if (myFolder.Name.CompareTo(DVIFolderName) >= 0)
return (lastNum + (double)myFolder.ManualOrder) / 2.0;
lastNum = myFolder.ManualOrder ?? 1.0;
}
return lastNum + 1;
}
private void tmr_Tick(object sender, EventArgs e)
{
tmr.Enabled = false;
// If timer on the its ready to proccess
int idnew = 0;
string str = AutoFolder;
if (str != null && str.Length > 5)
{
DirectoryInfo di = new DirectoryInfo(str);
DocVersionInfo dvi = DocVersionInfo.Get((int)cmbDocVersion.SelectedValue);
VEPROMS.CSLA.Library.FolderInfo grandParent = dvi.ActiveParent.ActiveParent as FolderInfo;
using (VEPROMS.CSLA.Library.Folder flder = MakeFolder(str, grandParent))
{
ROFstInfo fst = dvi.DocVersionAssociations[0].MyROFst;
flder.ManualOrder = 0;
double myOrder = GetMyOrder(grandParent.SortedChildFolders, str); flder.ManualOrder = myOrder;
//Console.WriteLine("myOrder = {0}, flder = {1}", myOrder, flder.ManualOrder);
flder.Save();
// create a a DocVersion
using (DocVersion dv = DocVersion.MakeDocVersion(flder, "Working Draft", null, null, null, null))
{
dv.DocVersionAssociations.Add(fst.Get());
dv.Save();
idnew = dv.VersionID;
}
}
ProcessFolder(di, DocVersionInfo.Get(idnew));
}
this.Close();
}
private static Folder MakeFolder(string str, VEPROMS.CSLA.Library.FolderInfo grandParent)
{
int num = 0;
foreach(FolderInfo chld in grandParent.ChildFolders)
{
if(chld.Name.StartsWith(str))
{
if(chld.Name.StartsWith(str + "."))
{
string str2=chld.Name.Substring(str.Length+1);
num = Math.Max(int.Parse(str2)+1,num);
}
else num=1;
}
}
return Folder.MakeFolder(grandParent.Get(), null, str+(num==0?"":"." + num.ToString()), str, str.Substring(12, 2), null, 1, null);
}
private static string _AutoFolder = null;
private static string AutoFolder
{
get
{
if (_AutoFolder == null)
{
_AutoFolder = System.Environment.CommandLine;
_AutoFolder = _AutoFolder.Substring(_AutoFolder.IndexOf(@".exe"" ") + 6).Trim(" \t\r\n".ToCharArray());
}
if (_AutoFolder.Length < 1)
return null;
return _AutoFolder;
}
}
private void frmConvertAlarms_Load(object sender, EventArgs e)
{
_MyFlexGrid = new VlnFlexGrid();
LoadSettings();
SetEventHandlers();
string str = AutoFolder;
if (str != null && str.Length > 5)
{
tmr.Enabled = true;
}
}
private void SetEventHandlers()
{
tbFileName.TextChanged += tbFileName_TextChanged;
Move += frmConvertAlarms_Move;
Resize += frmConvertAlarms_Resize;
sc1.SplitterMoved += sc1_SplitterMoved;
//sc2.SplitterMoved += sc2_SplitterMoved;
tbServer.TextChanged+=tbServer_TextChanged;
cmbDatabase.TextChanged+=cmbDatabase_TextChanged;
cmbDatabase.Click += cmbDatabase_Click;
cmbDocVersion.TextChanged+=cmbDocVersion_TextChanged;
//BuildTableCombo();
//BuildProcedureSetCombo();
}
void cmbDatabase_Click(object sender, EventArgs e)
{
Properties.Settings.Default.Database = cmbDatabase.Text;
Properties.Settings.Default.Save();
BuildProcedureSetCombo();
}
private void BuildProcedureSetCombo()
{
DocVersionInfoList dvil = DocVersionInfoList.Get();
cmbDocVersion.DataSource = dvil;
cmbDocVersion.DisplayMember = "SearchDVPath";
cmbDocVersion.ValueMember = "VersionId";
}
private void cmbDocVersion_TextChanged(object sender, EventArgs e)
{
Properties.Settings.Default.ProcedureSet = (int) cmbDocVersion.SelectedValue;
Properties.Settings.Default.Save();
}
private void cmbDatabase_TextChanged(object sender, EventArgs e)
{
Properties.Settings.Default.Database = cmbDatabase.Text;
Properties.Settings.Default.Save();
BuildProcedureSetCombo();
}
private void tbServer_TextChanged(object sender, EventArgs e)
{
Properties.Settings.Default.SqlServer = tbServer.Text;
Properties.Settings.Default.Save();
string db = cmbDatabase.Text;
try
{
BuildDatabaseCombo();
}
catch (Exception ex)
{
tsslStatus.Text = ex.Message;
}
}
private void BuildDatabaseCombo()
{
string tmp = string.Format("Data Source={0};Initial Catalog={1};Integrated Security=True",tbServer.Text,"MASTER");
SqlConnection cn = new SqlConnection(tmp);
cn.Open();
// SqlDataAdapter da = new SqlDataAdapter("select name from sysdatabases where name like 'VEP%' order by name", cn);
//SqlDataAdapter da = new SqlDataAdapter("select name, case when object_id('[' + name + ']..Items') is null then 'Not PROMS' when object_id('[' + name + ']..Revisions') is not null then 'Approval' when object_id('[' + name + ']..ContentAudits') is not null then 'Change Manager' else 'Original' end functionality from sysdatabases where name not in ('master','model','msdb','tempdb') order by name", cn);
SqlDataAdapter da = new SqlDataAdapter("select name, 'Approval' functionality from sysdatabases where name not in ('master','model','msdb','tempdb') order by name", cn);
da.SelectCommand.CommandTimeout = 300; // 300 sec timeout
DataSet ds = new DataSet();
try
{
da.Fill(ds);
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.GetType().Name, ex.Message);
throw (new Exception("Cannot Load Data List", ex));
}
cn.Close();
//System.Windows.Forms.ContextMenuStrip cms = new System.Windows.Forms.ContextMenuStrip();
//cms.Items.Add("Choose Database");
//System.Windows.Forms.ToolStripMenuItem tsmi = cms.Items[0] as System.Windows.Forms.ToolStripMenuItem;
//tsmi.BackColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.ActiveCaption);// System.Drawing.Color.Pink;
//tsmi.ForeColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.ActiveCaptionText);
//tsmi.Font = new System.Drawing.Font(tsmi.Font, System.Drawing.FontStyle.Bold);
foreach (DataRow dr in ds.Tables[0].Rows)
{
if (dr["functionality"].ToString() == "Approval")
cmbDatabase.Items.Add( dr["name"].ToString());
}
}
void frmConvertAlarms_Resize(object sender, EventArgs e)
{
Properties.Settings.Default.Size = Size;
Properties.Settings.Default.Save();
}
void frmConvertAlarms_Move(object sender, EventArgs e)
{
Properties.Settings.Default.Location = Location;
Properties.Settings.Default.Save();
}
void tbFileName_TextChanged(object sender, EventArgs e)
{
Properties.Settings.Default.FileName = tbFileName.Text;
Properties.Settings.Default.Save();
}
private void sc1_SplitterMoved(object sender, SplitterEventArgs e)
{
Properties.Settings.Default.Split1 = sc1.SplitterDistance;
Properties.Settings.Default.Save();
}
private void LoadSettings()
{
Size = Properties.Settings.Default.Size;
Location = Properties.Settings.Default.Location;
if (Properties.Settings.Default.FileName != null && Properties.Settings.Default.FileName != "")
{
FileInfo fi = new FileInfo(Properties.Settings.Default.FileName);
tbFileName.Text = fi.FullName;
}
sc1.SplitterDistance = Properties.Settings.Default.Split1;
tbServer.Text = Properties.Settings.Default.SqlServer;
cmbDatabase.Text = Properties.Settings.Default.Database;
try
{
BuildDatabaseCombo();
Database.VEPROMS_Connection = string.Format("Data Source={0};Initial Catalog={1};Integrated Security=True", tbServer.Text, cmbDatabase.Text);
BuildProcedureSetCombo();
cmbDocVersion.SelectedValue = Properties.Settings.Default.ProcedureSet;
}
catch (Exception ex)
{
tsslStatus.Text = ex.Message;
}
}
private void tsslStatus_Click(object sender, EventArgs e)
{
}
//private void rtbXML_SelectionChanged(object sender, EventArgs e)
//{
//}
//private void tbXML_TextChanged(object sender, EventArgs e)
//{
// if (UpdateHTML)
// {
// htmlChanged(tbXML.Text);
// XMLChanged(tbXML.Text);
// ColorCoded(tbXML.Text);
// }
//}
//private bool _UpdateTbXML = true;
//public bool UpdateTbXML
//{
// get { return _UpdateTbXML; }
// set { _UpdateTbXML = value; }
//}
//private void rtbXML_TextChanged(object sender, EventArgs e)
//{
// //if (UpdateHTML)
// //{
// // UpdateHTML = false;
// // htmlChanged(rtbXML.Text);
// // XMLChanged(rtbXML.Text);
// // tbXML.Text = rtbXML.Text;
// // UpdateHTML = true;
// //}
//}
private void btnConvert_Click(object sender, EventArgs e)
{
DocVersionInfo dvi = DocVersionInfo.Get((int)cmbDocVersion.SelectedValue);
try
{
SaveProcedure(ProcTextAll, ProcNumber, ProcTitle, dvi);
}
catch (Exception ex)
{
Console.WriteLine("Error: {0}.{1} {2} {3}",dvi.MyFolder.Name,ProcNumber, ex.GetType().Name, ex.Message);
}
}
//SortedDictionary<int, ItemInfo> dicSerialNo;
private void btnAll_Click(object sender, EventArgs e)
{
//dicSerialNo = new SortedDictionary<int, ItemInfo>();
FileInfo fi = new FileInfo(tbFileName.Text);
DirectoryInfo di = fi.Directory;
// Loop through list
DocVersionInfo dvi = DocVersionInfo.Get((int)cmbDocVersion.SelectedValue);
ProcessFolder(di,dvi);
}
private void ProcessFolder(DirectoryInfo di, DocVersionInfo dvi)
{
runOne = false;
// Get List of files
//DocVersionInfo dvi = DocVersionInfo.Get((int)cmbDocVersion.SelectedValue);
foreach (FileInfo f in di.GetFiles("*.txt"))
{
if (f.Name.StartsWith("AlarmData") == false && f.Name.Length > 14)
{
tsslStatus.Text = f.Name;
Application.DoEvents();
// Process each file
try
{
ProcessTxtFile(f.FullName);
// Convert each file
//SaveProcedure(ProcTextAll, ProcNumber, ProcTitle, SerialNo);
SaveProcedure(ProcTextAll, ProcNumber, ProcTitle, dvi);
}
catch (Exception ex)
{
Console.WriteLine("Error: {0}.{1} {2} {3}", di.Name, f.Name, ex.GetType().Name, ex.Message);
}
//SaveProcedure(ProcTextAll, ProcNumber, ProcTitle, dvi);
}
}
runOne = true;
}
private void statusStrip1_Click(object sender, EventArgs e)
{
if (tbPROMS.SelectedText != "")
{
tsslStatus.Text = string.Format("Selection = '{0}'", IndentifySpecialCharacters(tbPROMS.SelectedText));
Clipboard.Clear();
Clipboard.SetText(IndentifySpecialCharacters(tbPROMS.SelectedText));
}
}
private void statusStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
if (tbPROMS.SelectedText != "")
{
tsslStatus.Text = string.Format("Selection = '{0}'", IndentifySpecialCharacters(tbPROMS.SelectedText));
Clipboard.Clear();
Clipboard.SetText(IndentifySpecialCharacters(tbPROMS.SelectedText));
}
}
}
}
@@ -1,132 +0,0 @@
<?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>
<metadata name="ofd.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>87, 17</value>
</metadata>
<metadata name="tmr.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>203, 3</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>25</value>
</metadata>
</root>
-6
View File
@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
-48
View File
@@ -1,48 +0,0 @@
namespace ReadFile
{
partial class Form1
{
/// <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.SuspendLayout();
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(540, 262);
this.Name = "Form1";
this.Text = "Form1";
this.Load += new System.EventHandler(this.Form1_Load);
this.ResumeLayout(false);
}
#endregion
}
}
-121
View File
@@ -1,121 +0,0 @@
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;
using System.IO;
namespace ReadFile
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Test();
}
public void Test()
{
// Use default replacement fallback for invalid encoding.
//UnicodeEncoding enc = new UnicodeEncoding(true, false, false);
UTF8Encoding enc = new UTF8Encoding();
// Define a string with various Unicode characters.
string str1 = "AB YZ 19 DEGREE \xb0 BULLET \x95 \uD800\udc05 \u00e4";
str1 += "Unicode characters. \u00a9 \u010C s \u0062\u0308";
Console.WriteLine("Created original string...\n");
// Convert string to byte array.
byte[] bytes = enc.GetBytes(str1);
FileStream fs = File.Create(@".\characters.bin");
BinaryWriter bw = new BinaryWriter(fs);
bw.Write(bytes);
bw.Close();
// Read bytes from file.
FileStream fsIn = File.OpenRead(@".\characters.bin");
BinaryReader br = new BinaryReader(fsIn);
const int count = 10; // Number of bytes to read at a time.
byte[] bytesRead = new byte[10]; // Buffer (byte array).
int read; // Number of bytes actually read.
string str2 = String.Empty; // Decoded string.
// Try using Encoding object for all operations.
do
{
read = br.Read(bytesRead, 0, count);
str2 += enc.GetString(bytesRead, 0, read);
} while (read == count);
br.Close();
Console.WriteLine("Decoded string using UnicodeEncoding.GetString()...");
CompareForEquality(str1, str2);
Console.WriteLine();
// Use Decoder for all operations.
fsIn = File.OpenRead(@".\characters.bin");
br = new BinaryReader(fsIn);
Decoder decoder = enc.GetDecoder();
char[] chars = new char[50];
int index = 0; // Next character to write in array.
int written = 0; // Number of chars written to array.
do
{
read = br.Read(bytesRead, 0, count);
if (index + decoder.GetCharCount(bytesRead, 0, read) - 1 >= chars.Length)
Array.Resize(ref chars, chars.Length + 50);
written = decoder.GetChars(bytesRead, 0, read, chars, index);
index += written;
} while (read == count);
br.Close();
// Instantiate a string with the decoded characters.
string str3 = new String(chars, 0, index);
Console.WriteLine("Decoded string using UnicodeEncoding.Decoder.GetString()...");
CompareForEquality(str1, str3);
}
private static void CompareForEquality(string original, string decoded)
{
bool result = original.Equals(decoded);
Console.WriteLine("original = decoded: {0}",
original.Equals(decoded, StringComparison.Ordinal));
if (!result)
{
Console.WriteLine("Code points in original string:{0}",original);
foreach (var ch in original)
Console.Write("{0} ", Convert.ToUInt16(ch).ToString("X4"));
Console.WriteLine();
Console.WriteLine("Code points in decoded string:{0}",decoded);
foreach (var ch in decoded)
Console.Write("{0} ", Convert.ToUInt16(ch).ToString("X4"));
Console.WriteLine();
}
}
// The example displays the following output:
// Created original string...
//
// Decoded string using UnicodeEncoding.GetString()...
// original = decoded: False
// Code points in original string:
// 0041 0042 0020 0059 005A 0020 0031 0039 0020 D800 DC05 0020 00E4 0055 006E 0069 0063 006F
// 0064 0065 0020 0063 0068 0061 0072 0061 0063 0074 0065 0072 0073 002E 0020 00A9 0020 010C
// 0020 0073 0020 0062 0308
// Code points in decoded string:
// 0041 0042 0020 0059 005A 0020 0031 0039 0020 FFFD FFFD 0020 00E4 0055 006E 0069 0063 006F
// 0064 0065 0020 0063 0068 0061 0072 0061 0063 0074 0065 0072 0073 002E 0020 00A9 0020 010C
// 0020 0073 0020 0062 0308
//
// Decoded string using UnicodeEncoding.Decoder.GetString()...
// original = decoded: True
}
}
-22
View File
@@ -1,22 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ReadFile
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
@@ -1,36 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("ReadFile")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ReadFile")]
[assembly: AssemblyCopyright("Copyright © 2019")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("d6efcdc1-06b8-4c4d-b126-515701db696b")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
@@ -1,71 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace ReadFile.Properties
{
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources
{
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources()
{
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager
{
get
{
if ((resourceMan == null))
{
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ReadFile.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture
{
get
{
return resourceCulture;
}
set
{
resourceCulture = value;
}
}
}
}
@@ -1,117 +0,0 @@
<?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.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: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" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</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" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
@@ -1,30 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace ReadFile.Properties
{
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
{
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default
{
get
{
return defaultInstance;
}
}
}
}
@@ -1,112 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{D83BC593-811C-4D32-81B2-9C6031AFDAF5}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ReadFile</RootNamespace>
<AssemblyName>ReadFile</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x86\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<OutputPath>bin\x86\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Form1.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="Form1.resx">
<DependentUpon>Form1.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/>
</startup>
</configuration>
@@ -1,172 +0,0 @@
using C1.Win.C1FlexGrid;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml;
using VEPROMS.CSLA.Library;
using Volian.Controls.Library;
namespace XMLConvert
{
public partial class frmConvertXML
{
private static void LoadTable2(XmlNode xn, StepLookup mySteps, int level)
{
XmlNode xn2 = xn.SelectSingleNode("tr/td/table");
if (xn2 != null) xn = xn2;
VlnFlexGrid fg = _MyFlexGrid;
fg.Font = new Font("Arial", 11, FontStyle.Regular, GraphicsUnit.Point);
fg.Clear();
fg.Rows.Count = 1;
fg.Cols.Count = 1;
int rows = 0;
fg.MergedRanges.Clear();
foreach (XmlNode xr in xn.ChildNodes)
{
if (xr.Name == "tr")
{
++rows;
AddTableRow(xr, fg, rows);
}
}
fg.MyBorders = new VlnBorders(GridLinePattern.Single, fg.Rows.Count, fg.Cols.Count);
fg.BringToFront();
fg.Invalidate();
Application.DoEvents();
fg.MakeRTFcells();
//Well, Can I save the table
using (Step step = MakeCSLAStep(mySteps, mySteps.Count, null, "table", 20008, E_FromType.Table))
{
Grid.MakeGrid(step.MyContent, fg.GetXMLData(), "");
}
}
public static VlnFlexGrid _MyFlexGrid = null;
private static void AddTableRow(XmlNode xr, VlnFlexGrid fg, int rows)
{
if (rows > fg.Rows.Count)
fg.Rows.Count = rows;
int cols = 0;
foreach (XmlNode xc in xr.ChildNodes)
{
++cols;
//if (xc.InnerText.Contains("RC-V200"))
// Console.WriteLine(xc.InnerText);
//if (xc.InnerText.Contains("RC-V121"))
// Console.WriteLine(xc.InnerText);
//if (xc.InnerXml.Contains("AB 137") || xc.InnerXml.Contains("3013N01"))
// Console.WriteLine("here");
CellRange cr2 = GetMyMergedRange(fg, rows - 1, cols - 1);
//Console.WriteLine("Check {0}", cr2);
while (cr2.c1 != cols - 1 || cr2.r1 != rows - 1)
{
cols++;
cr2 = GetMyMergedRange(fg, rows - 1, cols - 1);
}
AddMergedCells(fg, rows, cols, xc);
//ShowMergedCells(fg);
if (xc.Name == "td")
{
AddTableColumn(xc, fg, rows, cols);
}
}
}
private static void ShowMergedCells(VlnFlexGrid fg)
{
for (int r = 0; r < fg.Rows.Count; r++)
{
for (int c = 0; c < fg.Cols.Count; c++)
{
CellRange cr3 = GetMyMergedRange(fg, r, c);
if (fg.MergedRanges.Contains(cr3))
Console.WriteLine("*** cr3 r={0},c={1},rng={2}", r, c, cr3);
}
}
}
private static int GetSpan(string span)
{
int retval = int.Parse("0" + (span ?? ""));
if (retval == 0) return 0;
return retval - 1;
}
private static void AddMergedCells(VlnFlexGrid fg, int rows, int cols, XmlNode xc)
{
string colspan = GetAttribute(xc, "colspan");
string rowspan = GetAttribute(xc, "rowspan");
if (colspan != null || rowspan != null)
{
//AddMergedRanges
int r1 = rows;
int c1 = cols;
int r2 = r1 + GetSpan(rowspan);
if (r2 > fg.Rows.Count) fg.Rows.Count = r2;
int c2 = c1 + GetSpan(colspan);
if (c2 > fg.Cols.Count) fg.Cols.Count = c2;
CellRange cr = new CellRange();
cr.r1 = r1 - 1;
cr.r2 = r2 - 1;
cr.c1 = c1 - 1;
cr.c2 = c2 - 1;
fg.MergedRanges.Add(cr);
//Console.WriteLine("Merged {0}", cr);
}
}
private static CellRange GetMyMergedRange(VlnFlexGrid fg, int r, int c)
{
foreach (CellRange cr in fg.MergedRanges)
{
if (cr.r1 <= r && cr.r2 >= r && cr.c1 <= c && cr.c2 >= c)
return cr;
}
return fg.GetMergedRange(r, c);
}
private static Regex regNumber = new Regex("^[0-9]+$", RegexOptions.Compiled);
private static void AddTableColumn(XmlNode xc, VlnFlexGrid fg, int rows, int cols)
{
//Console.WriteLine("Rows {0}, Cols {1}", rows, cols);
if (cols > fg.Cols.Count)
fg.Cols.Count = cols;
string width = GetAttribute(xc, "width");
if (width != null && width != "" && regNumber.IsMatch(width))
{
if (width.EndsWith("%"))
fg.Cols[cols - 1].Width = (int)(int.Parse(width.Replace("%", "")) * 96 * 6.5F / 100);
else
fg.Cols[cols - 1].Width = int.Parse(width) * 96 / 72;
}
StringBuilder sb = new StringBuilder();
string prefix = "";
foreach (XmlNode xn in xc.ChildNodes)
{
if (xn.Name == "p")
{
sb.Append(prefix + xn.InnerText);
}
if (xn.Name == "ul")
{
foreach (XmlNode xn2 in xn.ChildNodes)
{
if (xn2.Name == "li")
{
sb.Append(prefix + "*" + xn.InnerText);
}
if (xn2.Name == "p")
{
sb.Append(prefix + xn.InnerText);
}
}
}
}
if (width != null && width != "" && !regNumber.IsMatch(width))
{
Console.WriteLine("*** width is not a number {0}, rows {1}, cols {2}, Text='{3}'", width, rows, cols, xc.OuterXml);
}
fg[rows - 1, cols - 1] = sb.ToString();
}
}
}
@@ -1,22 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace XMLConvert
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new frmConvertXML());
}
}
}
@@ -1,36 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("XMLConvert")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("XMLConvert")]
[assembly: AssemblyCopyright("Copyright © 2018")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("76909147-264a-4d49-84e9-6c6da792991a")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
@@ -1,63 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace XMLConvert.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("XMLConvert.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}
@@ -1,117 +0,0 @@
<?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.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: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" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</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" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
@@ -1,26 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace XMLConvert.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
}
}
@@ -1,7 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>
@@ -1 +0,0 @@
C1.Win.C1FlexGrid.C1FlexGrid, C1.Win.C1FlexGrid.2, Version=2.6.20142.835, Culture=neutral, PublicKeyToken=79882d576c6336da
@@ -1,319 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace XMLConvert
{
public partial class frmConvertXML
{
private string xmlSample1 = @"<C1FlexGrid version='1.0.5612.18617'>
<Control>
<MyBorderDetailString>&lt;?xml version='1.0' encoding='utf-16'?&gt;
&lt;VlnBorders Rows='5' Columns='3'&gt;
&lt;VerticalLines Rows='5' Columns='4'&gt;
&lt;Lines&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;/Lines&gt;
&lt;/VerticalLines&gt;
&lt;HorizontalLines Rows='6' Columns='3'&gt;
&lt;Lines&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;GridLinePattern&gt;Single&lt;/GridLinePattern&gt;
&lt;/Lines&gt;
&lt;/HorizontalLines&gt;
&lt;/VlnBorders&gt;</MyBorderDetailString>
<MyBorders>Volian Custom Borders</MyBorders>
<IsRoTable>False</IsRoTable>
<RODbId>0</RODbId>
<DPI>96</DPI>
<FirstEntry>False</FirstEntry>
<BorderColor>Black</BorderColor>
<StyleBackColor>255, 255, 255</StyleBackColor>
<AllowMerging>Custom</AllowMerging>
<AllowResizing>Both</AllowResizing>
<HighLight>WithFocus</HighLight>
<FocusRect>Solid</FocusRect>
<DrawMode>OwnerDraw</DrawMode>
<BackColor>255, 255, 255</BackColor>
<VisualStyle>Custom</VisualStyle>
<ScrollBars>None</ScrollBars>
<Cursor>Default</Cursor>
<Font>Courier New, 12pt</Font>
<Margin>3, 3, 3, 3</Margin>
<MaximumSize>0, 0</MaximumSize>
<MinimumSize>0, 0</MinimumSize>
<RightToLeft>No</RightToLeft>
<Padding>0, 0, 0, 0</Padding>
<ImeMode>NoControl</ImeMode>
</Control>
<ColumnInfo>
<Count>3</Count>
<Fixed>0</Fixed>
<DefaultSize>125</DefaultSize>
</ColumnInfo>
<Columns>
<Column index='0'>
<Width>68</Width>
</Column>
<Column index='1'>
<Width>178</Width>
</Column>
<Column index='2'>
<Width>368</Width>
</Column>
</Columns>
<RowInfo>
<Count>5</Count>
<Fixed>0</Fixed>
<DefaultSize>25</DefaultSize>
</RowInfo>
<Rows>
<Row index='0'>
<Height>25</Height>
</Row>
<Row index='1'>
<Height>25</Height>
</Row>
<Row index='2'>
<Height>25</Height>
</Row>
<Row index='3'>
<Height>25</Height>
</Row>
<Row index='4'>
<Height>51</Height>
</Row>
</Rows>
<Cells>
<Cell index='0,0'>
<Data>{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}}
\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 PROC \par
}
</Data>
<UserData type='System.Int32'>16</UserData>
</Cell>
<Cell index='0,1'>
<Data>{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}}
\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 PROC TITLE \par
}
</Data>
<UserData type='System.Int32'>16</UserData>
</Cell>
<Cell index='0,2'>
<Data>{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}}
\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 FUNCTION \par
}
</Data>
<UserData type='System.Int32'>16</UserData>
</Cell>
<Cell index='1,0'>
<Data>{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}}
\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 R-3 \par
}
</Data>
<UserData type='System.Int32'>16</UserData>
</Cell>
<Cell index='1,1'>
<Data>{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}}
\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 Restore CCW \par
}
</Data>
<UserData type='System.Int32'>16</UserData>
</Cell>
<Cell index='1,2'>
<Data>{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}}
\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 Cross-tie CCW from Unit Two \par
}
</Data>
<UserData type='System.Int32'>16</UserData>
</Cell>
<Cell index='2,0'>
<Data>{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}}
\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 R-11 \par
}
</Data>
<UserData type='System.Int32'>16</UserData>
</Cell>
<Cell index='2,1'>
<Data>{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}}
\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 Restore RHR \par
}
</Data>
<UserData type='System.Int32'>16</UserData>
</Cell>
<Cell index='2,2'>
<Data>{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}}
\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 Repower RHR pump(s) from Unit Two \par
}
</Data>
<UserData type='System.Int32'>16</UserData>
</Cell>
<Cell index='3,0'>
<Data>{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}}
\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 LS-2 \par
}
</Data>
<UserData type='System.Int32'>16</UserData>
</Cell>
<Cell index='3,1'>
<Data>{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}}
\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 Start-up AFW \par
}
</Data>
<UserData type='System.Int32'>16</UserData>
</Cell>
<Cell index='3,2'>
<Data>{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}}
\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 Cross-tie AFW from Unit Two \par
}
</Data>
<UserData type='System.Int32'>16</UserData>
</Cell>
<Cell index='4,0'>
<Data>{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}}
\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 LS-6 \par
\par
\par
}
</Data>
<UserData type='System.Int32'>48</UserData>
</Cell>
<Cell index='4,1'>
<Data>{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}}
\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 RCS Make-up \par
With CVCS \par
Cross-tie \par
}
</Data>
<UserData type='System.Int32'>48</UserData>
</Cell>
<Cell index='4,2'>
<Data>{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}}
\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 CVCS Cross-tie For Level Control\par
\par
}
</Data>
<UserData type='System.Int32'>32</UserData>
</Cell>
</Cells>
<Styles>
<Style>
<Name>Normal</Name>
<Definition>Font:Courier New, 12pt;BackColor:255, 255, 255;TextAlign:LeftTop;Border:Flat,1,Black,Both;</Definition>
</Style>
<Style>
<Name>Alternate</Name>
<Definition>BackColor:255, 255, 255;</Definition>
</Style>
<Style>
<Name>Fixed</Name>
<Definition>BackColor:Control;ForeColor:ControlText;Border:Flat,1,ControlDark,Both;BackgroundImageLayout:Hide;</Definition>
</Style>
<Style>
<Name>Highlight</Name>
<Definition>BackColor:LightCyan;ForeColor:Black;</Definition>
</Style>
<Style>
<Name>Focus</Name>
<Definition>BackColor:LightCyan;ForeColor:Black;</Definition>
</Style>
<Style>
<Name>Editor</Name>
</Style>
<Style>
<Name>Search</Name>
<Definition>BackColor:Highlight;ForeColor:HighlightText;</Definition>
</Style>
<Style>
<Name>Frozen</Name>
<Definition>BackColor:Beige;</Definition>
</Style>
<Style>
<Name>NewRow</Name>
<Definition>ForeColor:GrayText;</Definition>
</Style>
<Style>
<Name>EmptyArea</Name>
<Definition>BackColor:Transparent;Border:None,1,Black,Both;</Definition>
</Style>
<Style>
<Name>SelectedColumnHeader</Name>
</Style>
<Style>
<Name>SelectedRowHeader</Name>
</Style>
<Style>
<Name>GrandTotal</Name>
<Definition>BackColor:Black;ForeColor:White;</Definition>
</Style>
<Style>
<Name>Subtotal0</Name>
<Definition>BackColor:ControlDarkDark;ForeColor:White;</Definition>
</Style>
<Style>
<Name>Subtotal1</Name>
<Definition>BackColor:ControlDarkDark;ForeColor:White;</Definition>
</Style>
<Style>
<Name>Subtotal2</Name>
<Definition>BackColor:ControlDarkDark;ForeColor:White;</Definition>
</Style>
<Style>
<Name>Subtotal3</Name>
<Definition>BackColor:ControlDarkDark;ForeColor:White;</Definition>
</Style>
<Style>
<Name>Subtotal4</Name>
<Definition>BackColor:ControlDarkDark;ForeColor:White;</Definition>
</Style>
<Style>
<Name>Subtotal5</Name>
<Definition>BackColor:ControlDarkDark;ForeColor:White;</Definition>
</Style>
<Style>
<Name>FilterEditor</Name>
</Style>
<Style>
<Name>FirstCustomStyle</Name>
</Style>
</Styles>
</C1FlexGrid>";
}
}
@@ -1,141 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>XMLConvert</RootNamespace>
<AssemblyName>XMLConvert</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x86\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<OutputPath>bin\x86\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="C1.Win.C1FlexGrid.2, Version=2.6.20142.835, Culture=neutral, PublicKeyToken=79882d576c6336da, processorArchitecture=MSIL" />
<Reference Include="Csla">
<HintPath>..\..\..\..\..\..\..\Development\csla20cs\Csla\bin\Debug\Csla.dll</HintPath>
</Reference>
<Reference Include="DevComponents.DotNetBar2, Version=14.0.0.11, Culture=neutral, PublicKeyToken=7eb7c3a35b91de04, processorArchitecture=MSIL" />
<Reference Include="log4net">
<HintPath>..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\log4net.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Design" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="VEPROMS.CSLA.Library">
<HintPath>..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\VEPROMS.CSLA.Library.dll</HintPath>
</Reference>
<Reference Include="Volian.Base.Library, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\Volian.Base.Library.dll</HintPath>
</Reference>
<Reference Include="Volian.Controls.Library">
<HintPath>..\..\..\..\..\..\..\Development\Proms\Volian.Controls.Library\bin\Debug\Volian.Controls.Library.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="ConvertTable.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SampleXML.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmConvertXML.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmConvertXML.Designer.cs">
<DependentUpon>frmConvertXML.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="vlnhtml.cs" />
<EmbeddedResource Include="frmConvertXML.resx">
<DependentUpon>frmConvertXML.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\licenses.licx" />
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
-434
View File
@@ -1,434 +0,0 @@
namespace XMLConvert
{
partial class frmConvertXML
{
/// <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.label1 = new System.Windows.Forms.Label();
this.tbFile = new System.Windows.Forms.TextBox();
this.btnLoad = new System.Windows.Forms.Button();
this.tbResults = new System.Windows.Forms.TextBox();
this.btnFindNodeTypes = new System.Windows.Forms.Button();
this.btnStructure = new System.Windows.Forms.Button();
this.btnLoadContent = new System.Windows.Forms.Button();
this.btnLoadProcedure = new System.Windows.Forms.Button();
this.btnBrowse = new System.Windows.Forms.Button();
this.ofd = new System.Windows.Forms.OpenFileDialog();
this.pbSection = new DevComponents.DotNetBar.Controls.ProgressBarX();
this.pbStep = new DevComponents.DotNetBar.Controls.ProgressBarX();
this.btnAll = new System.Windows.Forms.Button();
this.btnAllStructure = new System.Windows.Forms.Button();
this.pbProcs = new DevComponents.DotNetBar.Controls.ProgressBarX();
this.btnAllStructure2 = new System.Windows.Forms.Button();
this.lblProcedure = new System.Windows.Forms.Label();
this.lblSection = new System.Windows.Forms.Label();
this.lblStep = new System.Windows.Forms.Label();
this.btnAllContent = new System.Windows.Forms.Button();
this.btnHTML = new System.Windows.Forms.Button();
this.btnHTML2 = new System.Windows.Forms.Button();
this.btnCandN = new System.Windows.Forms.Button();
this.btnHTLM3 = new System.Windows.Forms.Button();
this.btnAllContent2 = new System.Windows.Forms.Button();
this.btnVerbs = new System.Windows.Forms.Button();
this.btnFigures = new System.Windows.Forms.Button();
this.btnTables = new System.Windows.Forms.Button();
this.bntTable2 = new System.Windows.Forms.Button();
this.btnStepOrNo = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(22, 19);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(48, 13);
this.label1.TabIndex = 0;
this.label1.Text = "XML File";
//
// tbFile
//
this.tbFile.Location = new System.Drawing.Point(85, 17);
this.tbFile.Name = "tbFile";
this.tbFile.Size = new System.Drawing.Size(578, 20);
this.tbFile.TabIndex = 1;
this.tbFile.Text = "C:\\Development\\Proms\\Barakah\\AOPRev1\\AOP CPP Batch 1\\XML\\procedure\\1N2-OP-AOP-MP-" +
"0001 Rev01 FINAL - Main Transformer Abnormal.xml";
//
// btnLoad
//
this.btnLoad.Location = new System.Drawing.Point(12, 43);
this.btnLoad.Name = "btnLoad";
this.btnLoad.Size = new System.Drawing.Size(58, 23);
this.btnLoad.TabIndex = 2;
this.btnLoad.Text = "Load";
this.btnLoad.UseVisualStyleBackColor = true;
this.btnLoad.Click += new System.EventHandler(this.btnLoad_Click);
//
// tbResults
//
this.tbResults.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tbResults.Location = new System.Drawing.Point(12, 183);
this.tbResults.Multiline = true;
this.tbResults.Name = "tbResults";
this.tbResults.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.tbResults.Size = new System.Drawing.Size(726, 351);
this.tbResults.TabIndex = 3;
this.tbResults.KeyDown += new System.Windows.Forms.KeyEventHandler(this.tbResults_KeyDown);
//
// btnFindNodeTypes
//
this.btnFindNodeTypes.Location = new System.Drawing.Point(76, 43);
this.btnFindNodeTypes.Name = "btnFindNodeTypes";
this.btnFindNodeTypes.Size = new System.Drawing.Size(92, 23);
this.btnFindNodeTypes.TabIndex = 4;
this.btnFindNodeTypes.Text = "FindNodeTypes";
this.btnFindNodeTypes.UseVisualStyleBackColor = true;
this.btnFindNodeTypes.Click += new System.EventHandler(this.btnFindNodeTypes_Click);
//
// btnStructure
//
this.btnStructure.Location = new System.Drawing.Point(174, 43);
this.btnStructure.Name = "btnStructure";
this.btnStructure.Size = new System.Drawing.Size(59, 23);
this.btnStructure.TabIndex = 5;
this.btnStructure.Text = "Structure";
this.btnStructure.UseVisualStyleBackColor = true;
this.btnStructure.Click += new System.EventHandler(this.btnStructure_Click);
//
// btnLoadContent
//
this.btnLoadContent.Location = new System.Drawing.Point(270, 43);
this.btnLoadContent.Name = "btnLoadContent";
this.btnLoadContent.Size = new System.Drawing.Size(83, 23);
this.btnLoadContent.TabIndex = 6;
this.btnLoadContent.Text = "Load Content";
this.btnLoadContent.UseVisualStyleBackColor = true;
this.btnLoadContent.Click += new System.EventHandler(this.btnLoadContent_Click);
//
// btnLoadProcedure
//
this.btnLoadProcedure.AccessibleDescription = "z";
this.btnLoadProcedure.Location = new System.Drawing.Point(643, 43);
this.btnLoadProcedure.Name = "btnLoadProcedure";
this.btnLoadProcedure.Size = new System.Drawing.Size(95, 23);
this.btnLoadProcedure.TabIndex = 7;
this.btnLoadProcedure.Text = "Load Procedure";
this.btnLoadProcedure.UseVisualStyleBackColor = true;
this.btnLoadProcedure.Click += new System.EventHandler(this.btnLoadProcedure_Click);
//
// btnBrowse
//
this.btnBrowse.Location = new System.Drawing.Point(669, 14);
this.btnBrowse.Name = "btnBrowse";
this.btnBrowse.Size = new System.Drawing.Size(75, 23);
this.btnBrowse.TabIndex = 8;
this.btnBrowse.Text = "Browse";
this.btnBrowse.UseVisualStyleBackColor = true;
this.btnBrowse.Click += new System.EventHandler(this.btnBrowse_Click);
//
// ofd
//
this.ofd.FileName = "openFileDialog1";
//
// pbSection
//
//
//
//
this.pbSection.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.pbSection.Location = new System.Drawing.Point(99, 141);
this.pbSection.Name = "pbSection";
this.pbSection.Size = new System.Drawing.Size(639, 12);
this.pbSection.TabIndex = 9;
this.pbSection.Text = "progressBarX1";
//
// pbStep
//
//
//
//
this.pbStep.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.pbStep.Location = new System.Drawing.Point(99, 159);
this.pbStep.Name = "pbStep";
this.pbStep.Size = new System.Drawing.Size(639, 13);
this.pbStep.TabIndex = 10;
this.pbStep.Text = "progressBarX2";
//
// btnAll
//
this.btnAll.Location = new System.Drawing.Point(705, 72);
this.btnAll.Name = "btnAll";
this.btnAll.Size = new System.Drawing.Size(33, 23);
this.btnAll.TabIndex = 11;
this.btnAll.Text = "All";
this.btnAll.UseVisualStyleBackColor = true;
this.btnAll.Click += new System.EventHandler(this.btnAll_Click);
//
// btnAllStructure
//
this.btnAllStructure.Location = new System.Drawing.Point(186, 72);
this.btnAllStructure.Name = "btnAllStructure";
this.btnAllStructure.Size = new System.Drawing.Size(47, 23);
this.btnAllStructure.TabIndex = 12;
this.btnAllStructure.Text = "All Structure";
this.btnAllStructure.UseVisualStyleBackColor = true;
this.btnAllStructure.Click += new System.EventHandler(this.btnAllStructure_Click);
//
// pbProcs
//
//
//
//
this.pbProcs.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.pbProcs.Location = new System.Drawing.Point(99, 123);
this.pbProcs.Name = "pbProcs";
this.pbProcs.Size = new System.Drawing.Size(639, 12);
this.pbProcs.TabIndex = 13;
this.pbProcs.Text = "progressBarX1";
//
// btnAllStructure2
//
this.btnAllStructure2.Location = new System.Drawing.Point(186, 94);
this.btnAllStructure2.Name = "btnAllStructure2";
this.btnAllStructure2.Size = new System.Drawing.Size(47, 23);
this.btnAllStructure2.TabIndex = 14;
this.btnAllStructure2.Text = "All Structure";
this.btnAllStructure2.UseVisualStyleBackColor = true;
this.btnAllStructure2.Click += new System.EventHandler(this.btnAllStructure2_Click);
//
// lblProcedure
//
this.lblProcedure.Location = new System.Drawing.Point(12, 123);
this.lblProcedure.Name = "lblProcedure";
this.lblProcedure.Size = new System.Drawing.Size(86, 18);
this.lblProcedure.TabIndex = 15;
this.lblProcedure.Text = "Procedure";
//
// lblSection
//
this.lblSection.Location = new System.Drawing.Point(12, 141);
this.lblSection.Name = "lblSection";
this.lblSection.Size = new System.Drawing.Size(86, 18);
this.lblSection.TabIndex = 16;
this.lblSection.Text = "Section";
//
// lblStep
//
this.lblStep.Location = new System.Drawing.Point(12, 160);
this.lblStep.Name = "lblStep";
this.lblStep.Size = new System.Drawing.Size(86, 18);
this.lblStep.TabIndex = 17;
this.lblStep.Text = "Step";
//
// btnAllContent
//
this.btnAllContent.Location = new System.Drawing.Point(270, 72);
this.btnAllContent.Name = "btnAllContent";
this.btnAllContent.Size = new System.Drawing.Size(33, 23);
this.btnAllContent.TabIndex = 18;
this.btnAllContent.Text = "All";
this.btnAllContent.UseVisualStyleBackColor = true;
this.btnAllContent.Click += new System.EventHandler(this.btnAllContent_Click);
//
// btnHTML
//
this.btnHTML.Location = new System.Drawing.Point(359, 43);
this.btnHTML.Name = "btnHTML";
this.btnHTML.Size = new System.Drawing.Size(51, 23);
this.btnHTML.TabIndex = 19;
this.btnHTML.Text = "HTML";
this.btnHTML.UseVisualStyleBackColor = true;
this.btnHTML.Click += new System.EventHandler(this.btnHTML_Click);
//
// btnHTML2
//
this.btnHTML2.Location = new System.Drawing.Point(359, 72);
this.btnHTML2.Name = "btnHTML2";
this.btnHTML2.Size = new System.Drawing.Size(51, 23);
this.btnHTML2.TabIndex = 20;
this.btnHTML2.Text = "HTML2";
this.btnHTML2.UseVisualStyleBackColor = true;
this.btnHTML2.Click += new System.EventHandler(this.btnHTML2_Click);
//
// btnCandN
//
this.btnCandN.Location = new System.Drawing.Point(416, 43);
this.btnCandN.Name = "btnCandN";
this.btnCandN.Size = new System.Drawing.Size(58, 23);
this.btnCandN.TabIndex = 21;
this.btnCandN.Text = "C and N";
this.btnCandN.UseVisualStyleBackColor = true;
this.btnCandN.Click += new System.EventHandler(this.btnCandN_Click);
//
// btnHTLM3
//
this.btnHTLM3.Location = new System.Drawing.Point(359, 94);
this.btnHTLM3.Name = "btnHTLM3";
this.btnHTLM3.Size = new System.Drawing.Size(51, 23);
this.btnHTLM3.TabIndex = 22;
this.btnHTLM3.Text = "HTML3";
this.btnHTLM3.UseVisualStyleBackColor = true;
this.btnHTLM3.Click += new System.EventHandler(this.btnHTLM3_Click);
//
// btnAllContent2
//
this.btnAllContent2.Location = new System.Drawing.Point(270, 94);
this.btnAllContent2.Name = "btnAllContent2";
this.btnAllContent2.Size = new System.Drawing.Size(33, 23);
this.btnAllContent2.TabIndex = 18;
this.btnAllContent2.Text = "All2";
this.btnAllContent2.UseVisualStyleBackColor = true;
this.btnAllContent2.Click += new System.EventHandler(this.btnAllContent2_Click);
//
// btnVerbs
//
this.btnVerbs.Location = new System.Drawing.Point(416, 72);
this.btnVerbs.Name = "btnVerbs";
this.btnVerbs.Size = new System.Drawing.Size(58, 23);
this.btnVerbs.TabIndex = 23;
this.btnVerbs.Text = "Verbs";
this.btnVerbs.UseVisualStyleBackColor = true;
this.btnVerbs.Click += new System.EventHandler(this.btnVerbs_Click);
//
// btnFigures
//
this.btnFigures.Location = new System.Drawing.Point(416, 94);
this.btnFigures.Name = "btnFigures";
this.btnFigures.Size = new System.Drawing.Size(58, 24);
this.btnFigures.TabIndex = 24;
this.btnFigures.Text = "Figures";
this.btnFigures.UseVisualStyleBackColor = true;
this.btnFigures.Click += new System.EventHandler(this.btnFigures_Click);
//
// btnTables
//
this.btnTables.Location = new System.Drawing.Point(480, 72);
this.btnTables.Name = "btnTables";
this.btnTables.Size = new System.Drawing.Size(65, 23);
this.btnTables.TabIndex = 25;
this.btnTables.Text = "Tables";
this.btnTables.UseVisualStyleBackColor = true;
this.btnTables.Click += new System.EventHandler(this.btnTables_Click);
//
// bntTable2
//
this.bntTable2.Location = new System.Drawing.Point(558, 72);
this.bntTable2.Name = "bntTable2";
this.bntTable2.Size = new System.Drawing.Size(67, 22);
this.bntTable2.TabIndex = 26;
this.bntTable2.Text = "Table2";
this.bntTable2.UseVisualStyleBackColor = true;
this.bntTable2.Click += new System.EventHandler(this.bntTable2_Click);
//
// btnStepOrNo
//
this.btnStepOrNo.Location = new System.Drawing.Point(480, 43);
this.btnStepOrNo.Name = "btnStepOrNo";
this.btnStepOrNo.Size = new System.Drawing.Size(73, 23);
this.btnStepOrNo.TabIndex = 27;
this.btnStepOrNo.Text = "StepOrNot";
this.btnStepOrNo.UseVisualStyleBackColor = true;
this.btnStepOrNo.Click += new System.EventHandler(this.btnStepOrNo_Click);
//
// frmConvertXML
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(750, 557);
this.Controls.Add(this.btnStepOrNo);
this.Controls.Add(this.bntTable2);
this.Controls.Add(this.btnTables);
this.Controls.Add(this.btnFigures);
this.Controls.Add(this.btnVerbs);
this.Controls.Add(this.btnHTLM3);
this.Controls.Add(this.btnCandN);
this.Controls.Add(this.btnHTML2);
this.Controls.Add(this.btnHTML);
this.Controls.Add(this.btnAllContent2);
this.Controls.Add(this.btnAllContent);
this.Controls.Add(this.lblStep);
this.Controls.Add(this.lblSection);
this.Controls.Add(this.lblProcedure);
this.Controls.Add(this.btnAllStructure2);
this.Controls.Add(this.pbProcs);
this.Controls.Add(this.btnAllStructure);
this.Controls.Add(this.btnAll);
this.Controls.Add(this.pbStep);
this.Controls.Add(this.pbSection);
this.Controls.Add(this.btnBrowse);
this.Controls.Add(this.btnLoadProcedure);
this.Controls.Add(this.btnLoadContent);
this.Controls.Add(this.btnStructure);
this.Controls.Add(this.btnFindNodeTypes);
this.Controls.Add(this.tbResults);
this.Controls.Add(this.btnLoad);
this.Controls.Add(this.tbFile);
this.Controls.Add(this.label1);
this.Name = "frmConvertXML";
this.Text = "Form1";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox tbFile;
private System.Windows.Forms.Button btnLoad;
private System.Windows.Forms.TextBox tbResults;
private System.Windows.Forms.Button btnFindNodeTypes;
private System.Windows.Forms.Button btnStructure;
private System.Windows.Forms.Button btnLoadContent;
private System.Windows.Forms.Button btnLoadProcedure;
private System.Windows.Forms.Button btnBrowse;
private System.Windows.Forms.OpenFileDialog ofd;
private DevComponents.DotNetBar.Controls.ProgressBarX pbSection;
private DevComponents.DotNetBar.Controls.ProgressBarX pbStep;
private System.Windows.Forms.Button btnAll;
private System.Windows.Forms.Button btnAllStructure;
private DevComponents.DotNetBar.Controls.ProgressBarX pbProcs;
private System.Windows.Forms.Button btnAllStructure2;
private System.Windows.Forms.Label lblProcedure;
private System.Windows.Forms.Label lblSection;
private System.Windows.Forms.Label lblStep;
private System.Windows.Forms.Button btnAllContent;
private System.Windows.Forms.Button btnHTML;
private System.Windows.Forms.Button btnHTML2;
private System.Windows.Forms.Button btnCandN;
private System.Windows.Forms.Button btnHTLM3;
private System.Windows.Forms.Button btnAllContent2;
private System.Windows.Forms.Button btnVerbs;
private System.Windows.Forms.Button btnFigures;
private System.Windows.Forms.Button btnTables;
private System.Windows.Forms.Button bntTable2;
private System.Windows.Forms.Button btnStepOrNo;
}
}
File diff suppressed because it is too large Load Diff
@@ -1,126 +0,0 @@
<?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>
<metadata name="ofd.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>25</value>
</metadata>
</root>
-742
View File
@@ -1,742 +0,0 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Serialization;
using System.ComponentModel;
using System.Xml;
using System.Xml.Schema;
using System.IO;
namespace XMLConvert
{
/// <summary>
/// Root Node
/// </summary>
[XmlRoot("html")]
public class vlnhtml : VlnHtmlContainer
{
}
[TypeConverter(typeof(ExpandableObjectConverter))]
/// <summary>
/// Part
/// </summary>
public class VlnHtmlPart
{
#region ID
protected string _ID = string.Empty;
[System.ComponentModel.DefaultValueAttribute("")]
[XmlIgnore]
public string ID
{
get { return _ID; }
set { _ID = value; }
}
#endregion
//#region Parent and Containing Svg
//// ToDo: MyParent
//private SvgPartGrouping _MyParent;
//[XmlIgnore()]
//public SvgPartGrouping MyParent
//{
// get { return _MyParent; }
// set { _MyParent = value; }
//}
//// ToDo: MySvg
//private Svg _MySvg;
//public Svg MySvg
//{
// get { return _MySvg; }
// set { _MySvg = value; }
//}
//internal void SetParent(SvgPartGrouping myParent)
//{
// _MyParent = myParent;
// _MySvg = myParent.MySvg == null? MyParent : myParent.MySvg;
//}
//#endregion
#region Dictionary of Parts
internal virtual void AddLookup(Dictionary<string, VlnHtmlPart> lookUp)
{
if (_ID != string.Empty && !lookUp.ContainsKey(_ID))
lookUp.Add(_ID, this);
}
#endregion
}
[Serializable()]
[TypeConverter(typeof(VlnHtmlPartsConverter))]
/// <summary>
/// Parts
/// </summary>
public class VlnHtmlParts : CollectionBase, ICustomTypeDescriptor
{
/// <summary>Notifies when the collection has been modified.</summary>
public event EventHandler OnItemsChanged;
/// <summary>Notifies that an item has been added.</summary>
public event VlnHtmlPartHandler OnItemAdd;
/// <summary>Notifies that items have been added.</summary>
public event VlnHtmlPartHandler OnItemsAdd;
/// <summary>Notifies that an item has been removed.</summary>
public event VlnHtmlPartHandler OnItemRemove;
/// <summary>
/// <para>
/// Initializes a new instance of <see cref='VlnHtmlPart'/>.
/// </para>
/// </summary>
public VlnHtmlParts()
{
}
/// <summary>
/// <para>
/// Initializes a new instance of <see cref='VlnHtmlPart'/> based on another <see cref='VlnHtmlPart'/>.
/// </para>
/// </summary>
/// <param name='value'>
/// A <see cref='VlnHtmlPart'/> from which the contents are copied
/// </param>
public VlnHtmlParts(VlnHtmlParts value)
{
this.AddRange(value);
}
/// <summary>
/// <para>
/// Initializes a new instance of <see cref='VlnHtmlPart'/> containing any array of <see cref='VlnHtmlPart'/> objects.
/// </para>
/// </summary>
/// <param name='value'>
/// A array of <see cref='VlnHtmlPart'/> objects with which to intialize the collection
/// </param>
public VlnHtmlParts(VlnHtmlPart[] value)
{
this.AddRange(value);
}
/// <summary>
/// <para>Represents the entry at the specified index of the <see cref='VlnHtmlPart'/>.</para>
/// </summary>
/// <param name='index'><para>The zero-based index of the entry to locate in the collection.</para></param>
/// <value>
/// <para> The entry at the specified index of the collection.</para>
/// </value>
/// <exception cref='System.ArgumentOutOfRangeException'><paramref name='index'/> is outside the valid range of indexes for the collection.</exception>
public VlnHtmlPart this[int index]
{
get { return ((VlnHtmlPart)(List[index])); }
set { List[index] = value; }
}
//#region SetupInheritance
//internal void SetupInheritance(SvgInheritedSettings myParentsSettings)
//{
// foreach (vlnhtmlpart vlnhtmlpart in List)
// vlnhtmlpart.SetupInheritance(myParentsSettings);
//}
//#endregion
#region Dictionary of Parts
internal void AddLookup(Dictionary<string, VlnHtmlPart> lookUp)
{
foreach (VlnHtmlPart vlnhtmlpart in List)
vlnhtmlpart.AddLookup(lookUp);
}
#endregion
internal static void ShowException(Exception ex)
{
StringBuilder sb = new StringBuilder();
string sep = "";
for (Exception ex1 = ex; ex1 != null; ex1 = ex1.InnerException)
{
sb.Append(sep + string.Format("ShowException {0} - {1}", ex1.GetType().Name, ex1.Message));
sep = "\r\n";
}
Console.WriteLine(sb);
}
/// <summary>
/// <para>Adds a <see cref='VlnHtmlPart'/> with the specified value to the
/// <see cref='VlnHtmlPart'/> .</para>
/// </summary>
/// <param name='value'>The <see cref='VlnHtmlPart'/> to add.</param>
/// <returns>
/// <para>The index at which the new element was inserted.</para>
/// </returns>
/// <seealso cref='VlnHtmlParts.AddRange'/>
public int Add(VlnHtmlPart value)
{
int ndx = List.Add(value);
if (OnItemAdd != null) { OnItemAdd(this, new vlnhtmlpartArgs(value)); }
if (OnItemsChanged != null) { OnItemsChanged(value, EventArgs.Empty); }
return ndx;
}
/// <summary>
/// <para>Copies the elements of an array to the end of the <see cref='VlnHtmlPart'/>.</para>
/// </summary>
/// <param name='value'>
/// An array of type <see cref='VlnHtmlPart'/> containing the objects to add to the collection.
/// </param>
/// <returns>
/// <para>None.</para>
/// </returns>
/// <seealso cref='VlnHtmlParts.Add'/>
public void AddRange(VlnHtmlPart[] value)
{
for (int i = 0; i < value.Length; i++)
{
this.Add(value[i]);
}
if (OnItemsAdd != null) { OnItemsAdd(this, new vlnhtmlpartArgs(value)); }
if (OnItemsChanged != null) { OnItemsChanged(value, EventArgs.Empty); }
}
/// <summary>
/// <para>
/// Adds the contents of another <see cref='VlnHtmlPart'/> to the end of the collection.
/// </para>
/// </summary>
/// <param name='value'>
/// A <see cref='VlnHtmlPart'/> containing the objects to add to the collection.
/// </param>
/// <returns>
/// <para>None.</para>
/// </returns>
/// <seealso cref='VlnHtmlParts.Add'/>
public void AddRange(VlnHtmlParts value)
{
for (int i = 0; i < value.Count; i++)
{
this.Add(value[i]);
}
if (OnItemsAdd != null) { OnItemsAdd(this, new vlnhtmlpartArgs(value)); }
if (OnItemsChanged != null) { OnItemsChanged(value, EventArgs.Empty); }
}
/// <summary>
/// <para>Gets a value indicating whether the
/// <see cref='VlnHtmlPart'/> contains the specified <see cref='VlnHtmlPart'/>.</para>
/// </summary>
/// <param name='value'>The <see cref='VlnHtmlPart'/> to locate.</param>
/// <returns>
/// <para><see langword='true'/> if the <see cref='VlnHtmlPart'/> is contained in the collection;
/// otherwise, <see langword='false'/>.</para>
/// </returns>
/// <seealso cref='VlnHtmlParts.IndexOf'/>
public bool Contains(VlnHtmlPart value)
{
return List.Contains(value);
}
/// <summary>
/// <para>Copies the <see cref='VlnHtmlPart'/> values to a one-dimensional <see cref='System.Array'/> instance at the
/// specified index.</para>
/// </summary>
/// <param name='array'><para>The one-dimensional <see cref='System.Array'/> that is the destination of the values copied from <see cref='VlnHtmlPart'/> .</para></param>
/// <param name='index'>The index in <paramref name='array'/> where copying begins.</param>
/// <returns>
/// <para>None.</para>
/// </returns>
/// <exception cref='System.ArgumentException'><para><paramref name='array'/> is multidimensional.</para> <para>-or-</para> <para>The number of elements in the <see cref='VlnHtmlPart'/> is greater than the available space between <paramref name='arrayIndex'/> and the end of <paramref name='array'/>.</para></exception>
/// <exception cref='System.ArgumentNullException'><paramref name='array'/> is <see langword='null'/>. </exception>
/// <exception cref='System.ArgumentOutOfRangeException'><paramref name='arrayIndex'/> is less than <paramref name='array'/>'s lowbound. </exception>
/// <seealso cref='System.Array'/>
public void CopyTo(VlnHtmlPart[] array, int index)
{
List.CopyTo(array, index);
}
/// <summary>
/// <para>Returns the index of a <see cref='VlnHtmlPart'/> in
/// the <see cref='VlnHtmlPart'/> .</para>
/// </summary>
/// <param name='value'>The <see cref='VlnHtmlPart'/> to locate.</param>
/// <returns>
/// <para>The index of the <see cref='VlnHtmlPart'/> of <paramref name='value'/> in the
/// <see cref='VlnHtmlPart'/>, if found; otherwise, -1.</para>
/// </returns>
/// <seealso cref='VlnHtmlParts.Contains'/>
public int IndexOf(VlnHtmlPart value)
{
return List.IndexOf(value);
}
/// <summary>
/// <para>Inserts a <see cref='VlnHtmlPart'/> into the <see cref='VlnHtmlParts'/> at the specified index.</para>
/// </summary>
/// <param name='index'>The zero-based index where <paramref name='value'/> should be inserted.</param>
/// <param name=' value'>The <see cref='VlnHtmlPart'/> to insert.</param>
/// <returns><para>None.</para></returns>
/// <seealso cref='VlnHtmlParts.Add'/>
public void Insert(int index, VlnHtmlPart value)
{
List.Insert(index, value);
if (OnItemAdd != null) { OnItemAdd(this, new vlnhtmlpartArgs(value)); }
if (OnItemsChanged != null) { OnItemsChanged(value, EventArgs.Empty); }
}
/// <summary>
/// <para> Removes a specific <see cref='VlnHtmlPart'/> from the
/// <see cref='VlnHtmlParts'/> .</para>
/// </summary>
/// <param name='value'>The <see cref='VlnHtmlPart'/> to remove from the <see cref='VlnHtmlParts'/> .</param>
/// <returns><para>None.</para></returns>
/// <exception cref='System.ArgumentException'><paramref name='value'/> is not found in the Collection. </exception>
public void Remove(VlnHtmlPart value)
{
List.Remove(value);
if (OnItemRemove != null) { OnItemRemove(this, new vlnhtmlpartArgs(value)); }
if (OnItemsChanged != null) { OnItemsChanged(value, EventArgs.Empty); }
}
#region ICustomTypeDescriptor impl
public String GetClassName()
{ return TypeDescriptor.GetClassName(this, true); }
public AttributeCollection GetAttributes()
{ return TypeDescriptor.GetAttributes(this, true); }
public String GetComponentName()
{ return TypeDescriptor.GetComponentName(this, true); }
public TypeConverter GetConverter()
{ return TypeDescriptor.GetConverter(this, true); }
public EventDescriptor GetDefaultEvent()
{ return TypeDescriptor.GetDefaultEvent(this, true); }
public PropertyDescriptor GetDefaultProperty()
{ return TypeDescriptor.GetDefaultProperty(this, true); }
public object GetEditor(Type editorBaseType)
{ return TypeDescriptor.GetEditor(this, editorBaseType, true); }
public EventDescriptorCollection GetEvents(System.Attribute[] attributes)
{ return TypeDescriptor.GetEvents(this, attributes, true); }
public EventDescriptorCollection GetEvents()
{ return TypeDescriptor.GetEvents(this, true); }
public object GetPropertyOwner(PropertyDescriptor pd)
{ return this; }
/// <summary>
/// Called to get the properties of this type. Returns properties with certain
/// attributes. this restriction is not implemented here.
/// </summary>
/// <param name="attributes"></param>
/// <returns></returns>
public PropertyDescriptorCollection GetProperties(System.Attribute[] attributes)
{ return GetProperties(); }
/// <summary>
/// Called to get the properties of this type.
/// </summary>
/// <returns></returns>
public PropertyDescriptorCollection GetProperties()
{
// Create a collection object to hold property descriptors
PropertyDescriptorCollection pds = new PropertyDescriptorCollection(null);
// Iterate the list
for (int i = 0; i < this.Count; i++)
{
// Create a property descriptor for the item and add to the property descriptor collection
vlnhtmlpartsPropertyDescriptor pd = new vlnhtmlpartsPropertyDescriptor(this, i);
pds.Add(pd);
}
// return the property descriptor collection
return pds;
}
#endregion
/// Event arguments for the vlnhtmlparts collection class.
public class vlnhtmlpartArgs : EventArgs
{
private VlnHtmlParts t;
/// Default constructor.
public vlnhtmlpartArgs()
{
t = new VlnHtmlParts();
}
/// Initializes with a vlnhtmlpart.
/// Data object.
public vlnhtmlpartArgs(VlnHtmlPart t)
: this()
{
this.t.Add(t);
}
/// Initializes with a collection of vlnhtmlpart objects.
/// Collection of data.
public vlnhtmlpartArgs(VlnHtmlParts ts)
: this()
{
this.t.AddRange(ts);
}
/// Initializes with an array of vlnhtmlpart objects.
/// Array of data.
public vlnhtmlpartArgs(VlnHtmlPart[] ts)
: this()
{
this.t.AddRange(ts);
}
/// Gets or sets the data of this argument.
public VlnHtmlParts vlnhtmlparts
{
get { return t; }
set { t = value; }
}
}
/// vlnhtmlparts event handler.
public delegate void VlnHtmlPartHandler(object sender, vlnhtmlpartArgs e);
#region Property Descriptor
/// <summary>
/// Summary description for CollectionPropertyDescriptor.
/// </summary>
public partial class vlnhtmlpartsPropertyDescriptor : vlnListPropertyDescriptor
{
private VlnHtmlPart Item { get { return (VlnHtmlPart)_Item; } }
public vlnhtmlpartsPropertyDescriptor(VlnHtmlParts collection, int index) : base(collection, index) { ;}
public override string DisplayName
{ get { return Item.GetType().Name; } }
}
#endregion
[Serializable()]
public partial class vlnListPropertyDescriptor : PropertyDescriptor
{
protected object _Item = null;
public vlnListPropertyDescriptor(System.Collections.IList collection, int index)
: base("#" + index.ToString(), null)
{ _Item = collection[index]; }
public override bool CanResetValue(object component)
{ return true; }
public override Type ComponentType
{ get { return _Item.GetType(); } }
public override object GetValue(object component)
{ return _Item; }
public override bool IsReadOnly
{ get { return false; } }
public override Type PropertyType
{ get { return _Item.GetType(); } }
public override void ResetValue(object component)
{ ;}
public override bool ShouldSerializeValue(object component)
{ return true; }
public override void SetValue(object component, object value)
{ /*_Item = value*/;}
//public override AttributeCollection Attributes
//{ get { return new AttributeCollection(null); } }
public override string DisplayName
{ get { return _Item.ToString(); } }
public override string Description
{ get { return _Item.ToString(); } }
public override string Name
{ get { return _Item.ToString(); } }
} // Class
#region Converter
internal class VlnHtmlPartsConverter : ExpandableObjectConverter
{
public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType)
{
if (destType == typeof(string) && value is VlnHtmlParts)
{
// Return department and department role separated by comma.
return ((VlnHtmlParts)value).List.Count.ToString() + " SVG Drawing Parts";
}
return base.ConvertTo(context, culture, value, destType);
}
}
#endregion
/// SVGParts event handler.
//public delegate void VlnHtmlPartHandler(object sender, VlnHtmlPartArgs e);
//#region Property Descriptor
///// <summary>
///// Summary description for CollectionPropertyDescriptor.
///// </summary>
//public partial class VlnHtmlPartsPropertyDescriptor : vlnListPropertyDescriptor
//{
// private VlnHtmlPart Item { get { return (VlnHtmlPart)_Item; } }
// public VlnHtmlPartsPropertyDescriptor(VlnHtmlParts collection, int index) : base(collection, index) { ;}
// public override string DisplayName
// { get { return Item.GetType().Name; } }
//}
//#endregion
//[Serializable()]
//public partial class vlnListPropertyDescriptor : PropertyDescriptor
//{
// protected object _Item = null;
// public vlnListPropertyDescriptor(System.Collections.IList collection, int index)
// : base("#" + index.ToString(), null)
// { _Item = collection[index]; }
// public override bool CanResetValue(object component)
// { return true; }
// public override Type ComponentType
// { get { return _Item.GetType(); } }
// public override object GetValue(object component)
// { return _Item; }
// public override bool IsReadOnly
// { get { return false; } }
// public override Type PropertyType
// { get { return _Item.GetType(); } }
// public override void ResetValue(object component)
// { ;}
// public override bool ShouldSerializeValue(object component)
// { return true; }
// public override void SetValue(object component, object value)
// { /*_Item = value*/;}
// //public override AttributeCollection Attributes
// //{ get { return new AttributeCollection(null); } }
// public override string DisplayName
// { get { return _Item.ToString(); } }
// public override string Description
// { get { return _Item.ToString(); } }
// public override string Name
// { get { return _Item.ToString(); } }
//} // Class
//#region Converter
//internal class VlnHtmlPartsConverter : ExpandableObjectConverter
//{
// public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType)
// {
// if (destType == typeof(string) && value is VlnHtmlParts)
// {
// // Return department and department role separated by comma.
// return ((VlnHtmlParts)value).List.Count.ToString() + " Vln Html Parts";
// }
// return base.ConvertTo(context, culture, value, destType);
// }
//}
// }
//#endregion
}
/// <summary>
/// Hyperrlink
/// </summary>
public class vlnhtml_a
{
//url
}
public class vlnhtmlContent : VlnHtmlPart
{
string _text;
[XmlText]
public string Text
{
get { return _text; }
set { _text = value; }
}
string _style;// -qt-block-indent:1or2
[XmlAttribute("style")]
public string Style
{
get { return _style; }
set { _style = value; }
}
string _align;// Center Right Justify
[XmlAttribute("align")]
public string Align
{
get { return _align; }
set { _align = value; }
}
}
/// <summary>
/// Paragraph
/// </summary>
public class vlnhtml_p : vlnhtmlContent
{
}
/// <summary>
/// Break
/// </summary>
public class vlnhtml_br : VlnHtmlPart
{
}
/// <summary>
/// Image
/// </summary>
public class vlnhtml_img : VlnHtmlPart
{
string _src;//filename and Path
[XmlAttribute("src")]
public string Src
{
get { return _src; }
set { _src = value; }
}
int _width;
[XmlAttribute("width")]
public int Width
{
get { return _width; }
set { _width = value; }
}
}
/// <summary>
/// Container
/// </summary>
public class VlnHtmlContainer : VlnHtmlPart
{
VlnHtmlParts _Children = new VlnHtmlParts();
[XmlElement("ul", typeof(vlnhtml_ul))]
[XmlElement("ol", typeof(vlnhtml_ol))]
[XmlElement("li", typeof(vlnhtml_li))]
[XmlElement("p", typeof(vlnhtml_p))]
[XmlElement("a", typeof(vlnhtml_a))]
[XmlElement("br", typeof(vlnhtml_br))]
[XmlElement("img", typeof(vlnhtml_img))]
[XmlElement("table", typeof(vlnhtml_table))]
internal VlnHtmlParts Children
{
get
{
//if (_Children == null)
// _Children = new VlnHtmlParts();
return _Children;
}
set { _Children = value; }
}
}
/// <summary>
/// Ordered List
/// </summary>
public class vlnhtml_ol : VlnHtmlContainer
{
string _style;// -qt-block-indent:1or2
[XmlAttribute("style")]
public string Style
{
get { return _style; }
set { _style = value; }
}
}
/// <summary>
/// Unordered List
/// </summary>
public class vlnhtml_ul : VlnHtmlContainer
{
string _style;// -qt-block-indent:1or2
[XmlAttribute("style")]
public string Style
{
get { return _style; }
set { _style = value; }
}
}
/// <summary>
/// List Item
/// </summary>
public class vlnhtml_li : vlnhtmlContent
{
}
/// <summary>
/// Table
/// </summary>
public class vlnhtml_table : VlnHtmlContainer
{
string _style;// -qt-block-indent:1or2
[XmlAttribute("style")]
public string Style
{
get { return _style; }
set { _style = value; }
}
int _border;//
int _cellspacing;
int _cellpadding;
}
public class vlnhtml_tr : VlnHtmlContainer
{
}
public class vlnhtml_td : VlnHtmlContainer
{
}
public static class HtmlSerializer<T> where T : class
{
public static string StringSerialize(T t)
{
string strOutput = string.Empty;
XmlSerializer xs = new XmlSerializer(typeof(T), "http://www.w3.org/2000/html");
using (MemoryStream ms = new MemoryStream())
{
xs.Serialize(new NonXsiTextWriter(ms, Encoding.UTF8), t);
//xs.Serialize(ms, t);
ms.Position = 0;
StreamReader sr = new StreamReader(ms);
strOutput = sr.ReadToEnd();
ms.Close();
}
return strOutput;
}
public static T StringDeserialize(string s)
{
T t;
XmlSerializer xs = new XmlSerializer(typeof(T), "http://www.w3.org/2000/html");
UTF8Encoding enc = new UTF8Encoding();
Byte[] arrBytData = enc.GetBytes(s);
using (MemoryStream ms = new MemoryStream(arrBytData))
{
t = (T)xs.Deserialize(ms);
}
return t;
}
public static void WriteFile(T t, string fileName)
{
string strOutput = string.Empty;
XmlSerializer xs = new XmlSerializer(typeof(T), "http://www.w3.org/2000/html");
using (FileStream fs = new FileStream(fileName, FileMode.Create))
{
xs.Serialize(new NonXsiTextWriter(fs, Encoding.UTF8), t);
fs.Close();
}
}
public static T ReadFile(string fileName)
{
T t;
XmlSerializer xs = new XmlSerializer(typeof(T), "http://www.w3.org/2000/html");
using (FileStream fs = new FileStream(fileName, FileMode.Open))
{
t = (T)xs.Deserialize(fs);
}
return t;
}
}
public class NonXsiTextWriter : XmlTextWriter
{
public NonXsiTextWriter(TextWriter w) : base(w) { }
public NonXsiTextWriter(Stream w, Encoding encoding)
: base(w, encoding)
{
this.Formatting = Formatting.Indented;
}
public NonXsiTextWriter(string filename, Encoding encoding) : base(filename, encoding) { }
bool _skip = false;
public override void WriteStartAttribute(string prefix, string localName, string ns)
{
if ((prefix == "xmlns" && (localName == "xsd" || localName == "xsi")) || // Omits XSD and XSI declarations.
ns == XmlSchema.InstanceNamespace) // Omits all XSI attributes.
{
_skip = true;
return;
}
if (localName == "xlink_href")
base.WriteStartAttribute(prefix, "xlink:href", ns);
else
base.WriteStartAttribute(prefix, localName, ns);
}
public override void WriteString(string text)
{
if (_skip) return;
base.WriteString(text);
}
public override void WriteEndAttribute()
{
if (_skip)
{ // Reset the flag, so we keep writing.
_skip = false;
return;
}
base.WriteEndAttribute();
}
}
}
+4 -2
View File
@@ -22,7 +22,7 @@
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<PlatformTarget>x64</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
@@ -30,15 +30,17 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<PlatformTarget>x64</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
+118 -40
View File
@@ -456,7 +456,7 @@ namespace Baseline
switch (myLast)
{
case LastWas.Pagination:
line = OpenPDF(line);
OpenPDF(line);
break;
case LastWas.Baseline: // TODO: Need to add code here to open matching file
OpenOnePDF(myLine,1);
@@ -479,7 +479,7 @@ namespace Baseline
switch (myLast)
{
case LastWas.Pagination:
line = OpenPDF(line);
OpenPDF(line);
break;
case LastWas.Baseline: // TODO: Need to add code here to open matching file
OpenOnePDF(myLine,2);
@@ -491,34 +491,99 @@ namespace Baseline
break;
}
}
string exePath;
private string OpenPDF(string line)
/// <summary>
/// This will return the full path to the PDF file
/// </summary>
/// <param name="fi"></param>
/// <param name="patern"></param>
/// <returns></returns>
private string GetPFDFileAndPath(FileInfo fi, string patern)
{
int page = int.Parse(line.Substring(0, 6));
string[] fileList = Directory.GetFiles(fi.DirectoryName, patern);
// sort the list of file list
Array.Sort((string[])fileList);
return fileList.FirstOrDefault(); // the PDF file that we what should be top of the list then.
}
/// <summary>
/// This will parse out the procedure number for the PROMS ShortPath representation of a procedure section or step part
/// In the PROMS ShortPath, ".S" is used to delimit the procedure number, section then uses "..S" for the step parts
/// This method was written to handle cases where ".S" is used as part of the procedure number
/// </summary>
/// <param name="txt"></param>
/// <returns></returns>
private string ParseOutProcedureNumberFromLine(string txt)
{
// old logic was looking for the first occurence of ".S" in the txt string as the ending point of the procedure nuumber
// Beaver Valley has a procedure number "1.SBGEN" in which the old logic would not work
// 1.SBGEN.SC. ==> short path of attachment section "C"
// 1.SBGEN.SC..S1. ==> short path of Step 1 in attachment section "C"
string rtnstr = null;
int lidx = -1;
// if the item is to a high levels step or sub-step the short path as "..S" for each part of the step
// so look for the last occurence of ".." which will be the end of the section information
lidx = txt.LastIndexOf("..");
if (lidx > 0)
{
lidx = txt.LastIndexOf(".S", lidx); // this will position us to the end of the procedure number
}
else
{
lidx = txt.LastIndexOf(".S"); // this will position us to the end of the procedure number if there was no step information
}
// B2018-113 - Replace slashes and backslashes with underscores just as PROMS does when creating a PDF file.
line = line.Substring(8, line.IndexOf(".S") - 8).Replace("/", "_").Replace("\\", "_");
rtnstr = txt.Substring(8, lidx - 8).Replace("/", "_").Replace("\\", "_");
return rtnstr;
}
string exePath;
private void OpenPDF(string line)
{
int pageNum = int.Parse(line.Substring(0, 6));
// B2018-113 - Replace slashes and backslashes with underscores just as PROMS does when creating a PDF file.
string ProcNum = ParseOutProcedureNumberFromLine(line);
string procPatern = string.Format("*{0}*.pdf", string.IsNullOrEmpty(line) ? "noProcNumber" : ProcNum);
FindFile ff = lbDifferent.SelectedItem as FindFile;
FileInfo fi1 = new FileInfo(ff.File1);
FileInfo fi2 = new FileInfo(ff.File2);
string PDFfileName1 = GetPFDFileAndPath(fi1,procPatern);
string PDFfileName2 = GetPFDFileAndPath(fi2,procPatern);
if (string.IsNullOrEmpty(PDFfileName1) || string.IsNullOrEmpty(PDFfileName2)) return;
// If you don't know where the Reader executable is for PDFs Open a PDF and Check to see where the path points
if (exePath == null)
{
System.Diagnostics.Process p = System.Diagnostics.Process.Start(fi1.DirectoryName + "\\" + line + ".pdf");
exePath = TryToGetPath(p);
p.Kill(); // No need to keep it open
try
{
System.Diagnostics.Process p = System.Diagnostics.Process.Start(PDFfileName1);
exePath = TryToGetPath(p);
p.Kill(); // No need to keep it open
}
catch (Exception ex)
{
Application.DoEvents();
string msg = string.Format("{0} - {1}", ex.GetType().Name, ex.Message);
Console.WriteLine(msg);
MessageBox.Show(msg, "Error opening default PDF Viewer");
return;
}
}
// Open the first PDF on a Specific Page
System.Diagnostics.ProcessStartInfo psi1 = new System.Diagnostics.ProcessStartInfo(exePath, string.Format("/A page={0} ", page) + fi1.DirectoryName + "\\" + line + ".pdf ");
System.Diagnostics.ProcessStartInfo psi1 = new System.Diagnostics.ProcessStartInfo(exePath, string.Format(" /A \"page={0}\" \"{1}\" ", pageNum,PDFfileName1));
System.Diagnostics.Process p1 = System.Diagnostics.Process.Start(psi1);
// Move the PDF Reader window to 0,0
MoveProcess(p1, 0, 0);
// Open the first PDF on a Specific Page
System.Diagnostics.ProcessStartInfo psi2 = new System.Diagnostics.ProcessStartInfo(exePath, string.Format("/A page={0} ", page) + fi2.DirectoryName + "\\" + line + ".pdf ");
// Open the second PDF on a Specific Page
System.Diagnostics.ProcessStartInfo psi2 = new System.Diagnostics.ProcessStartInfo(exePath, string.Format(" /A \"page={0}\" \"{1}\" ", pageNum, PDFfileName2));
System.Diagnostics.Process p2 = System.Diagnostics.Process.Start(psi2);
// Move the PDF Reader window to 960,0
// TODO: This Offset could be a Setting
MoveProcess(p2, 960, 0);
return line;
return;
}
/// <summary>
/// Try to get the location of the PDF Reader executable
@@ -530,7 +595,7 @@ namespace Baseline
p.WaitForInputIdle();
while (p.MainModule == null)
{
Console.WriteLine("{0} - {1}", p.MainWindowTitle,p.ProcessName);
Console.WriteLine("{0} - {1}", p.MainWindowTitle, p.ProcessName);
p.WaitForInputIdle();
Application.DoEvents();
}
@@ -594,40 +659,52 @@ namespace Baseline
/// <param name="list"></param>
private void OpenOnePDF(Line myLine, int list)
{
if (myLine == null) return; // no PDF to open
// B2018-113 - Replace slashes and backslashes with underscores just as PROMS does when creating a PDF file.
string proc = myLine.MyProc.Number.Replace("/","_").Replace("\\","_");
// if no procedure number, PROMS creates pdf filename "NoProcNumber.pdf"
// create pattern to use to get the PDF from the directory
// add wildcards (*) to file the file if any prefix or suffix was added to the filename
string procPatern = string.Format("*{0}*.pdf", proc == string.Empty ? "noProcNumber" : proc);
int pagenum = myLine.MyPage.Number;
FindFile ff = lbDifferent.SelectedItem as FindFile;
FileInfo fi1 = new FileInfo(ff.File1);
FileInfo fi2 = new FileInfo(ff.File2);
if (exePath == null)
{
System.Diagnostics.Process p = System.Diagnostics.Process.Start(fi1.DirectoryName + "\\" + proc + ".pdf");
while (exePath == null)
{
try
{
exePath = p.MainModule.FileName;
}
catch (Exception ex)
{
Application.DoEvents();
Console.WriteLine("{0} - {1}", ex.GetType().Name, ex.Message);
}
}
p.Kill();
}
string PDFfileName = null;
if (list == 1)
{
System.Diagnostics.ProcessStartInfo psi1 = new System.Diagnostics.ProcessStartInfo(exePath, string.Format("/A page={0} ", pagenum) + fi1.DirectoryName + "\\" + proc + ".pdf ");
System.Diagnostics.Process p1 = System.Diagnostics.Process.Start(psi1);
FileInfo fi1 = new FileInfo(ff.File1);
PDFfileName = GetPFDFileAndPath(fi1, procPatern);
}
else
else // list == 2
{
System.Diagnostics.ProcessStartInfo psi2 = new System.Diagnostics.ProcessStartInfo(exePath, string.Format("/A page={0} ", pagenum) + fi2.DirectoryName + "\\" + proc + ".pdf ");
System.Diagnostics.Process p1 = System.Diagnostics.Process.Start(psi2);
FileInfo fi2 = new FileInfo(ff.File2);
PDFfileName = GetPFDFileAndPath(fi2, procPatern);
}
if (string.IsNullOrEmpty(PDFfileName)) return; // no PDF to open
// if exePath is null, then open the found PDF with the default PDF viewer and
// capture/save the entire name and path of the default PDF viewer
if (exePath == null)
{
try
{
System.Diagnostics.Process tp = System.Diagnostics.Process.Start(PDFfileName);
exePath = TryToGetPath(tp);
tp.Kill();
}
catch (Exception ex)
{
Application.DoEvents();
string msg = string.Format("{0} - {1}", ex.GetType().Name, ex.Message);
Console.WriteLine(msg);
MessageBox.Show(msg, "Error opening default PDF Viewer");
return;
}
}
// open the PDF and jump to the page number
System.Diagnostics.ProcessStartInfo psi1 = new System.Diagnostics.ProcessStartInfo(exePath, string.Format("/A \"page={0}\" \"{1}\" ", pagenum,PDFfileName));
psi1.UseShellExecute = false;
System.Diagnostics.Process p1 = System.Diagnostics.Process.Start(psi1);
}
/// <summary>
/// Perform Debug Meta file comparison for all of the folders within the automated testing folders
@@ -709,11 +786,12 @@ namespace Baseline
private void lbProcedures_SelectedIndexChanged(object sender, EventArgs e)
{
//Initialize Results List Box
lbResults1.Items.Clear();
Procedure myProc = lbProcedures.SelectedItem as Procedure;
if (myProc == null) return; // clicked on the white space (blank line) in the list of different procedures
//TODO: May need to consider if there are duplicate procedure numers and titles
Procedure myProc1 = MyProcs1.Find(x => x.Number == myProc.Number && x.Title == myProc.Title);
// Build the results ListBox for the left window
lbResults1.Items.Clear();
if (myProc1 != null)
{
foreach (Page myPage in myProc1.MyPages)
-22
View File
@@ -1,22 +0,0 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.30723.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassLibrary1", "ClassLibrary1\ClassLibrary1.csproj", "{EEA3D698-C9BC-4A38-9D5F-B89CBC68B739}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{EEA3D698-C9BC-4A38-9D5F-B89CBC68B739}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EEA3D698-C9BC-4A38-9D5F-B89CBC68B739}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EEA3D698-C9BC-4A38-9D5F-B89CBC68B739}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EEA3D698-C9BC-4A38-9D5F-B89CBC68B739}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
@@ -1,12 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ClassLibrary1
{
public class Class1
{
}
}
@@ -1,53 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{EEA3D698-C9BC-4A38-9D5F-B89CBC68B739}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ClassLibrary1</RootNamespace>
<AssemblyName>ClassLibrary1</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Class1.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
@@ -1,36 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("ClassLibrary1")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Windows User")]
[assembly: AssemblyProduct("ClassLibrary1")]
[assembly: AssemblyCopyright("Copyright © Windows User 2016")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("1223b3df-00ea-4978-8df2-cb49ac67e751")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
@@ -1,3 +0,0 @@
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
</assembly>
Binary file not shown.
@@ -1,281 +0,0 @@
/***************************************************************************
* DSOFRAMER.IDL - DSO Framer ActiveX Control Type Library
*
* Copyright ©1999-2004; Microsoft Corporation. All rights reserved.
* Written by Microsoft Developer Support Office Integration (PSS DSOI)
*
* This code is provided via KB 311765 as a sample. It is not a formal
* product and has not been tested with all containers or servers. Use it
* for educational purposes only. See the EULA.TXT file included in the
* KB download for full terms of use and restrictions.
*
* THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
* EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
*
***************************************************************************/
/***************************************************************************
*
* IMPORTANT: You should not attempt to modify this library unless you are
* sure you do not break binary compatibility, or you change all the GUIDs
* listed in version.h so as to build a completely new control.
*
***************************************************************************/
#include <olectl.h>
#include "..\version.h"
[
uuid(DSOFRAMERCTL_TLIB), helpstring(DSOFRAMERCTL_FULLNAME),
version(DSOFRAMERCTL_VERSION), lcid(0x0000), control
]
library DSOFramer
{
importlib("STDOLE2.TLB");
typedef enum dsoBorderStyle
{
dsoBorderNone = 0,
dsoBorderFlat,
dsoBorder3D,
dsoBorder3DThin
} dsoBorderStyle;
typedef enum dsoShowDialogType
{
dsoDialogNew = 0,
dsoDialogOpen,
dsoDialogSave,
dsoDialogSaveCopy,
dsoDialogPrint,
dsoDialogPageSetup,
dsoDialogProperties
} dsoShowDialogType;
typedef enum dsoFileCommandType
{
dsoFileNew = 0,
dsoFileOpen,
dsoFileClose,
dsoFileSave,
dsoFileSaveAs,
dsoFilePrint,
dsoFilePageSetup,
dsoFileProperties,
dsoFilePrintPreview
} dsoFileCommandType;
[
uuid(DSOFRAMERCTL_INTERFACE), hidden, version(DSOFRAMERCTL_VERSION),
dual, oleautomation, odl
]
interface _FramerControl : IDispatch
{
[id(0x00010001), helpstring("Activates the current document object.")]
HRESULT Activate();
[propget, id(0x00010002), helpstring("Returns the Automation interface of the document object.")]
HRESULT ActiveDocument([out,retval] IDispatch** ppdisp);
[id(0x00010003), helpstring("Creates a new document based on the ProgId or Template file provided.")]
HRESULT CreateNew([in] BSTR ProgIdOrTemplate);
[id(0x00010004), helpstring("Opens a document from a file, URL, or Automation object.")]
HRESULT Open([in] VARIANT Document, [in, optional] VARIANT ReadOnly, [in, optional] VARIANT ProgId, [in, optional] VARIANT WebUsername, [in, optional] VARIANT WebPassword);
[id(0x00010005), helpstring("Saves the document to specified location or its original location.")]
HRESULT Save([in, optional] VARIANT SaveAsDocument, [in, optional] VARIANT OverwriteExisting, [in, optional] VARIANT WebUsername, [in, optional] VARIANT WebPassword);
[id(0x00010008), hidden]
HRESULT _PrintOutOld([in, optional] VARIANT PromptToSelectPrinter);
[id(0x00010009), helpstring("Closes the currently open document.")]
HRESULT Close();
[propput, id(0x0001000A), helpstring("Returns/sets the titlebar caption.")]
HRESULT Caption([in] BSTR bstr);
[propget, id(0x0001000A)]
HRESULT Caption([out,retval] BSTR* pbstr);
[propput, id(0x0001000B), helpstring("Returns/sets whether the titlebar should be displayed.")]
HRESULT Titlebar([in] VARIANT_BOOL vbool);
[propget, id(0x0001000B)]
HRESULT Titlebar([out,retval] VARIANT_BOOL* pbool);
[propput, id(0x0001000C), helpstring("Returns/sets whether toolbars should be displayed.")]
HRESULT Toolbars([in] VARIANT_BOOL vbool);
[propget, id(0x0001000C)]
HRESULT Toolbars([out,retval] VARIANT_BOOL* pbool);
[propput, nonbrowsable, id(0x0001000D), helpstring("Returns/sets the controls modal state.")]
HRESULT ModalState([in] VARIANT_BOOL vbool);
[propget, nonbrowsable, id(0x0001000D)]
HRESULT ModalState([out,retval] VARIANT_BOOL* pbool);
[id(0x0001000E), helpstring("Displays a modal dialog of the given type for user action.")]
HRESULT ShowDialog([in] dsoShowDialogType DlgType);
[propput, id(0x0001000F), helpstring("Returns/sets whether a specific action item is enabled.")]
HRESULT EnableFileCommand([in] dsoFileCommandType Item, [in] VARIANT_BOOL vbool);
[propget, id(0x0001000F)]
HRESULT EnableFileCommand([in] dsoFileCommandType Item, [out,retval] VARIANT_BOOL* pbool);
[propput, id(DISPID_BORDERSTYLE), helpstring("Returns/sets the border style for the control.")]
HRESULT BorderStyle([in] dsoBorderStyle style);
[propget, id(DISPID_BORDERSTYLE)]
HRESULT BorderStyle([out, retval] dsoBorderStyle* pstyle);
[propput, id(DISPID_BORDERCOLOR), helpstring("Returns/sets the border color of the control.")]
HRESULT BorderColor([in] OLE_COLOR clr);
[propget, id(DISPID_BORDERCOLOR)]
HRESULT BorderColor([out,retval] OLE_COLOR* pclr);
[propput, id(DISPID_BACKCOLOR), helpstring("Returns/sets the background color of the control.")]
HRESULT BackColor([in] OLE_COLOR clr);
[propget, id(DISPID_BACKCOLOR)]
HRESULT BackColor([out,retval] OLE_COLOR* pclr);
[propput, id(DISPID_FORECOLOR), helpstring("Returns/sets the foreground color of the control.")]
HRESULT ForeColor([in]OLE_COLOR clr);
[propget, id(DISPID_FORECOLOR)]
HRESULT ForeColor([out,retval]OLE_COLOR* pclr);
[propput, id(0x00010010), helpstring("Returns/sets the color of the titlebar.")]
HRESULT TitlebarColor([in] OLE_COLOR clr);
[propget, id(0x00010010)]
HRESULT TitlebarColor([out,retval] OLE_COLOR* pclr);
[propput, id(0x00010011), helpstring("Returns/sets the color of text for the titlebar.")]
HRESULT TitlebarTextColor([in] OLE_COLOR clr);
[propget, id(0x00010011)]
HRESULT TitlebarTextColor([out,retval] OLE_COLOR* pclr);
[id(0x00010012), helpstring("Calls IOleCommandTarget::Exec on embedded object.")]
HRESULT ExecOleCommand([in] LONG OLECMDID, [in, optional] VARIANT Options, [in, optional] VARIANT* vInParam, [in, out, optional] VARIANT* vInOutParam);
[propput, id(0x00010013), helpstring("Returns/sets whether a menu bar should be displayed.")]
HRESULT Menubar([in] VARIANT_BOOL vbool);
[propget, id(0x00010013)]
HRESULT Menubar([out,retval] VARIANT_BOOL* pbool);
[propput, id(0x00010014), helpstring("Returns/sets host application name (used in embedding).")]
HRESULT HostName([in] BSTR bstr);
[propget, id(0x00010014)]
HRESULT HostName([out,retval] BSTR* pbstr);
[propget, id(0x00010015), helpstring("Returns full document path name for object.")]
HRESULT DocumentFullName([out,retval] BSTR* pbstr);
[id(0x00010016), helpstring("Prints current document to specific printer with settings.")]
HRESULT PrintOut([in, optional] VARIANT PromptUser, [in, optional] VARIANT PrinterName, [in, optional] VARIANT Copies,
[in, optional] VARIANT FromPage, [in, optional] VARIANT ToPage, [in, optional] VARIANT OutputFile);
[id(0x00010017), helpstring("Starts a print preview (if document supports it).")]
HRESULT PrintPreview();
[id(0x00010018), helpstring("Exits a current print preview.")]
HRESULT PrintPreviewExit();
[propget, id(0x00010019), helpstring("Returns True/False if file was open read-only, or has not been saved.")]
HRESULT IsReadOnly([out,retval] VARIANT_BOOL* pbool);
[propget, id(0x0001001A), helpstring("Returns True/False if file has been altered or needs save.")]
HRESULT IsDirty([out,retval] VARIANT_BOOL* pbool);
[propput, id(0x0001001B), helpstring("Sets lock on the current embed server to keep it running (document must be open first).")]
HRESULT LockServer([in] VARIANT_BOOL vbool);
[propget, id(0x0001001B)]
HRESULT LockServer([out,retval] VARIANT_BOOL* pvbool);
[id(0x0001001C), nonbrowsable, helpstring("Gets the content of the body of the document (excluding headers/footers).")]
HRESULT GetDataObjectContent([in] VARIANT ClipFormatNameOrNumber, [out,retval] VARIANT *pvResults);
[id(0x0001001D), nonbrowsable, helpstring("Sets the content of the body of the document.")]
HRESULT SetDataObjectContent([in] VARIANT ClipFormatNameOrNumber, [in] VARIANT DataByteArray);
[propput, id(0x0001001E), helpstring("Allows host to set policy on activation behavior.")]
HRESULT ActivationPolicy([in] enum dsoActivationPolicy lPolicy);
[propget, id(0x0001001E)]
HRESULT ActivationPolicy([out,retval] enum dsoActivationPolicy *plPolicy);
[propput, id(0x0001001F), helpstring("Allows host to set policy on use of the frame hook.")]
HRESULT FrameHookPolicy([in] enum dsoFrameHookPolicy lPolicy);
[propget, id(0x0001001F)]
HRESULT FrameHookPolicy([out,retval] enum dsoFrameHookPolicy *plPolicy);
[propput, id(0x00010020), helpstring("Gets/sets whether control should try to handle menu accelerators or pass to host window.")]
HRESULT MenuAccelerators([in] VARIANT_BOOL vbool);
[propget, id(0x00010020)]
HRESULT MenuAccelerators([out,retval] VARIANT_BOOL* pvbool);
[propput, nonbrowsable, id(0x00010021), helpstring("Gets/sets whether control events are raised.")]
HRESULT EventsEnabled([in] VARIANT_BOOL vbool);
[propget, nonbrowsable, id(0x00010021)]
HRESULT EventsEnabled([out,retval] VARIANT_BOOL* pvbool);
[propget, id(0x00010022), helpstring("Returns just the document name (excluding path).")]
HRESULT DocumentName([out,retval] BSTR* pbstr);
};
[
uuid(DSOFRAMERCTL_DISPEVTS), hidden
]
dispinterface _DFramerCtlEvents
{
properties:
methods:
[id(DSOF_DISPID_FILECMD), helpstring("Called when File menu item is selected by user (may be canceled).")]
HRESULT OnFileCommand([in] dsoFileCommandType Item, [in,out] VARIANT_BOOL* Cancel);
[id(DSOF_DISPID_DOCOPEN), helpstring("Called when document is opened or new document added.")]
HRESULT OnDocumentOpened([in] BSTR File, [in] IDispatch* Document);
[id(DSOF_DISPID_DOCCLOSE), helpstring("Called when document is closed.")]
HRESULT OnDocumentClosed();
[id(DSOF_DISPID_ACTIVATE), helpstring("Called when component gains/loses activation.")]
HRESULT OnActivationChange([in] VARIANT_BOOL fGoingActive);
[id(DSOF_DISPID_BDOCCLOSE), helpstring("Called before document is closed (may be canceled).")]
HRESULT BeforeDocumentClosed([in] IDispatch* Document, [in,out] VARIANT_BOOL* Cancel);
[id(DSOF_DISPID_BDOCSAVE), helpstring("Called before document is saved (may be canceled).")]
HRESULT BeforeDocumentSaved([in] IDispatch* Document, [in] BSTR Location, [in,out] VARIANT_BOOL* Cancel);
[id(DSOF_DISPID_ENDPREVIEW), helpstring("Called when print preview is closed.")]
HRESULT OnPrintPreviewExit();
[id(DSOF_DISPID_SAVECOMPLETE), helpstring("Called when save is successful.")]
HRESULT OnSaveCompleted([in] IDispatch* Document, [in] BSTR DocName, [in] BSTR FullFileLocation);
};
[
uuid(DSOFRAMERCTL_CLSID),
helpstring(DSOFRAMERCTL_SHORTNAME), control
]
coclass FramerControl
{
[default] interface _FramerControl;
[default, source] dispinterface _DFramerCtlEvents;
};
typedef enum dsoFrameHookPolicy
{
dsoNormalBehavior = 0,
dsoSetOnFirstOpen,
dsoResetNow,
dsoDisableHook = 0xFFFFFFFF
} dsoFrameHookPolicy;
typedef enum dsoActivationPolicy
{
dsoDefaultBehavior = 0,
dsoKeepUIActiveOnAppDeactive = 0x01,
dsoCompDeactivateOnLostFocus = 0x02,
dsoIPDeactivateOnCompDeactive = 0x04
} dsoActivationPolicy;
};
@@ -1,88 +0,0 @@
/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
/* link this file in with the server and any clients */
/* File created by MIDL compiler version 6.00.0366 */
/* at Tue Aug 25 13:23:33 2009
*/
/* Compiler settings for .\Lib\dsoframer.idl:
Oicf, W1, Zp8, env=Win32 (32b run)
protocol : dce , ms_ext, c_ext, robust
error checks: allocation ref bounds_check enum stub_data
VC __declspec() decoration level:
__declspec(uuid()), __declspec(selectany), __declspec(novtable)
DECLSPEC_UUID(), MIDL_INTERFACE()
*/
//@@MIDL_FILE_HEADING( )
#pragma warning( disable: 4049 ) /* more than 64k source lines */
#ifdef __cplusplus
extern "C"{
#endif
#include <rpc.h>
#include <rpcndr.h>
#ifdef _MIDL_USE_GUIDDEF_
#ifndef INITGUID
#define INITGUID
#include <guiddef.h>
#undef INITGUID
#else
#include <guiddef.h>
#endif
#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
#else // !_MIDL_USE_GUIDDEF_
#ifndef __IID_DEFINED__
#define __IID_DEFINED__
typedef struct _IID
{
unsigned long x;
unsigned short s1;
unsigned short s2;
unsigned char c[8];
} IID;
#endif // __IID_DEFINED__
#ifndef CLSID_DEFINED
#define CLSID_DEFINED
typedef IID CLSID;
#endif // CLSID_DEFINED
#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
#endif !_MIDL_USE_GUIDDEF_
MIDL_DEFINE_GUID(IID, LIBID_DSOFramer,0x00460180,0x9E5E,0x11d5,0xB7,0xC8,0xB8,0x26,0x90,0x41,0xDD,0x57);
MIDL_DEFINE_GUID(IID, IID__FramerControl,0x00460181,0x9E5E,0x11d5,0xB7,0xC8,0xB8,0x26,0x90,0x41,0xDD,0x57);
MIDL_DEFINE_GUID(IID, DIID__DFramerCtlEvents,0x00460185,0x9E5E,0x11d5,0xB7,0xC8,0xB8,0x26,0x90,0x41,0xDD,0x57);
MIDL_DEFINE_GUID(CLSID, CLSID_FramerControl,0x00460182,0x9E5E,0x11d5,0xB7,0xC8,0xB8,0x26,0x90,0x41,0xDD,0x57);
#undef MIDL_DEFINE_GUID
#ifdef __cplusplus
}
#endif
File diff suppressed because it is too large Load Diff
Binary file not shown.

Before

Width:  |  Height:  |  Size: 318 B

@@ -1,154 +0,0 @@
//Microsoft Developer Studio generated resource script.
//
#include "resource.h"
#include "..\version.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TYPELIB
//
#ifdef _DEBUG
IDR_TYPELIB TYPELIB DISCARDABLE "..\\Debug\\dsoframer.tlb"
#else
IDR_TYPELIB TYPELIB DISCARDABLE "..\\Release\\dsoframer.tlb"
#endif // _DEBUG
#ifndef _MAC
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION DSOFRAMERCTL_VERSION_MAJOR,DSOFRAMERCTL_VERSION_MINOR,DSOFRAMERCTL_VERSION_BUILD,0
PRODUCTVERSION DSOFRAMERCTL_VERSION_MAJOR,DSOFRAMERCTL_VERSION_MINOR,0,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "Comments", "UNSUPPORTED BY MICROSOFT\0"
VALUE "CompanyName", "Your Company\0"
VALUE "FileDescription", "Your Company's Office Framer Control Sample\0"
VALUE "FileVersion", DSOFRAMERCTL_VERSIONSTRFULL "\0"
VALUE "OriginalFilename", "dsoframer.ocx\0"
VALUE "ProductName", "DSOFRAMER\0"
VALUE "ProductVersion", DSOFRAMERCTL_VERSIONSTR "\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
#endif // !_MAC
/////////////////////////////////////////////////////////////////////////////
//
// Bitmap
//
IDB_TOOLBOX BITMAP DISCARDABLE "toolbox.bmp"
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_SMALLOFFDOC ICON DISCARDABLE "dso.ico"
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE DISCARDABLE
BEGIN
RES_DSO_E_UNKNOWN "An unknown problem has occurred."
RES_DSO_E_INVALIDPROGID "The ProgID/Template could not be found or is not associated with a COM server."
RES_DSO_E_INVALIDSERVER "The associated COM server does not support ActiveX Document embedding."
RES_DSO_E_COMMANDNOTSUPPORTED
"The command is not supported by the document server."
RES_DSO_E_DOCUMENTREADONLY
"Unable to perform action because document was opened in read-only mode."
RES_DSO_E_REQUIRESMSDAIPP
"The Microsoft Internet Publishing Provider is not installed, so the URL document cannot be open for write access."
RES_DSO_E_DOCUMENTNOTOPEN "No document is open to perform the operation requested."
RES_DSO_E_INMODALSTATE "Cannot access document when in modal condition."
RES_DSO_E_NOTBEENSAVED "Cannot Save file without a file path."
RES_DSO_E_FRAMEHOOKFAILED "Unable to set frame hook for the parent window."
END
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
@@ -1,39 +0,0 @@
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by dsoframer.rc
//
#define IDR_TYPELIB 1
#define RES_DSO_E_UNKNOWN 1
#define RES_DSO_E_INVALIDPROGID 2
#define RES_DSO_E_INVALIDSERVER 3
#define RES_DSO_E_COMMANDNOTSUPPORTED 4
#define RES_DSO_E_DOCUMENTREADONLY 5
#define RES_DSO_E_REQUIRESMSDAIPP 6
#define RES_DSO_E_DOCUMENTNOTOPEN 7
#define RES_DSO_E_INMODALSTATE 8
#define RES_DSO_E_NOTBEENSAVED 9
#define RES_DSO_E_FRAMEHOOKFAILED 10
#define IDB_TOOLBOX 102
#define IDB_TOOLBAR 103
#define IDR_BINDMENU 104
#define IDI_SMALLOFFDOC 105
#define MNU_NEW 40001
#define MNU_OPEN 40002
#define MNU_CLOSE 40003
#define MNU_SAVE 40004
#define MNU_SAVEAS 40005
#define MNU_PGSETUP 40006
#define MNU_PRINT 40007
#define MNU_PROPS 40008
#define MNU_PRINTPV 40009
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 107
#define _APS_NEXT_COMMAND_VALUE 40011
#define _APS_NEXT_CONTROL_VALUE 1000
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
Binary file not shown.

Before

Width:  |  Height:  |  Size: 334 B

@@ -1,118 +0,0 @@
/***************************************************************************
* CLASSFACTORY.CPP
*
* CDsoFramerClassFactory: The Class Factroy for the control.
*
* Copyright ©1999-2004; Microsoft Corporation. All rights reserved.
* Written by Microsoft Developer Support Office Integration (PSS DSOI)
*
* This code is provided via KB 311765 as a sample. It is not a formal
* product and has not been tested with all containers or servers. Use it
* for educational purposes only. See the EULA.TXT file included in the
* KB download for full terms of use and restrictions.
*
* THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
* EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
*
***************************************************************************/
#include "dsoframer.h"
////////////////////////////////////////////////////////////////////////
// CDsoFramerClassFactory - IClassFactory Implementation
//
// This is a fairly simple CF. We don't provide support for licensing
// in this sample because it is just a sample. If licensing is important
// you should change the class to support IClassFactory2.
//
////////////////////////////////////////////////////////////////////////
// CDsoFramerClassFactory::QueryInterface
//
STDMETHODIMP CDsoFramerClassFactory::QueryInterface(REFIID riid, void** ppv)
{
ODS("CDsoFramerClassFactory::QueryInterface\n");
CHECK_NULL_RETURN(ppv, E_POINTER);
if ((IID_IUnknown == riid) || (IID_IClassFactory == riid))
{
SAFE_SET_INTERFACE(*ppv, (IClassFactory*)this);
return S_OK;
}
*ppv = NULL;
return E_NOINTERFACE;
}
////////////////////////////////////////////////////////////////////////
// CDsoFramerClassFactory::AddRef
//
STDMETHODIMP_(ULONG) CDsoFramerClassFactory::AddRef(void)
{
TRACE1("CDsoFramerClassFactory::AddRef - %d\n", m_cRef+1);
return ++m_cRef;
}
////////////////////////////////////////////////////////////////////////
// CDsoFramerClassFactory::Release
//
STDMETHODIMP_(ULONG) CDsoFramerClassFactory::Release(void)
{
TRACE1("CDsoFramerClassFactory::Release - %d\n", m_cRef-1);
if (0 != --m_cRef) return m_cRef;
ODS("CDsoFramerClassFactory delete\n");
InterlockedDecrement((LPLONG)&v_cLocks);
delete this;
return 0;
}
////////////////////////////////////////////////////////////////////////
// CDsoFramerClassFactory::CreateInstance
//
// Creates an instance of our control.
//
STDMETHODIMP CDsoFramerClassFactory::CreateInstance(LPUNKNOWN punk, REFIID riid, void** ppv)
{
HRESULT hr;
CDsoFramerControl* pocx;
IUnknown* pnkInternal;
ODS("CDsoFramerClassFactory::CreateInstance\n");
CHECK_NULL_RETURN(ppv, E_POINTER); *ppv = NULL;
// Aggregation requires you ask for (internal) IUnknown
if ((punk) && (riid != IID_IUnknown))
return E_INVALIDARG;
// Create a new instance of the control...
pocx = new CDsoFramerControl(punk);
CHECK_NULL_RETURN(pocx, E_OUTOFMEMORY);
// Grab the internal IUnknown to use for the QI (you don't agg in CF:CreateInstance)...
pnkInternal = (IUnknown*)&(pocx->m_xInternalUnknown);
// Initialize the control (windows, etc.) and QI for requested interface...
if (SUCCEEDED(hr = pocx->InitializeNewInstance()) &&
SUCCEEDED(hr = pnkInternal->QueryInterface(riid, ppv)))
{
InterlockedIncrement((LPLONG)&v_cLocks); // on success, bump up the lock count...
}
else {delete pocx; *ppv = NULL;} // else cleanup the object
return hr;
}
////////////////////////////////////////////////////////////////////////
// CDsoFramerClassFactory::LockServer
//
// Keeps the server loaded in memory.
//
STDMETHODIMP CDsoFramerClassFactory::LockServer(BOOL fLock)
{
TRACE1("CDsoFramerClassFactory::LockServer - %d\n", fLock);
if (fLock) InterlockedIncrement((LPLONG)&v_cLocks);
else InterlockedDecrement((LPLONG)&v_cLocks);
return S_OK;
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,350 +0,0 @@
/***************************************************************************
* DSOFDOCOBJ.H
*
* DSOFramer: OLE DocObject Site component (used by the control)
*
* Copyright ©1999-2004; Microsoft Corporation. All rights reserved.
* Written by Microsoft Developer Support Office Integration (PSS DSOI)
*
* This code is provided via KB 311765 as a sample. It is not a formal
* product and has not been tested with all containers or servers. Use it
* for educational purposes only. See the EULA.TXT file included in the
* KB download for full terms of use and restrictions.
*
* THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
* EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
*
***************************************************************************/
#ifndef DS_DSOFDOCOBJ_H
#define DS_DSOFDOCOBJ_H
////////////////////////////////////////////////////////////////////
// Declarations for Interfaces used in DocObject Containment
//
#include <docobj.h> // Standard DocObjects (common to all AxDocs)
#include "ipprevw.h" // PrintPreview (for select Office apps)
#include "rbbinder.h" // Internet Publishing (for Web Folder write access)
////////////////////////////////////////////////////////////////////////
// Microsoft Office 97-2003 Document Object GUIDs
//
DEFINE_GUID(CLSID_WORD_DOCUMENT_DOC, 0x00020906, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46);
DEFINE_GUID(CLSID_EXCEL_WORKBOOK_XLS, 0x00020820, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46);
DEFINE_GUID(CLSID_EXCEL_CHART_XLS, 0x00020821, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46);
DEFINE_GUID(CLSID_PPT_PRESENTATION_PPT, 0x64818D10, 0x4F9B, 0x11CF, 0x86, 0xEA, 0x00, 0xAA, 0x00, 0xB9, 0x29, 0xE8);
DEFINE_GUID(CLSID_VISIO_DRAWING_VSD, 0x00021A13, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46);
DEFINE_GUID(CLSID_PROJECT_DOCUMENT_MPP, 0x74B78F3A, 0xC8C8, 0x11D1, 0xBE, 0x11, 0x00, 0xC0, 0x4F, 0xB6, 0xFA, 0xF1);
DEFINE_GUID(CLSID_MSHTML_DOCUMENT, 0x25336920, 0x03F9, 0x11CF, 0x8F, 0xD0, 0x00, 0xAA, 0x00, 0x68, 0x6F, 0x13);
////////////////////////////////////////////////////////////////////////
// Microsoft Office 2007 Document GUIDs
//
DEFINE_GUID(CLSID_WORD_DOCUMENT_DOCX, 0xF4754C9B, 0x64F5, 0x4B40, 0x8A, 0xF4, 0x67, 0x97, 0x32, 0xAC, 0x06, 0x07);
DEFINE_GUID(CLSID_WORD_DOCUMENT_DOCM, 0x18A06B6B, 0x2F3F, 0x4E2B, 0xA6, 0x11, 0x52, 0xBE, 0x63, 0x1B, 0x2D, 0x22);
DEFINE_GUID(CLSID_EXCEL_WORKBOOK_XLSX, 0x00020830, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46);
DEFINE_GUID(CLSID_EXCEL_WORKBOOK_XLSM, 0x00020832, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46);
DEFINE_GUID(CLSID_EXCEL_WORKBOOK_XLSB, 0x00020833, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46);
DEFINE_GUID(CLSID_PPT_PRESENTATION_PPTX, 0xCF4F55F4, 0x8F87, 0x4D47, 0x80, 0xBB, 0x58, 0x08, 0x16, 0x4B, 0xB3, 0xF8);
DEFINE_GUID(CLSID_PPT_PRESENTATION_PPTM, 0xDC020317, 0xE6E2, 0x4A62, 0xB9, 0xFA, 0xB3, 0xEF, 0xE1, 0x66, 0x26, 0xF4);
////////////////////////////////////////////////////////////////////
// IDsoDocObjectSite -- {444CA1F7-B405-4002-95C3-A455BC9F4F55}
//
// Implemented by control host for callbacks. Required interface.
//
interface IDsoDocObjectSite : public IServiceProvider
{
STDMETHOD(GetWindow)(HWND* phWnd) PURE;
STDMETHOD(GetBorder)(LPRECT prcBorder) PURE;
STDMETHOD(SetStatusText)(LPCOLESTR pszText) PURE;
STDMETHOD(GetHostName)(LPWSTR *ppwszHostName) PURE;
STDMETHOD(SysMenuCommand)(UINT uiCharCode) PURE;
};
DEFINE_GUID(IID_IDsoDocObjectSite, 0x444CA1F7, 0xB405, 0x4002, 0x95, 0xC3, 0xA4, 0x55, 0xBC, 0x9F, 0x4F, 0x55);
////////////////////////////////////////////////////////////////////
// CDsoDocObject -- ActiveDocument Container Site Object
//
// The CDsoDocObject object handles all the DocObject embedding for the
// control and os fairly self-contained. Like the control it has its
// own window, but it merely acts as a parent for the embedded object
// window(s) which it activates.
//
// CDsoDocObject works by taking a file (or automation object) and
// copying out the OLE storage used for its persistent data. It then
// creates a new embedding based on the data. If a storage is not
// avaiable, it will attempt to oad the file directly, but the results
// are less predictable using this manner since DocObjects are embeddings
// and not links and this component has limited support for links. As a
// result, we will attempt to keep our own storage copy in most cases.
//
// You should note that this approach is different than one taken by the
// web browser control, which is basically a link container which will
// try to embed (ip activate) if allowed, but if not it opens the file
// externally and keeps the link. If CDsoDocObject cannot embed the object,
// it returns an error. It will not open the object external.
//
// Like the control, this object also uses nested classes for the OLE
// interfaces used in the embedding. They are easier to track and easier
// to debug if a specific interface is over/under released. Again this was
// a design decision to make the sample easier to break apart, but not required.
//
// Because the object is not tied to the top-level window, it constructs
// the OLE merged menu as a set of popup menus which the control then displays
// in whatever form it wants. You would need to customize this if you used
// the control in a host and wanted the menus to merge with the actual host
// menu bar (on the top-level window or form).
//
class CDsoDocObject : public IUnknown
{
public:
CDsoDocObject();
~CDsoDocObject();
// Static Create Method (Host Provides Site Interface)
static STDMETHODIMP_(CDsoDocObject*) CreateInstance(IDsoDocObjectSite* phost);
// IUnknown Implementation
STDMETHODIMP QueryInterface(REFIID riid, void** ppv);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
// IOleClientSite Implementation
BEGIN_INTERFACE_PART(OleClientSite, IOleClientSite)
STDMETHODIMP SaveObject(void);
STDMETHODIMP GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker** ppmk);
STDMETHODIMP GetContainer(IOleContainer** ppContainer);
STDMETHODIMP ShowObject(void);
STDMETHODIMP OnShowWindow(BOOL fShow);
STDMETHODIMP RequestNewObjectLayout(void);
END_INTERFACE_PART(OleClientSite)
// IOleInPlaceSite Implementation
BEGIN_INTERFACE_PART(OleInPlaceSite, IOleInPlaceSite)
STDMETHODIMP GetWindow(HWND* phwnd);
STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode);
STDMETHODIMP CanInPlaceActivate(void);
STDMETHODIMP OnInPlaceActivate(void);
STDMETHODIMP OnUIActivate(void);
STDMETHODIMP GetWindowContext(IOleInPlaceFrame** ppFrame, IOleInPlaceUIWindow** ppDoc, LPRECT lprcPosRect, LPRECT lprcClipRect, LPOLEINPLACEFRAMEINFO lpFrameInfo);
STDMETHODIMP Scroll(SIZE sz);
STDMETHODIMP OnUIDeactivate(BOOL fUndoable);
STDMETHODIMP OnInPlaceDeactivate(void);
STDMETHODIMP DiscardUndoState(void);
STDMETHODIMP DeactivateAndUndo(void);
STDMETHODIMP OnPosRectChange(LPCRECT lprcPosRect);
END_INTERFACE_PART(OleInPlaceSite)
// IOleDocumentSite Implementation
BEGIN_INTERFACE_PART(OleDocumentSite, IOleDocumentSite)
STDMETHODIMP ActivateMe(IOleDocumentView* pView);
END_INTERFACE_PART(OleDocumentSite)
// IOleInPlaceFrame Implementation
BEGIN_INTERFACE_PART(OleInPlaceFrame, IOleInPlaceFrame)
STDMETHODIMP GetWindow(HWND* phWnd);
STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode);
STDMETHODIMP GetBorder(LPRECT prcBorder);
STDMETHODIMP RequestBorderSpace(LPCBORDERWIDTHS pBW);
STDMETHODIMP SetBorderSpace(LPCBORDERWIDTHS pBW);
STDMETHODIMP SetActiveObject(LPOLEINPLACEACTIVEOBJECT pIIPActiveObj, LPCOLESTR pszObj);
STDMETHODIMP InsertMenus(HMENU hMenu, LPOLEMENUGROUPWIDTHS pMGW);
STDMETHODIMP SetMenu(HMENU hMenu, HOLEMENU hOLEMenu, HWND hWndObj);
STDMETHODIMP RemoveMenus(HMENU hMenu);
STDMETHODIMP SetStatusText(LPCOLESTR pszText);
STDMETHODIMP EnableModeless(BOOL fEnable);
STDMETHODIMP TranslateAccelerator(LPMSG pMSG, WORD wID);
END_INTERFACE_PART(OleInPlaceFrame)
// IOleCommandTarget Implementation
BEGIN_INTERFACE_PART(OleCommandTarget , IOleCommandTarget)
STDMETHODIMP QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText);
STDMETHODIMP Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG *pvaIn, VARIANTARG *pvaOut);
END_INTERFACE_PART(OleCommandTarget)
// IServiceProvider Implementation
BEGIN_INTERFACE_PART(ServiceProvider , IServiceProvider)
STDMETHODIMP QueryService(REFGUID guidService, REFIID riid, void **ppv);
END_INTERFACE_PART(ServiceProvider)
// IAuthenticate Implementation
BEGIN_INTERFACE_PART(Authenticate , IAuthenticate)
STDMETHODIMP Authenticate(HWND *phwnd, LPWSTR *pszUsername, LPWSTR *pszPassword);
END_INTERFACE_PART(Authenticate)
// IContinueCallback Implementation
BEGIN_INTERFACE_PART(ContinueCallback , IContinueCallback)
STDMETHODIMP FContinue(void);
STDMETHODIMP FContinuePrinting(LONG cPagesPrinted, LONG nCurrentPage, LPOLESTR pwszPrintStatus);
END_INTERFACE_PART(ContinueCallback)
// IOlePreviewCallback Implementation
BEGIN_INTERFACE_PART(PreviewCallback , IOlePreviewCallback)
STDMETHODIMP Notify(DWORD wStatus, LONG nLastPage, LPOLESTR pwszPreviewStatus);
END_INTERFACE_PART(PreviewCallback)
// DocObject Class Methods IDsoDocObjectSite
STDMETHODIMP InitializeNewInstance(IDsoDocObjectSite* phost);
STDMETHODIMP CreateDocObject(REFCLSID rclsid);
STDMETHODIMP CreateDocObject(IStorage *pstg);
STDMETHODIMP CreateFromFile(LPWSTR pwszFile, REFCLSID rclsid, LPBIND_OPTS pbndopts);
STDMETHODIMP CreateFromURL(LPWSTR pwszUrlFile, REFCLSID rclsid, LPBIND_OPTS pbndopts, LPWSTR pwszUserName, LPWSTR pwszPassword);
STDMETHODIMP CreateFromRunningObject(LPUNKNOWN punkObj, LPWSTR pwszObjectName, LPBIND_OPTS pbndopts);
STDMETHODIMP IPActivateView();
STDMETHODIMP IPDeactivateView();
STDMETHODIMP UIActivateView();
STDMETHODIMP UIDeactivateView();
STDMETHODIMP_(BOOL) IsDirty();
STDMETHODIMP Save();
STDMETHODIMP SaveToFile(LPWSTR pwszFile, BOOL fOverwriteFile);
STDMETHODIMP SaveToURL(LPWSTR pwszURL, BOOL fOverwriteFile, LPWSTR pwszUserName, LPWSTR pwszPassword);
STDMETHODIMP PrintDocument(LPCWSTR pwszPrinter, LPCWSTR pwszOutput, UINT cCopies, UINT nFrom, UINT nTo, BOOL fPromptUser);
STDMETHODIMP StartPrintPreview();
STDMETHODIMP ExitPrintPreview(BOOL fForceExit);
STDMETHODIMP DoOleCommand(DWORD dwOleCmdId, DWORD dwOptions, VARIANT* vInParam, VARIANT* vInOutParam);
STDMETHODIMP Close();
// Control should notify us on these conditions (so we can pass to IP object)...
STDMETHODIMP_(void) OnNotifySizeChange(LPRECT prc);
STDMETHODIMP_(void) OnNotifyAppActivate(BOOL fActive, DWORD dwThreadID);
STDMETHODIMP_(void) OnNotifyPaletteChanged(HWND hwndPalChg);
STDMETHODIMP_(void) OnNotifyChangeToolState(BOOL fShowTools);
STDMETHODIMP_(void) OnNotifyControlFocus(BOOL fGotFocus);
STDMETHODIMP HrGetDataFromObject(VARIANT *pvtType, VARIANT *pvtOutput);
STDMETHODIMP HrSetDataInObject(VARIANT *pvtType, VARIANT *pvtInput, BOOL fMbcsString);
STDMETHODIMP_(BOOL) GetDocumentTypeAndFileExtension(WCHAR** ppwszFileType, WCHAR** ppwszFileExt);
// Inline accessors for control to get IP object info...
inline IOleInPlaceActiveObject* GetActiveObject(){return m_pipactive;}
inline IOleObject* GetOleObject(){return m_pole;}
inline HWND GetDocWindow(){return m_hwnd;}
inline HWND GetActiveWindow(){return m_hwndUIActiveObj;}
inline BOOL IsReadOnly(){return m_fOpenReadOnly;}
inline BOOL InPrintPreview(){return ((m_pprtprv != NULL) || (m_fInPptSlideShow));}
inline HWND GetMenuHWND(){return m_hwndMenuObj;}
inline HMENU GetActiveMenu(){return m_hMenuActive;}
inline HMENU GetMergedMenu(){return m_hMenuMerged;}
inline void SetMergedMenu(HMENU h){m_hMenuMerged = h;}
inline LPCWSTR GetSourceName(){return ((m_pwszWebResource) ? m_pwszWebResource : m_pwszSourceFile);}
inline LPCWSTR GetSourceDocName(){return ((m_pwszSourceFile) ? &m_pwszSourceFile[m_idxSourceName] : NULL);}
inline CLSID* GetServerCLSID(){return &m_clsidObject;}
inline BOOL IsIPActive(){return (m_pipobj != NULL);}
BOOL IsWordObject()
{return ((m_clsidObject == CLSID_WORD_DOCUMENT_DOC) ||
(m_clsidObject == CLSID_WORD_DOCUMENT_DOCX) ||
(m_clsidObject == CLSID_WORD_DOCUMENT_DOCM));
}
BOOL IsExcelObject()
{return ((m_clsidObject == CLSID_EXCEL_WORKBOOK_XLS) ||
(m_clsidObject == CLSID_EXCEL_WORKBOOK_XLSX) ||
(m_clsidObject == CLSID_EXCEL_WORKBOOK_XLSM) ||
(m_clsidObject == CLSID_EXCEL_WORKBOOK_XLSB) ||
(m_clsidObject == CLSID_EXCEL_CHART_XLS));
}
BOOL IsPPTObject()
{return ((m_clsidObject == CLSID_PPT_PRESENTATION_PPT) ||
(m_clsidObject == CLSID_PPT_PRESENTATION_PPTX) ||
(m_clsidObject == CLSID_PPT_PRESENTATION_PPTM));
}
BOOL IsVisioObject()
{return (m_clsidObject == CLSID_VISIO_DRAWING_VSD);}
STDMETHODIMP SetRunningServerLock(BOOL fLock);
protected:
// Internal helper methods...
STDMETHODIMP InstantiateDocObjectServer(REFCLSID rclsid, IOleObject **ppole);
STDMETHODIMP CreateObjectStorage(REFCLSID rclsid);
STDMETHODIMP SaveObjectStorage();
STDMETHODIMP SaveDocToMoniker(IMoniker *pmk, IBindCtx *pbc, BOOL fKeepLock);
STDMETHODIMP SaveDocToFile(LPWSTR pwszFullName, BOOL fKeepLock);
STDMETHODIMP ValidateDocObjectServer(REFCLSID rclsid);
STDMETHODIMP_(BOOL) ValidateFileExtension(WCHAR* pwszFile, WCHAR** ppwszOut);
STDMETHODIMP_(void) OnDraw(DWORD dvAspect, HDC hdcDraw, LPRECT prcBounds, LPRECT prcWBounds, HDC hicTargetDev, BOOL fOptimize);
STDMETHODIMP EnsureOleServerRunning(BOOL fLockRunning);
STDMETHODIMP_(void) FreeRunningLock();
STDMETHODIMP_(void) TurnOffWebToolbar(BOOL fTurnedOff);
STDMETHODIMP_(void) ClearMergedMenu();
STDMETHODIMP_(DWORD) CalcDocNameIndex(LPCWSTR pwszPath);
STDMETHODIMP_(void) CheckForPPTPreviewChange();
// These functions allow the component to access files in a Web Folder for
// write access using the Microsoft Provider for Internet Publishing (MSDAIPP),
// which is installed by Office and comes standard in Windows 2000/ME/XP/2003. The
// provider is not required to use the component, only if you wish to save to
// an FPSE or DAV Web Folder (URL).
STDMETHODIMP_(IUnknown*) CreateIPPBindResource();
STDMETHODIMP IPPDownloadWebResource(LPWSTR pwszURL, LPWSTR pwszFile, IStream** ppstmKeepForSave);
STDMETHODIMP IPPUploadWebResource(LPWSTR pwszFile, IStream** ppstmSave, LPWSTR pwszURLSaveTo, BOOL fOverwriteFile);
static STDMETHODIMP_(LRESULT) FrameWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
// The private class variables...
private:
ULONG m_cRef; // Reference count
HWND m_hwnd; // our window
HWND m_hwndCtl; // The control's window
RECT m_rcViewRect; // Viewable area (set by host)
IDsoDocObjectSite *m_psiteCtl; // The control's site interface
IOleCommandTarget *m_pcmdCtl; // IOCT of host (for frame msgs)
LPWSTR m_pwszHostName; // Ole Host Name for container
LPWSTR m_pwszSourceFile; // Path to Source File (on Open)
IMoniker *m_pmkSourceFile; // Moniker to original source file
IBindCtx *m_pbctxSourceFile; // Bind context used to original source file
IStorage *m_pstgSourceFile; // Original File Storage (if open/save file)
DWORD m_idxSourceName; // Index to doc name in m_pwszSourceFile
CLSID m_clsidObject; // CLSID of the embedded object
IStorage *m_pstgroot; // Root temp storage
IStorage *m_pstgfile; // In-memory file storage
IStream *m_pstmview; // In-memory view info stream
LPWSTR m_pwszWebResource; // The full URL to the web resource
IStream *m_pstmWebResource; // Original Download Stream (if open/save URL)
IUnknown *m_punkIPPResource; // MSDAIPP provider resource (for URL authoring)
LPWSTR m_pwszUsername; // Username and password used by MSDAIPP
LPWSTR m_pwszPassword; // for Authentication (see IAuthenticate)
IOleObject *m_pole; // Embedded OLE Object (OLE)
IOleInPlaceObject *m_pipobj; // The IP object methods (OLE)
IOleInPlaceActiveObject *m_pipactive; // The UI Active object methods (OLE)
IOleDocumentView *m_pdocv; // MSO Document View (DocObj)
IOleCommandTarget *m_pcmdt; // MSO Command Target (DocObj)
IOleInplacePrintPreview *m_pprtprv; // MSO Print Preview (DocObj)
HMENU m_hMenuActive; // The menu supplied by embedded object
HMENU m_hMenuMerged; // The merged menu (set by control host)
HOLEMENU m_holeMenu; // The OLE Menu Descriptor
HWND m_hwndMenuObj; // The window for menu commands
HWND m_hwndIPObject; // IP active object window
HWND m_hwndUIActiveObj; // UI Active object window
DWORD m_dwObjectThreadID; // Thread Id of UI server
BORDERWIDTHS m_bwToolSpace; // Toolspace...
// Bitflags (state info)...
unsigned int m_fDisplayTools:1;
unsigned int m_fDisconnectOnQuit:1;
unsigned int m_fAppWindowActive:1;
unsigned int m_fOpenReadOnly:1;
unsigned int m_fObjectInModalCondition:1;
unsigned int m_fObjectIPActive:1;
unsigned int m_fObjectUIActive:1;
unsigned int m_fObjectActivateComplete:1;
unsigned int m_fLockedServerRunning:1;
unsigned int m_fLoadedFromAuto:1;
unsigned int m_fInClose:1;
unsigned int m_fAttemptPptPreview:1;
unsigned int m_fInPptSlideShow:1;
};
#endif //DS_DSOFDOCOBJ_H
@@ -1,419 +0,0 @@
/***************************************************************************
* DSOFPRINT.CPP
*
* CDsoDocObject: Print Code for CDsoDocObject object
*
* Copyright ©1999-2004; Microsoft Corporation. All rights reserved.
* Written by Microsoft Developer Support Office Integration (PSS DSOI)
*
* This code is provided via KB 311765 as a sample. It is not a formal
* product and has not been tested with all containers or servers. Use it
* for educational purposes only. See the EULA.TXT file included in the
* KB download for full terms of use and restrictions.
*
* THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
* EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
*
***************************************************************************/
#include "dsoframer.h"
////////////////////////////////////////////////////////////////////////
// CDsoFramerControl::_PrintOutOld
//
// Prints the current object by calling IOleCommandTarget for Print.
//
STDMETHODIMP CDsoFramerControl::_PrintOutOld(VARIANT PromptToSelectPrinter)
{
DWORD dwOption = BOOL_FROM_VARIANT(PromptToSelectPrinter, FALSE)
? OLECMDEXECOPT_PROMPTUSER : OLECMDEXECOPT_DODEFAULT;
TRACE1("CDsoFramerControl::_PrintOutOld(%d)\n", dwOption);
CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN));
// Cannot access object if in modal condition...
if ((m_fModalState) || (m_pDocObjFrame->InPrintPreview()))
return ProvideErrorInfo(DSO_E_INMODALSTATE);
return m_pDocObjFrame->DoOleCommand(OLECMDID_PRINT, dwOption, NULL, NULL);
}
////////////////////////////////////////////////////////////////////////
// CDsoFramerControl::PrintOut
//
// Prints document using either IPrint or IOleCommandTarget, depending
// on parameters passed. This offers a bit more control over printing if
// the doc object server supports IPrint interface.
//
STDMETHODIMP CDsoFramerControl::PrintOut(VARIANT PromptUser, VARIANT PrinterName,
VARIANT Copies, VARIANT FromPage, VARIANT ToPage, VARIANT OutputFile)
{
HRESULT hr;
BOOL fPromptUser = BOOL_FROM_VARIANT(PromptUser, FALSE);
LPWSTR pwszPrinter = LPWSTR_FROM_VARIANT(PrinterName);
LPWSTR pwszOutput = LPWSTR_FROM_VARIANT(OutputFile);
LONG lCopies = LONG_FROM_VARIANT(Copies, 1);
LONG lFrom = LONG_FROM_VARIANT(FromPage, 0);
LONG lTo = LONG_FROM_VARIANT(ToPage, 0);
TRACE3("CDsoFramerControl::PrintOut(%d, %S, %d)\n", fPromptUser, pwszPrinter, lCopies);
CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN));
// First we do validation of all parameters passed to the function...
if ((pwszPrinter) && (*pwszPrinter == L'\0'))
return E_INVALIDARG;
if ((pwszOutput) && (*pwszOutput == L'\0'))
return E_INVALIDARG;
if ((lCopies < 1) || (lCopies > 200))
return E_INVALIDARG;
if (((lFrom != 0) || (lTo != 0)) && ((lFrom < 1) || (lTo < lFrom)))
return E_INVALIDARG;
// Cannot access object if in modal condition...
if ((m_fModalState) || (m_pDocObjFrame->InPrintPreview()))
return ProvideErrorInfo(DSO_E_INMODALSTATE);
// If no printer name was provided, we can print to the default device
// using IOleCommandTarget with OLECMDID_PRINT...
if (pwszPrinter == NULL)
return _PrintOutOld(PromptUser);
// Ask the embedded document to print itself to specific printer...
hr = m_pDocObjFrame->PrintDocument(pwszPrinter, pwszOutput, (UINT)lCopies,
(UINT)lFrom, (UINT)lTo, fPromptUser);
// If call failed because interface doesn't exist, change error
// to let caller know it is because DocObj doesn't support this command...
if (FAILED(hr) && (hr == E_NOINTERFACE))
hr = DSO_E_COMMANDNOTSUPPORTED;
return ProvideErrorInfo(hr);
}
////////////////////////////////////////////////////////////////////////
// CDsoFramerControl::PrintPreview
//
// Asks embedded object to attempt a print preview (only Office docs do this).
//
STDMETHODIMP CDsoFramerControl::PrintPreview()
{
HRESULT hr;
ODS("CDsoFramerControl::PrintPreview\n");
CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN));
if (m_fModalState) // Cannot access object if in modal condition...
return ProvideErrorInfo(DSO_E_INMODALSTATE);
// Try to set object into print preview mode...
hr = m_pDocObjFrame->StartPrintPreview();
// If call failed because interface doesn't exist, change error
// to let caller know it is because DocObj doesn't support this command...
if (FAILED(hr) && (hr == E_NOINTERFACE))
hr = DSO_E_COMMANDNOTSUPPORTED;
return ProvideErrorInfo(hr);
}
////////////////////////////////////////////////////////////////////////
// CDsoFramerControl::PrintPreviewExit
//
// Closes an active preview.
//
STDMETHODIMP CDsoFramerControl::PrintPreviewExit()
{
ODS("CDsoFramerControl::PrintPreviewExit\n");
CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN));
// Try to set object out of print preview mode...
if (m_pDocObjFrame->InPrintPreview())
m_pDocObjFrame->ExitPrintPreview(TRUE);
return S_OK;
}
////////////////////////////////////////////////////////////////////////
// CDsoDocObject::PrintDocument
//
// We can use the IPrint interface for an ActiveX Document object to
// selectively print object to a given printer.
//
STDMETHODIMP CDsoDocObject::PrintDocument(LPCWSTR pwszPrinter, LPCWSTR pwszOutput, UINT cCopies, UINT nFrom, UINT nTo, BOOL fPromptUser)
{
HRESULT hr;
IPrint *print;
HANDLE hPrint;
DVTARGETDEVICE* ptd = NULL;
ODS("CDsoDocObject::PrintDocument\n");
CHECK_NULL_RETURN(m_pole, E_UNEXPECTED);
// First thing we need to do is ask object for IPrint. If it does not
// support it, we cannot continue. It is up to DocObj if this is allowed...
hr = m_pole->QueryInterface(IID_IPrint, (void**)&print);
RETURN_ON_FAILURE(hr);
// Now setup printer settings into DEVMODE for IPrint. Open printer
// settings and gather default DEVMODE...
if (FOpenPrinter(pwszPrinter, &hPrint))
{
LPDEVMODEW pdevMode = NULL;
LPWSTR pwszDefProcessor = NULL;
LPWSTR pwszDefDriver = NULL;
LPWSTR pwszDefPort = NULL;
LPWSTR pwszPort;
DWORD cbDevModeSize;
if (FGetPrinterSettings(hPrint, &pwszDefProcessor,
&pwszDefDriver, &pwszDefPort, &pdevMode, &cbDevModeSize) && (pdevMode))
{
DWORD cbPrintName, cbDeviceName, cbOutputName;
DWORD cbDVTargetSize;
pdevMode->dmFields |= DM_COPIES;
pdevMode->dmCopies = (WORD)((cCopies) ? cCopies : 1);
pwszPort = ((pwszOutput) ? (LPWSTR)pwszOutput : pwszDefPort);
// We calculate the size we will need for the TARGETDEVICE structure...
cbPrintName = ((lstrlenW(pwszDefProcessor) + 1) * sizeof(WCHAR));
cbDeviceName = ((lstrlenW(pwszDefDriver) + 1) * sizeof(WCHAR));
cbOutputName = ((lstrlenW(pwszPort) + 1) * sizeof(WCHAR));
cbDVTargetSize = sizeof(DWORD) + sizeof(DEVNAMES) + cbPrintName +
cbDeviceName + cbOutputName + cbDevModeSize;
// Allocate new target device using COM Task Allocator...
ptd = (DVTARGETDEVICE*)CoTaskMemAlloc(cbDVTargetSize);
if (ptd)
{
// Copy all the data in the DVT...
DWORD dwOffset = sizeof(DWORD) + sizeof(DEVNAMES);
ptd->tdSize = cbDVTargetSize;
ptd->tdDriverNameOffset = (WORD)dwOffset;
memcpy((BYTE*)(((BYTE*)ptd) + dwOffset), pwszDefProcessor, cbPrintName);
dwOffset += cbPrintName;
ptd->tdDeviceNameOffset = (WORD)dwOffset;
memcpy((BYTE*)(((BYTE*)ptd) + dwOffset), pwszDefDriver, cbDeviceName);
dwOffset += cbDeviceName;
ptd->tdPortNameOffset = (WORD)dwOffset;
memcpy((BYTE*)(((BYTE*)ptd) + dwOffset), pwszPort, cbOutputName);
dwOffset += cbOutputName;
ptd->tdExtDevmodeOffset = (WORD)dwOffset;
memcpy((BYTE*)(((BYTE*)ptd) + dwOffset), pdevMode, cbDevModeSize);
dwOffset += cbDevModeSize;
ASSERT(dwOffset == cbDVTargetSize);
}
else hr = E_OUTOFMEMORY;
// We're done with the devmode...
DsoMemFree(pdevMode);
}
else hr = E_WIN32_LASTERROR;
SAFE_FREESTRING(pwszDefPort);
SAFE_FREESTRING(pwszDefDriver);
SAFE_FREESTRING(pwszDefProcessor);
ClosePrinter(hPrint);
}
else hr = E_WIN32_LASTERROR;
// If we were successful in getting TARGETDEVICE struct, provide the page range
// for the print job and ask docobj server to print it...
if (SUCCEEDED(hr))
{
PAGESET *ppgset;
DWORD cbPgRngSize = sizeof(PAGESET) + sizeof(PAGERANGE);
LONG cPages, cLastPage;
DWORD grfPrintFlags;
// Setup the page range to print...
if ((ppgset = (PAGESET*)CoTaskMemAlloc(cbPgRngSize)) != NULL)
{
ppgset->cbStruct = cbPgRngSize;
ppgset->cPageRange = 1;
ppgset->fOddPages = TRUE;
ppgset->fEvenPages = TRUE;
ppgset->cPageRange = 1;
ppgset->rgPages[0].nFromPage = ((nFrom) ? nFrom : 1);
ppgset->rgPages[0].nToPage = ((nTo) ? nTo : PAGESET_TOLASTPAGE);
// Give indication we are waiting (on the print)...
HCURSOR hCur = SetCursor(LoadCursor(NULL, IDC_WAIT));
SEH_TRY
// Setup the initial page number (optional)...
print->SetInitialPageNum(ppgset->rgPages[0].nFromPage);
grfPrintFlags = (PRINTFLAG_MAYBOTHERUSER | PRINTFLAG_RECOMPOSETODEVICE);
if (fPromptUser) grfPrintFlags |= PRINTFLAG_PROMPTUSER;
if (pwszOutput) grfPrintFlags |= PRINTFLAG_PRINTTOFILE;
// Now ask server to print it using settings passed...
hr = print->Print(grfPrintFlags, &ptd, &ppgset, NULL, (IContinueCallback*)&m_xContinueCallback,
ppgset->rgPages[0].nFromPage, &cPages, &cLastPage);
SEH_EXCEPT(hr)
SetCursor(hCur);
if (ppgset)
CoTaskMemFree(ppgset);
}
else hr = E_OUTOFMEMORY;
}
// We are done...
if (ptd) CoTaskMemFree(ptd);
print->Release();
return hr;
}
////////////////////////////////////////////////////////////////////////
// CDsoDocObject::StartPrintPreview
//
// Ask embedded object to go into print preview (if supportted).
//
STDMETHODIMP CDsoDocObject::StartPrintPreview()
{
HRESULT hr;
IOleInplacePrintPreview *prev;
HCURSOR hCur;
ODS("CDsoDocObject::StartPrintPreview\n");
CHECK_NULL_RETURN(m_pole, E_UNEXPECTED);
// No need to do anything if already in preview...
if (InPrintPreview()) return S_FALSE;
// Otherwise, ask document server if it supports preview...
hr = m_pole->QueryInterface(IID_IOleInplacePrintPreview, (void**)&prev);
if (SUCCEEDED(hr))
{
// Tell user we waiting (switch to preview can be slow for very large docs)...
hCur = SetCursor(LoadCursor(NULL, IDC_WAIT));
// If it does, make sure it can go into preview mode...
hr = prev->QueryStatus();
if (SUCCEEDED(hr))
{
SEH_TRY
if (m_hwndCtl) // Notify the control that preview started...
SendMessage(m_hwndCtl, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_INTERACTIVE, (LPARAM)FALSE);
// We will allow application to bother user and switch printers...
hr = prev->StartPrintPreview(
(PREVIEWFLAG_MAYBOTHERUSER | PREVIEWFLAG_PROMPTUSER | PREVIEWFLAG_USERMAYCHANGEPRINTER),
NULL, (IOlePreviewCallback*)&m_xPreviewCallback, 1);
SEH_EXCEPT(hr)
// If the call succeeds, we keep hold of interface to close preview later
if (SUCCEEDED(hr))
{
SAFE_SET_INTERFACE(m_pprtprv, prev);
}
else
{ // Otherwise, notify the control that preview failed...
if (m_hwndCtl)
PostMessage(m_hwndCtl, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_INTERACTIVE, (LPARAM)TRUE);
}
}
SetCursor(hCur);
prev->Release();
}
else if (IsPPTObject() && (m_hwndUIActiveObj))
{
// PowerPoint doesn't have print preview, but it does have slide show mode, so we can use this to
// toggle the viewing into slideshow...
if (PostMessage(m_hwndUIActiveObj, WM_KEYDOWN, VK_F5, 0x00000001) &&
PostMessage(m_hwndUIActiveObj, WM_KEYUP, VK_F5, 0xC0000001))
{
hr = S_OK; m_fAttemptPptPreview = TRUE;
}
}
return hr;
}
////////////////////////////////////////////////////////////////////////
// CDsoDocObject::ExitPrintPreview
//
// Drop out of print preview and restore items as needed.
//
STDMETHODIMP CDsoDocObject::ExitPrintPreview(BOOL fForceExit)
{
TRACE1("CDsoDocObject::ExitPrintPreview(fForceExit=%d)\n", (DWORD)fForceExit);
// Need to be in preview to run this function...
if (!InPrintPreview()) return S_FALSE;
// If the user closes the app or otherwise terminates the preview, we need
// to notify the ActiveDocument server to leave preview mode...
if (m_pprtprv)
{
if (fForceExit) // Tell docobj we want to end preview...
{
HRESULT hr = m_pprtprv->EndPrintPreview(TRUE);
ASSERT(SUCCEEDED(hr)); (void)hr;
}
}
else if (m_fInPptSlideShow)
{
if ((fForceExit) && (m_hwndUIActiveObj))
{
// HACK: When it goes into slideshow, PPT 2007 changes the active window but
// doesn't call SetActiveObject to update us with new object and window handle.
// If we post VK_ESCAPE to the window handle we have, it can fail. It needs to go
// to the slideshow window that PPT failed to give us handle for. As workaround,
// setting focus to the UI window we have handle for will automatically forward
// to the right window, so we can use that trick to get the right window and
// make the call in a way that that should succeed regardless of PPT version...
SetFocus(m_hwndUIActiveObj);
PostMessage(GetFocus(), WM_KEYDOWN, VK_ESCAPE, 0x00000001);
PostMessage(GetFocus(), WM_KEYUP, VK_ESCAPE, 0xC0000001);
}
m_fAttemptPptPreview = FALSE;
m_fInPptSlideShow = FALSE;
}
if (m_hwndCtl) // Notify the control that preview ended...
SendMessage(m_hwndCtl, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_INTERACTIVE, (LPARAM)TRUE);
// Free our reference to preview interface...
SAFE_RELEASE_INTERFACE(m_pprtprv);
return S_OK;
}
////////////////////////////////////////////////////////////////////////
// CDsoDocObject::CheckForPPTPreviewChange
//
// Used to update control when PPT goes in/out of slideshow asynchronously.
//
STDMETHODIMP_(void) CDsoDocObject::CheckForPPTPreviewChange()
{
if (m_fInPptSlideShow)
{
ExitPrintPreview(FALSE);
}
else if (m_fAttemptPptPreview)
{
m_fInPptSlideShow = TRUE;
m_fAttemptPptPreview = FALSE;
if (m_hwndCtl) // Notify the control that preview started...
SendMessage(m_hwndCtl, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_INTERACTIVE, (LPARAM)FALSE);
}
}
@@ -1,6 +0,0 @@
LIBRARY dsoframer.ocx
EXPORTS
DllGetClassObject PRIVATE
DllCanUnloadNow PRIVATE
DllRegisterServer PRIVATE
DllUnregisterServer PRIVATE

Some files were not shown because too many files have changed in this diff Show More