コード例 #1
0
def GetMatriceAnterieurs(dlg):
    dicBandeau = {'titre': "Rappel d'un anterieur existant",
                  'texte': "les mots clés du champ en bas permettent de filtrer d'autres lignes et d'affiner la recherche",
                  'hauteur': 15, 'nomImage': "xpy/Images/32x32/Zoom_plus.png",
                  'bgColor':(220, 250, 220),}

    # Composition de la matrice de l'OLV anterieurs, retourne un dictionnaire

    lstChamps = ['date', 'fournisseur', 'IDanalytique', 'COUNT(IDinventaire)']

    lstNomsColonnes = ['date', 'fournisseur', 'analytique', 'nbLignes']

    lstTypes = [ 'DATE', 'VARCHAR(32)', 'VARCHAR(32)', 'INT']
    lstCodesColonnes = [xformat.NoAccents(x).lower() for x in lstNomsColonnes]
    lstValDefColonnes = xformat.ValeursDefaut(lstNomsColonnes, lstTypes)
    lstLargeurColonnes = [100,180,180,200]
    lstColonnes = xformat.DefColonnes(lstNomsColonnes, lstCodesColonnes, lstValDefColonnes, lstLargeurColonnes)
    return {
        'lstSaisons': dlg.lstSaisons,
        'lstColonnes': lstColonnes,
        'lstChamps': lstChamps,
        'listeNomsColonnes': lstNomsColonnes,
        'listeCodesColonnes': lstCodesColonnes,
        'getDonnees': nust.SqlInvAnte,
        'dicBandeau': dicBandeau,
        'sortColumnIndex': 2,
        'sensTri': False,
        'msgIfEmpty': "Aucune donnée ne correspond à votre recherche",
        'size': (650, 400)}
コード例 #2
0
ファイル: xchoixListe.py プロジェクト: BrunelJacques/NoeXpy
    def InitOlv(self):
        self.listview = FastObjectListView(self, style=wx.LC_REPORT)
        self.listview.SetToolTip(u"Double Cliquez pour choisir")
        # Couleur en alternance des lignes
        self.listview.oddRowsBackColor = "#F0FBED"
        self.listview.evenRowsBackColor = wx.Colour(255, 255, 255)
        self.listview.useExpansionColumn = True
        self.listview.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnDblClicOk)

        lstColumns = []
        self.lstCodes = [xformat.NoAccents(x) for x in self.lstColonnes]
        for ix in range(self.nbColonnes):
            width = self.lstWcol[ix]
            label = self.lstColonnes[ix]
            code = self.lstCodes[ix]
            setter = self.lstSetters[ix]
            lstColumns.append(
                ColumnDefn(label, "left", width, code, isSpaceFilling=True))

        self.listview.SetColumns(lstColumns)
        self.listview.SetSortColumn(self.columnSort)
        if self.withCheck:
            self.listview.CreateCheckStateColumn()

        self.tracks = [Track(don, self.lstCodes) for don in self.lstDonnees]

        self.listview.SetObjects(self.tracks)
        self.listview.Refresh()
コード例 #3
0
def GetDicOlvFam():
    # appel des données à afficher
    lstChamps = [
        "individus.IDindividu", "individus.nom", "individus.prenom",
        "familles.adresse_individu", "rattachements.titulaire",
        "rattachements.IDcategorie", "individus.date_naiss",
        "individus.tel_domicile", "individus.tel_mobile", "individus.mail",
        "individus.travail_mail", "individus.refus_pub", "individus.refus_mel",
        "individus.travail_tel"
    ]

    lstNomsColonnes = [
        "IDind", "nom", "prénom", "catégorie", "né le", "tel domicile",
        "tel mobile", "mail1", "mail2", "noPub", "noMel", "tel travail"
    ]

    lstTypes = [
        "INTEGER", "VARCHAR(32)", "VARCHAR(32)", "VARCHAR(7)", "DATE",
        "VARCHAR(10)", "VARCHAR(10)", "VARCHAR(32)", "VARCHAR(32)", "BOOL",
        "BOOL", "VARCHAR(10)"
    ]

    lstLargeurColonnes = [0, -1, -1, 50, 80, 90, 90, 170, 120, 50, 50, 90]

    lstCodesColonnes = [xformat.NoAccents(x) for x in lstNomsColonnes]
    lstValDefColonnes = xformat.ValeursDefaut(lstNomsColonnes, lstTypes)

    # matrice OLV
    lstColonnes = xformat.DefColonnes(lstNomsColonnes, lstCodesColonnes,
                                      lstValDefColonnes, lstLargeurColonnes)

    # personnalise les colonnes : fixe les éditables, pose minwidth
    for col in lstColonnes[4:]:
        col.isEditable = True
    for col in lstColonnes[:4]:
        col.isEditable = False
    for col in lstColonnes:
        if col.width == -1: col.minimumWidth = 60

    dicOlv = {
        'lstColonnes': lstColonnes,
        'lstChamps': lstChamps,
        'checkColonne': False,
        'getBtnActions': None,
        'sortColumnIndex': 2,
        'sortAscending': True,
        'msgIfEmpty': "Aucune donnée ne correspond à votre recherche",
        'recherche': False,
        'autoAddRow': False,
        'editMode': True,
    }
    return dicOlv
