Compare commits
22 Commits
B2026-007_
...
C2026-009
| Author | SHA1 | Date | |
|---|---|---|---|
| 15979203ce | |||
| 53360a03af | |||
| 9f6f7c23f6 | |||
| 7419f4e886 | |||
| f90a80c366 | |||
| d9ec756e22 | |||
| 9f7c24c540 | |||
| fe2833395d | |||
| a181cf3815 | |||
| dfce44a47a | |||
| 22280bf1e3 | |||
| 7afca6a254 | |||
| 1c56aa2eb1 | |||
| f38aa4595f | |||
| aa0b906a9f | |||
| f43d1e5f47 | |||
| 63a74e1aef | |||
| 69e45e9ae8 | |||
| 53cf35014c | |||
| d6e4239573 | |||
| c76808e11e | |||
| b2428a4211 |
Binary file not shown.
Binary file not shown.
@@ -1643,7 +1643,11 @@ Begin
|
||||
Select Cast(i.LastChanged as varbinary(8)) as 'ILastChanged',
|
||||
i.ItemID as 'ItemID',
|
||||
zi.VersionID as 'VersionID',
|
||||
zi.PPath +
|
||||
CASE WHEN c.[Type] % 20000 = 6 THEN REPLACE(zi.PPath,'Note','Caution')
|
||||
WHEN c.[Type] % 20000 = 7 THEN REPLACE(zi.PPath,'Caution','Note')
|
||||
ELSE zi.PPath
|
||||
END
|
||||
+
|
||||
Case (c.[Type]/10000)
|
||||
When 0 Then @Delim + @UnitPrefix + IsNull(c.Number,'') + @DelimNumber + IsNull(c.Text,'') -- Procedure
|
||||
When 1 Then @Delim + IsNull(c.Number,'') + @DelimNumber + IsNull(c.Text,'') -- Section
|
||||
@@ -24529,6 +24533,51 @@ GO
|
||||
PRINT 'Added IX_tblROUsagesRODbIDDeleteStatusROID Index. Speeds up RO queries'
|
||||
GO
|
||||
|
||||
|
||||
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[GetCurrentApprovedRevisions]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
|
||||
DROP PROCEDURE [GetCurrentApprovedRevisions];
|
||||
|
||||
GO
|
||||
|
||||
/****** Object: StoredProcedure [dbo].[GetCurrentApprovedRevisions] Script Date: 02/05/2026 7:54:42 AM ******/
|
||||
|
||||
-- =============================================
|
||||
-- Author: Matthew Schill
|
||||
-- Create date: 02/05/2026
|
||||
-- Description: Gets all current approved revisions
|
||||
-- =============================================
|
||||
CREATE PROCEDURE [dbo].[GetCurrentApprovedRevisions]
|
||||
(
|
||||
@ItemID AS bigint
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
select max(rr.revisionid) revisionid, UnitId, UnitVal.name UnitName, max(rr.DTS) DTS
|
||||
from items ii
|
||||
inner join revisions rr on ii.itemid = rr.itemid
|
||||
inner join versions vv on rr.revisionid = vv.revisionid
|
||||
inner join stages ss on vv.stageid = ss.stageid
|
||||
outer apply
|
||||
(Select UnitId = r1.value('@Index','int') FROM rr.config.nodes('Config/Applicability') t1(r1)) App
|
||||
left outer join
|
||||
(select r1.value('@index','int') indx
|
||||
,r1.value('@Name','varchar') name
|
||||
from (select *,cast(config as xml) xconfig from DocVersions
|
||||
where ItemID in(select itemID from vefn_AllSiblingItems(@ItemID))) SDV
|
||||
cross apply
|
||||
xconfig.nodes('Config/Slaves/Slave') t1(r1)) UnitVal ON UnitVal.indx = UnitId
|
||||
where ss.isapproved = 1
|
||||
and ii.itemid = @ItemID
|
||||
group by UnitId, UnitVal.name
|
||||
|
||||
RETURN
|
||||
END
|
||||
|
||||
IF (@@Error = 0) PRINT 'Procedure Creation: [GetCurrentApprovedRevisions] Succeeded'
|
||||
ELSE PRINT 'Procedure Creation: [GetCurrentApprovedRevisions] Error on Creation'
|
||||
GO
|
||||
|
||||
/*
|
||||
---------------------------------------------------------------------------
|
||||
| ADD New Code Before this Block |
|
||||
@@ -24562,8 +24611,8 @@ BEGIN TRY -- Try Block
|
||||
DECLARE @RevDate varchar(255)
|
||||
DECLARE @RevDescription varchar(255)
|
||||
|
||||
set @RevDate = '01/19/2026 5:00 PM'
|
||||
set @RevDescription = 'Sync tree list Sort order between in RO Editor and PROMS'
|
||||
set @RevDate = '02/09/2026 7:00 AM'
|
||||
set @RevDescription = 'Added procedure for getting current revisions'
|
||||
|
||||
Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription
|
||||
PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription
|
||||
|
||||
@@ -216,7 +216,7 @@ namespace VEPROMS
|
||||
MembershipInfo mi = (MembershipInfo)lstMembers.SelectedItem;
|
||||
string selectedUserID = mi.MyUserUserID;
|
||||
string msg = "Are you sure you want to remove this Group Member?";
|
||||
if (MessageBox.Show(this, msg, "Confirm Group Member Removal", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||
if (MessageBox.Show(this, msg, "Confirm Group Member Removal", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||
{
|
||||
if (mi.MyGroup.GroupName == "Administrators" && mi.MyGroup.GroupMemberships.Count(mm => mm.EndDate == null || mm.EndDate == string.Empty) == 1)
|
||||
{
|
||||
@@ -255,7 +255,7 @@ namespace VEPROMS
|
||||
MessageBox.Show("There are still users who are members of this group. You need to delete all members in order to delete this group.", "Group Has Members", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
if (MessageBox.Show("Are you sure you want to delete this group?", "Confirm Deleting Group", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||
if (MessageBox.Show("Are you sure you want to delete this group?", "Confirm Deleting Group", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||
{
|
||||
Group.Delete(gi.GID);
|
||||
LoadRefreshGroupUsers();
|
||||
@@ -333,6 +333,7 @@ namespace VEPROMS
|
||||
User u = User.MakeUser("[Enter New UserID]", "", "", "", "", "", "", "", "", "", "", DateTime.Now, "");
|
||||
frmManageUser frm = new frmManageUser("add");
|
||||
frm.MyUser = u;
|
||||
frm.Text = "Enter New UserID"; //C2026-002 Change Title bar on Add/Edit User
|
||||
if (frm.ShowDialog(this) == DialogResult.OK)
|
||||
{
|
||||
u = frm.MyUser;
|
||||
@@ -396,7 +397,7 @@ namespace VEPROMS
|
||||
}
|
||||
int nummemberships = ui.UserMemberships.Count(mi => mi.EndDate == null || mi.EndDate == string.Empty);
|
||||
string mem_text = nummemberships > 0 ? "\r\nNote that this will remove all memberships that this user has." : "";
|
||||
if (MessageBox.Show($"Are you sure you want to delete this user?{mem_text}", "Confirm Deleting User", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||
if (MessageBox.Show($"Are you sure you want to delete this user?{mem_text}", "Confirm Deleting User", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||
{
|
||||
foreach (MembershipInfo minfo in ui.UserMemberships.Where(mi => mi.EndDate == null || mi.EndDate == string.Empty))
|
||||
{
|
||||
@@ -476,7 +477,7 @@ namespace VEPROMS
|
||||
{
|
||||
MembershipInfo mi = (MembershipInfo)lstGroups.SelectedItem;
|
||||
string msg = "Are you sure you want to remove this Group Member?";
|
||||
if (MessageBox.Show(this, msg, "Confirm Group Member Removal", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||
if (MessageBox.Show(this, msg, "Confirm Group Member Removal", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||
{
|
||||
if (mi.MyGroup.GroupName == "Administrators" && mi.MyGroup.GroupMemberships.Count(mm => mm.EndDate == null || mm.EndDate == string.Empty) == 1)
|
||||
{
|
||||
|
||||
@@ -28,142 +28,158 @@
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.btnOK = new DevComponents.DotNetBar.ButtonX();
|
||||
this.btnCancel = new DevComponents.DotNetBar.ButtonX();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.superTooltip1 = new DevComponents.DotNetBar.SuperTooltip();
|
||||
this.dateTimeInput1 = new DevComponents.Editors.DateTimeAdv.DateTimeInput();
|
||||
this.btnNow = new DevComponents.DotNetBar.ButtonX();
|
||||
((System.ComponentModel.ISupportInitialize)(this.dateTimeInput1)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// btnOK
|
||||
//
|
||||
this.btnOK.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
|
||||
this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.btnOK.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
|
||||
this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK;
|
||||
this.btnOK.Location = new System.Drawing.Point(18, 111);
|
||||
this.btnOK.Name = "btnOK";
|
||||
this.btnOK.Size = new System.Drawing.Size(64, 23);
|
||||
this.btnOK.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.btnOK.TabIndex = 1;
|
||||
this.btnOK.Text = "OK";
|
||||
this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
|
||||
//
|
||||
// btnCancel
|
||||
//
|
||||
this.btnCancel.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
|
||||
this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnCancel.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
|
||||
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.btnCancel.Location = new System.Drawing.Point(179, 111);
|
||||
this.btnCancel.Name = "btnCancel";
|
||||
this.btnCancel.Size = new System.Drawing.Size(64, 23);
|
||||
this.btnCancel.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.btnCancel.TabIndex = 2;
|
||||
this.btnCancel.Text = "Cancel";
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.label1.Location = new System.Drawing.Point(3, 19);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(229, 15);
|
||||
this.label1.TabIndex = 3;
|
||||
this.label1.Text = "Show Change Bars on Changes Starting:";
|
||||
//
|
||||
// superTooltip1
|
||||
//
|
||||
this.superTooltip1.DefaultTooltipSettings = new DevComponents.DotNetBar.SuperTooltipInfo("", "", "", null, null, DevComponents.DotNetBar.eTooltipColor.Gray);
|
||||
this.superTooltip1.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F";
|
||||
//
|
||||
// dateTimeInput1
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
this.dateTimeInput1.BackgroundStyle.Class = "DateTimeInputBackground";
|
||||
this.dateTimeInput1.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
|
||||
this.dateTimeInput1.ButtonDropDown.Shortcut = DevComponents.DotNetBar.eShortcut.AltDown;
|
||||
this.dateTimeInput1.ButtonDropDown.Visible = true;
|
||||
this.dateTimeInput1.CustomFormat = "MM/dd/yyyy HH:mm:ss";
|
||||
this.dateTimeInput1.DateTimeSelectorVisibility = DevComponents.Editors.DateTimeAdv.eDateTimeSelectorVisibility.DateSelector;
|
||||
this.dateTimeInput1.Format = DevComponents.Editors.eDateTimePickerFormat.Custom;
|
||||
this.dateTimeInput1.IsPopupCalendarOpen = false;
|
||||
this.dateTimeInput1.Location = new System.Drawing.Point(30, 51);
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
this.dateTimeInput1.MonthCalendar.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
|
||||
this.dateTimeInput1.MonthCalendar.CalendarDimensions = new System.Drawing.Size(1, 1);
|
||||
this.dateTimeInput1.MonthCalendar.ClearButtonVisible = true;
|
||||
//
|
||||
//
|
||||
//
|
||||
this.dateTimeInput1.MonthCalendar.CommandsBackgroundStyle.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground2;
|
||||
this.dateTimeInput1.MonthCalendar.CommandsBackgroundStyle.BackColorGradientAngle = 90;
|
||||
this.dateTimeInput1.MonthCalendar.CommandsBackgroundStyle.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground;
|
||||
this.dateTimeInput1.MonthCalendar.CommandsBackgroundStyle.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid;
|
||||
this.dateTimeInput1.MonthCalendar.CommandsBackgroundStyle.BorderTopColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarDockedBorder;
|
||||
this.dateTimeInput1.MonthCalendar.CommandsBackgroundStyle.BorderTopWidth = 1;
|
||||
this.dateTimeInput1.MonthCalendar.CommandsBackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
|
||||
this.dateTimeInput1.MonthCalendar.DisplayMonth = new System.DateTime(2016, 2, 1, 0, 0, 0, 0);
|
||||
//
|
||||
//
|
||||
//
|
||||
this.dateTimeInput1.MonthCalendar.NavigationBackgroundStyle.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2;
|
||||
this.dateTimeInput1.MonthCalendar.NavigationBackgroundStyle.BackColorGradientAngle = 90;
|
||||
this.dateTimeInput1.MonthCalendar.NavigationBackgroundStyle.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
|
||||
this.dateTimeInput1.MonthCalendar.NavigationBackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
|
||||
this.dateTimeInput1.MonthCalendar.TodayButtonVisible = true;
|
||||
this.dateTimeInput1.Name = "dateTimeInput1";
|
||||
this.dateTimeInput1.Size = new System.Drawing.Size(146, 20);
|
||||
this.dateTimeInput1.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.superTooltip1.SetSuperTooltip(this.dateTimeInput1, new DevComponents.DotNetBar.SuperTooltipInfo("Change Bar Start Date", "", "Only the changes made after this date will have change bars.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(138, 67)));
|
||||
this.dateTimeInput1.TabIndex = 4;
|
||||
this.dateTimeInput1.TimeSelectorTimeFormat = DevComponents.Editors.DateTimeAdv.eTimeSelectorFormat.Time24H;
|
||||
this.dateTimeInput1.TimeSelectorType = DevComponents.Editors.DateTimeAdv.eTimeSelectorType.TouchStyle;
|
||||
//
|
||||
// btnNow
|
||||
//
|
||||
this.btnNow.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
|
||||
this.btnNow.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
|
||||
this.btnNow.Location = new System.Drawing.Point(182, 51);
|
||||
this.btnNow.Name = "btnNow";
|
||||
this.btnNow.Size = new System.Drawing.Size(49, 23);
|
||||
this.btnNow.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.superTooltip1.SetSuperTooltip(this.btnNow, new DevComponents.DotNetBar.SuperTooltipInfo("Now", "", "This will set the Change Bar Start date to today.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
|
||||
this.btnNow.TabIndex = 5;
|
||||
this.btnNow.Text = "Today";
|
||||
this.btnNow.Click += new System.EventHandler(this.btnNow_Click);
|
||||
//
|
||||
// dlgSetChangeBarStartDate
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(268, 144);
|
||||
this.Controls.Add(this.btnNow);
|
||||
this.Controls.Add(this.dateTimeInput1);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(this.btnCancel);
|
||||
this.Controls.Add(this.btnOK);
|
||||
this.DoubleBuffered = true;
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "dlgSetChangeBarStartDate";
|
||||
this.ShowIcon = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "Change Bar Start Date";
|
||||
this.Load += new System.EventHandler(this.dlgSetChangeBarStartDate_Load);
|
||||
((System.ComponentModel.ISupportInitialize)(this.dateTimeInput1)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
this.btnOK = new DevComponents.DotNetBar.ButtonX();
|
||||
this.btnCancel = new DevComponents.DotNetBar.ButtonX();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.superTooltip1 = new DevComponents.DotNetBar.SuperTooltip();
|
||||
this.dateTimeInput1 = new DevComponents.Editors.DateTimeAdv.DateTimeInput();
|
||||
this.btnNow = new DevComponents.DotNetBar.ButtonX();
|
||||
this.btnResetToApproved = new DevComponents.DotNetBar.ButtonX();
|
||||
((System.ComponentModel.ISupportInitialize)(this.dateTimeInput1)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// btnOK
|
||||
//
|
||||
this.btnOK.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
|
||||
this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.btnOK.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
|
||||
this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK;
|
||||
this.btnOK.Location = new System.Drawing.Point(18, 111);
|
||||
this.btnOK.Name = "btnOK";
|
||||
this.btnOK.Size = new System.Drawing.Size(64, 23);
|
||||
this.btnOK.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.btnOK.TabIndex = 1;
|
||||
this.btnOK.Text = "OK";
|
||||
this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
|
||||
//
|
||||
// btnCancel
|
||||
//
|
||||
this.btnCancel.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
|
||||
this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnCancel.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
|
||||
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.btnCancel.Location = new System.Drawing.Point(179, 111);
|
||||
this.btnCancel.Name = "btnCancel";
|
||||
this.btnCancel.Size = new System.Drawing.Size(64, 23);
|
||||
this.btnCancel.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.btnCancel.TabIndex = 2;
|
||||
this.btnCancel.Text = "Cancel";
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.label1.Location = new System.Drawing.Point(3, 19);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(229, 15);
|
||||
this.label1.TabIndex = 3;
|
||||
this.label1.Text = "Show Change Bars on Changes Starting:";
|
||||
//
|
||||
// superTooltip1
|
||||
//
|
||||
this.superTooltip1.DefaultTooltipSettings = new DevComponents.DotNetBar.SuperTooltipInfo("", "", "", null, null, DevComponents.DotNetBar.eTooltipColor.Gray);
|
||||
this.superTooltip1.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F";
|
||||
//
|
||||
// dateTimeInput1
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
this.dateTimeInput1.BackgroundStyle.Class = "DateTimeInputBackground";
|
||||
this.dateTimeInput1.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
|
||||
this.dateTimeInput1.ButtonDropDown.Shortcut = DevComponents.DotNetBar.eShortcut.AltDown;
|
||||
this.dateTimeInput1.ButtonDropDown.Visible = true;
|
||||
this.dateTimeInput1.CustomFormat = "MM/dd/yyyy HH:mm:ss";
|
||||
this.dateTimeInput1.DateTimeSelectorVisibility = DevComponents.Editors.DateTimeAdv.eDateTimeSelectorVisibility.DateSelector;
|
||||
this.dateTimeInput1.Format = DevComponents.Editors.eDateTimePickerFormat.Custom;
|
||||
this.dateTimeInput1.IsPopupCalendarOpen = false;
|
||||
this.dateTimeInput1.Location = new System.Drawing.Point(30, 51);
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
this.dateTimeInput1.MonthCalendar.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
|
||||
this.dateTimeInput1.MonthCalendar.CalendarDimensions = new System.Drawing.Size(1, 1);
|
||||
this.dateTimeInput1.MonthCalendar.ClearButtonVisible = true;
|
||||
//
|
||||
//
|
||||
//
|
||||
this.dateTimeInput1.MonthCalendar.CommandsBackgroundStyle.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground2;
|
||||
this.dateTimeInput1.MonthCalendar.CommandsBackgroundStyle.BackColorGradientAngle = 90;
|
||||
this.dateTimeInput1.MonthCalendar.CommandsBackgroundStyle.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground;
|
||||
this.dateTimeInput1.MonthCalendar.CommandsBackgroundStyle.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid;
|
||||
this.dateTimeInput1.MonthCalendar.CommandsBackgroundStyle.BorderTopColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarDockedBorder;
|
||||
this.dateTimeInput1.MonthCalendar.CommandsBackgroundStyle.BorderTopWidth = 1;
|
||||
this.dateTimeInput1.MonthCalendar.CommandsBackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
|
||||
this.dateTimeInput1.MonthCalendar.DisplayMonth = new System.DateTime(2016, 2, 1, 0, 0, 0, 0);
|
||||
//
|
||||
//
|
||||
//
|
||||
this.dateTimeInput1.MonthCalendar.NavigationBackgroundStyle.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2;
|
||||
this.dateTimeInput1.MonthCalendar.NavigationBackgroundStyle.BackColorGradientAngle = 90;
|
||||
this.dateTimeInput1.MonthCalendar.NavigationBackgroundStyle.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
|
||||
this.dateTimeInput1.MonthCalendar.NavigationBackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
|
||||
this.dateTimeInput1.MonthCalendar.TodayButtonVisible = true;
|
||||
this.dateTimeInput1.Name = "dateTimeInput1";
|
||||
this.dateTimeInput1.Size = new System.Drawing.Size(146, 20);
|
||||
this.dateTimeInput1.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.superTooltip1.SetSuperTooltip(this.dateTimeInput1, new DevComponents.DotNetBar.SuperTooltipInfo("Change Bar Start Date", "", "Only the changes made after this date will have change bars.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(138, 67)));
|
||||
this.dateTimeInput1.TabIndex = 4;
|
||||
this.dateTimeInput1.TimeSelectorTimeFormat = DevComponents.Editors.DateTimeAdv.eTimeSelectorFormat.Time24H;
|
||||
this.dateTimeInput1.TimeSelectorType = DevComponents.Editors.DateTimeAdv.eTimeSelectorType.TouchStyle;
|
||||
//
|
||||
// btnNow
|
||||
//
|
||||
this.btnNow.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
|
||||
this.btnNow.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
|
||||
this.btnNow.Location = new System.Drawing.Point(182, 51);
|
||||
this.btnNow.Name = "btnNow";
|
||||
this.btnNow.Size = new System.Drawing.Size(49, 23);
|
||||
this.btnNow.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.superTooltip1.SetSuperTooltip(this.btnNow, new DevComponents.DotNetBar.SuperTooltipInfo("Now", "", "This will set the Change Bar Start date to today.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
|
||||
this.btnNow.TabIndex = 5;
|
||||
this.btnNow.Text = "Today";
|
||||
this.btnNow.Click += new System.EventHandler(this.btnNow_Click);
|
||||
//
|
||||
// btnResetToApproved
|
||||
//
|
||||
this.btnResetToApproved.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
|
||||
this.btnResetToApproved.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
|
||||
this.btnResetToApproved.Location = new System.Drawing.Point(30, 77);
|
||||
this.btnResetToApproved.Name = "btnResetToApproved";
|
||||
this.btnResetToApproved.Size = new System.Drawing.Size(201, 23);
|
||||
this.btnResetToApproved.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.btnResetToApproved.TabIndex = 6;
|
||||
this.btnResetToApproved.Text = "Reset Change Bar To Approved Date";
|
||||
this.btnResetToApproved.Tooltip = "Reset Change Bar to the last approved date. If no approvals, reset to as if no ch" +
|
||||
"ange bar date. After selecting this, press OK to save.";
|
||||
this.btnResetToApproved.Click += new System.EventHandler(this.btnResetToApproved_Click);
|
||||
//
|
||||
// dlgSetChangeBarStartDate
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(268, 144);
|
||||
this.Controls.Add(this.btnResetToApproved);
|
||||
this.Controls.Add(this.btnNow);
|
||||
this.Controls.Add(this.dateTimeInput1);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(this.btnCancel);
|
||||
this.Controls.Add(this.btnOK);
|
||||
this.DoubleBuffered = true;
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "dlgSetChangeBarStartDate";
|
||||
this.ShowIcon = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "Change Bar Start Date";
|
||||
this.Load += new System.EventHandler(this.dlgSetChangeBarStartDate_Load);
|
||||
((System.ComponentModel.ISupportInitialize)(this.dateTimeInput1)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
@@ -175,5 +191,6 @@
|
||||
private DevComponents.DotNetBar.SuperTooltip superTooltip1;
|
||||
private DevComponents.Editors.DateTimeAdv.DateTimeInput dateTimeInput1;
|
||||
private DevComponents.DotNetBar.ButtonX btnNow;
|
||||
}
|
||||
private DevComponents.DotNetBar.ButtonX btnResetToApproved;
|
||||
}
|
||||
}
|
||||
@@ -1,31 +1,23 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using DevComponents.DotNetBar;
|
||||
using DevComponents.DotNetBar.Controls;
|
||||
using VEPROMS.CSLA.Library;
|
||||
|
||||
using Volian.Controls.Library;
|
||||
|
||||
namespace VEPROMS
|
||||
{
|
||||
public partial class dlgSetChangeBarStartDate : DevComponents.DotNetBar.Office2007Form
|
||||
{
|
||||
private ProcedureConfig _MyProcConfig = null;
|
||||
public ProcedureConfig MyProcConfig { get; set; } = null;
|
||||
|
||||
public ProcedureConfig MyProcConfig
|
||||
{
|
||||
get { return _MyProcConfig; }
|
||||
set { _MyProcConfig = value; }
|
||||
}
|
||||
public ProcedureInfo MyProcInfo { get; set; } = null;
|
||||
|
||||
public dlgSetChangeBarStartDate(ProcedureConfig pc)
|
||||
public dlgSetChangeBarStartDate(ProcedureConfig pc, ProcedureInfo pi)
|
||||
{
|
||||
InitializeComponent();
|
||||
_MyProcConfig = pc;
|
||||
MyProcConfig = pc;
|
||||
MyProcInfo = pi;
|
||||
}
|
||||
|
||||
private void dlgSetChangeBarStartDate_Load(object sender, EventArgs e)
|
||||
@@ -80,5 +72,65 @@ namespace VEPROMS
|
||||
dateTimeInput1.Value = DateTime.Now;
|
||||
}
|
||||
|
||||
}
|
||||
//C2026-009 Add Option to Reset Change Bar to Last Approved Date/Time
|
||||
private void btnResetToApproved_Click(object sender, EventArgs e)
|
||||
{
|
||||
System.Data.DataTable dt = RevisionData.GetRevisionDataByUnit(MyProcInfo.ItemID);
|
||||
|
||||
if (dt.Rows.Count == 0)
|
||||
{
|
||||
//no records, remove
|
||||
if (MessageBox.Show("There are currently no approvals set. Selecting yes will set ChangeBars to show all changes since the creation of the procedure.\r\nAre you sure you wish to reset ChangeBars?", "Reset ChangeBar Date", MessageBoxButtons.YesNo) == DialogResult.Yes)
|
||||
{
|
||||
MyProcConfig.Print_ChangeBarDate = "";
|
||||
DialogResult = DialogResult.OK;
|
||||
Close();
|
||||
}
|
||||
}
|
||||
else if (RevisionData.HasUnits(dt))
|
||||
{
|
||||
//any with units
|
||||
string maxDTS = RevisionData.MaxDTS(dt).ToString("MM/dd/yyyy HH:mm:ss");
|
||||
|
||||
//create wording for ChangeBar changes
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.Append($" The Procedure Viewer Change Bar Date will be set to ({maxDTS}).");
|
||||
foreach (DataRow r in dt.Rows)
|
||||
{
|
||||
sb.Append($"\r\n The Change Bar Date for Unit ({r["UnitName"]}) will be set to ({Convert.ToDateTime(r["DTS"]):MM/dd/yyyy HH:mm:ss}).");
|
||||
}
|
||||
|
||||
sb.Append("\r\n Any Change Bars for Units not listed above will use the Overall/Procedure Viewer Change Bar Date (as these Units have no approvals).");
|
||||
|
||||
if (CustomMessageBox.Show($"This will reset ChangeBars to show for changes newer than the last approval.\r\nThis includes the following changes:\r\n{sb.ToString()}\r\n\r\nAre you sure you wish to reset ChangeBars?", "Reset ChangeBar Date", "Yes", "No") == DialogResult.Yes)
|
||||
{
|
||||
//Change the overall ChangeBarDate
|
||||
MyProcConfig.Print_ChangeBarDate = maxDTS;
|
||||
|
||||
//Change the ChangeBarDate for each unit
|
||||
foreach (DataRow r in dt.Rows)
|
||||
{
|
||||
MyProcConfig.SelectedSlave = Convert.ToInt32(r["UnitID"]);
|
||||
MyProcConfig.Print_ChangeBarDate = Convert.ToDateTime(r["DTS"]).ToString("MM / dd / yyyy HH: mm: ss");
|
||||
}
|
||||
MyProcConfig.SelectedSlave = 0;
|
||||
|
||||
DialogResult = DialogResult.OK;
|
||||
Close();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//no units
|
||||
string maxDTS = RevisionData.MaxDTS(dt).ToString("MM/dd/yyyy HH:mm:ss");
|
||||
if (MessageBox.Show($"This will reset ChangeBars to show for changes newer than the last approval ({maxDTS}).\r\nAre you sure you wish to reset ChangeBars?", "Reset ChangeBar Date", MessageBoxButtons.YesNo) == DialogResult.Yes)
|
||||
{
|
||||
MyProcConfig.Print_ChangeBarDate = maxDTS;
|
||||
DialogResult = DialogResult.OK;
|
||||
Close();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -165,9 +165,9 @@ This function will cause no change to data or records in PROMS.
|
||||
It should however be performed when other users are not in PROMS, as it could
|
||||
cause slowdown or errors for other users while it is running.</value>
|
||||
</data>
|
||||
<metadata name="superTooltip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<data name="superTooltip1.TrayLocation" type="System.Drawing.Point, System.Drawing">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
</data>
|
||||
<data name="swDeleteFolder.SuperTooltip" xml:space="preserve">
|
||||
<value>This allows the user to remove folders and sub folders as well as their contents.
|
||||
|
||||
@@ -304,22 +304,22 @@ Should an item become orphaned (disconnected) from the rest of the data, it will
|
||||
</value>
|
||||
</data>
|
||||
<data name="swCheckROLinks.SuperTooltip" xml:space="preserve">
|
||||
<value>This allows the user to check referenced objects links in procedure step data for multiple working drafts in a batch mode.
|
||||
<value>This allows the user to check referenced object links in procedure step data for multiple working drafts in a batch mode.
|
||||
|
||||
Bad referenced bject links will be identified with an Bad RO Link annotation. Use the PROMS Search tool to list all of the steps that have this annotation.
|
||||
Bad referenced object links will be identified with a Bad RO Link annotation. Use the PROMS Search tool to list all of the steps that have this annotation.
|
||||
|
||||
Be sure a current backup of the database exists prior performing this function.
|
||||
Be sure a current backup of the database exists prior to performing this function.
|
||||
|
||||
It is recommended that this be done during off hours.
|
||||
|
||||
</value>
|
||||
</data>
|
||||
<data name="labelX12.SuperTooltip" xml:space="preserve">
|
||||
<value>This allows the user to check referenced objects links in procedure step data for multiple working drafts in a batch mode.
|
||||
<value>This allows the user to check referenced object links in procedure step data for multiple working drafts in a batch mode.
|
||||
|
||||
Bad referenced bject links will be identified with an Bad RO Link annotation. Use the PROMS Search tool to list all of the steps that have this annotation.
|
||||
Bad referenced object links will be identified with a Bad RO Link annotation. Use the PROMS Search tool to list all of the steps that have this annotation.
|
||||
|
||||
Be sure a current backup of the database exists prior performing this function.
|
||||
Be sure a current backup of the database exists prior to performing this function.
|
||||
|
||||
It is recommended that this be done during off hours.
|
||||
</value>
|
||||
@@ -388,7 +388,8 @@ If more than one procedure is selected, it is recommended that this be performed
|
||||
ud8AKwnMnBpmYFAAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="$this.TrayHeight" type="System.Int32, mscorlib">
|
||||
<value>25</value>
|
||||
</metadata>
|
||||
</data>
|
||||
</root>
|
||||
@@ -20,7 +20,27 @@ namespace VEPROMS
|
||||
_MyUser = value;
|
||||
SimpleUser su = new SimpleUser(_MyUser);
|
||||
pgUser.SelectedObject = su;
|
||||
this.Text = string.Format("{0} ({1} {2}) Information",su.UserID,su.FirstName,su.LastName);
|
||||
|
||||
//C2026-002 Change Title bar on Add/Edit User
|
||||
string tmp;
|
||||
if (!string.IsNullOrEmpty(su.FirstName) && !string.IsNullOrEmpty(su.LastName))
|
||||
{
|
||||
tmp = $"{su.UserID} ({su.FirstName} {su.LastName}) Information";
|
||||
}
|
||||
else if (!string.IsNullOrEmpty(su.LastName))
|
||||
{
|
||||
tmp = $"{su.UserID} ({su.LastName}) Information";
|
||||
}
|
||||
else if (!string.IsNullOrEmpty(su.FirstName))
|
||||
{
|
||||
tmp = $"{su.UserID} ({su.FirstName}) Information";
|
||||
}
|
||||
else
|
||||
{
|
||||
tmp = $"{su.UserID} Information";
|
||||
}
|
||||
|
||||
this.Text = tmp;
|
||||
}
|
||||
}
|
||||
private string _Mode;
|
||||
|
||||
@@ -617,7 +617,7 @@ namespace VEPROMS
|
||||
ProcedureConfig pc = pi.MyConfig as ProcedureConfig;
|
||||
if (pc == null) return;
|
||||
|
||||
dlgSetChangeBarStartDate cbdDlg = new dlgSetChangeBarStartDate(pc);
|
||||
dlgSetChangeBarStartDate cbdDlg = new dlgSetChangeBarStartDate(pc, pi);
|
||||
if (cbdDlg.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
using (Item itm = Item.Get(pi.ItemID))
|
||||
|
||||
@@ -3312,7 +3312,26 @@ namespace VEPROMS.CSLA.Library
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
public string DisplayNumber
|
||||
|
||||
//B2026-011 Improve the resolution of unit numbers in multi-unit background documents when printing.
|
||||
// for enhanced documents, when copying content, need to not resolve the
|
||||
//unit designators until print time
|
||||
public string DisplayTextKeepSpecialCharsKeepUnitSpecific
|
||||
{
|
||||
get
|
||||
{
|
||||
string str = MyContent.Text;
|
||||
foreach (string key in SpecialCharacters.Keys)
|
||||
str = str.Replace(key, SpecialCharacters[key]);
|
||||
string retval = ConvertToDisplayText(str);
|
||||
foreach (string key in SpecialCharacters.Keys)
|
||||
retval = retval.Replace(SpecialCharacters[key], key);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public string DisplayNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
@@ -4749,13 +4768,20 @@ namespace VEPROMS.CSLA.Library
|
||||
if (ActiveFormat.MyStepSectionLayoutData.AddContActTagToHighLevelRNOWhenIncludedOnCAS &&
|
||||
IsInRNO && !MyParent.IsInRNO && FormatStepData.TabData.CASPrintMacro != null)
|
||||
{
|
||||
StepConfig sc = MyConfig as StepConfig;
|
||||
if (sc != null && sc.Step_CAS == "True")
|
||||
// B2026-009 needed to make sure parent wasn't a continuous action step type
|
||||
// the ExcludeFromContActSum is set to False for continuous action
|
||||
// step types and True for all others
|
||||
StepConfig psc = MyParent.MyConfig as StepConfig;
|
||||
if (MyParent.FormatStepData.ExcludeFromContActSum && psc != null && psc.Step_CAS != "True")
|
||||
{
|
||||
if (FormatStepData.TabData.CASPrintMacro != null)
|
||||
_MyTab.Text = FormatStepData.TabData.CASPrintMacro + _MyTab.Text;
|
||||
if (FormatStepData.TabData.CASEditTag != null)
|
||||
_MyTab.CleanText = FormatStepData.TabData.CASEditTag + _MyTab.CleanText;
|
||||
StepConfig sc = MyConfig as StepConfig;
|
||||
if (sc != null && sc.Step_CAS == "True")
|
||||
{
|
||||
if (FormatStepData.TabData.CASPrintMacro != null)
|
||||
_MyTab.Text = FormatStepData.TabData.CASPrintMacro + _MyTab.Text;
|
||||
if (FormatStepData.TabData.CASEditTag != null)
|
||||
_MyTab.CleanText = FormatStepData.TabData.CASEditTag + _MyTab.CleanText;
|
||||
}
|
||||
}
|
||||
}
|
||||
_MyTab.RNOTabWidthAdjust = ((ItemInfo)ActiveParent).FormatStepData.TabData.RNOAdjustTabSize ?? 0;
|
||||
@@ -8350,8 +8376,11 @@ namespace VEPROMS.CSLA.Library
|
||||
if (seds != null && seds.Count != 0)
|
||||
{
|
||||
ItemInfo srcItem = ItemInfo.Get(seds[0].ItemID);
|
||||
// B2022-049: Copy/paste of enhanced procedure and bad links between source and enhanced. Null reference check
|
||||
if (srcItem != null && srcItem.DisplayTextKeepSpecialChars != ii.DisplayTextKeepSpecialChars)
|
||||
// B2022-049: Copy/paste of enhanced procedure and bad links between source and enhanced. Null reference check
|
||||
//B2026-011 Improve the resolution of unit numbers in multi-unit background documents when printing.
|
||||
// for enhanced documents, when copying content, need to not resolve the
|
||||
//unit designators until print time
|
||||
if (srcItem != null && srcItem.DisplayTextKeepSpecialCharsKeepUnitSpecific != ii.DisplayTextKeepSpecialCharsKeepUnitSpecific)
|
||||
{
|
||||
if (retiil == null) retiil = new ItemInfoList(ii);
|
||||
else retiil.AddItem(ii);
|
||||
@@ -8377,7 +8406,10 @@ namespace VEPROMS.CSLA.Library
|
||||
ItemInfo srcItem = ItemInfo.Get(seds[0].ItemID);
|
||||
using (Item enhItem = Item.Get(ii.ItemID))
|
||||
{
|
||||
enhItem.MyContent.Text = srcItem.DisplayTextKeepSpecialChars;
|
||||
//B2026-011 Improve the resolution of unit numbers in multi-unit background documents when printing.
|
||||
// for enhanced documents, when copying content, need to not resolve the
|
||||
//unit designators until print time
|
||||
enhItem.MyContent.Text = srcItem.DisplayTextKeepSpecialCharsKeepUnitSpecific;
|
||||
enhItem.Save();
|
||||
}
|
||||
}
|
||||
|
||||
53
PROMS/VEPROMS.CSLA.Library/Minimal/RevisionData.cs
Normal file
53
PROMS/VEPROMS.CSLA.Library/Minimal/RevisionData.cs
Normal file
@@ -0,0 +1,53 @@
|
||||
using Csla.Data;
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Linq;
|
||||
|
||||
//CSM - C2026-009 - Minimal Class for Getting Revision Data
|
||||
namespace VEPROMS.CSLA.Library
|
||||
{
|
||||
public static class RevisionData
|
||||
{
|
||||
#region Check Data
|
||||
//Check if Data Has Units
|
||||
public static bool HasUnits(DataTable dt) => dt.AsEnumerable().Any(x => x.Field<int?>("UnitID") > 0);
|
||||
|
||||
//Get Maximum Date Time Stamp
|
||||
public static DateTime MaxDTS(DataTable dt) => dt.AsEnumerable().Max(x => x.Field<DateTime>("DTS"));
|
||||
|
||||
#endregion
|
||||
|
||||
#region Get Revision Data
|
||||
//CSM - C2026-009 Get Current Revision Data by Unit
|
||||
public static DataTable GetRevisionDataByUnit(int itemID)
|
||||
{
|
||||
try
|
||||
{
|
||||
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
|
||||
{
|
||||
using (SqlCommand cm = cn.CreateCommand())
|
||||
{
|
||||
cm.CommandType = CommandType.StoredProcedure;
|
||||
cm.CommandText = "GetCurrentApprovedRevisions";
|
||||
cm.CommandTimeout = Database.DefaultTimeout;
|
||||
cm.Parameters.AddWithValue("@ItemID", itemID);
|
||||
|
||||
using (SqlDataAdapter da = new SqlDataAdapter(cm))
|
||||
{
|
||||
DataTable dt = new DataTable();
|
||||
da.Fill(dt);
|
||||
return dt;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new DbCslaException("Error in GetRevisionDataByUnit: retrieving data failed", ex);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
@@ -391,6 +391,7 @@
|
||||
<Compile Include="Minimal\AnnotationstypeSections.cs" />
|
||||
<Compile Include="Minimal\Maintenance.cs" />
|
||||
<Compile Include="Minimal\GeneralReports.cs" />
|
||||
<Compile Include="Minimal\RevisionData.cs" />
|
||||
<Compile Include="Minimal\UserReports.cs" />
|
||||
<Compile Include="Minimal\UserSettings.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
|
||||
121
PROMS/Volian.Controls.Library/CustomMessageBox.Designer.cs
generated
Normal file
121
PROMS/Volian.Controls.Library/CustomMessageBox.Designer.cs
generated
Normal file
@@ -0,0 +1,121 @@
|
||||
namespace Volian.Controls.Library
|
||||
{
|
||||
partial class CustomMessageBox
|
||||
{
|
||||
/// <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.btn1 = new System.Windows.Forms.Button();
|
||||
this.btn2 = new System.Windows.Forms.Button();
|
||||
this.lblMessage = new System.Windows.Forms.Label();
|
||||
this.tableLP1 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.tableLP1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// btn1
|
||||
//
|
||||
this.btn1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.btn1.AutoSize = true;
|
||||
this.btn1.Location = new System.Drawing.Point(18, 102);
|
||||
this.btn1.Margin = new System.Windows.Forms.Padding(10);
|
||||
this.btn1.MinimumSize = new System.Drawing.Size(60, 20);
|
||||
this.btn1.Name = "btn1";
|
||||
this.btn1.Size = new System.Drawing.Size(60, 20);
|
||||
this.btn1.TabIndex = 0;
|
||||
this.btn1.UseVisualStyleBackColor = true;
|
||||
this.btn1.Click += new System.EventHandler(this.Btn1_Click);
|
||||
//
|
||||
// btn2
|
||||
//
|
||||
this.btn2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btn2.AutoSize = true;
|
||||
this.btn2.Location = new System.Drawing.Point(335, 102);
|
||||
this.btn2.Margin = new System.Windows.Forms.Padding(10);
|
||||
this.btn2.MinimumSize = new System.Drawing.Size(60, 20);
|
||||
this.btn2.Name = "btn2";
|
||||
this.btn2.Size = new System.Drawing.Size(60, 20);
|
||||
this.btn2.TabIndex = 1;
|
||||
this.btn2.UseVisualStyleBackColor = true;
|
||||
this.btn2.Click += new System.EventHandler(this.Btn2_Click);
|
||||
//
|
||||
// lblMessage
|
||||
//
|
||||
this.lblMessage.AutoSize = true;
|
||||
this.tableLP1.SetColumnSpan(this.lblMessage, 2);
|
||||
this.lblMessage.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.lblMessage.Location = new System.Drawing.Point(11, 8);
|
||||
this.lblMessage.MaximumSize = new System.Drawing.Size(413, 0);
|
||||
this.lblMessage.Name = "lblMessage";
|
||||
this.lblMessage.Size = new System.Drawing.Size(391, 84);
|
||||
this.lblMessage.TabIndex = 2;
|
||||
this.lblMessage.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// tableLP1
|
||||
//
|
||||
this.tableLP1.AutoSize = true;
|
||||
this.tableLP1.ColumnCount = 2;
|
||||
this.tableLP1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||
this.tableLP1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||
this.tableLP1.Controls.Add(this.lblMessage, 0, 0);
|
||||
this.tableLP1.Controls.Add(this.btn1);
|
||||
this.tableLP1.Controls.Add(this.btn2);
|
||||
this.tableLP1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tableLP1.Location = new System.Drawing.Point(0, 0);
|
||||
this.tableLP1.MaximumSize = new System.Drawing.Size(413, 0);
|
||||
this.tableLP1.MinimumSize = new System.Drawing.Size(413, 130);
|
||||
this.tableLP1.Name = "tableLP1";
|
||||
this.tableLP1.Padding = new System.Windows.Forms.Padding(8);
|
||||
this.tableLP1.RowCount = 2;
|
||||
this.tableLP1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLP1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
|
||||
this.tableLP1.Size = new System.Drawing.Size(413, 130);
|
||||
this.tableLP1.TabIndex = 0;
|
||||
//
|
||||
// CustomMessageBox
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.AutoSize = true;
|
||||
this.ClientSize = new System.Drawing.Size(419, 130);
|
||||
this.Controls.Add(this.tableLP1);
|
||||
this.Name = "CustomMessageBox";
|
||||
this.ShowIcon = false;
|
||||
this.Text = "CustomMessageBox";
|
||||
this.tableLP1.ResumeLayout(false);
|
||||
this.tableLP1.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Button btn1;
|
||||
private System.Windows.Forms.Button btn2;
|
||||
private System.Windows.Forms.Label lblMessage;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLP1;
|
||||
}
|
||||
}
|
||||
62
PROMS/Volian.Controls.Library/CustomMessageBox.cs
Normal file
62
PROMS/Volian.Controls.Library/CustomMessageBox.cs
Normal file
@@ -0,0 +1,62 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Volian.Controls.Library
|
||||
{
|
||||
public partial class CustomMessageBox : Form
|
||||
{
|
||||
//Custome Message Box Class to allow renaming of buttons
|
||||
// originally devleoped for use with
|
||||
// C2025-062 When Search clicked - Load the Incoming transitions for the Active Procedure
|
||||
// in order to allow the user to decide if they wanted to search on the selected step or the selected procedure
|
||||
public CustomMessageBox(string message, string title, string button1Text = "OK", string button2Text = "")
|
||||
{
|
||||
InitializeComponent();
|
||||
this.Text = title;
|
||||
lblMessage.Text = message;
|
||||
btn1.Text = button1Text;
|
||||
|
||||
if (!string.IsNullOrEmpty(button2Text))
|
||||
{
|
||||
btn2.Text = button2Text;
|
||||
btn2.Visible = true;
|
||||
|
||||
//make buttons uniform
|
||||
btn1.Height = btn2.Height = btn1.Height > btn2.Height ? btn1.Height : btn2.Height;
|
||||
btn1.Width = btn2.Width = btn1.Width > btn2.Width ? btn1.Width : btn2.Width;
|
||||
}
|
||||
else
|
||||
{
|
||||
btn2.Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void Btn1_Click(object sender, EventArgs e)
|
||||
{
|
||||
DialogResult = DialogResult.Yes;
|
||||
Close();
|
||||
}
|
||||
|
||||
private void Btn2_Click(object sender, EventArgs e)
|
||||
{
|
||||
DialogResult = DialogResult.No;
|
||||
Close();
|
||||
}
|
||||
|
||||
//static method for calling custommessagebox directly
|
||||
public static DialogResult Show(string message, string title, string button1Text = "OK", string button2Text = "")
|
||||
{
|
||||
using (var messageBox = new CustomMessageBox(message, title, button1Text, button2Text))
|
||||
{
|
||||
return messageBox.ShowDialog();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
120
PROMS/Volian.Controls.Library/CustomMessageBox.resx
Normal file
120
PROMS/Volian.Controls.Library/CustomMessageBox.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
@@ -414,6 +414,15 @@ namespace Volian.Controls.Library
|
||||
lbSrchResults.Visible = true;
|
||||
lbSrchResultsIncTrans.Visible = false;
|
||||
cbxRnoOnly.Visible = true;
|
||||
|
||||
// C2025-062 When Search clicked - Load the Incoming transitions for the Active Procedure
|
||||
//don't allow changing the Style for Incoming Transitions
|
||||
//but allow them to change it if there are search results and it is another tab
|
||||
if (_SearchResults != null && _SearchResults.Count > 0)
|
||||
{
|
||||
cmbResultsStyle.Enabled = true;
|
||||
}
|
||||
|
||||
if (e.NewTab == tabIncTrans) // C2020-033: Incoming transitions
|
||||
{
|
||||
xpSetToSearch.Enabled = false;
|
||||
@@ -422,7 +431,7 @@ namespace Volian.Controls.Library
|
||||
lbSrchResultsIncTrans.Visible = true;
|
||||
lbSrchResultsIncTrans.CheckBoxesVisible = true;
|
||||
lbSrchResultsIncTrans.AutoScroll = true;
|
||||
btnSearch.Enabled = false; // C2021 - 002: disable search button - no functionality for Incoming Transitions
|
||||
cmbResultsStyle.Enabled = false;
|
||||
cbxRnoOnly.Visible = false;
|
||||
}
|
||||
else if (e.NewTab == tabROSearch)
|
||||
@@ -648,7 +657,6 @@ namespace Volian.Controls.Library
|
||||
}
|
||||
btnTranCvtAllToTxt.Enabled = IncTransCvtAllToTextPerm();
|
||||
btnTranCvtSelToTxt.Enabled = false;
|
||||
btnSearch.Enabled = false; // C2021 - 002: disable search button - no functionality for Incoming Transitions
|
||||
}
|
||||
|
||||
public bool IncTranCvtPerm()
|
||||
@@ -1765,7 +1773,8 @@ namespace Volian.Controls.Library
|
||||
btnClearSearchResults.Enabled = true;
|
||||
btnCopySearchResults.Enabled = true;
|
||||
btnSaveSearchResults.Enabled = true;
|
||||
cmbResultsStyle.Enabled = true;
|
||||
if (tabSearchTypes.SelectedTab != tabIncTrans)
|
||||
cmbResultsStyle.Enabled = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2188,21 +2197,39 @@ namespace Volian.Controls.Library
|
||||
// C2019-001: Search in RNO steps only
|
||||
if (cbxRnoOnlyTrans.Checked) GetInRNOResults();
|
||||
}
|
||||
else if (tabSearchTypes.SelectedTab == tabSearchTypes.Tabs[4])
|
||||
else if (tabSearchTypes.SelectedTab == tabIncTrans)
|
||||
{
|
||||
// C2020-033: Incoming Transitions: Make an iteminfolist from the list returned from
|
||||
// GetExternalTransitionsToChildren (also gets transitions to the item itself)
|
||||
// B2021-010: Use IncomingTranGetMergedTranList to get a complete list of incoming transitions (transitions to procedure
|
||||
// were only included if there were NO transitions to items within procedure)
|
||||
ReportTitle = string.Format("Search For Incoming Transitions to {0}: ", SearchIncTransII.Path);
|
||||
SearchResults = IncomingTranGetMergedTranList();
|
||||
cmbResultsStyleIndex = 1; //display step locations in results
|
||||
if (SearchResults == null || SearchResults.Count == 0)
|
||||
// C2025-062 When Search clicked - Load the Incoming transitions for the Active Procedure
|
||||
|
||||
if (_TabControl?.MyEditItem?.MyItemInfo?.MyProcedure != null)
|
||||
{
|
||||
FlexibleMessageBox.Show("No Matches Found.", "Search");
|
||||
|
||||
if (_TabControl?.MyEditItem?.MyItemInfo?.MyProcedure.ItemID == _TabControl?.MyEditItem?.MyItemInfo?.ItemID)
|
||||
{
|
||||
_ = _TabControl.OnSearchIncTrans(this, new vlnTreeItemInfoEventArgs(_TabControl?.MyEditItem?.MyItemInfo?.MyProcedure));
|
||||
}
|
||||
else
|
||||
{
|
||||
//if on a step, check if the user wants to load incoming transitions for that step or the entire procedure
|
||||
switch (CustomMessageBox.Show("Would you like to load incoming transitions for this procedure or this step?", "Load Incoming Transitions", "This Procedure", "This Step"))
|
||||
{
|
||||
case DialogResult.Yes:
|
||||
_ = _TabControl.OnSearchIncTrans(this, new vlnTreeItemInfoEventArgs(_TabControl?.MyEditItem?.MyItemInfo?.MyProcedure));
|
||||
break;
|
||||
case DialogResult.No:
|
||||
_ = _TabControl.OnSearchIncTrans(this, new vlnTreeItemInfoEventArgs(_TabControl?.MyEditItem?.MyItemInfo));
|
||||
break;
|
||||
default: //Cancel was pressed
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
FlexibleMessageBox.Show("Please open a procedure before selecting this option to load incoming transitions for that procedure.", "Search");
|
||||
}
|
||||
}
|
||||
if (SearchResults != null)
|
||||
if (SearchResults != null && tabSearchTypes.SelectedTab != tabIncTrans)
|
||||
{
|
||||
AddMessageForEmptyAnnotations();
|
||||
if (cmbResultsStyleIndex == 3 && cmbResultsStyle.Items.Count == 3) cmbResultsStyleIndex--;
|
||||
@@ -2303,7 +2330,18 @@ namespace Volian.Controls.Library
|
||||
cmbResultsStyle.Items.Add(comboItem2);
|
||||
if (hasAnnot) cmbResultsStyle.Items.Add(comboItem3);
|
||||
cmbResultsStyle.Items.Add(comboItem4);
|
||||
}
|
||||
|
||||
// C2025-062 When Search clicked - Load the Incoming transitions for the Active Procedure
|
||||
if (tabSearchTypes.SelectedTab == tabIncTrans)
|
||||
{
|
||||
cmbResultsStyle.SelectedIndex = -1;
|
||||
cmbResultsStyle.Enabled = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
cmbResultsStyle.Enabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void cbxTextSearchText_Leave(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
@@ -154,6 +154,12 @@
|
||||
<Compile Include="ConvertTable.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="CustomMessageBox.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="CustomMessageBox.Designer.cs">
|
||||
<DependentUpon>CustomMessageBox.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="DisplayApplicability.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
@@ -454,6 +460,10 @@
|
||||
<DependentUpon>AnnotationSearch.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="CustomMessageBox.resx">
|
||||
<DependentUpon>CustomMessageBox.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DisplayBookMarks.resx">
|
||||
<DependentUpon>DisplayBookMarks.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
|
||||
Reference in New Issue
Block a user