Archivo

Archivo para la categoría ‘NAV 2009’

Convenio interno para la programación en NAV

Lunes, 14 de Junio de 2010

Ejemplo de convenio en la codificación del C/AL para poder tener un seguimiento de las actualizaciones/modificaciones del código origen.

Lista de versiones

Texto Original + “;” + Funcionalidad o GAP + Numero de intervención

Descripción de campos

Funcionalidad o GAP + Numero de intervención + Entidad que interviene + Fecha + Iniciales de la Persona que ha realizado la acción.

V017 706 Proveedor 24.12.09 AOLCINA

V017 706 Proveedor 24.12.09 AOLCINA

Nomenclatura C/AL Global y Local

  • Nombre de variables: txVar_NombreDeLaVariable.
  • Nombre de Funciones: txFn_NombreDeLaFunción.
  • Nombre de Contante: TX_NombreDeLaConstante.

Comentario en C/AL Code

//-100 Proveedor 30.07.09 AOLCINA: Traer nuevos campos de cabecera.

Sentencia 1;

Sentencia 2;

//+100

Convenio en C/AL Code

· Inicializar las variables que se van a usar (a no ser que ha ciencia cierta que necesite el valor previo). Para ello se usará la sentencia CLEAR, raramente CLEARALL.

· La variables de tipo “option” se usa el valor, no la numeración (recordar que empieza con 0)
Ejm. :
PERMITIDO ->
IF txVar_Option = txVar_Option::”Opcion 1” THEN …
NO PERMITIDO -> IF txVar_Option = 0 THEN …

· En la sentencia WITH, los valores de la variable referenciada con WITH, se tendrá que poner el punto.
Ejm. :
PERMITIDO ->
WITH txVar_Record DO BEGIN .RESET END
NO PERMITIDO -> WITH txVar_Record DO BEGIN RESET END

· Uso de FINDFIST, FINCDLAST (no admitidos para bucles), FINSET (los 3 optimizados para SQLServer; recordar que si no se indica nada es de solo lectura), no usar FIND.

· No se permite los comentarios de línea múltiple (a no ser que sea por uso temporal).
Ejm. :
PERMITIDO ->
// Esto es
// mi comentario

NO PERMITIDO -> {Esto es
mi comentario}

· Tanto en SETRANGE, como en SETFILTER, no poner nuevamente el identificador del Record, se poner directamente el nombre del campo como primer parámetro.
PERMITIDO ->
txVar_Record.SETFILTER(“No.”,’%1..%2’,txVar_1,txVar_1);
equivalente a la línea -> txVar_Record.SETFILTER(“No.”,’>=%1&<=%2’,txVar_1,txVar_1);
NO PERMITIDO -> txVar_Record.SETFILTER(txVar_Record.“No.”,’%1..%2’,txVar_1,txVar_1);