コード例 #4
0
def GetMatriceDepots():
    dicBandeau = {
        'titre': "Rappel d'un depot existant",
        'texte':
        "les mots clés du champ en bas permettent de filtrer d'autres lignes et d'affiner la recherche",
        'hauteur': 15,
        'nomImage': "xpy/Images/32x32/Matth.png"
    }

    # Composition de la matrice de l'OLV depots, retourne un dictionnaire

    lstChamps = [
        '0', 'IDdepot', 'depots.date', 'depots.nom', 'comptes_bancaires.nom',
        'observations'
    ]

    lstNomsColonnes = [
        '0', 'numéro', 'date', 'nomDépôt', 'banque', 'nbre', 'total', 'détail',
        'observations'
    ]

    lstTypes = [
        'INTEGER', 'INTEGER', 'DATE', 'VARCHAR(80)', 'VARCHAR(130)',
        'VARCHAR(10)', 'VARCHAR(10)', 'VARCHAR(170)', 'VARCHAR(170)'
    ]
    lstCodesColonnes = [xformat.NoAccents(x).lower() for x in lstNomsColonnes]
    lstValDefColonnes = xformat.ValeursDefaut(lstNomsColonnes, lstTypes)
    lstLargeurColonnes = xformat.LargeursDefaut(lstNomsColonnes, lstTypes)
    lstColonnes = xformat.DefColonnes(lstNomsColonnes, lstCodesColonnes,
                                      lstValDefColonnes, lstLargeurColonnes)
    return {
        'lstColonnes': lstColonnes,
        'lstChamps': lstChamps,
        'listeNomsColonnes': lstNomsColonnes,
        'listeCodesColonnes': lstCodesColonnes,
        'getDonnees': GetDepots,
        'dicBandeau': dicBandeau,
        'sortColumnIndex': 2,
        'sensTri': False,
        'msgIfEmpty': "Aucune donnée ne correspond à votre recherche",
        'size': (900, 400)
    }
コード例 #5
0
def GetMatriceFamilles():
    dicBandeau = {
        'titre': "Recherche d'une famille",
        'texte':
        "les mots clés du champ en bas permettent de filtrer d'autres lignes et d'affiner la recherche",
        'hauteur': 15,
        'nomImage': "xpy/Images/32x32/Matth.png"
    }

    # Composition de la matrice de l'OLV familles, retourne un dictionnaire

    lstChamps = [
        '0', 'familles.IDfamille', 'familles.adresse_intitule',
        'individus_1.cp_resid', 'individus_1.ville_resid', 'individus.nom',
        'individus.prenom'
    ]

    lstNomsColonnes = [
        "0", "IDfam", "désignation", "cp", "ville", "noms", "prénoms"
    ]

    lstTypes = [
        'INTEGER', 'INTEGER', 'VARCHAR(80)', 'VARCHAR(10)', 'VARCHAR(100)',
        'VARCHAR(90)', 'VARCHAR(120)'
    ]
    lstCodesColonnes = [xformat.NoAccents(x) for x in lstNomsColonnes]
    lstValDefColonnes = xformat.ValeursDefaut(lstNomsColonnes, lstTypes)
    lstLargeurColonnes = xformat.LargeursDefaut(lstNomsColonnes, lstTypes)
    lstColonnes = xformat.DefColonnes(lstNomsColonnes, lstCodesColonnes,
                                      lstValDefColonnes, lstLargeurColonnes)
    return {
        'lstColonnes': lstColonnes,
        'lstChamps': lstChamps,
        'listeNomsColonnes': lstNomsColonnes,
        'listeCodesColonnes': lstCodesColonnes,
        'getDonnees': GetFamilles,
        'size': (800, 400),
        'dicBandeau': dicBandeau,
        'sortColumnIndex': 2,
        'msgIfEmpty': "Aucune donnée ne correspond à votre recherche",
    }
