Funciones DinaScript
Las funciones de scripting en Dinaup ofrecen una amplia gama de capacidades, desde la manipulación de fechas y matemáticas hasta la interacción con el usuario y la gestión de documentos dinámicos. Para una organización óptima, las funciones se han categorizado de manera que reflejen su uso y aplicación dentro del entorno de Dinaup, facilitando así su búsqueda y empleo por parte de los desarrolladores.
Contextos
Estas funciones son compatibles con:
Algoritmos
Scripts de formularios
Documentos dinámicos
Texto
F.Length(txt)
: Retorna la longitud de una cadena.F.Contains(txt,txt)
: Verifica si la cadena contiene una subcadena especificada.F.StartsWith(txt,txt)
: Verifica si la cadena comienza con una subcadena especificada.F.EndsWith(txt,txt)
: Verifica si la cadena termina con una subcadena especificada.F.ToUppers(txt)
: Convierte la cadena a mayúsculas.F.ToLower(txt)
: Convierte la cadena a minúsculas.F.Substring
: Obtiene una subcadena de la cadena original.F.Replace(txt,txt)
: Reemplaza las ocurrencias de una subcadena dentro de la cadena.F.RemoveEnd
: Elimina un número especificado de caracteres del final de la cadena.F.RemoveStart
: Elimina un número especificado de caracteres del inicio de la cadena.F.GetFirstPart
: Obtiene la primera parte de la cadena según un delimitador.F.GetLastPart
: Obtiene la última parte de la cadena según un delimitador.F.RemoveFirstPart
: Elimina la primera parte de la cadena según un delimitador.F.RemoveLastPart
: Elimina la última parte de la cadena según un delimitador.F.PadLeft
: Rellena la cadena con un carácter especificado a la izquierda.F.PadRight
: Rellena la cadena con un carácter especificado a la derecha.F.URLEncode(txt)
: Codifica la cadena para su uso en una URL.F.JSEncode(txt)
: Codifica la cadena para su uso en JavaScript.F.JSONEncode(txt)
: Codifica la cadena como JSON.F.HtmlEncode(txt)
: Codifica la cadena para su uso en HTML.F.HtmlDecode(txt)
: Decodifica las entidades codificadas en HTML en la cadena.F.URLDecode(txt)
: Decodifica una cadena codificada en URL.F.ToSHA1(txt)
: Calcula el hash SHA-1 de la cadena.F.Concat(txt[])
: Concatena múltiples cadenas.
Matemáticas
Funciones para realizar cálculos y operaciones matemáticas.
F.Round(num,int)
: Redondea un valor numérico a la cantidad de decimales indicados.F.Ceiling(num)
: Redondea un valor numérico hacia el entero más próximo por encima.F.Floor(num)
: redondea un número hacia abajo al entero más cercano. Esto significa que siempre irá hacia el entero menor más próximo. Por ejemplo, floor(3.9) devuelve 3, pero floor(-3.9) devuelve -4.F.Truncate(num)
: elimina la parte decimal de un número, dejando solo la parte entera sin importar si el número es positivo o negativo. Por ejemplo, truncate(3.9) y truncate(-3.9) devuelven 3 y -3, respectivamente.F.EnsurePositive(num)
: Asegura que un valor numérico no sea negativo.F.EnsureNegative(num)
: Asegura que un valor numérico sea negativo.F.PercentageIncrease(num,num)
: A un número le incrementa un valor porcentaul dado.F.PercentageDecrease(num,num)
: A un numero le decrementa un porcentaje dado.F.PercentageReverse(num,num)
: Calcula el valor original antes de que se le aplicara un cierto porcentajeF.PercentageDifference(num,num)
: Calcula la diferencia porcentual entre 2 valores.F.CalculatePreDiscountValue(num,num)
: Ayuda a encontrar un número tal que, si le reduces un porcentaje específico, te devuelve un valor ya conocidoF.Max_Int(int,int)
,F.Max_Num(num,num)
,F.Max_Text(Text,Text)
,F.Max_Time(Time,Time)
,F.Max_Date(Date,Date)
,F.Max_DateTime(DateTime,DateTime)
: Devuelve el valor máximo, cada formato tiene una función diferente.F.Min_Int(int,int)
,F.Min_Num(num,num)
,F.Min_Text(Text,Text)
,F.Min_Time(Time,Time)
,F.Min_Date(Date,Date)
,F.Min_DateTime(DateTime,DateTime)
: Devuelve el valor mínimo, cada formato tiene una función diferente.
Fecha y Tiempo
Estas funciones permiten manipular y obtener información sobre fechas y tiempos.
F.Minute(time)
: Extrae los minutos de unaF.Hour(time)
:F.Day(date)
:F.Bimester(date)
:F.Quarter(date)
:F.Semester(date)
:F.Year(date)
:F.NameDayOfWeek_FromNumber(int)
: 1=Lunes, 2= Martes,....7=Domingo.F.NameDayOfWeek_FromDate(date)
:F.WeekOfMonth(date)
:F.DayOfWeek(date)
:F.Fortnight(date)
:F.Month(date)
:F.MonthName_FromDate(Date)
:F.DaysInMonth_FromNumber(int.int)
:F.MonthName_FromInt(int)
: 1=Enero, 2=Febrero...F.DaysInMonth_FromDate(Date)
:F.IsLeapYear_FromDate(Date)
:F.IsLeapYear_FromNumber(int)
:F.Date_FromDatetime(DateTime)
:F.Time(DateTime)
:F.IsQuarter(date,int)
:F.IsYear(date,int)
:F.IsInInterval_DateTime
:F.IsInInterval_Date
:F.BuildDateTime
F.CalculateAge
F.CalculateAge_WithDateTime
F.MinutesDifferenceBetweenDates
F.MinutesDifferenceBetweenTimes
F.MinutesDifferenceBetweenDatesAndTimes
F.DaysDifferenceBetweenDates
F.SecondsDifferenceBetweenTimes
F.SecondsDifferenceBetweenDatesAndTimes
F.CountWeeklyDaysInRange
F.EventStartsInMoreThanXYears_DateTime
F.EventStartsInMoreThanXMonths_DateTime
F.EventStartsInMoreThanXDays_DateTime
F.EventStartsInMoreThanXHours_DateTime
F.EventStartsInMoreThanXMinutes_DateTime
F.EventStartsInLessThanXYears_DateTime
F.EventStartsInLessThanXMonths_DateTime
F.EventStartsInLessThanXDays_DateTime
F.EventStartsInLessThanXHours_DateTime
F.EventStartsInLessThanXMinutes_DateTime
F.EventStartedMoreThanXYearsAgo_DateTime
F.EventStartedMoreThanXMonthsAgo_DateTime
F.EventStartedMoreThanXDaysAgo_DateTime
F.EventStartedMoreThanXHoursAgo_DateTime
F.EventStartedMoreThanXMinutesAgo_DateTime
F.EventStartedLessThanXYearsAgo_DateTime
F.EventStartedLessThanXMonthsAgo_DateTime
F.EventStartedLessThanXDaysAgo_DateTime
F.EventStartedLessThanXHoursAgo_DateTime
F.EventStartedLessThanXMinutesAgo_DateTime
F.EventStartsInMoreThanXYears_Date
F.EventStartsInMoreThanXMonths_Date
F.EventStartsInMoreThanXDays_Date
F.EventStartsInMoreThanXHours_Time
F.EventStartsInMoreThanXMinutes_Time
F.EventStartsInLessThanXYears_Date
F.EventStartsInLessThanXMonths_Date
F.EventStartsInLessThanXDays_Date
F.EventStartsInLessThanXHours_Time
F.EventStartsInLessThanXMinutes_Time
F.EventStartedMoreThanXYearsAgo_Date
F.EventStartedMoreThanXMonthsAgo_Date
F.EventStartedMoreThanXDaysAgo_Date
F.EventStartedMoreThanXHoursAgo_Time
F.EventStartedMoreThanXMinutesAgo_Time
F.EventStartedLessThanXYearsAgo_Date
F.EventStartedLessThanXMonthsAgo_Date
F.EventStartedLessThanXDaysAgo_Date
F.EventStartedLessThanXHoursAgo_Time
F.EventStartedLessThanXMinutesAgo_Time
F.EventStartedOrEventStartsInLessThanXYears_DateTime
F.EventStartedOrEventStartsInLessThanXMonths_DateTime
F.EventStartedOrEventStartsInLessThanXDays_DateTime
F.EventStartedOrEventStartsInLessThanXHours_DateTime
F.EventStartedOrEventStartsInLessThanXMinutes_DateTime
F.EventStartedOrEventStartsInLessThanXYears_Date
F.EventStartedOrEventStartsInLessThanXMonths_Date
F.EventStartedOrEventStartsInLessThanXDays_Date
F.EventStartedOrEventStartsInLessThanXHours_Time
F.EventStartedOrEventStartsInLessThanXMinutes_Time
F.DateTime_GoToStartDay
F.DateTime_GoToEndDay
F.DateTime_GoToStartWeekMonday
F.DateTime_GotoEndSunday
F.DateTime_GoToStartOfFortnight
F.DateTime_GoToEndOfFortnight
F.DateTime_GoToStartOfMonth
F.DateTime_GoToEndOfMonth
F.DateTime_GoToStartOfQuarter
F.DateTime_GoToEndQuarter
F.DateTime_GoToStartSemester
F.DateTime_GoToEndSemester
F.DateTime_GoToStartYear
F.DateTime_GoToEndYear
F.DateTime_GoToMinutes
F.DateTime_GoToHour
F.DateTime_AddMinutes
F.DateTime_AddHours
F.DateTime_SubtractMinutes
F.DateTime_SubtractHours
F.DateTime_GoToDay
F.DateTime_GoToMonth
F.DateTime_GoToYear
F.DateTime_AddDays
F.DateTime_AddMonths
F.DateTime_AddYears
F.DateTime_SubtractDays
F.DateTime_SubtractMonths
F.DateTime_SubtractYears
F.Date_GoToStartDay
F.Date_GoToEndDay
F.Date_GoToStartWeekMonday
F.Date_GotoEndSunday
F.Date_GoToStartOfFortnight
F.Date_GoToEndOfFortnight
F.Date_GoToStartOfMonth
F.Date_GoToEndOfMonth
F.Date_GoToStartOfQuarter
F.Date_GoToEndQuarter
F.Date_GoToStartSemester
F.Date_GoToEndSemester
F.Date_GoToStartYear
F.Date_GoToEndYear
F.Time_GoToMinutes
F.Time_GoToHour
F.Time_AddMinutes
F.Time_AddHours
F.Time_SubtractMinutes
F.Time_SubtractHours
F.Date_GoToDay
F.Date_GoToMonth
F.Date_GoToYear
F.Date_AddDays
F.Date_AddMonths
F.Date_AddYears
F.Date_SubtractDays
F.Date_SubtractMonths
F.Date_SubtractYears
F.DateTime_GoToDate
F.DateTime_GoToTime
F.InDynamicRange_Date
F.InDynamicRange_DateTime
F.EnIntervalo_FechaYHora_SoloFecha
F.CalcularDesde_DeIntervalo_Date
F.CalcularHasta_DeIntervalo_Date
F.CalcularDesde_DeIntervalo_DateTime
F.CalcularHasta_DeIntervalo_DateTime
Formato y Tipos
F.FormatTime
F.FormatNumeric
F.FormatMoney
F.FormatNumericByRole
F.FormatPercentage
F.Cast_NumToText
F.Cast_TextToInt
F.Cast_TextToNum
F.IsInteger
F.IsNumeric
F.Cast_DateToText
F.Cast_DateTimeToText
F.Cast_NumToInt
F.IsInteger
F.IsNumeric
Diccionarios
En Dinaup, los diccionarios son estructuras de datos que permiten almacenar pares de clave-valor, facilitando el manejo de colecciones de datos de manera eficiente.
Existen dos tipos de diccionarios: los diccionarios de texto (indicados por la letra "T") para almacenar pares de texto a texto (<text,text>
) y los diccionarios numéricos (indicados por la letra "N") para almacenar pares de texto a numérico (<text,num>
). A continuación, se detallan
Creación y Adición de Elementos
F.DicT_New()
: Crea un nuevo diccionario de texto y devuelve su ID.F.DicT_Add(Int,Txt,Txt)
: Añade un par clave-valor al diccionario de texto.F.DicN_New()
: Crea un nuevo diccionario de texto y devuelve su ID.F.DicN_Add(Int,Txt,num)
: Añade un par clave-valor al diccionario numérico.
Conversión a JSON
F.DicT_ToJson(Int)
: Convierte un diccionario de texto en una cadena JSON.F.DicN_ToJson(Int)
: Convierte un diccionario numérico en una cadena JSON.
Eliminación de Elementos
F.DicT_RemoveItem(Int,Txt)
: Elimina un elemento del diccionario de texto.F.DicN_RemoveItem(Int,Txt)
: Elimina un elemento del diccionario numérico.
Limpieza de Diccionarios
F.DicT_Clear(Int)
: Limpia el diccionario de texto, eliminando todos sus elementos.F.DicN_Clear(Int)
: Limpia el diccionario numérico, eliminando todos sus elementos.
Conteo de Elementos
F.DicT_Count(int)
: Obtiene el número de elementos en el diccionario de texto.F.DicN_Count(int)
: Obtiene el número de elementos en el diccionario numérico.
Obtención y Verificación de Valores
F.DicT_Get
: Obtiene un valor del diccionario de texto basado en una clave.F.DicT_ContainsKey
: Verifica si una clave específica existe en el diccionario de texto.F.DicN_Get
: Obtiene un valor del diccionario numérico basado en una clave.F.DicN_ContainsKey
: Verifica si una clave específica existe en el diccionario numérico.
Tabla de Datos
Creación y Adición de Filas
F.DataTable_New(text[])
: Crea una nueva tabla de datos, se deben indicar las columnas en los parámetros.F.DataTable_AddRow(int)
: Añade una nueva fila a la tabla de datos existente.
Configuración de Valores
El primer int corresponde a la ID de la tabla de datos, el primer txt al nombre de la columna.
F.DataTable_SetValueText(int,text,text)
: Establece un valor de texto en la celda especificada.F.DataTable_SetValue(int,text,text)
: Establece un valor en la celda especificada. La función determina automáticamente el tipo de dato.F.DataTable_SetValueInt(int,text,in)
: Establece un valor entero en la celda especificada.F.DataTable_SetValueNum(int,text,num)
: Establece un valor numérico en la celda especificada.F.DataTable_SetValueDate(int,text,date)
: Establece una fecha en la celda especificada.F.DataTable_SetValueDateTime(int,text,datetime)
: Establece una fecha y hora en la celda especificada.F.DataTable_SetValueTime(int,text,time)
: Establece una hora en la celda especificada.F.DataTable_SetValueBool(int,text,bool)
: Establece un valor booleano (verdadero/falso) en la celda especificada.F.DataTable_SetValueMoney(int,text,num)
: Establece un valor monetario en la celda especificada.F.DataTable_SetValuePercentage(int,text,num)
: Establece un porcentaje en la celda especificada.
Configuración de Columnas
El primer int corresponde a la ID de la tabla de datos, el primer txt al nombre de la columna.
F.DataTable_ColumnSetRole(int,text,int)
: Asigna un rol específico a la columna indicada.F.DataTable_ColumnSetFormat(int,text,int)
: Define el formato de la columna, como por ejemplo, número, fecha, etc.F.DataTable_ColumnDeleteIfIsEmpty(int,text)
: Elimina la columna si está vacía.F.DataTable_ColumnDelete(int,text)
: Elimina la columna especificada.
Exportación e Importación
F.DataTable_Export
: Exporta la tabla de datos en el formato especificado, como JSON, HTML, etc.F.DataTable_Import
: Importa datos a la tabla desde un formato específico.
Interactivos
F.MsgBox
F.PreguntarSiNoCancelar
F.PreguntarSiNo
F.PreguntarRegistro
F.PreguntarNumeroDecimal
F.PreguntarNumeroEntero
F.PreguntarRegistroDeInformeCargado
F.OpenReport
F.OpenDynamicDocument
F.OpenForm
WebClietn
F.WebClient_Request
Eventos / Triggers
Estas funciones sirven para enganchar un documento dinámico al sistema de eventos de Dinaup.
F.InitializeTrigger
: Inicializa el trigger asociado a un documento dinámico. Establece las bases para la captura de eventos, permitiendo especificar el tipo de evento a capturar.F.TriggerIfFieldsFilled
: Configura el trigger para que solo se active cuando determinados campos estén completos. Es una condición de filtrado que requiere que ciertos campos específicos estén rellenados.F.TriggerOnFieldChange
: Ajusta el trigger para que se dispare exclusivamente si ocurre un cambio en los campos especificados. Permite una captura de eventos focalizada en modificaciones específicas.F.TriggerIfNewRecord
: Configura el trigger para identificar si el evento corresponde a la creación de un nuevo registro. Diferencia entre la adición de nuevos datos y la modificación de los existentes.F.GetPreviousFieldValue
: Establece una configuración en el trigger para recuperar el valor anterior de un campo específico cuando se modifica un registro. Útil para comparaciones antes y después de la edición.F.GetNewFieldValue
: Similar a GetPreviousFieldValue, pero enfocado en obtener el nuevo valor de un campo tras su modificación. Esencial para procesar los cambios en los datos.
Utilidades
F.NewPassword
F.CurrencyChange
F.RecalcularPrecio4C
F.RecalcularPrecio5C
F.RecalcularPrecio9C
F.NewGuid
F.SignFileURL
F.SignFileURL_Advanced
F.EmailSend_CurrentBuffer
F.EmailSendReply
F.EmailSend
Metadata
F.MetaData_Set
F.MetaData_Read
Gráficas
F.Chart_New
F.Chart_AddSerie
F.Chart_AddValue
F.Chart_ToHTML
Documentos dinámicos
F.Include
Agrega el contenido de un documento dinámico directamente en el buffer actual.F.GetDynamicDocumentContent
Devuelve el contenido de un documento dinámico.
Cargar listado de datos
Cargar datos
F.DataListLoad
F.DataListLoadAddFilter
F.DataListLoadAddFilterAlternative
F.DataListLoadSetOrder
Procesado de datos
F.ProcessDataList_Ini
F.ProcessDataList_End
Funciones mientras se procesa
Para ejecutar estas funciones se requiere haber llamado antes a ProcessDataList_Ini
F.DataListCurrentPage
F.DataListCountPages
F.DataListCountResults
F.DataListIsFirstRow
F.DataListIsLastRow
F.DataListCurrentRowPosition
F.DataListCurrentRowRelativePosition
Funciones después de procesado
F.DataListResultsPerPage
F.DataListLoadCountFilled
F.DataListLoadSelectedItems
F.DataListInfoToHTML
F.DataListApplyDynamicAgruptaion
En Linea: IF
F.If_Int
,F.If_Numeric
,F.If_Text
,F.If_Time
,F.If_Date
,F.If_DateTime
Existe En
F.ExistIn_Int
´,F.ExistIn_Num
,F.ExistIn_Text
,F.ExistIn_Time
,F.ExistIn_Date
,F.ExistIn_DateTime
,F.ExistIn_Reference
Intesecciones
Calcula intersecciones basda en 4 valores.
F.Intersect_Time(time,time,time,time)
F.Intersect_Date(date,date,date,date)
F.Intersect_DateTime(datetime,datetime,datetime,datetime)
F.Intersect_Int(int,int,int,int)
F.Intersect_Num(num,num,num,num)
Buffer Documentos dinámicos
Funciones de Escritura
Estas funciones permiten escribir datos en un búfer para generar documentos dinámicos. Desde texto simple hasta fechas y valores booleanos
F.Write(text[])
: Escribe datos en un búfer para generar documentos dinámicos.F.WriteTime(time)
: Escribe datos de tipo tiempo en un búfer para generar documentos dinámicos.F.WriteText(text)
: Escribe datos de texto en un búfer para generar documentos dinámicos.F.WriteNum(num)
: Escribe datos numéricos en un búfer para generar documentos dinámicos.F.WriteMoney(num)
: Escribe datos monetarios en un búfer para generar documentos dinámicos.F.WritePercentage(num)
: Escribe datos de porcentaje en un búfer para generar documentos dinámicos.F.WriteDate(date)
: Escribe datos de tipo fecha en un búfer para generar documentos dinámicos.F.WriteDateTime(datime)
: Escribe datos de tipo fecha y hora en un búfer para generar documentos dinámicos.F.WriteBool(bool)
: Escribe datos booleanos en un búfer para generar documentos dinámicos.
Funciones de Escritura en Celdas de Tabla
Estas funciones proporcionan atajos para escribir contenido en celdas de tabla HTML de manera conveniente y eficiente. Al utilizar estas funciones, se simplifica el proceso de generar código HTML para tablas, ya que automáticamente formatean el contenido dentro de etiquetas <td>
.
F.WriteTD(text)
: Escribe el contenido proporcionado directamente dentro de una etiqueta<td>
en una tabla HTML.F.WriteTDText(text)
: Escribe el texto proporcionado dentro de una etiqueta<td>
en una tabla HTML.F.WriteTDMoney(num)
: Escribe datos monetarios dentro de una etiqueta<td>
en una tabla HTML.F.WriteTDPercentage(num)
: Escribe datos de porcentaje dentro de una etiqueta<td>
en una tabla HTML.F.WriteTDNum(num)
: Escribe datos numéricos dentro de una etiqueta<td>
en una tabla HTML.
Otras Funciones Relacionadas:
F.RemoveLastWrite()
: Elimina la última escritura realizada en el búfer de salida.
Google Maps
La funcionalidad de mapas en Dinaup se amplía mediante la integración con Google Maps, permitiendo la creación de mapas interactivos, adición de puntos clicables, y cálculo de distancias y tiempos entre dos coordenadas. A continuación, se describen las funciones disponibles para trabajar con mapas en Dinaup.
F.Maps_New
Inicia un nuevo mapa. Esta función es el primer paso para trabajar con mapas en Dinaup y establece la base sobre la cual se pueden añadir puntos y realizar otras operaciones.F.Maps_AddClickablePoint
Añade un punto al mapa que es clickable. El usuario puede interactuar con este punto, que puede estar vinculado a una etiqueta o descripción.F.Maps_AddPoint
Añade un punto al mapa sin interactividad. Este punto se muestra en el mapa para representar una ubicación específica.F.Maps_ToHTML
Convierte el mapa actual y todos sus elementos añadidos (puntos, líneas, etc.) a HTML. Esta función es útil para integrar el mapa dentro de una página web o visualizarlo en navegadores.F.Maps_MinutesBetween2Coordinates
Calcula el tiempo estimado, en minutos, entre dos coordenadas. Esta función es útil para determinar el tiempo de viaje entre dos puntos.F.Maps_KilometersBetween2Coordinates
Calcula la distancia en kilómetros entre dos coordenadas. Esta función permite medir la distancia lineal o real entre dos ubicaciones en el mapa.
JSON Build
F.Json_DocIni
F.Json_DocEnd
F.Json_ReadDoc
F.Json_ObjectIni
F.Json_ObjectEnd
F.Json_SetValueText
F.Json_SetValueJson
F.Json_SetValueN
F.Json_SetValueB