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 !