コード例 #6
0
ファイル: UTILS_Compta.py プロジェクト: BrunelJacques/NoeXpy
 def GetDicOlv(self, table):
     nature = None
     matrice = None
     if table in ('fournisseurs', 'clients', 'generaux', 'cpt3car'):
         nature = 'compte'
         matrice = MATRICE_COMPTES
     elif table in ('journaux', 'journOD'):
         nature = 'journal'
         matrice = MATRICE_JOURNAUX
     else:
         raise Exception(
             "la table '%s' n'est pas trouvée dans UTILS_Compta" % table)
     dicBandeau = {
         'titre': "Choix d'un %s" % nature,
         'texte':
         "les mots clés du champ en bas permettent de filtrer d'autres lignes et d'affiner la recherche",
         'hauteur': 15,
         'nomImage': "xpy/Images/32x32/Matth.png"
     }
     # Composition de la matrice de l'OLV familles, retourne un dictionnaire
     lstChamps = matrice['lstChamps']
     lstNomsColonnes = matrice['lstNomsColonnes']
     lstCodesColonnes = [xformat.NoAccents(x) for x in lstNomsColonnes]
     lstValDefColonnes = matrice['lstValDefColonnes']
     lstLargeurColonnes = matrice['lstLargeurColonnes']
     lstColonnes = xformat.DefColonnes(lstNomsColonnes, lstCodesColonnes,
                                       lstValDefColonnes,
                                       lstLargeurColonnes)
     return {
         'lstColonnes': lstColonnes,
         'lstChamps': lstChamps,
         'listeNomsColonnes': lstNomsColonnes,
         'listeCodesColonnes': lstCodesColonnes,
         'getDonnees': self.GetDonnees,
         'dicBandeau': dicBandeau,
         'sortColumnIndex': 2,
         'size': (800, 600),
         'msgIfEmpty': "Aucune donnée ne correspond à votre recherche",
     }
コード例 #7
0
def dicOlvFamilles():
    # appel des données à afficher
    lstChamps = [
        "0", "familles.IDfamille", "individus.IDindividu",
        "familles.adresse_intitule", "individus.nom", "individus.prenom",
        "individus.adresse_auto", "individus.rue_resid", "individus.cp_resid",
        "individus.ville_resid"
    ]

    lstNomsColonnes = [
        "0", "famille", "individu", "intitule famille", "nom corresp.",
        "prenomcorresp.", "chez", "rue", "cp", "ville"
    ]

    lstTypes = [
        "INTEGER", "INTEGER", "INTEGER", "VARCHAR(100)", "VARCHAR(100)",
        "VARCHAR(100)", "INTEGER", "VARCHAR(100)", "VARCHAR(11)", "VARCHAR(80)"
    ]
    lstCodesColonnes = [xformat.NoAccents(x) for x in lstNomsColonnes]
    lstValDefColonnes = xformat.ValeursDefaut(lstNomsColonnes, lstTypes)
    lstLargeurColonnes = xformat.LargeursDefaut(lstNomsColonnes, lstTypes)

    # matrice OLV
    lstColonnes = xformat.DefColonnes(lstNomsColonnes, lstCodesColonnes,
                                      lstValDefColonnes, lstLargeurColonnes)
    dicOlv = {
        'lstColonnes': lstColonnes,
        'lstChamps': lstChamps,
        'checkColonne': False,
        'sortColumnIndex': 4,
        'msgIfEmpty': "Aucune donnée ne correspond à votre recherche",
        'dictColFooter': {
            "nom": {
                "mode": "nombre",
                "alignement": wx.ALIGN_CENTER
            },
        }
    }
    return dicOlv
コード例 #8
0
ファイル: UTILS_Noegest.py プロジェクト: BrunelJacques/NoeXpy
    def GetMatriceAnalytiques(self,axe,lstChamps,lstNomsCol,lstTypes,getDonnees):
        # Composition d'un dic matrice permettant de gérer un écran de saisie analytique
        dicBandeau = {'titre': "Choix d'un code analytique: %s"%str(axe),
                      'texte': "les mots clés du champ en bas permettent de filtrer les lignes et d'affiner la recherche",
                      'hauteur': 15, 'nomImage': "xpy/Images/32x32/Matth.png"}

        # Composition de la matrice de l'OLV Analytiques, retourne un dictionnaire

        lstCodesColonnes = [xformat.NoAccents(x).lower() for x in lstNomsCol]
        lstValDefColonnes = xformat.ValeursDefaut(lstNomsCol, lstTypes)
        lstLargeurColonnes = xformat.LargeursDefaut(lstNomsCol, lstTypes,IDcache=False)
        lstColonnes = xformat.DefColonnes(lstNomsCol, lstCodesColonnes, lstValDefColonnes, lstLargeurColonnes)
        return {
            'lstColonnes': lstColonnes,
            'lstChamps': lstChamps,
            'listeNomsColonnes': lstNomsCol,
            'listeCodesColonnes': lstCodesColonnes,
            'getDonnees': getDonnees,
            'dicBandeau': dicBandeau,
            'sortColumnIndex': 1,
            'sensTri': False,
            'msgIfEmpty': "Aucune donnée ne correspond à votre recherche",
        }
コード例 #9
0
    def GetMatriceComptes(self):
        dicBandeau = {
            'titre': "Recherche d'un compte prestation",
            'texte':
            "le compte choisi détermine le code du plan comptable de la prestation générée",
            'hauteur': 15,
            'nomImage': "xpy/Images/32x32/Matth.png"
        }

        # Composition de la matrice de l'OLV comptes, retourne un dictionnaire

        lstChamps = [
            '0',
            'matPlanComptable.pctCompte',
            'matPlanComptable.pctCodeComptable',
            'matPlanComptable.pctLibelle',
        ]

        lstNomsColonnes = ["0", "compte", "code", "libellé"]

        lstTypes = ['INTEGER', 'VARCHAR(8)', 'VARCHAR(16)', 'VARCHAR(100)']
        lstCodesColonnes = [xformat.NoAccents(x) for x in lstNomsColonnes]
        lstValDefColonnes = xformat.ValeursDefaut(lstNomsColonnes, lstTypes)
        lstLargeurColonnes = xformat.LargeursDefaut(lstNomsColonnes, lstTypes)
        lstColonnes = xformat.DefColonnes(lstNomsColonnes, lstCodesColonnes,
                                          lstValDefColonnes,
                                          lstLargeurColonnes)
        return {
            'lstColonnes': lstColonnes,
            'lstChamps': lstChamps,
            'listeNomsColonnes': lstNomsColonnes,
            'listeCodesColonnes': lstCodesColonnes,
            'getDonnees': self.GetComptes,
            'dicBandeau': dicBandeau,
            'sortColumnIndex': 2,
            'msgIfEmpty': "Aucune donnée ne correspond à votre recherche",
        }
コード例 #10
0
def dicOlvIndividus():
    # appel des données à afficher
    lstChamps = [
        "0", "IDindividu", "nom", "prenom", "date_naiss", "adresse_auto",
        "rue_resid", "cp_resid", "ville_resid", "tel_domicile", "tel_mobile",
        "mail"
    ]
    lstNomsColonnes = [
        "null", "Individu", "Nom", "Prenom", "Naissance", "chez", "rue", "cp",
        "ville", "tel domicile", "tel mobile", "mail"
    ]
    lstTypes = [
        "INTEGER", "INTEGER", "VARCHAR(100)", "VARCHAR(100)", "DATE",
        "INTEGER", "VARCHAR(100)", "VARCHAR(8)", "VARCHAR(100)", "VARCHAR(11)",
        "VARCHAR(11)", "VARCHAR(40)"
    ]
    lstCodesColonnes = [xformat.NoAccents(x) for x in lstNomsColonnes]
    lstValDefColonnes = xformat.ValeursDefaut(lstNomsColonnes, lstTypes)
    lstLargeurColonnes = xformat.LargeursDefaut(lstNomsColonnes, lstTypes)
    # composition des données du tableau à partir du recordset
    # matrice OLV
    lstColonnes = xformat.DefColonnes(lstNomsColonnes, lstCodesColonnes,
                                      lstValDefColonnes, lstLargeurColonnes)
    dicOlv = {
        'lstColonnes': lstColonnes,
        'lstChamps': lstChamps,
        'checkColonne': False,
        'sortColumnIndex': 2,
        'msgIfEmpty': "Aucune donnée ne correspond à votre recherche",
        'dictColFooter': {
            "nom": {
                "mode": "nombre",
                "alignement": wx.ALIGN_CENTER
            },
        }
    }
    return dicOlv
コード例 #11
0
ファイル: UTILS_Noegest.py プロジェクト: BrunelJacques/NoeXpy
    def GetAnalytique(self,**kwd):
        # choix d'un code analytique, retourne un dict,
        # Le mode:'auto' permet un automatisme d'affectation sans un arrêt, pour tous les autres cas =>affichage
        mode = kwd.pop('mode',None)
        axe = kwd.pop('axe',None)
        nbChampsTestes = kwd.pop('axe',3)
        #Pour une recherche sur tous les axes on ne teste que le champ ID pour éviter les ambiguités
        if not axe: nbChampsTestes = 1
        filtre = kwd.pop('filtre',None)
        getAnalytiques = kwd.pop('getAnalytiques', None)
        lstNomsCol = kwd.pop('lstNomsCol',['IDanalytique','abrégé','nom','params','axe'])
        lstChamps = kwd.pop('lstChamps',['cpta_analytiques.IDanalytique', 'cpta_analytiques.abrege',
                                         'cpta_analytiques.nom', 'cpta_analytiques.params', 'cpta_analytiques.axe'
                                         ])
        lstTypes = kwd.pop('lstTypes',None)
        if not lstTypes:
            lstTypes = [y for x,y,z in DB_TABLES['cpta_analytiques']]
        lstCodesColonnes = [xformat.NoAccents(x).lower() for x in lstNomsCol]

        if not mode: mode = 'dlg'
        dicAnalytique = None
        nb = 0
        # Test préalable sur début de clé seulement
        if filtre and len(str(filtre))>0:
            # pour recherche sur un seul axre, on déroule les champs progresivement, jusqu'à trouver un item unique
            for ix in range(nbChampsTestes):
                kwd['whereFiltre']  = """
                    AND (%s LIKE '%s%%' )"""%(lstChamps[ix],filtre)
                kwd['lstChamps'] = lstChamps
                kwd['mode'] = mode
                kwd['axe'] = axe
                ltAnalytiques = getAnalytiques(**kwd)
                nb = len(ltAnalytiques)
                if nb == 1:
                    # une seule occurrence trouvée c'est ok dans tous les cas
                    dicAnalytique={}
                    for ix2 in range(len(ltAnalytiques[0])):
                        dicAnalytique[lstCodesColonnes[ix2]] = ltAnalytiques[0][ix2]
                    break
                elif nb > 1 and mode.lower() == 'auto':
                    # Le mode auto prend la première occurrence trouvée même s'il y en a d'autres
                    dicAnalytique={}
                    for ix2 in range(len(ltAnalytiques[0])):
                        dicAnalytique[lstCodesColonnes[ix2]] = ltAnalytiques[0][ix2]
                    break
                elif nb > 1:
                    # dès le premier champ trop d'occurrences, il faut les afficher
                    break
        if mode.lower() == 'auto' or nb == 1:
            return dicAnalytique

        # le filtre semble trop peu sélectif pour un f4 on le supprime
        if nb < 2: filtre = None
        # un item unique n'a pas été trouvé on affiche les choix possibles
        getDonnees = getAnalytiques
        dicOlv = self.GetMatriceAnalytiques(axe,lstChamps,lstNomsCol,lstTypes,getDonnees)
        #dicOlv['lstCodesSup'] = ['axe',]
        dicOlv['size'] = (500,600)

        # appel dee l'écran de saisie
        dlg = xgtr.DLG_tableau(self,dicOlv=dicOlv)

        if dlg.ctrlOlv.Parent.ctrlOutils:
            barreRecherche = dlg.ctrlOlv.Parent.ctrlOutils.barreRecherche
        else:
            barreRecherche = dlg.ctrlOlv.Parent.barreRecherche
        if filtre and len(filtre)>0 and barreRecherche:
            barreRecherche.SetValue(filtre)
            dlg.ctrlOlv.Filtrer(filtre)
        ret = dlg.ShowModal()
        if ret == wx.OK:
            donnees = dlg.GetSelection().donnees
            dicAnalytique = {}
            for ix in range(len(donnees)):
                dicAnalytique[dicOlv['listeCodesColonnes'][ix]] = donnees[ix]
        dlg.Destroy()
        return dicAnalytique