EXECUTER_FORMULE (Fonction)
Le mécanisme EXECUTER_FORMULE permet via quelques lignes de code diva placées dans une surcharge d’utiliser la fonctionnalité ‘FORMULE’ d’un lien de nomenclature.
Le champ ‘Formule’ doit être renseigné avec le NOM DE LA FONCTION DIVA
Cette fonction sera appelée lors de la décomposition d’une nomenclature avec les Paramètres : &QTENECESS, TYPEENREG
La décomposition contrôle que la fonction « formule » existe bien dans le module de surcharge « GGUM600.DHOP» et dans ce cas appelle cette fonction de surcharge en passant la quantité nécessaire d'une ligne de composant et le type d'enregistrement.
Valeurs pour TYPEENREG :
1 = enregistrements GH et BB en ligne (production)
2 = enregistrements GH et GamM_Composant en ligne (maintenance)
La fonction doit retourner
TRUE pour indiquer de prendre la QTENECESS modifiée par la fonction, tel quel
FALSE pour indiquer de laisser faire le calcul standard avec les informations modifiées
Voici deux exemples :
Overwrite GGTM600.DHOP
Public Record "GGFDD.dhsd" BB
Public Record "GGFDD.dhsd" GgMnt500Comp GamM_Composant
;*
Public Function int FORM0001(&QteNecess, TypeEnreg)
1 QteNecess N ; Quantité nécessaire
1 TypeEnreg 1,0 ; indique le contexte : 1=GH+BB en prod, 2=GH+GamM_Composant en maintenance
BeginF
;* Form0001
; Ici si le composant est b et que le besoin est supérieur a 10
; Le composant est changé en c et la quantité nécessaire (qté de la nomenclature)
; Est multipliée par 3
; On laisse ensuite le programme continuer la nomenclature et calculer les
; Besoins avec ces nouveaux paramètres -> freturn(false)
;
If TypeEnreg = 1
If BB.REFCO = "b" And GH.QTE > 10
BB.REFCO= 'c'
BB.QTE = BB.QTE * 3
ElsIf TypeEnreg = 2
If GamM_Composant.REFCO = "b" And GH.QTE > 10
GamM_Composant.REFCO= 'c'
GamM_Composant.QTE = GamM_Composant.QTE * 3
EndIf
EndIf
EndIf
; On laisse calculer le programme
FReturn(False)
EndF
;*
Public Function int FORM0002(&QteNecess)
1 QteNecess N ; Quantité nécessaire
1 TypeEnreg 1,0 ; indique le contexte : 1=GH+BB en prod, 2=GH+GamM_Composant en maintenance
BeginF
;* Form0002
; Avec le freturn(true) -> on indique que le resultat doit être pris tel que : on ne laisse
; Pas le programme calculer un besoin en fonction de paramètres. cela peut être utile si
; Le besoin dépend de x paramètres spécifiques et qu'on préfère le calculer totalement en Spécifique
QteNecess = 20
FReturn(True)
EndF