Esta documentación está en fase de desarrollo y puede contener errores.

Espacios I., D. y A.

Los tres prefijos que devuelven valores reales en tiempo de ejecución: el registro que recorres, el entorno y el resultado de un algoritmo.

La página del esquema (S.) te dice qué secciones y campos existen. Los prefijos I., D. y A. van un paso más allá: durante la ejecución del script devuelven el valor real.

  • I. es el valor del registro que estás recorriendo ahora.
  • D. son los datos del entorno: usuario, empresa, fecha y sistema.
  • A. es el resultado de ejecutar un algoritmo.

Los tres usan la misma sintaxis punteada, de lo general a lo concreto, igual que S..

I. — El registro actual

I. lee un campo del registro que recorres en ese momento. Tiene dos formas:

FormaDevuelve
I.Seccion.CampoUn campo del registro de la lista que recorres.
I.Informe.ColumnaUna columna de la fila del informe que recorres.

También admite I.Seccion.Algoritmo... para leer un algoritmo sobre el registro actual.

I. solo funciona dentro de un bloque de recorrido de listado (F.ProcessDataList_Ini / F.ProcessDataList_End) o del bloque de listado de una función API. En un algoritmo suelto da error de contexto: no hay "registro actual" que recorrer.

Donde S. te da la referencia del campo, I. te da su valor. Ejemplos reales:

I.Ventas.Cliente
I.Productos.Nombre
I.Productos.Stock

D. — Datos del sistema y del entorno

D. reúne todo lo que no depende del registro sino del contexto de ejecución. Tiene cuatro subespacios.

SubespacioDevuelve
D.SesionActual.<campo>Datos de la ficha del usuario que ejecuta el script.
D.EmpresaActual.<campo>Datos de la empresa actual.
D.DatosEspeciales.<clave>Fecha, hora y datos del sistema.
D.AlgoritmosDeBusqueda.<Categoria>.<KeyWord>Algoritmos de búsqueda (solo en algoritmos).

D.SesionActual y D.EmpresaActual sirven para personalizar el resultado y dejar constancia de quién y qué empresa ejecuta.

D.DatosEspeciales

Fecha, hora y datos del sistema disponibles en cualquier script. Las claves más usadas:

ClaveTipoDevuelve
D.DatosEspeciales.FechaActualfechaLa fecha de hoy.
D.DatosEspeciales.FechaYHoraActualfecha y horaFecha y hora del momento.
D.DatosEspeciales.HoraActualhoraLa hora actual.
D.DatosEspeciales.DiaActualenteroDía del mes.
D.DatosEspeciales.MesActualenteroNúmero de mes.
D.DatosEspeciales.MesActualNombretextoNombre del mes.
D.DatosEspeciales.AñoActualenteroAño actual.
D.DatosEspeciales.TrimestreActualenteroTrimestre en curso.
D.DatosEspeciales.SemestreActualenteroSemestre en curso.
D.DatosEspeciales.SemanaActualenteroSemana del año.
D.DatosEspeciales.DiaDeLaSemanaActualtextoDía de la semana.
D.DatosEspeciales.Sistema.VersiontextoVersión del sistema.

Los nombres van en español tal cual, incluida la ñ de AñoActual.

También hay familias para fechas relativas, FechasAvanzadas.Inicios.* y FechasAvanzadas.Finales.*, que resuelven límites de periodo:

D.DatosEspeciales.FechasAvanzadas.Inicios.InicioDeMes
D.DatosEspeciales.FechasAvanzadas.Finales.FinDeMes

D.AlgoritmosDeBusqueda

Solo está disponible dentro de scripts de tipo algoritmo. Se usa junto al operador en para filtrar o buscar:

... en D.AlgoritmosDeBusqueda.Categoria.KeyWord

A. — Ejecutar un algoritmo y leer su valor

A.<Categoria>.<NombreAlgoritmo> ejecuta un algoritmo de tipo Cálculo o Dato y devuelve su resultado como un valor que puedes usar en el script.

A.Categoria.NombreAlgoritmo

El formato del dato devuelto lo define el propio algoritmo: número, texto, fecha o relación.

No confundas A. con D.AlgoritmosDeBusqueda. A. lee un valor calculado. Los algoritmos de búsqueda se usan con el operador en para filtrar dentro de otro algoritmo.

Aquí solo documentamos cómo invocar un algoritmo desde DinaScript. Para saber qué es un algoritmo y cómo se define, ve a la página de Algoritmos.

Prefijos reservados

Existen otros prefijos en el motor, pero hoy no aportan y no debes usarlos:

  • P., L. y G. están reservados. Se reconocen, pero no están operativos todavía.
  • C. y R. leen los campos del registro actual (C. sección principal, R. sección relacionada) en scripts de campos personales del Terminal. Funcionan, pero quedan fuera del alcance de esta página.

Relacionado

Esquema (S.)DinaScriptFunciones (F.)AlgoritmosInformesSecciones

On this page