We're still using a combination of Crystal Reports and ZEN reports, but also looking into Intersystems reports. I don't have much to say yet, other than that I'm also interested in this topic.

A parameter is a shared, constant value that's available to all instances of a class. It can be calculated when the class is compiled, but it generally can't be altered at runtime.

A property is a variable that each instance of a class stores it's own value for, and it can be set changed at runtime.

Are you sure that's where your problem is? If I do:

select MONTH(dateadd(mm,-1,GETDATE()))

I get 12. If I create a query with a where clause similar to yours on my data, it works as expected.

I'm not sure you can do that, but is there any reason you can't define it as two web applications, one with the dispatch class and one without?

Where is the function func1? If it's in a routine, you'd use do $$func1^MyRoutine where MyRoutine is whatever the routine is called.

If you have a routine that's saved as MyRoutine.mac, that would be:

do $$^MyRoutine

If you have a method within the MyRoutine.mac called Process, it would be:

do $$Process^MyRoutine(myargs)

Is that what you want to do, or should you be defining your property as:

Property Status As %String(VALUELIST = ",InProgress,Done,Canceled") [ InitialExpression = "InProgress" ];

This makes InProgress the default status when a new CarDealer.Order is created.