· No se permite la asignación de valores a los campos de un Record, se tendrá que usar la función valídate (en caso de usar la validación, se tendrá que justificar la razón de no querer que se lance el evento OnValidate.
Ejm.:
PERMITIDO ->
txVar_Record.VALIDATE(”G/L AccountNo”, ‘100′);
NO PERMITIDO -> BEGIN
txVar_Record.”G/L AccountNo” := ‘100′; //No lanza el evento OnValidate
txVar_Record.VALIDATE(”G/L AccountNo”); //Lanza el evento OnValidate del Campo
END

· No se permite los campos directos, se tendrá que poner el símbolo.
Ejm.:
PERMITIDO ->
rec.INIT;
NO PERMITIDO -> INIT;

Convenio en el Trigger de Documentation

Descripción de la utilidad del objeto.

Lista de versiones

Más Acciones realizadas (nuevos campos con la explicación)

Ejm.

V037. Bolsas de investigación.
100 AITEX 28.07.09 jjuan:
    Nuevos campos:
           7081173 "Nº acuerdo"
           7081174 "Nº agrupación"
           7081175 "Nº bolsa investigación"
           7081176 "Nº línea relacionada"
           7081177 "Línea prepago"

           7081178 "Línea reparto"
           7081179 "Línea dividida"
           7081180 "Nº línea origen reparto"

    Nuevas funciones:
             txFn_RecuperaAcuerdo
             txFn_GetGLAccount
             txFn_PreasignarBolsaNuevaLinea
             txFn_ActualizarMovsReserva
           Comprobación de cuentas prepago.
           Traer nuevos campos de cabecera.
           Pre-asignación de bolsas de investigación en líneas.
           Actualización de movs. consumo al cambiar la bolsa de
            investigación.
           Al traer líneas de prepago, ha de traerse el albarán
             completo.
101 AITEX 01.12.09 aolcina: Nuevos campos:
           7081219 "Facturación Posterior"
           Gestión de nuevos campos.

102 PROVEEDOR 01.12.09 AOLCINA: Se cambia la etiqueta del campo "Prepago"
                            a 'Prepago IVA'.

V004. Familias de producto y variante
200 PROVEEDOR 21.08.09 DSOLAR: Añadimos la obligatoriedad de configurar "Cód.
                            Familia Genérica" en producto al
                            crear una línea de tipo producto.
201 PROVEEDOR 11.11.09 AOLCINA: Deshabilitamos uso de campo "Cód.
                            Familia Genérica" desde Producto.
                            Usar "cód. familia genérica" desde Variante.
202 PROVEEDOR 20.11.09 AOLCINA: Dejamos de usar la tabla "Rel. familia producto",
                             y enlazamos directamente con "Familia".

Amando Olcina NAV 2009

Programando Pages en NAV (III-Acciones)

Jueves, 10 de Junio de 2010

Edición de Acciones: Ver/Acciones, no existe teclas rapidas a tal efecto.

Existen acciones por defecto (ver/editar/eliminar/nuevo/notas/Vinculos). Para el caso de ver/editar/eliminar/nuevo están asociadas a una Page, esta asociación se realiza atraves de la propiedad de la pagina CardFormId.

Las acciones que no se le han establecido un evento no se verán en el entorno de producción.

Propiedades relevanters de la la Acción:

  • Image: No se pueden añadir nuevas imagenes, y hay que escribir literalmente los nombres. Se acompaña el listado de los nombres, con la imagen asociada al literal:

Tipos de Acciones:

  • ActionContainer: Nivel superior de la jerarquia y puede tener subtipos, los cuales indican donde colocará la acción.
    • New DocumentItems:  en Acciones/Nuevo Documento.
    • ActionItems: en Acciones/… bajo las acciones por defecto.
    • RelatedInformation: en Información Relacionada/…
    • Reports: en Informes.
    • HomeItems: Acciones que aparecen en el “Panel de Actividades” de EMPRESA\INICIO, por lo que son usados en Page con la propiedad TypePage=”RoleCenter”(para ver su efecto hay que reinicir la aplicacion)
    • ActivityButtons: Acciones que aparecen en el “Panel de Exploración” de EMPRESA\INICIO, por lo que son usados en Page con la propiedad TypePage=”RoleCenter” (para ver su efecto hay que reinicir la aplicacion).
  • Action: funcion que se tiene que realizar.
    • Caption: Nombre con el que aparecerá la acción, aquí se establece la tecla rapida poniendo & delante de la letra.
    • Promoted: Aparece en el Panel de Acciones como un icono pequeño.
    • PromotedIsBig: Aparece En el Panel de Acciones como un icono en grande.
    • PromotedCategory: indica el Grupo o categoría  en la que aparecerá el icono dentro del panel de Acciones, que lanza el evento de la acción. Pueden ser:
      • New
      • Proccess
      • Report
      • Category4 …10: para cambiar estos nombres se cambia desde las propiedades de la Page
  • Separator: Separadores entre acciones (se ve como una linea)
  • ActionGroup: Equivale a crear un elemento semilar a “Nuevo Documento”. Este elemento sirve para realizar la sangria de elementos. De hecho si identizamos o sangramos con los botones de las flechas nos indicará un error en el sangrado.

Más información en:http://msdn.microsoft.com/en-us/library/dd355185(v=NAV.60).aspx

Amando Olcina NAV 2009

Programando Pages en NAV (II-Controles)

Jueves, 10 de Junio de 2010

Propiedades de los Controles :

Sobre el control pulsando Mayusculas + F4.

Field

  • Style: Valores opcionales que le proporciona un estilo especial (no se puede definir nuevos estilos).
    Valor Formato si estamos
    editando el campo
    Formato si estamos
    visualizando el dato
    Strong Negrita Negrita
    Attention Rojo Formato por defecto
    Favorable Negrita + verde Negrita
    Unfavorable Negrita + Cursiva + Rojo Negrita + cursiva
  • StyleExpression: Llave para aplicar el estilo indicado en la propiedad Style.
  • ExtendedDataType: El campo se comporta como si fuera de un tipo de campo de la BD equvalente (Como un numero de telefono, como un hipervinculo, etc.)
  • Importance: Se le establece la importacia del campo, cuya utilidad es que aparezca en el grupo como campo visible por defecto (Standard), en la cabecera del grupo cuando se contraiga (Promoted=aumentada), se muestra cuando se establece ver más campos(Additional=adicional). Todo esto condicionado en si el campo está visible.
  • ControlAddIn: Controles adicionales (visores, contadores, etc.). Ejemplo Page 9175, Control2

Part

  • Page:
  • PartType:
    • Chart: Graficos creados en: EMPRESA/Departamentos/Administración/Configuración de la aplicación/Cliente adaptado a roles/Gráficos. Se tiene que poner el código del grafico a mano.

Amando Olcina NAV 2009