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();
|
||||
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"));
|
||||
else if (rolkup is ROFSTLookup.rochild)
|
||||
{
|
||||
@ -192,6 +201,29 @@ namespace Volian.Controls.Library
|
||||
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()
|
||||
{
|
||||
switch (tctrlReports.SelectedTabIndex)
|
||||
@ -200,6 +232,7 @@ namespace Volian.Controls.Library
|
||||
btnPrintReport.Enabled = (lstCheckedDocVersions.Count > 0);
|
||||
break;
|
||||
case 1: // Referenced Objects Reports
|
||||
BuildCheckedROsList(); // this list is sent to the report generator
|
||||
if (cbxROUsage.Checked)
|
||||
btnPrintReport.Enabled = (lstCheckedDocVersions.Count > 0 && lstCheckedROs.Count > 0);
|
||||
else
|
||||
@ -701,20 +734,39 @@ namespace Volian.Controls.Library
|
||||
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)
|
||||
{
|
||||
DevComponents.AdvTree.Node n = advTreeRO.SelectedNode;
|
||||
//ROFSTLookup. rolkup = (ROFSTLookup)n.Tag;
|
||||
if (n.Checked)
|
||||
//lstCheckedROs.Add((ROFSTLookup)n.Tag);
|
||||
//lstCheckedROs.Add(rolkup);
|
||||
//lstROObj.Add(n.Tag);
|
||||
lstCheckedROs.Add(n.Tag);
|
||||
else
|
||||
//lstCheckedROs.Remove((ROFSTLookup)n.Tag);
|
||||
//lstCheckedROs.Remove(rolkup);
|
||||
//lstROObj.Remove(n.Tag);
|
||||
lstCheckedROs.Remove(n.Tag);
|
||||
{
|
||||
UncheckChildren(n.Nodes);
|
||||
UncheckParents(n.Parent);
|
||||
}
|
||||
|
||||
EnableOrDisablePrintButton();
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user