at this moment idempiere creates client print format automatically if not pre-formatted available in system tenant. Means all users running report has own copy. i'm mean that is not good behaviour.
ad1. first run take long time (because creating new printformat) ad2. all reports are ugly not preformatted e.g. including all columns etc.- imho not comfortable and usable immediately.
would be better:
when report running looking first for system reports - case 1. *if exists 1 printformat then load it *case 2 if exists multiple then prefer default case 3 if exists client specific then and has default flag then display this first.
if client wide print-format doesn't exists then user should create by ** New report ** function
I think that loading or print formats works almost as you wrote. Firstly are loaded reports owned by specific client (also these marked as default have precedence over non-default formats). But I must agree with you that better would be don't copy system reports to client. Better approach is to let users create their own copy if they want to.
I'm attached patch which could solve issue with wasteful creating of client report copies.