How to filter topics with task progress set to "None"?

  • 2
  • Question
  • Updated 2 years ago
  • Answered

In a large map, I'd like to be able to quickly query for topics which have their task progress set to "None".  In other words, I'm trying to flush out any stray tasks for which I've forgotten to set the task progress value.

I've looked at the Progress filter and Power Filter tools under the View tab, but it appears that those tools only can return results for which the task progress is set between 0 - 100%.  There does not seem to be any explicit option for searching for tasks with Progress set to "None".


Photo of Ashok Kumar

Ashok Kumar

  • 18 Posts
  • 1 Reply Like

Posted 2 years ago

  • 2
Photo of Ary Velstra, Expert Trainer

Ary Velstra, Expert Trainer

  • 1224 Posts
  • 180 Reply Likes
This can be done easy by just reversing the powerfilter result:


Select alle progress options that are in use and say Hide Matching Topics



Done


OK?
(Edited)
Photo of Nick Duffill

Nick Duffill, Champion

  • 505 Posts
  • 168 Reply Likes
I think this solution will show all topics that do not have a percent complete value. These topics may or may not be tasks. A task has at least one value set amongst the start date, due date, priority, resource or duration. I could not see a way to access this status through the Power Filter, but it can be done with a macro. If you are able to use macros, I have put up an example at

http://harportconsulting.com/wp-content/uploads/2015/11/Filter-partially-defined-tasks.zip

The macro filters-in all topics in the map that are tasks but do not have a percent-complete value. It selects them as well, so you can run it then apply a percent-complete marker from the Task Info pane. Comments and improvements welcome :)

Nick
Photo of Alex Gooding

Alex Gooding, Champion

  • 823 Posts
  • 207 Reply Likes

I think you can also do this with cumulative filtering, providing tasks have at least one of the following: a priority, percent complete marker or a duration.  First, filter the map, ticking the Priority and Progress tick boxes so that all priorities and progress complete markers are selected and that Any Marker is selected for the match. Under Task Info select a Duration greater than 0 workday (or whatever your minimum duration unit is). Filter to show matching topics.

Then call up the power filter again and untick the Remove filter first box. Untick the Priority box but leave the Progress tick box selected and check that Any marker is selected. Filter again but this time select Hide Matching Topics. The map should now show only those topics which are tasks but which have no progress complete marker.

The only limitation with this approach that I've found is that I can't get it to work with just a start date or a due date and no other topic information. You need at least a duration and/or a priority or progress marker.

Photo of Ashok Kumar

Ashok Kumar

  • 18 Posts
  • 1 Reply Like

Thanks all for the responses. 

I was hoping ARY's and Alex's solutions would work because they are the most direct and least effort.  Unfortunately, they didn't work in my particular situation.  It appears that if you have subtasks with progress "none" buried underneath a parent task with any status other than "none", these techniques won't work (or at least they didn't when I tried).  So I'm going to experiment with macros as Nick suggested when I have time later.  Thanks again - good ideas but too bad I couldn't get them to work in my map.


- Ashok

Photo of Nick Duffill

Nick Duffill, Champion

  • 505 Posts
  • 168 Reply Likes
Yes, this is because filtering is hierarchical. When it filters out a topic, it also filters out the children of that topic. Filtered-in child topics do not re-enable a filtered-out parent. The macro at the link given will cope with nested tasks.
Nick
Photo of Ashok Kumar

Ashok Kumar

  • 18 Posts
  • 1 Reply Like
Nick - thanks for the info and the sample macro.  I'm new to using macros with MindManager, but I have experience with macros in other programs.  So I should be able to get it to work once I have a moment to delve into it.
Photo of Ashok Kumar

Ashok Kumar

  • 18 Posts
  • 1 Reply Like

Nick - I tested the macro you provided with the sample map and with my map, too.  It worked perfectly for both.  Thanks! 

I have a question about the macro -

It appears to be written in a language similar to Visual Basic for Applications (VBA).  What is the actual language and is there an online reference for that language?

The reason I ask is that I'd like to make a slight modification to the macro.  I noticed in the code that the central topic is excluded.  I'd like to go one step further and exclude any topic that has its Topic Style set to "Area of Focus" or "Goal".  Without a language reference to refer to, it could take a lot of trail and error for me to find the syntax for exposing the Topic Style property.

Photo of Ashok Kumar

Ashok Kumar

  • 18 Posts
  • 1 Reply Like

Cancel that last request - I found the language reference in the Help section of the built-in IDE.  I should be able to figure it out from there.

This posting can be marked "closed".

Photo of Nick Duffill

Nick Duffill, Champion

  • 505 Posts
  • 168 Reply Likes
Hello Ashok

I am glad it worked.

The macro language is VBA, very similar to that used in Microsoft Office products.
While there is some help for the language itself, at the moment there is no officially published documentation on the MindManager object model, only orphan documents from earlier versions. You can browse the MindManager Application object under Debug > Browse in the macro editor, and there are some one-line hints for each item.

It is not usually a good idea to filter out the central topic, as this can lead to a completely empty screen :)

The topic style is accessed as follows:
    If Not (m_Topic.Style Is Nothing) Then
               If m_Topic.Style.HasTopicStyle Then
                 ... do something with m_Topic.Style.TopicStyle.Name
Good luck!
Nick
(Edited)
Photo of thebimbo

thebimbo

  • 48 Posts
  • 7 Reply Likes
Nick, can't seem to get this to work under MM2016, I get an error on this line. Any ideas?
For Each m_Topic In ActiveDocument.Range(mmRangeAllTopics, True)
Photo of Nick Duffill

Nick Duffill, Champion

  • 505 Posts
  • 168 Reply Likes
What is the error? Have you declared m_Topic, e.g.

Dim m_Topic as Topic