PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

  • Requête SQL avec un calcul
  • Requête SQL avec un calcul en programmation
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
Pour effectuer un calcul sur des données provenant d'un fichier de données, il est possible d'effectuer ces calculs directement par programmation en WLangage en lisant le contenu du fichier de données.
Un moyen plus efficace pour effectuer des calculs sur des données d'un fichier consiste à utiliser une requête SQL.
Nous allons voir comment effectuer un calcul en utilisant :
Requête SQL avec un calcul
Cette requête permet d'effectuer un calcul sur les enregistrements d'un fichier de données.
Dans cet exemple, nous calculons la valeur d'une ligne de commande en fonction d'un prix unitaire, de la quantité commandée et d'une remise.
Les différentes étapes pour créer cette requête SQL avec un calcul sont les suivantes :
  1. Sélectionnez l'option "Fichier .. Nouveau .. Requête". L'assistant de création d'une requête se lance.Cliquez sur Nouveau parmi les boutons d'accès rapide.
    • Dans la roue qui s'affiche, cliquez sur "Requêtes". Dans la fenêtre qui s'affiche, cliquez sur "Requêtes".
    • L'assistant de création d'une requête se lance.
  2. Sélectionnez l'option "Sélectionner (SELECT)" et validez.Choisissez de créer une requête de sélection (option "Sélection (SELECT)").
    Assistant de création de requêtes

    Passez à l'étape suivante de l'assistant.
  3. La fenêtre de description de la requête s'affiche.
  4. Donnez un nom et un libellé à la requête :
    Nom et libellé de la requête
  5. Dans la zone de gauche de la fenêtre de description, choisissez les rubriques du fichier de données à manipuler. Dans notre exemple, le fichier de données est le fichier LIGNECDE et les rubriques sont NumLigneCde et Référence.
  6. Double-cliquez sur les noms des rubriques pour les ajouter dans la liste des rubriques de la requête :
    Sélection des rubriques
  7. Pour effectuer le calcul de la ligne, dans la partie gauche de l'éditeur, en bas, cliquez sur le bouton "Rubrique calculée"
    Calcul
  8. Dans le menu qui s'affiche, sélectionnez "Nouvelle rubrique calculée". La fenêtre de création de la rubrique calculée s'affiche.
  9. Donnez un nom et un libellé à la rubrique calculée.
    Nom et libellé du calcul
  10. Saisissez la formule. Il est possible de taper le code directement dans la zone de code SQL. Pour intégrer une rubrique, cliquez sur son nom dans la liste à gauche :
    Calcul
  11. Validez. La fenêtre de description de la requête est mise à jour. La rubrique calculée est affichée dans la liste des rubriques prises en compte :
    Description de la requête
  12. Validez la fenêtre de description de la requête. La requête apparaît sous l'éditeur :
    Affichage de la requête sous l'éditeur
  13. Enregistrez la requête (CTRL S).
  14. Visualisez le code SQL en appuyant sur la touche F2 :
    Code SQL de la requête
  15. Testez la requête (GO dans les boutons d'accès rapide).
  16. La requête peut être exécutée dans le programme à l'aide de la fonction HExécuteRequête.
Requête SQL avec un calcul en programmation
Les requêtes SQL peuvent être écrites directement par programmation dans le code WLangage. Pour cela, il faut :
  1. Créer une variable de type Source de données pour représenter la requête en exécution.
  2. Créer une variable de type chaîne de caractères pour contenir le code SQL de la requête et écrire le code SQL dans cette variable.
  3. Exécuter la requête SQL à l'aide de la fonction HExécuteRequêteSQL.
  4. Parcourir le résultat à l'aide des fonctions HLITXXX.
Exemple de code
Src1 est une Source de Données
sCodeSQL est une chaîne

// Produits avec le prix TTC ...
sCodeSQL = [
SELECT
PRODUIT.Reference AS Reference,
PRODUIT.Libprod AS Libprod,
PRODUIT.Prixht AS Prixht,
PRODUIT.Prixht * (1 + PRODUIT.Tauxtva / 100) AS TTC
FROM
PRODUIT
]


HExécuteRequêteSQL(Src1, hRequêteDéfaut, sCodeSQL)
POUR TOUT Src1
Trace(Src1.Reference, Src1.Libprod, Src1.TTC)

FIN
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire