sumar 2 campos flowfields

Este debate contiene 5 respuestas, tiene 2 mensajes y lo actualizó  Cristina Nicolàs hace 1 año, 2 meses.

Viendo 6 publicaciones - del 1 al 6 (de un total de 6)
  • Autor
    Publicaciones
  • #5560

    Buenos días,

    Tengo 2 campos calculados en la tabla 122 «hist cab fact venta».

    Estos campos son Importe Coste Base e Importe Descuento Factura.

    En el caso de que el Importe Descuento Factura sea distinto de cero, quiero que se lo sume al campo Importe Coste Base.

    Tengo varias dudas. La primera es si se pueden sumar 2 flowfields. Si es así, ¿Dónde debería crear está condición?

    Ahora mismo he puesto el siguiente código en el ONInsert():

    IF «Invoice Discount Amount» <> 0 THEN
    «Importe Coste Base» := «Importe Coste Base» + ABS(«Invoice Discount Amount»);

    Muchas gracias!!!!

    #5561

    Cristina Nicolàs
    Jefe de claves

    Hola Javier,

    Si puedes sumar dos campos FlowField.
    Pero precisamente porque son FlowFields, antes de hacer la suma recuerda calcularlos con la instrucción CALCFIELDS.

    Lo que no puedes hacer es asignar el resultado de esta suma al propio FlowField.
    Se lo tendrías que asignar a otro campo o a una variable o a lo que sea en función de lo que quieras conseguir. Pero no al propio campo calculado.

    Un saludo,
    Cristina Nicolàs

    ¿Quieres conocer las últimas novedades sobre Business Central? Dynamics ScaleUp 2019.

    Consulta fechas en
    DynamicsScaleUp.com

    #5562

    Buenas de nuevo Cristina,

    Mis 2 campos flowfields tienen una Calcformula creada en sus propiedades.

    Por lo que me estás comentando, debería quitar la calcformula del campo «Importe Coste Base» y hacer el cálculo en código, no?

    o asignar el valor que tiene ahora el importe coste base a una nueva variable y ya hacer la suma:

    vNuevaImporteCosteBase := CALCFIELDS(«Importe Coste Base»);
    VInvoiceDiscountAmount := CALCFIELDS(«Invoice Discount Amount»);

    IF “Invoice Discount Amount” <> 0 THEN

    “Importe Coste Base” := vNuevaImporteCosteBase + ABS(vInvoiceDiscountAmount);

    Muchas gracias!!!

    #5563

    Cristina Nicolàs
    Jefe de claves

    Hola Javier,

    No. Si «Importe Coste Base» es un flowfield no podrás asignarle un valor.

    Tendría que ser:

    CALCFIELDS(«Importe Coste Base»,Invoice Discount Amount”);
    «Nuevo campo» := «Importe Coste Base» + ABS(«Invoice Discount Amount»);

    o

    CALCFIELDS(«Importe Coste Base»,Invoice Discount Amount”);
    variable := «Importe Coste Base» + ABS(«Invoice Discount Amount»);

    Un saludo,
    Cristina Nicolàs

    ¿Quieres conocer las últimas novedades sobre Business Central? Dynamics ScaleUp 2019.

    Consulta fechas en
    DynamicsScaleUp.com

    #5564

    Buenas Cristina,

    Entendido.

    Y para que me haga el cálculo y lo pueda ver en el histórico de facturas de compra, ¿tengo que poner el código en el ONInsert()?

    Muchas gracias y perdona por ser tan pesado,

    Javier

    #5566

    Cristina Nicolàs
    Jefe de claves

    Hola Javier,

    Depende… en el OnInsert() de la cabecera es posible que aun no existan las líneas y por tanto el FlowField devuelva 0 (si es que el FlowField es una suma de las líneas, que supongo que si).
    Habría que revisar en qué orden se insertan los registros en la BBDD cuando se registra, porque tu cálculo lo quieres hacer cuando esté la cabecera y también las líneas.

    Y otra cosa que deberías tener en cuenta:
    El resultado del FlowField puede cambiar en algún momento? Porque en este caso tendrás que actualizar tu suma.

    Un saludo,
    Cristina Nicolàs

    ¿Quieres conocer las últimas novedades sobre Business Central? Dynamics ScaleUp 2019.

    Consulta fechas en
    DynamicsScaleUp.com

Viendo 6 publicaciones - del 1 al 6 (de un total de 6)

Debes estar registrado para responder a este debate.

Members Currently Active: 1
pbacapacitacion
Keymaster | Moderator | Participant | Spectator | Blocked
Additional Forum Statistics
Threads: 839, Posts: 2.732, Members: 878
Welcome to our newest member, VAERSA
Most users ever online was 15 on 5 April, 2019 9:31 am