Multiple Tags

mohan's Avatar

mohan

17 Nov, 2021 02:43 AM

I have just converted a large quicken file to Moneydance. In quicken I was using multiple tags with some transactions. e.g many transactions are tagged as 'Tag-1:Tag-2'. After import, Moneydance treats them as a single tag 'Tag-1:Tag-2'. In Moneydance tags are separated by commas. Is there a way to 'split' the Quicken tag combinations into Moneydance Multiple tags. I know I can use the Find and Replace extension, but I have 100s of combinations. I tried exporting to a qif file hoping to edit the tags using a text editor but in the qif file Moneydance exports as 'Tag-1-Tag-2' and on reimport it still appears a a single tag.

Any suggestions?

  1. 1 Posted by dwg on 17 Nov, 2021 03:29 AM

    dwg's Avatar

    I'm a fellow user.

    I cannot think of an easy way even in the original QIF file, if it shows a colon between tags the colon is used to indicate sub categories so simple global edits would not be a good idea. I think it would require a program that parses the file line by line and writes a new file.

    In Moneydance I do not know of a way of changing specific characters as you can in an editor, so I think it will take some work.

  2. 2 Posted by mohan on 17 Nov, 2021 10:57 AM

    mohan's Avatar

    I think I found a workaround using the scripting capabilities. Posting the
    snippet below in case it helps someone else. The same concept can be used
    for complex tag editing.
    Hope this might help others with a similar need.

    #!/usr/bin/env python
    # Python script to be run in Moneydance to perform amazing feats of
    financial scripting
    from com.infinitekind.moneydance.model import *
    book = moneydance.getCurrentAccountBook()
    counter = 0
    for parent in book.getTransactionSet().iterator():
      if parent.getParentTxn() == parent:
        for splitNum in range(0, parent.getSplitCount()):
          split = parent.getSplit(splitNum)
          oldTag = split.encodeKeywordList(split.getKeywords())
          # Replace Quicken tag separator with Moneydance separator
          newTag = split.encodeKeywordList(split.getKeywords()).replace(":",
    "\t")
          if oldTag != newTag:
            counter += 1
            print "%6d:[%s] => [%s]"%\
              (counter, oldTag, newTag)
           # Now update the transaction
            split.setKeywords(split.decodeKeywordList(newTag))
            split.getParentTxn().syncItem()

  3. System closed this discussion on 16 Feb, 2022 11:00 AM.

Comments are currently closed for this discussion. You can start a new one.

Keyboard shortcuts

Generic

? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac