Funcions en Access: calcular el preu de les diferents entrades d’una comanda, albarà o factura
Una avantatge important de les funcions és que l’abast és “públic”, es pot utilitzar en qualsevol procediment de l’aplicació.
La funció que a continuació crearem la podrem reutilitzar per calcular l’import d’un producte o servei, tant en una comanda com en un albarà o factura, estalviant-nos haver de composar la fórmula cada vegada.
Els passos que seguirem per al nostre exemple seran:
- Crear la funció en un mòdul
- Passar els paràmetres a la funció des del formulari que conté les línees d’un albarà, utilitzant l’event BeforeUpdate ( Antes de actualizar ) del formulari i els valors dels controls que contenen el preu, quantitat, descompte1, descompte2 i descompte 3, per obtenir l’import final de la línea, és a dir, del producte o servei que estiguem introduint.
1. Crear la funció en un mòdul
Vés a la fitxa Crear > Otros > Macro > Módulo

i introdueix el següent codi


Guardem el mòdul amb el nom que vulguem i anem al formulari on tenim les línees de l'albarà, i on hem de trobar els camps que continguin la informació relativa a la quantitat, preu, Descompte1, Descompte2 i Descompte3. Recordem que quan haguem d’utilitzar la funció, la cridarem pel nom que li haguem donat en el codi, en aquest cas CalcularImportLinea i no pel nom que li haguem posat al mòdul.
2. Passar els paràmetres a la funció des del formulari que conté les línees de l’albarà
En el meu cas vaig crear el següent formulari
, que com podeu veure conté els camps quantitat, preu, dte1 ( descompte 1 ), dte2 i dte 3, que utilitzarem com a paràmetres per passar a la funció i calcular l’Import Línea ( en el nostre cas el camp TOTLAL ).
Per passar els paràmetres seleccionarem
el formulari que conté les línees de l’albarà, obrirem la Fulla de Propietats
> Eventos > Antes de actualizar i obrirem el generador de codi
el formulari que conté les línees de l’albarà, obrirem la Fulla de Propietats
> Eventos > Antes de actualizar i obrirem el generador de codi
A continuació introduirem el codi
que crida a la funció per calcular l’import final de la línea, és a dir, de l’article o servei que estem introduint en l’albarà, i que en el nostre cas és el camp Me.TOTLAL.
Per obtenir aquest valor passem a la funció com a paràmetres els controls del nostre formulari que contenen la Quantitat ( Me.CANLAL ), el Preu ( Me.PRELAL ), el Descompte 1 ( Me.DT1LAL ), el Descompte 2 ( Me.DT2LAL ) i el Descompte 3 ( Me.DT3LAL ).
que crida a la funció per calcular l’import final de la línea, és a dir, de l’article o servei que estem introduint en l’albarà, i que en el nostre cas és el camp Me.TOTLAL.Per obtenir aquest valor passem a la funció com a paràmetres els controls del nostre formulari que contenen la Quantitat ( Me.CANLAL ), el Preu ( Me.PRELAL ), el Descompte 1 ( Me.DT1LAL ), el Descompte 2 ( Me.DT2LAL ) i el Descompte 3 ( Me.DT3LAL ).
Un cop introduït el codi podem tancar la fulla de propietats, mostrar el formulari en Vista Formulario
i observem que el valor del camp Me.TOTLAL ( Import Línea ) s’actualitza cada vegada que saltem de línea ja que el codi que hem creat en l’event BeforeUpdate ( Antes de actualizar ) s’encarrega de cridar a la funció CalcularImportLinea ( que es troba dins del mòdul que hem creat anteriorment ) i que calcula l’import d’aquest camp en funció de la quantitat, preu, descompte 1, 2 i 3 informats en la línea de l’albarà.
Nota important: podrem tornar a cridar la funció CalcularImportLinea per exemple, en el cas que també tinguem formularis d’ofertes, comandes o factures, estalviant-nos de fer cada vegada els càlculs per obtenir l’import de la línea.
i observem que el valor del camp Me.TOTLAL ( Import Línea ) s’actualitza cada vegada que saltem de línea ja que el codi que hem creat en l’event BeforeUpdate ( Antes de actualizar ) s’encarrega de cridar a la funció CalcularImportLinea ( que es troba dins del mòdul que hem creat anteriorment ) i que calcula l’import d’aquest camp en funció de la quantitat, preu, descompte 1, 2 i 3 informats en la línea de l’albarà.Nota important: podrem tornar a cridar la funció CalcularImportLinea per exemple, en el cas que també tinguem formularis d’ofertes, comandes o factures, estalviant-nos de fer cada vegada els càlculs per obtenir l’import de la línea.
Aplicacions i usos en les empreses
MÈTODE PER CALCULAR UN PREU AMB MÉS D'UN DESCOMPTE:
Per calcular el preu d'un producte o servei amb més d'un descompte:
Apliquem el primer descompte del 10 %: ( 25 € x ( 90/100) ) = 22,50 €
Apliquem el segon descompte del 5% sobre el resultat: 22,50 € x ( 95 / 100 ) = 21,375 €
I així successivament
Escrit tot en una única fórmula seria ( 25 € x ( 90 / 100 ) ) x ( 95 / 100 ) ) = 21,375
I la fórmula genèrica és: preu x ( 1-dte1 ) x ( 1-dte2 ) x ( 1- dte3 ) x .....x ( 1-dten ), amb dte < 1 i per tant hem de dividir el dten entre 100 ( exemples: 5% : 5 / 100 = 0,05, 20%: 20 / 100 = 0,20 .... )
Aquesta fórmula és la que hem fet servir quan hem creat la funció CalcularImportLinea explicada anteriorment.






Comentaris
Publica un comentari a l'entrada