View Single Post
Yeah, you can write an Applescript that will fill in the column on command (it will not update dynamically, and you don't want to be editing one of the cells when you run the script). Put the script in the OmniOutliner scripts folder and the Customize Toolbar command will allow you to put a button for it in your toolbar. I don't recall if the ability to make a document-specific toolbar is a OO Pro feature, but if it isn't, that would be even better.

Here's a sample:
Code:
tell application "OmniOutliner"
	tell front document
		set currentDate to (current date)
		
		if title of every column does not contain {"Date due"} then
			display dialog "You need columns named 'Date due' and 'Days overdue' for this script" buttons "Cancel" default button 1
		end if
		if title of every column does not contain {"Days overdue"} then
			display dialog "You need columns named 'Date due' and 'Days overdue' for this script" buttons "Cancel" default button 1
		end if
		
		repeat with myRow in every row
			if (state of myRow is unchecked) then
				set rowDueDate to value of cell "Date due" of myRow
				if (rowDueDate is not missing value) then
					if (currentDate > rowDueDate) then
						set daysOverdue to (currentDate - rowDueDate) / days
					else
						set daysOverdue to missing value
					end if
					set value of cell "Days overdue" of myRow to daysOverdue
				end if
			end if
			
		end repeat
	end tell
end tell
"Date due" should be a column of type Date, and "Days overdue" should be a column of type Number, and both allow some variation in formatting which you should adjust to suit.
Attached Thumbnails
Click image for larger version

Name:	Screen shot 2009-12-29 at 11.26.57 AM.png
Views:	552
Size:	26.7 KB
ID:	1216