我在树形视图中插入分隔符或笔记本时遇到一些麻烦。可能吗?

这些项目通常在树中以相同的详细信息列出(名称,地址,电话号码...)。在我的cas中,我有两种记录(Personne士气和Personne Physique)。第一类应以(nom,prénom,adresse)列出,第二种应以(raison sociale,siègesocial,...)列出。

仅仅是因为,通过隐藏与另一种类型相关的字段,用户可以选择将项目另存为((人员士气)还是(人员体格)),因此用户仅填写与他选择的类型相关的字段。

    <div class="oe_center">
                        <sheet>
                            <h2>Demandeur:</h2>
                            <group>
                                <field name="state"/>
                            </group>
                            <group  attrs="{'invisible':[('state', '!=', 'p')],'required':[('state','!=','p')]}" col="4">
                                <field name="nom" />
                                <field name="prenom" />
                                <field name="cin" />
                                <field name="adresse" />
                                <!--<field name="dossier" />-->
                            </group>
                            <group attrs="{'invisible':[('state', '!=', 'm')],'required':[('state','!=','m')]}" col="4" >
                                <field name="raison_social" />
                                <field name="num_reg_comm" />
                                <field name="forme_social" />
                                <field name="fax" />
                            </group>
                            <group>
                                <field name="siege_social" attrs="{'invisible':[('state', '!=', 'm')]}" />
                            </group>
                            <group>
                                <field name="dossier" />
                                <field name="tel" /> <!-- je viens de l'ajouter -->
                                <field name="email" />
                            </group>


这是我正在谈论的课程:

         class demandeur(osv.osv):
_name = 'sayoo.demandeur'
_rec_name = 'nom'

_columns = {
        'state': fields.selection((('p','Personne Physique'), ('m','Personne Morale')),'Statut', required= True),
        'nom': fields.char('Nom', size=100, required=False),
        'prenom': fields.char('Prenom', size=100, required=False),
        'cin': fields.char('Cin', size=100, required=False),
        'raison_social':fields.char('Raison Sociale', size=100, required=False),
        'siege_social':fields.char('Siège Social', size=100, required=False),
        'forme_social':fields.char('Forme Juridique', size=100, required=False),
        'num_reg_comm':fields.char('N° du Registre de Commerce', size=100, required=False),
        #'dossier': fields.many2one('sayoo.dossier', 'dossier'),
        'dossier': fields.one2many('sayoo.dossier','id_dossier','demande d\'autorisation' ),
        'adresse': fields.char('Adresse', size=100, required=False), #'date_naissance': fields.date('Date de naissance'),
        'description': fields.text('Description'),
        'tel': fields.char('Numéro de Téléphone', size=20),
        'fax': fields.char('Numéro de Fax', size=20),
        'email': fields.char('Adresse Electronqiue', size=20),
                }


demandeur()

这是我尝试使用xml的方法,但是没有用

    <record model="ir.ui.view" id="Demandeur_tree_view"><!-- d en D -->
        <field name="name">sayoo.demandeur.tree</field>
        <field name="model">sayoo.demandeur</field>
        <field name="type">tree</field>
        <field name="arch" type="xml">
            <tree string="Demandeur Details"><!-- d en D -->
                <notebook>
                    <page string "Personne Physique">
                        <field name="nom" />
                        <field name="prenom" />
                        <field name="cin" /> <!-- je vient de l ajouter pour afficher la CIN dans la vue liste du demandeur -->
                        <field name="adresse" />
                    </page>
                    <page string "Personne Morale">
                        <field name="raison_social" />
                        <field name="siege_social" />
                        <field name="forme_social" />
                        <field name="num_reg_comm" />
                    </page>
                </notebook>
            </tree>
        </field>
    </record>

最佳答案

有两种视图类型:treeform。树视图非常简单,并且不处理notebookpage s,group s。等等。它也不能处理每个记录显示不同的字段/列的情况-换句话说,您可以列出所有八个字段,并且只有四个正确的字段显示数据,但是所有八个列始终显示。

您可能想做的是拥有两个不同的tree视图(一个用于Physique,一个用于Morale),然后让用户从菜单选择中选择要查看的视图(菜单xml可以具有domain设置为仅显示正确的记录)。

07-24 09:34