Bon de commande des lignes


Lors de la création d'une association ECO vous n'êtes pas garanti l'ordre dans lequel les objets à la fin de l'association sera présenté. & nbsp Pour cette raison ECO fournit un Booléen 'ordonné' de la propriété de l'association se termine.

Lorsque vous définissez Commandé = True dans votre modèle, puis de générer votre base de données, ECO créer une colonne supplémentaire dans votre base de données, l'identification de la séquence des objets.

je viens de créer SalesInvoice / SalesInvoiceLine classes et choisi de l'ordre de l'association, essentiellement parce que c'est le standard de l'industrie s'exercer à identifier chaque ligne de Facture/Commande avec un sequencial nombre, ce qui le rend facilement identifyable lors de la discussion.

Il aurait été sympa si je pouvais avoir utilisé un OCL attribut dérivé avec une expression similaire à ceci:

c'.SalesInvoice.lignes->indexOf(auto)

mais malheureusement OCL ne semble pas avoir un moyen de trouver l'indice d'un objet dans une collection, j'ai donc eu recours à l'écriture d'un code dérivé de l'attribut.

j'ai d'Abord marqué l'attribut Dérivé, et n'entrez pas DerivationOCL. & nbsp Puis j'ai ajouté une méthode publique de la classe avec la signature suivante

public Int32 LineNumberDeriveAndSubscribe(ISubscriber reEvaluateSubscriber, ISubscriber resubscribeSubscriber)

Enfin, le code de l'attribut dû effectuer les opérations suivantes

  1. s'Abonner à la SalesInvoice propriété
  2. L'objet n'a pas SalesInvoice, de retour -1
  3. s'Abonner à SalesInvoice.Lignes
  4. Retour à l'index de cet objet dans SalesInvoice.Lignes

public Int32 LineNumberDeriveAndSubscribe(ISubscriber reEvaluateSubscriber, ISubscriber resubscribeSubscriber)
{
& nbsp & nbsp & nbsp AsIObject().Propriétés['SalesInvoice'].SubscribeToValue(resubscribeSubscriber)
& nbsp & nbsp & nbsp si (ce.SalesInvoice == null)
& ! & ! & ! & ! & ! & nbsp return -1
& nbsp & nbsp & nbsp else
& nbsp & nbsp & nbsp {
& ! & ! & ! & ! & ! & nbsp SalesInvoice.AsIObject().Propriétés['Lignes'].SubscribeToValue(resubscribeSubscriber)
& ! & ! & ! & ! & ! & nbsp retour cette.SalesInvoice.Les lignes.IndexOf () 1
& nbsp & nbsp & nbsp }
}

Pour une explication de la différence entre les Réévaluer et de Réabonnement, jetez un oeil à cet article.









Bon de commande des lignes


Bon de commande des lignes : Plusieurs milliers de conseils pour vous faciliter la vie.


Lors de la creation d'une association ECO vous n'etes pas garanti l'ordre dans lequel les objets a la fin de l'association sera presente. & nbsp Pour cette raison ECO fournit un Booleen 'ordonne' de la propriete de l'association se termine.

Lorsque vous definissez Commande = True dans votre modele, puis de generer votre base de donnees, ECO creer une colonne supplementaire dans votre base de donnees, l'identification de la sequence des objets.

je viens de creer SalesInvoice / SalesInvoiceLine classes et choisi de l'ordre de l'association, essentiellement parce que c'est le standard de l'industrie s'exercer a identifier chaque ligne de Facture/Commande avec un sequencial nombre, ce qui le rend facilement identifyable lors de la discussion.

Il aurait ete sympa si je pouvais avoir utilise un OCL attribut derive avec une expression similaire a ceci:

c'.SalesInvoice.lignes->indexOf(auto)

mais malheureusement OCL ne semble pas avoir un moyen de trouver l'indice d'un objet dans une collection, j'ai donc eu recours a l'ecriture d'un code derive de l'attribut.

j'ai d'Abord marque l'attribut Derive, et n'entrez pas DerivationOCL. & nbsp Puis j'ai ajoute une methode publique de la classe avec la signature suivante

public Int32 LineNumberDeriveAndSubscribe(ISubscriber reEvaluateSubscriber, ISubscriber resubscribeSubscriber)

Enfin, le code de l'attribut dû effectuer les operations suivantes

  1. s'Abonner a la SalesInvoice propriete
  2. L'objet n'a pas SalesInvoice, de retour -1
  3. s'Abonner a SalesInvoice.Lignes
  4. Retour a l'index de cet objet dans SalesInvoice.Lignes

public Int32 LineNumberDeriveAndSubscribe(ISubscriber reEvaluateSubscriber, ISubscriber resubscribeSubscriber)
{
& nbsp & nbsp & nbsp AsIObject().Proprietes['SalesInvoice'].SubscribeToValue(resubscribeSubscriber)
& nbsp & nbsp & nbsp si (ce.SalesInvoice == null)
& ! & ! & ! & ! & ! & nbsp return -1
& nbsp & nbsp & nbsp else
& nbsp & nbsp & nbsp {
& ! & ! & ! & ! & ! & nbsp SalesInvoice.AsIObject().Proprietes['Lignes'].SubscribeToValue(resubscribeSubscriber)
& ! & ! & ! & ! & ! & nbsp retour cette.SalesInvoice.Les lignes.IndexOf () 1
& nbsp & nbsp & nbsp }
}

Pour une explication de la difference entre les Reevaluer et de Reabonnement, jetez un oeil a cet article.


Bon de commande des lignes

Bon de commande des lignes : Plusieurs milliers de conseils pour vous faciliter la vie.
Recommander aux amis
  • gplus
  • pinterest

Messages récents

Commentaire

Laisser un commentaire

évaluation