| |||||
| Dernière réponse | ||
|---|---|---|
| Sujet : [DELPHI] Champ agregat HELP!!! | ||
| rufo |
|
|
| Aperçu |
|---|
| Vue Rapide de la discussion |
|---|
| rufo |
|
| AGA | non a produit peut subir les deux TVA, depend d'un truc trop compliqué
EN plus les 2 TVA peuvent être sur la même facture. |
| rufo |
|
| rufo |
|
| AGA | au passage, j'ai un dbgrid pour inserer les données, comment on fait pour effacer une ligne (sans avoir un dbnavigator ou un bouton) ajouter je fais bas mais effacer :??: |
| AGA | YAISSE çA MARCHE!!!
J'ai un autre blem. Je veux le total HT, TTC et TVA (montant de TVA confondu taux 5.5 et 19.6), je suis obligé ds stockés deux ds la base?? :hello: rufo (j'ai pris ta methode...tu peux bien jetté un coup d'oeil vite fait ;) ) |
| AGA | :ouch: ça marche même pas ma tech; je l'ai mis sous OnNewRecord
et le champ n'est pas encore calculé, donc reste à zero :( |
| AGA |
|
| rufo | franchement si tu perds plein temps à esayer d'utiliser les aggrégats, t'aurais peut-être intérêt à le programmer toi même, même si c'est pas la meilleure solution, ça marche! Moi, j'ai développé un soft de gestion de commandes intégrant une facturation auto, ben j'ai fait tout un tas de requêtes SQL et stocker les résultats dans des vars -> ça marche. C'est peut-être moins rapide et moins élégant que tes aggrégats, mais CA MARCHE :) |
| AGA | UP siouplait une methode n'importe Koi :cry: :sweat: :sweat: :sweat: :ouch: Un champ agrégat affiche les valeurs issues d'un calcul portant sur un ensemble de données client. Un agrégat est la somme des données contenues dans un ensemble d'enregistrements. Pour créer un champ agrégat dans la boîte de dialogue Nouveau champ : 1 Entrez un nom pour le champ agrégat dans la boîte de saisie Nom. N'entrez pas le nom d'un champ existant. 2 Choisissez le type de données d'agrégat pour le champ dans la boîte à options Type. 3 Sélectionnez l'option d'agrégat dans la boîte groupe Type de champ. 4 Choisissez OK. Le champ agrégat nouvellement défini est automatiquement ajouté au composant Aggregates de l'ensemble de données client. Il est automatiquement mis à jour pour inclure la spécification d'agrégat appropriée et la déclaration du composant est automatiquement ajoutée à la déclaration type de la fiche dans le code source. 5 Placez le calcul de la somme dans la propriété ExprText du champ agrégat nouvellement créé. Pour plus d'informations sur la définition d'une somme, voir Spécification des agrégats. Une fois qu'un composant persistant TAggregateField est créé, un contrôle TDBText peut être lié au champ agrégat. Le contrôle TDBText affiche alors la valeur du champ agrégat en fonction de l'enregistrement en cours de l'ensemble de données client sous-jacent. |
| AGA | Par défaut, les agrégats maintenus sont calculés afin qu'ils synthétisent tous les enregistrements d'un ensemble de données client. Toutefois, vous pouvez spécifier que l'opération ne porte que sur les enregistrements d'un groupe. Cela vous permet d'obtenir des synthèses intermédiaires, comme des sous-totaux impliquant des groupes d'enregistrements ayant une valeur de champ commune.
Pour spécifier un agrégat maintenu sur un groupe d'enregistrements, vous devez disposer d'un index à partir duquel peut s'opérer le regroupement. VoirUne fois que vous disposez d'un index qui regroupe les données en fonction de la synthèse que vous voulez opérer, spécifiez les propriétés IndexName et GroupingLevel d'agrégat pour indiquer l'index à utiliser et le groupe ou sous-groupe de cet index qui définit les enregistrements à synthétiser. Par exemple, considérons la portion de table de commandes suivante triée par représentants (SalesRep) puis par clients (Customer) : SalesRep Customer OrderNo Amount 1 1 5 100 1 1 2 50 1 2 3 200 1 2 6 75 2 1 1 10 2 3 4 200 Le code suivant définit un agrégat maintenu qui indique le montant total des ventes réalisé par chaque représentant : Agg.Expression := 'Sum(Amount)'; Agg.IndexName := 'SalesCust'; Agg.GroupingLevel := 1; Agg.AggregateName := 'Total for Rep'; Pour ajouter un agrégat qui synthétise chaque client pour un représentant donné, créez un agrégat maintenu de niveau 2. Les agrégats maintenus qui synthétisent un groupe d'enregistrements sont associés à un index spécifique. La propriété Aggregates peut inclure des agrégats qui utilisent différents index. Toutefois, seuls les agrégats qui synthétisent la totalité de l'ensemble de données client et ceux qui utilisent l'index en cours sont valides. La modification de l'index en cours détermine les agrégats qui sont valides. Pour déterminer les agrégats valides à un moment donné, utilisez la propriété ActiveAggs. |
| AGA |
|
| instantdharma | désolé, je connais pas delphi :( une piste quand même : t'as peut-être des problèmes avec la valeur null aussi ; si 1 colonne est à null, ta fct d'agrégat fonctionne ou pas ? |
| AGA | Ds Delphi tu peux sur une table crée des champs de reference, des champs calculé et des champ d'agregat (c le nom ds Delphi)
L'idee c de recapitulé des champs de l'ensemble de donnée client exemple tu a une facture et des produits, la table facture c la table maitre, la liste des produits la table detail Le but calculé le totale du prix des produits de la facture; tu peux faire la moyenne, le min, le max, la somme. J'arrive à creer ce champ mais il n'a aucune valeur (vraisemblablement il y aune notion de groupe recapitulatif que je n'ai pas compris) C important, aussi je veux bien reexpliquer si je n'ai pas été clair. |
| instantdharma | C'est un problème delphi ou un pb de champ agrégat ds une req sql ? c'est pas clair, ton pb |
| AGA | :benetton: |
| AGA | :cry: |
| AGA | up :ouch: |
| AGA | personne sait fAIRE ça?! |
| AGA | Il affiche rien, il faut lui ecrire un gestionnaire (comme pour les champs calculés?)
C important :sweat: [edtdd]--Message édité par AGA--[/edtdd] |




