FORUMS PROFESSIONNELS
WINDEV
,
WEBDEV
et
WINDEV Mobile
Accueil
|
Messages récents
|
Connexion
|
Déconnexion
|
Français
Accueil
→
WINDEV 2024
→
Structure vs requête
Structure vs requête
Débuté par GB, 11 mai 2021 21:48 - 2 réponses
Connectez-vous…
GB
#1
Membre enregistré
312 messages
Popularité : +8 (10 votes)
Posté le 11 mai 2021 - 21:48
Bonsoir à tous,
J'ai une fenêtre devis qui contient des champs liés au fichier devis et une table liée au fichier ligne devis.
A l'heure actuelle je filtre ma table pour n'afficher que les lignes devis rattachées à devis (via ID_Devis) et les lignes devis différentes d'un critère "type ligne".
Ceci m'occasionne des lenteurs d'ouverture et de traitement.
Je veux donc essayer de simplifier le process de gestion des données de la fenetre pour éviter d'avoir a filtrer la table.
En terme de fonctionnement je dois pouvoir gérer :
- ajout de lignes devis
- suppression de lignes devis
- copie de lignes devis
Une ligne devis peut avoir des composants (rattaché par le champs ID_lignedevis_parent.
Les lignes devis, les lignes devis "composant" sont dans le même fichier (différenciées par un champs type)
Je me pose la question de passer soit par une requête (avec modification fichier) soit par une structure et un tableau de structure.
je pensais par la même occasion mettre en place la rédaction provisoire, à savoir ne prendre en compte les modifications qu'a l'enregistrement du devis. Cela veut dire que la structure et le tableau de structure seraient adaptés à ces contraintes, mais je ne sais comment gérer les suppressions ou les ajouts => on supprime une ligne de la table, comment répercuter uniquement au moment de l'enregistrement la suppression de la ligne_devis et éventuellement de son composant.
Idem pour les ajouts. Comment gérer l'ajout d'une ligne qui n'a pas encore d'ID et éventuellement un composant.
Faut il avoir un champs dans la structure qui attribut un ID provisoire (l'indice éventuellement ?).
Je n'ai pas l'expérience de mettre en place des gestions de données intermédiaires entre fichier et IHM... vos éclaircissement seront donc précieux.
Bonne soirée
Signaler
0
0
Dav
#2
Membre enregistré
199 messages
Popularité : +3 (7 votes)
Posté le 12 mai 2021 - 10:08
Bonjour,
Si j'ai bien compris:
Niveau performance:
- Effectivement, il ne faut pas charger la table des lignes des devis avec tout le fichier puis filtrer ensuite. Il vaut mieux charger uniquement les lignes devis liées au devis affiché (à vous de voir si vous passer par une requête avec paramètre, une requête SQL...). Sans cela la lenteur va s'accentuer à chaque nouveau devis ajouté dans la base.
Pour la gestion des lignes des devis, voici une méthode assez simple à mettre en place :
Dans la table des lignes des devis vous ajoutez 2 colonnes : COL_ID_LigneDevis et COL_ASupprimer (interrupteur)
- Ajout :
Dans la table quand vous ajoutez une ligne de devis COL_ID_LigneDevis sera à 0 car la ligne n’existe pas encore dans la base.
- Suppression :
Lors de la suppression d’une ligne vous rendez la ligne invisible et mettez la colonne COL_ASupprimer à « vrai » (permet de ne pas supprimer directement si l'utilisateur veut annuler la suppression)
- Copie :
Vous copiez une ligne mais vous remettez la colonne COL_ID_LigneDevis à 0 (pour dire que c'est une nouvelle ligne)
Comme cela lors de l’enregistrement du devis vous parcourez ensuite la table des lignes du devis avec les tests suivants:
SI COL_ASupprimer = Vrai _ET_ COL_ID_LigneDevis > 0 ALORS
//Ligne existante dans la base (ID > 0) et à supprimer
HSupprime(...)
SINON
SI COL_ID_LigneDevis = 0 ALORS
//Nouvelle ligne
HAjoute(…)
SINON
//Ligne existante
HModifie(…)
FIN
FIN
Ceci est uniquement pour décrire la méthode, on peut encore largement améliorer le tout. En espérant avoir été assez clair...
Signaler
0
0
GB
#3
Membre enregistré
312 messages
Popularité : +8 (10 votes)
Posté le 12 mai 2021 - 21:57
C est très clair merci.
Il faut etendre la methode aux composants, donc rajouter une colonne pour un id de liaison provisoire. Sinon enregistrer la ligne avant d affecter un composant.
Signaler
0
0
→ Revenir à WINDEV 2024
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (précédentes versions)
WEBDEV (précédentes versions)
WINDEV Mobile (précédentes versions)
Etats & Requêtes
Hors-sujet
Outils
Français
English
Español
Portuguesa
Fermer cette fenêtre
Type de recherche
Uniquement les sujets
Tous les messages
Période de recherche
Date indifférente
Moins d'une heure
Moins de 24 heures
Moins d'une semaine
Moins d'un mois
Moins d'un an
Annuler
Aperçu de votre message
Ajouter une image
Importer une image depuis une URL
Envoyer une image depuis un fichier de votre disque
Déposez ici un fichier ou cliquez sur "Parcourir..."
ou
Annuler
0%
WLangage
SQL
XML, HTML
JAVA, Javascript
Texte