IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Paradox Discussion :

Cadre table ralenti


Sujet :

Paradox

  1. #1
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 58
    Points : 43
    Points
    43
    Par défaut Cadre table ralenti
    Bonjour à tous,

    J'ai une fiche, dans laquelle j'ai un cadre table liée à un table "SELECTION", elle-même liée à ma table "COMMANDES" par relation 1:1. Selon plusieurs critères différents, je peux lancer une requete qui me donne le resultat dans la table selection et ainsi peux modifier les champs de ma table "COMMANDES" selon les mêmes critères de selection. ( méthode trouvée pour pour filtrer rapidement mes commandes dans un cadretable).
    Mon problème, est que quand mon cadretable déasse une centaine de commandes, il devient très lent et donc inexploitable.

    Merci,

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Argentine

    Informations forums :
    Inscription : Mars 2006
    Messages : 85
    Points : 95
    Points
    95
    Par défaut
    Bonjour,

    Possibilité 1: montre le code de la fiche, spécialement là où le qbe est lancé.

    Possibilité 2: essaie avec un SetGenFilter. Tu peux l'utiliser à trois niveaux: sur la Table même, sur un TCursor, ou sur le UIObject même.

    Bonne chance!

  3. #3
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 58
    Points : 43
    Points
    43
    Par défaut
    A mon sens, un setgenfilter est trop long sur une table de 28000 enregistrement.
    voici le code que j'utilise. Il est suffisament rapide, mais une fois le resultat affiché dans mon cadre table, passer d'un enregistrement à l'autre est long.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    var
        FAM,SEC,ET              String
       Q                       query
       TC,QTC,TCDELIG       tcursor
       FM                        Form
    endvar
     
    setMouseShape(MouseWait,true)
    If FM.attach("PATIENTER") Then
        FM.bringToTop()
    Else
        FM.open(":WORK:PDX V2010\\PATIENTER.fsl") 
    EndIf
    ;Tri DELAI
    TC.attach(CADRE)
    TC.switchIndex()
    CADRE.resync(TC)
    FAM=iif(FAMIL.isBlank(),"",",")+FAMIL
    SEC=SECT1
    If SEC="TOUS" then SEC="" EndIf
    If ETA1.Value="TOUS" then
        ET="NOT LIV,NOT ENR,NOT TRT, NOT ANU"
    Else
        ET=ETA1+",NOT LIV,NOT ENR,NOT TRT, NOT ANU"
    EndIf
    TC.attach(CADRE)
    TC.empty()
          Q = Query
     
        PDX V2010\TABLES\CDELIG.DB | NCOMMANDE  | LIGNE  | FAMILLE                | ETAPE           | DELAI  |
                                        | Check      | Check  | Check _jointure1 ~ FAM | CheckPlus ~ ET  | Check  |
     
     
       PDX V2010\TABLES\FAMILLES.DB |  Famille    | Secteur         |
                                        |  _jointure1 | CheckPlus ~ SEC |
        ENDQUERY
     
    ;If NOT Q.executeQbe(":WORK:PDX V2010\\TABLES\\SELECTION.DB") then errorshow() EndIf; return
     
    if not Q.executeQbe(QTC) then
        errorshow()
    endif
    QTC.add(TC)
    QTC.Close()
    TC.Home()
    CADRE.resync(TC)
    ;Tri DELAI
    TC.attach(CADRE)
    TC.switchIndex("TRIDELAICROI")
    TCDELIG.Open(":WORK:PDX V2010\\TABLES\\CDELIG.DB")
    Scan TC:
        TCDELIG.Qlocate(TC.NCOMMANDE,TC.LIGNE)
       If TC.ETAPE="LCT" then
           If TCDELIG.DELAI_PREPARATION<Today() Then TC.URGENT="g" EndIf
       EndIf
       If TC.ETAPE="PRP" then
           If TCDELIG.DELAI_ASSEMBLAGE<Today() Then TC.URGENT="g" EndIf
       EndIf
       If TC.ETAPE="ASS" then
           If TCDELIG.DELAI_SOUDURE<Today() Then TC.URGENT="g" EndIf
       EndIf
       If TC.ETAPE="SOU" then
           If TCDELIG.DELAI_USINAGE<Today() Then TC.URGENT="g" EndIf
       EndIf
       If TC.ETAPE="USI" then
           If TCDELIG.DELAI<Today() Then TC.URGENT="g" EndIf
       EndIf
    EndScan
    TC.Home()
    CADRE.resync(TC)
    TC.Close()
    TCDELIG.Close()
    FM.Close()
    setMouseShape(Mousearrow,true)
    Merci pour votre aide

Discussions similaires

  1. [WD17] Table - afficher données dans un cadre
    Par Phild01 dans le forum WinDev
    Réponses: 3
    Dernier message: 16/05/2014, 18h36
  2. [WD12] Sélection de ligne de table ralentie
    Par zouzoukha dans le forum WinDev
    Réponses: 4
    Dernier message: 18/10/2010, 11h41
  3. Requete dans un cadre de table
    Par vinystic dans le forum Paradox
    Réponses: 1
    Dernier message: 28/07/2009, 20h59
  4. Réparation table/entête endommagée
    Par tbesrour dans le forum Paradox
    Réponses: 15
    Dernier message: 27/11/2007, 10h42
  5. [Comparatifs] Limites nombres tables et quantité de données
    Par benj63 dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 13/06/2002, 21h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo