• Este debate tiene 2 respuestas, 2 mensajes y ha sido actualizado por última vez el hace 7 meses, 2 semanas por AvatarCristina Nicolàs.
Viendo 3 entradas - de la 1 a la 3 (de un total de 3)

Respuestas del foro


  • administracion@riversa.es

    Hola,

    Estoy intentando poner en una Page un campo de otra página.

    La página obtiene los datos de la tabla Sales Shipment Line y lo que quiero es un campo que sea el Nombre del Cliente correspondiente al Nº de albarán que sacaré de la tabla Sales Shipment Header, siendo el nexo de unión el Nº de albarán.

    El campo que he creado es el siguiente:

    field(«Customer Name»; CustomerName)
    {
    Caption = ‘Customer Name’, Comment = ‘»ESP=»Nombre Cliente»‘;
    ApplicationArea = Basic, Suite;
    ToolTip = ‘Specifies the name of customer.’, Comment = ‘»Especifica el nombre del cliente.»‘;
    }

    Luego he creado una variable global

    var
    CustomerName: text;

    Y el evento

    trigger OnAfterGetRecord()
    var
    TSalesHeader: Record «Sales Shipment Header»;

    begin
    TSalesHeader.Reset();
    TSalesHeader.SetFilter(«No.», Rec.»Document No.»); //Rec hace referencia a la tabla Sales Shipment Line
    Message(TSalesHeader.»Bill-to Name» + ‘hola’); //Muestra Valor Blanco

    //CustomerName := TSalesHeader.»Bill-to Name»;

    end;

    Pero el Message muestra valor blanco, no muestra el nombre.

    Gracias,

    #1015785
    administracion@riversa.es

    Ya lo he resuelto.

    El error estaba:

    TSalesHeader.SetFilter(«No.», Rec.»Document No.»); //Rec hace referencia a la tabla Sales Shipment Line

    Tenía que ser:

    TSalesHeader.Get(«Document. N0.»);

    Quedaría así por si vale para un futuro:

    var
    CustomerName: text;

    trigger OnAfterGetRecord()
    var
    TSalesHeader: Record «Sales Shipment Header»;

    begin
    TSalesHeader.Reset();
    TSalesHeader.Get(«Document No.»);
    CustomerName := TSalesHeader.»Bill-to Name»;

    end;

    Gracias,

    #1015786
    Avatar
    Cristina Nicolàs
    Superadministrador
    Cristina Nicolàs

    Hola,

    Con el código inicial también te hubiera funcionado. Solo te faltaba, después de aplicar los filtros con el SETFILTER, hacer de algún modo la lectura a la base de datos con FindSet, FindFirst, o FindLast.

    En ambos códigos, la línea TSalesHeader.Reset(); sobra, no hace absolutamente nada.
    La variable está acabadita de crear, ya que es local. No es necesario hacer un Reset porque no hay nada a resetear… no la habías utilizado antes…

    Un saludo,
    Cristina Nicolàs

    #1015866
Viendo 3 entradas - de la 1 a la 3 (de un total de 3)

Debe iniciar sesión para responder a este tema.