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

Extensiones



  • cbr.conchi
    Participante
    cbr.conchi

    Buenos días,

    estoy migrando a extensiones un cliente, y me surge un par de dudas:
    – ¿Se puede incluir código en el validate de un campo de una tabla?¿cual seria la sintaxis en el visual code?
    – ¿Se puede modificar la posición en la que aparece un campo en una page de tipo lista?
    Este es el código, pero solo consigo que el campo sea visible.. por defecto no lo es.. pero no consigo moverlo de sitio… he probado las distintas optiones de move.

    pageextension 50101 CustomerLedgerEntries extends “Customer Ledger Entries”
    {
    layout
    {
    modify(“Global Dimension 1 Code”) {
    // Add changes to page layout here
    Visible=true; ////esto si funciona
    }
    moveafter(“Global Dimension 1 Code”;Open) //este NO funciona
    }
    }

    #6201

    cbr.conchi
    Participante
    cbr.conchi

    otra duda, ¿como añado a una tabla una clave secundaria? he probado con la siguiente sintaxis pero da error..
    keys
    {
    key(MyKey; “Vehículo”,”Shipment Date”){}
    }

    #6202

    Cristina Nicolàs
    Superadministrador
    Cristina Nicolàs

    Hola,

    – ¿Se puede incluir código en el validate de un campo de una tabla?¿cual seria la sintaxis en el visual code?

    No directamente. Lo que tienes que hacer es crear, en una codeunit, una función que se suscriba al evento OnAfterValidateEvent del campo que te interese, y aquí escribir el código que te interese.

    La síntaxis para suscribirse al evento OnAfterValidateEvent del campo “Sell-To Customer Name” de la tabla 36, por ejemplo, sería:
    EventSubscriber(ObjectType::Table,36,’OnAfterValidateEvent’,’Sell-to Customer Name’,true,true)]
    local procedure NombreDeLaFuncion(VAR Rec : Record “Sales Header”;VAR xRec : Record “Sales Header”;CurrFieldNo : Integer);
    begin
    end;

    Si no estás familiarizada con los eventos, te recomiendo el curso de Desarrollo con Eventos y también el Curso de Desarrollo de Extensiones con Visual Studio Code.

    – ¿Se puede modificar la posición en la que aparece un campo en una page de tipo lista?
    Este es el código, pero solo consigo que el campo sea visible.. por defecto no lo es.. pero no consigo moverlo de sitio… he probado las distintas optiones de move.

    pageextension 50101 CustomerLedgerEntries extends “Customer Ledger Entries”
    {
    layout
    {
    modify(“Global Dimension 1 Code”) {
    // Add changes to page layout here
    Visible=true; ////esto si funciona
    }
    moveafter(“Global Dimension 1 Code”;Open) //este NO funciona
    }
    }

    Si se puede. Con el moveafter te tendría que funcionar.
    No lo recuerdo exactamente y no he hecho la prueba, pero en el trozo de código que has puesto, diría que el moveafter tiene que ir dentro del layout. Pruébalo y nos dices.

    otra duda, ¿como añado a una tabla una clave secundaria? he probado con la siguiente sintaxis pero da error..
    keys
    {
    key(MyKey; “Vehículo”,”Shipment Date”){}
    }

    Con las extensiones sólo puedes crear claves con campos definidos en la propia extensión. No puedes utilizar campos del estándar de NAV.

    Un saludo,
    Cristina Nicolàs

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

Debe iniciar sesión para responder a este tema.