Expressions de calcul

Les expressions de calcul indiquent au logiciel quels calculs doivent être effectués sur la table. Les calculs sont toujours effectués de manière séquentielle, il est donc important de définir correctement leur tri.

Les expressions sont exécutées à chaque fois qu'un des champs qui les composent est modifié. Les expressions, cependant, n'agissent que dans le cadre du détail actuel et de tout tableau supplémentaire.

Pour gérer les expressions, cliquez sur Configurer et l'écran correspondant s’affichera.

La colonne de droite indique le champ dans lequel le résultat de l'expression sera enregistré. Dans la colonne centrale, l'expression réelle sera créée. La colonne de gauche contient tous les champs du tableau et des tableaux supplémentaires qui peuvent être utilisés dans les expressions.

Les champs sont toujours mis entre crochets [].

Si le champ est entouré de crochets {}, cela signifie que le champ requis ne se trouve pas dans le tableau, mais qu'il s'agit d'un champ appartenant au tableau mère (donc ce n’est pas un tableau supplémentaire).

Exemples d'expression de calcul

[total_price] = [total_sale] - [total_discount]

L'expression définit le champ [total_price] en soustrayant à [total_discount] la [total_sale].

[production_time] = ([qty_requested] * [work_hours]) / [number_machines]

L'expression montre comment établir un calcul avec des crochets.

[total_price] = [total_sales] - ([total_sales] / 100)
* [percentage_discount]

L'expression définit le [total_price] en calculant un pourcentage de remise sur la vente totale.

[total_price] = sum([invoices_rows.total_price])

La valeur est récupérée de la somme de la colonne [total_price] reportée dans le tableau invoices_rows. La fonction SUM ne peut être utilisée que du détail au tableau supplémentaire et non l'inverse. La raison en est que le détail ne peut pas accéder à une valeur unique sur une ligne spécifique contenue dans le tableau supplémentaire (invoices_rows). Il ne peut donc exiger qu'une seule valeur, en l'occurrence la somme de la colonne.

[total_price_gross] = sum ([invoices_rows.total_
price])
[total_price_ net] = [total_ price_gross] - ([total_
price_ gross] / 100) * [percentage_ discount]

D'abord, vous définissez une valeur partielle pour afficher le brut à [total_ price_gross]. Cette valeur a ensuite été utilisée pour calculer la valeur nette.

[total_gross_row] = [price_single_row] * [Quantity]
[total_net_row] = [total_gross_row] - ([total_gross_
row] / 100) * {customer_discount}

Dans ce cas, les expressions se trouvent dans la ligne du tableau supplémentaire. Le champ {discount_customer} écrit entre accolades informe le programme que la valeur n'est pas présente sur la ligne, mais doit être récupérée dans le détail parent (si présent). Pour chaque ligne ajoutée dans la facture, le programme récupère donc la remise fixée sur les données de tête. En modifiant la remise client dans la facture, toutes les lignes présentes seront recalculées avec la nouvelle valeur.

[total_VAT] = if([VATexemption]=1?0:sum([invoices_rows.total_VAT]))

Une condition est utilisée dans l'expression pour fixer une valeur en fonction d'un choix. L'expression, avant de définir [total_VAT], vérifie combien vaut le champ [VATexemption]. Si le champ vaut 1, alors [total_VAT] est mis à 0, sinon il est mis à la somme de la colonne [total_VAT] dans le tableau invoices_rows.

[total_days] = days([start_date] : [start_date])
[total_hours] = hours ([start_date] : [start_date])

Ces types d'expressions sont utilisés pour extraire le temps ou le nombre de jours de deux dates.