[New] Champs table : colonne calculés
Stagiaire WDF
Inscrit:
17/06/2008 08:45
Post(s): 18
Dans la documentation en ligne de la version 15, dans la doc de TableAffiche, on fait mention à plusieurs reprise que TableAffiche met jour les colonnes calculés.

Comment procédéz vous pour mettre en place une colonne calculée?

Patrice

Contribution le : 01/07/2010 10:05
Créer un fichier PDF de la contribution Imprimer


Re: [New] Champs table : colonne calculés
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

On ajoute une colonne calculée
Dans le bloc Affichage d'une ligne de table
effectuer le calcul voulu.

Contribution le : 01/07/2010 11:40
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: [New] Champs table : colonne calculés
Stagiaire WDF
Inscrit:
17/06/2008 08:45
Post(s): 18
Merci, je sais maintenant ce que c'est une colonne calculée.

Pourrais-tu me dire ce qu'est une rubrique calculée?

Contexte:
<<
Dans la modification d'une requete avec l'option hFiltre, utilisez HModifie.
Mais dans ce cas, la modification du contenu d'une rubrique calculée provoque une erreur W-Language.
Le contenu de ces rubriques est automatiquement calculé lors de la modification de l'enregistrement.>>

En lisant cela, on pourrait penser qu'une rubrique calculé, est un element select de la requete qui fait un calcul
sur une rubrique non calculé de la requete.

Patrice

Contribution le : 01/07/2010 15:12

Edité par drcharly93 sur 14/7/2010 19:39:54
Créer un fichier PDF de la contribution Imprimer


Re: [New] Champs table : colonne calculés
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Définition des noms
- Rubrique : nom d'un éléments lié soit à
* un fichier de données
* une données d'une requête
* une variable

- Champ : élément graphique qui reçoit une valeur lié ou non à une rubrique

Une Rubrique calculé peut être en effet le résultat d'un calcul effectué lors de l'exécution de la requête dont la rubrique réceptrice du calcul n'existe pas dans la source de données

EXEMPLE1 (Rubrique calculée)
sSql est une chaine
ssql =
[
SELECT 
 NUMCPT AS Compte,
 DEBIT AS [Débit],
 CREDIT AS [Crédit],
 (DEBIT - CREDIT) AS Solde
FROM
 COMPTE
]

Ici
Solde est une rubrique calculée qui n'existe pas physiquement dans le fichier COMPTE

Dans une table liée à cette requête les 3 champs de la table ont une liaison avec une rubrique de la requête


EXEMPLE2 (Champ calculé)
sSql est une chaine
ssql =
[
SELECT 
 NUMCPT AS Compte,
 DEBIT AS [Débit],
 CREDIT AS [Crédit]
FROM
 COMPTE
]

Dans cette exemple seulement 2 champs de la table auront une liaison avec une rubrique de la requête
Le 3ieme champ sera créé Solde au niveau de la table sans liaison avec une rubrique de la requête
On utilisera alors le bloc Affichage d'une ligne de table pour effectuer le calcul
Solde = Débit - Crédit  //noms des champs de la table

le programme effectuera automatiquement à chaque affichage de ligne ce calcul

Contribution le : 01/07/2010 15:51
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: [New] Champs table : colonne calculés
Stagiaire WDF
Inscrit:
17/06/2008 08:45
Post(s): 18
Bonjour,

merci pour cette description détaillée.

Mais il y a un problème avec le code dans Affichage de ligne de table.
Par exemple, si on fait un total d'une colonne champs calculée, on a seulement le total des lignes qui sont affichées!

Contribution le : 02/07/2010 08:20
Créer un fichier PDF de la contribution Imprimer


Re: [New] Champs table : colonne calculés
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Par défaut, avec une table liée à un fichier ou une requête celle-ci ne charge en mémoire que les lignes affichées, c'est pour cela que le résultat ne prend en compte que les lignes affichées.
Avec cette méthode il vous faut relancer une requête qui vous renvoie le total attendu sur le contenu
Exemple
sSql est une chaine
Rs est une source de données
sSql=
[
SELECT 
 SUM(DEBIT) AS ttDebit,
 SUM(CREDIT) AS ttCredit
FROM
 COMPTE
]
SI PAS HexecuteRequeteSql( Rs, hRequeteDefaut, sSql) Alors
 Erreur(hErreurInfo())
 Retour
FIN
HLitPremier(Rs)
Info( Total Crédit : " + Rs.ttCredit)

Pour optimiser le traitement vous pouvez aussi exécuter cette requête via un thread.

Contribution le : 05/07/2010 17:37

Edité par drcharly93 sur 14/7/2010 19:40:17
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2