Calculation expressions

Expresiile de calcul indica programului ce calcule vor trebui efectuate pe tabel. Calculele se fac intotdeauna intr-o maniera secventiala, de aceea este importanta definirea corecta a ordinii acestora.

Expresiile sunt executate de fiecare data cand unul dintre campurile afisate in interiorul lor este modificat. Cu toate acestea, expresiile actioneaza numai in cadrul detaliului actual si in orice alte tabele suplimentare ale acestuia.

Pentru a gestiona expresiile, apasati pe Setare si vizualizati ecranul corespunzator.

In coloana din dreapta este afisat campul in care va fi salvat rezultatul expresiei. In coloana din mijloc va fi creata expresia propriu-zisa. Coloana din stanga contine toate campurile tabelului si tabele suplimentare care pot fi utilizate in cadrul expresiilor.

Campurile sunt intotdeauna inchise intre paranteze patrate [].

In cazul in care campul este inchis intre acolade {} inseamna ca, campul solicitat nu se gaseste in tabel, ci este un camp care apartine tabelului parinte (deci nu un tabel suplimentar).

Exemple expresii de calcul

[total_pret] = [total_vanzare] - [total_reducere]

Expresia stabileste campul [total_pret] scazand din [total_ vanzare], [total_reducere].

[timp_productie] = ([cantitate_ceruta] * [ore_lucru]) / [numar_masini]

Expresia arata modul de configurare a unui calcul cu paranteze rotunde.

[total_pret] = [total_vanzare] – ([total_vanzare] / 100) * [reducere_procentual]

Expresia stabileste [total_pret] calculand o reducere procentuala din vanzarea totala.

[total_pret] = sum([facturi_randuri.total_pret])

Valoarea este preluata din suma coloanei [total_pret] prezentata in tabelul facturi_randuri. Functiunea SUM poate fi utilizata doar de la detaliu la tabelul suplimentar si nu invers. Motivul este ca, detaliul nu poate accesa o singura valoare pe un rand specific continut in tabelul suplimentar (facturi_randuri). Poate deci numai sa solicite o singura valoare, in acest caz suma coloanei.

[total_pret_brut] = sum([facturi_randuri.total_pret])
[total_pret_net] = [total_pret_brut] – ([total_pret_brut] / 100) * [reducere_procentaj]

Mai intai a fost setata o valoare partiala pentru a putea fi vizualizat brutul pe [total_pret_brut]. Aceasta valoare a fost apoi utilizata pentru a calcula valoarea neta.

[total_linie_brut] = [pret_unic_linie] * [cantitate]
[total_linie_net] = [total_linie_brut] – ([total_linie_brut] / 100) * {reducere_client}

In acest caz, expresiile se afla in cadrul randului tabelului suplimentar. Campul {reducere_client} scris intre acolade, informeaza programul ca valoarea nu este prezenta pe linie, ci trebuie preluata din detaliul parinte (daca exista). Prin urmare, cu fiecare linie adaugata la factura, programul va recupera reducerea stabilita la datele de la inceput. Modificand reducerea clientului in factura, toate liniile prezente vor fi recalculate cu noua valoare.

[TVA_total] = if([scutitTVA]=1?0:sum([facturi_randuri.TVA_total]))

In expresie se foloseste un conditional pentru a putea seta o valoare pe baza unei alegeri. Expresia, inainte de a seta [TVA_total], verifica valoarea campului [scutire_TVA]. In cazul in care campul valoreaza 1, atunci [TVA_total] este setat la 0, in caz contrar, este setat la suma coloanei [TVA_total] prezenta in cadrul tabelului facturi_randuri.

[total_zile] = zile([data_inceput] : [data_inceput])
[total_ore] = ore([data_inceput] : [data_inceput])

Aceste tipuri de expresii sunt utilizate pentru a extrage orele sau numarul de zile plecand de la doua date.