Fixed a bug where you could not do a RO Summary Report for “All Referenced Objects” Also made the tree selection smarter to un-check children when a parent node is checked and to uncheck a parent node when a child node is checked.
This commit is contained in:
parent
174bac97f7
commit
8c55393cbf
@ -106,7 +106,16 @@ namespace Volian.Controls.Library
|
|||||||
ROList.Clear();
|
ROList.Clear();
|
||||||
foreach (object rolkup in lstCheckedROs)
|
foreach (object rolkup in lstCheckedROs)
|
||||||
{
|
{
|
||||||
if (rolkup is ROFSTLookup.rodbi)
|
if (rolkup == null) // All Referenced Objects selected, return list of RO databases
|
||||||
|
{
|
||||||
|
foreach (ROFSTLookup.rodbi rodbi in _MyROFSTLookup.GetRODatabaseList())
|
||||||
|
{
|
||||||
|
rtnStr = _MyRODbID.ToString() + ":" + string.Format("{0}", rodbi.dbiID.ToString("X4"));
|
||||||
|
ROList.Add(rtnStr);
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else if (rolkup is ROFSTLookup.rodbi)
|
||||||
rtnStr = _MyRODbID.ToString() + ":" + string.Format("{0}", ((ROFSTLookup.rodbi)rolkup).dbiID.ToString("X4"));
|
rtnStr = _MyRODbID.ToString() + ":" + string.Format("{0}", ((ROFSTLookup.rodbi)rolkup).dbiID.ToString("X4"));
|
||||||
else if (rolkup is ROFSTLookup.rochild)
|
else if (rolkup is ROFSTLookup.rochild)
|
||||||
{
|
{
|
||||||
@ -192,6 +201,29 @@ namespace Volian.Controls.Library
|
|||||||
tabROReports.PerformClick();
|
tabROReports.PerformClick();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void AddSelectedROChildren(DevComponents.AdvTree.NodeCollection chldrn)
|
||||||
|
{
|
||||||
|
if (chldrn.Count > 0)
|
||||||
|
{
|
||||||
|
foreach (DevComponents.AdvTree.Node n in chldrn)
|
||||||
|
{
|
||||||
|
if (n.Checked)
|
||||||
|
lstCheckedROs.Add(n.Tag);
|
||||||
|
else
|
||||||
|
AddSelectedROChildren(n.Nodes);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void BuildCheckedROsList()
|
||||||
|
{
|
||||||
|
lstCheckedROs.Clear();
|
||||||
|
DevComponents.AdvTree.Node node = advTreeRO.Nodes[0];
|
||||||
|
if (node.Checked) // top node (all Referenced Objects) selected
|
||||||
|
lstCheckedROs.Add(node.Tag);
|
||||||
|
else
|
||||||
|
AddSelectedROChildren(node.Nodes);
|
||||||
|
}
|
||||||
|
|
||||||
private void EnableOrDisablePrintButton()
|
private void EnableOrDisablePrintButton()
|
||||||
{
|
{
|
||||||
switch (tctrlReports.SelectedTabIndex)
|
switch (tctrlReports.SelectedTabIndex)
|
||||||
@ -200,6 +232,7 @@ namespace Volian.Controls.Library
|
|||||||
btnPrintReport.Enabled = (lstCheckedDocVersions.Count > 0);
|
btnPrintReport.Enabled = (lstCheckedDocVersions.Count > 0);
|
||||||
break;
|
break;
|
||||||
case 1: // Referenced Objects Reports
|
case 1: // Referenced Objects Reports
|
||||||
|
BuildCheckedROsList(); // this list is sent to the report generator
|
||||||
if (cbxROUsage.Checked)
|
if (cbxROUsage.Checked)
|
||||||
btnPrintReport.Enabled = (lstCheckedDocVersions.Count > 0 && lstCheckedROs.Count > 0);
|
btnPrintReport.Enabled = (lstCheckedDocVersions.Count > 0 && lstCheckedROs.Count > 0);
|
||||||
else
|
else
|
||||||
@ -701,20 +734,39 @@ namespace Volian.Controls.Library
|
|||||||
tabTransitionReports.PerformClick();
|
tabTransitionReports.PerformClick();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// when a node is checked (selected) then uncheck any of its children
|
||||||
|
private void UncheckChildren(DevComponents.AdvTree.NodeCollection chldrn)
|
||||||
|
{
|
||||||
|
if (chldrn.Count > 0)
|
||||||
|
{
|
||||||
|
foreach (DevComponents.AdvTree.Node n in chldrn)
|
||||||
|
{
|
||||||
|
if (n.Checked)
|
||||||
|
n.Checked = false;
|
||||||
|
else
|
||||||
|
UncheckChildren(n.Nodes);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// when a node is checked (selected), uncheck the parents, grand parents, great grand parents, etc.
|
||||||
|
private void UncheckParents(DevComponents.AdvTree.Node pNode)
|
||||||
|
{
|
||||||
|
while (pNode != null)
|
||||||
|
{
|
||||||
|
if (pNode.Checked) pNode.Checked = false;
|
||||||
|
pNode = pNode.Parent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void advTreeRO_AfterCheck(object sender, AdvTreeCellEventArgs e)
|
private void advTreeRO_AfterCheck(object sender, AdvTreeCellEventArgs e)
|
||||||
{
|
{
|
||||||
DevComponents.AdvTree.Node n = advTreeRO.SelectedNode;
|
DevComponents.AdvTree.Node n = advTreeRO.SelectedNode;
|
||||||
//ROFSTLookup. rolkup = (ROFSTLookup)n.Tag;
|
|
||||||
if (n.Checked)
|
if (n.Checked)
|
||||||
//lstCheckedROs.Add((ROFSTLookup)n.Tag);
|
{
|
||||||
//lstCheckedROs.Add(rolkup);
|
UncheckChildren(n.Nodes);
|
||||||
//lstROObj.Add(n.Tag);
|
UncheckParents(n.Parent);
|
||||||
lstCheckedROs.Add(n.Tag);
|
}
|
||||||
else
|
|
||||||
//lstCheckedROs.Remove((ROFSTLookup)n.Tag);
|
|
||||||
//lstCheckedROs.Remove(rolkup);
|
|
||||||
//lstROObj.Remove(n.Tag);
|
|
||||||
lstCheckedROs.Remove(n.Tag);
|
|
||||||
EnableOrDisablePrintButton();
|
EnableOrDisablePrintButton();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user