Las líneas de la orden de compra


a la hora de crear una asociación en la ECO no se garantiza el orden en que los objetos a los fines de la asociación serán presentados. & nbsp Por esta razón ECO proporciona un valor Booleano 'ordenado' de propiedad de la asociación extremos.

Cuando usted es el conjunto Ordenado = True en el modelo y, a continuación, generar la base de datos, ECO se crea una columna adicional en la base de datos de identificación de la secuencia de los objetos.

me acabo de crear SalesInvoice / SalesInvoiceLine clases y ha elegido un pedido de la asociación, básicamente porque es el estándar de la industria de la práctica para identificar cada línea de una Factura/Pedido con un número secuencial, por lo que es fácilmente identifyable cuando se habla de él.

habría sido agradable si yo podría haber usado un OCL derivados atributo con una expresión similar a este:

esto.SalesInvoice.líneas->indexOf(auto)

pero, por desgracia OCL no parece tener un camino para encontrar el índice de un objeto en una colección, por lo que tuve que recurrir a la escritura de un código derivado de atributo.

en Primer lugar he marcado el atributo de la Derivada, y no introduzca ninguna DerivationOCL. & nbsp Luego he añadido un método público de la clase con la siguiente firma

público Int32 LineNumberDeriveAndSubscribe(ISubscriber reEvaluateSubscriber, ISubscriber resubscribeSubscriber)

por último, el código para el atributo tenía que hacer la siguiente

  1. Suscribirse a la SalesInvoice de la propiedad
  2. El objeto no tiene SalesInvoice, devuelve -1
  3. Suscribirse a SalesInvoice.Líneas
  4. Volver al índice de este objeto en SalesInvoice.Líneas

público Int32 LineNumberDeriveAndSubscribe(ISubscriber reEvaluateSubscriber, ISubscriber resubscribeSubscriber)
{
& nbsp & nbsp & nbsp AsIObject().Propiedades['SalesInvoice'].SubscribeToValue(resubscribeSubscriber)
& nbsp & nbsp & nbsp si (esto.SalesInvoice == null)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp return -1
& nbsp & nbsp & nbsp else
& nbsp & nbsp & nbsp {
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp SalesInvoice.AsIObject().Propiedades['Líneas'].SubscribeToValue(resubscribeSubscriber)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp devolución de este.SalesInvoice.Líneas.IndexOf(este) 1
& nbsp & nbsp & nbsp }
}

Para una explicación de la diferencia entre evaluar de nuevo y volver a Suscribirse, echa un vistazo a este artículo.









Las lineas de la orden de compra


Las lineas de la orden de compra : Multi-millones de consejos para hacer su vida mas facil.


a la hora de crear una asociacion en la ECO no se garantiza el orden en que los objetos a los fines de la asociacion seran presentados. & nbsp Por esta razon ECO proporciona un valor Booleano 'ordenado' de propiedad de la asociacion extremos.

Cuando usted es el conjunto Ordenado = True en el modelo y, a continuacion, generar la base de datos, ECO se crea una columna adicional en la base de datos de identificacion de la secuencia de los objetos.

me acabo de crear SalesInvoice / SalesInvoiceLine clases y ha elegido un pedido de la asociacion, basicamente porque es el estandar de la industria de la practica para identificar cada linea de una Factura/Pedido con un numero secuencial, por lo que es facilmente identifyable cuando se habla de el.

habria sido agradable si yo podria haber usado un OCL derivados atributo con una expresion similar a este:

esto.SalesInvoice.lineas->indexOf(auto)

pero, por desgracia OCL no parece tener un camino para encontrar el indice de un objeto en una coleccion, por lo que tuve que recurrir a la escritura de un codigo derivado de atributo.

en Primer lugar he marcado el atributo de la Derivada, y no introduzca ninguna DerivationOCL. & nbsp Luego he añadido un metodo publico de la clase con la siguiente firma

publico Int32 LineNumberDeriveAndSubscribe(ISubscriber reEvaluateSubscriber, ISubscriber resubscribeSubscriber)

por ultimo, el codigo para el atributo tenia que hacer la siguiente

  1. Suscribirse a la SalesInvoice de la propiedad
  2. El objeto no tiene SalesInvoice, devuelve -1
  3. Suscribirse a SalesInvoice.Lineas
  4. Volver al indice de este objeto en SalesInvoice.Lineas

publico Int32 LineNumberDeriveAndSubscribe(ISubscriber reEvaluateSubscriber, ISubscriber resubscribeSubscriber)
{
& nbsp & nbsp & nbsp AsIObject().Propiedades['SalesInvoice'].SubscribeToValue(resubscribeSubscriber)
& nbsp & nbsp & nbsp si (esto.SalesInvoice == null)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp return -1
& nbsp & nbsp & nbsp else
& nbsp & nbsp & nbsp {
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp SalesInvoice.AsIObject().Propiedades['Lineas'].SubscribeToValue(resubscribeSubscriber)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp devolucion de este.SalesInvoice.Lineas.IndexOf(este) 1
& nbsp & nbsp & nbsp }
}

Para una explicacion de la diferencia entre evaluar de nuevo y volver a Suscribirse, echa un vistazo a este articulo.


Las líneas de la orden de compra

Las líneas de la orden de compra : Multi-millones de consejos para hacer su vida más fácil.
Recommander aux amis
  • gplus
  • pinterest

Comentario

Dejar un comentario

Clasificación