es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Campos Enlazados de Business Central

Estoy intentando crear un campo booleano “Recibido” tanto en las Líneas de Compra como en las Líneas de Venta, de modo que cuando un artículo se marque como Verdadero en la Línea de Compra, la Línea de Venta asociada también se marque como Verdadera. Hasta ahora he logrado crear un campo en la Línea de Compra para almacenar el ID de la Línea de Venta correspondiente, pero tengo un poco de dificultad para determinar el Desencadenador cuando se cambia el campo de la Línea de Compra y cómo utilizar el campo de ID de la Línea de Venta para actualizar la Línea de Venta específica que coincide con el ID.
field(csg_PoliReceived; Rec.csg_PoliReceived)
{
Caption = 'Línea de Orden de Compra Recibida';
ApplicationArea = All;
trigger OnValidate()
begin
// si es verdadero
// actualizar Línea de Venta a verdadero
// si es falso
// actualizar Línea de Venta a falso
end;
}

Tengo este fragmento en una extensión de página que extiende la página de Líneas de Compra, así que no estoy seguro de cómo consultar la Línea de Venta con el ID coincidente y cómo actualizar ese registro. Cualquier consejo sería muy apreciado. ¡Gracias!

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para actualizar el registro de Línea de Ventas asociado cuando se cambia el campo “Recibido” en la Línea de Compra, puedes utilizar el disparador “OnValidate” y agregar el siguiente código:

    trigger OnValidate()
    begin
        // Obtener el Id de la Línea de Ventas
        SalesLineId := Rec.SalesLineId;
    
        // Actualizar Línea de Ventas
        SalesLine.SETRANGE("Id", SalesLineId);
        IF Rec.csg_PoliReceived = TRUE THEN
            SalesLine.MODIFYALL(FALSE)
        ELSE
            SalesLine.MODIFYALL(TRUE);
        SalesLine.MODIFY;
    end;
    

    Primero, necesitas obtener el Id de la Línea de Ventas que se guardó en el registro de la Línea de Compra. Puedes hacer esto declarando una variable (por ejemplo, SalesLineId) y asignando el valor de Rec.SalesLineId.

    Luego, puedes actualizar el registro de la Línea de Ventas con el Id coincidente utilizando las funciones SETRANGE y MODIFYALL. Si el campo “Recibido” es verdadero, puedes establecer el campo “Recibido” de la Línea de Ventas en falso (y viceversa si el campo “Recibido” es falso).

    Finalmente, necesitas llamar a la función MODIFY para guardar los cambios en el registro de la Línea de Ventas.

    Ten en cuenta que necesitas declarar una variable llamada “SalesLine” y establecer la tabla en la tabla de Línea de Ventas de Dynamics.

Comments are closed.