Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

Paramètres : FORMULE , 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
Cette fonction 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) Exemples :
Public record "gtfdd.dhsd"BB
PublicRecord

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 :

Bloc de code
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