thanks Borni ,
but that is not very clear , i solved myself , here is the summary,
<record id="action_asset_contract_prn_contract" model="ir.actions.act_window">
<field name="name">Print Contract</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">asset.print.contract</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="view_id" ref="view_asset_contract_prn_contract"/>
<field name="target">new</field>
<!--field name="multi">True</field-->
</record>
where res_model = asset.print.contract is my form /wizard .
Regarding the code you used for the 3 records, I have tried to remove "<field name="multi">True</field>" on the 2nd record, and then reinstall the module, the "print contract" immediately appears on both form and tree.
To control the new function to appear on either "Print" or "More", change the "key2" part, where "client_action_multi" will make the function to show in "more", and "client_print_multi" will make the function to show in "print".
Thank you, this help me a lot !