Herramientas de usuario

Herramientas del sitio


wiki:2.-desarrollo-app:2.4.-scripting-modelo-objetos:a.-objetos-sistema:1.-vbscript:1.7.-otras-funciones-vbscript:start

Otras funciones VBS

FECHA/HORA

CDate

Convierte una expresión de fecha/hora válida al tipo fecha/hora.

Sintaxis CDate (expr)
Parámetros Descripción
expr Expresión de fecha y hora válida según el formato de fecha del sistema en que se ejecuta el script.
Valor devuelto Fecha/hora correspondiente a la expresión pasada.
En caso de que la expresión no represente una fecha u hora válidas la función lanzará un error de “No coinciden los tipos”.

Ejemplo de Uso:

  fecha_hora=cdate("21/08/2012")

Date

Devuelve la fecha y hora del sistema.

Sintaxis Date

Ejemplo de Uso:

  This("MAP_FECHA")=Date

DateAdd

Devuelve una fecha/hora a partir de sumar un determinado intervalo a una fecha/hora de partida. El intervalo puede ser configurable

Sintaxis DateAdd (intervalo, número, fecha)
Parámetro Descripción
intervalo Expresión de cadena que indica qué tipo de intervalo representa el segundo parámetro. Los valores aceptados son los siguientes: (yyyy - Año) (m - Mes) (d – Día) (h - Hora) (n – Minuto) (s – Segundo)
número Cantidad de intervalos a adicionar. Positivo para fechas en el futuro o negativo para fechas en el pasado.
fecha Fecha/hora de partida.

Ejemplo de Uso:

  This("MAP_FECHA")=DateAdd("d",-1,This("MAP_FECHA"))

DateDiff

Devuelve un entero que representa la cantidad de intervalos de un determinado tipo que hay entre dos fechas.

Sintaxis DateDiff (intervalo, fecha1, fecha2)
Parámetro Descripción
intervalo Expresión de cadena que indica qué tipo de intervalo representa el segundo parámetro. Los valores aceptados son los siguientes: (yyyy - Año) (m - Mes) (d – Día) (h - Hora) (n – Minuto) (s – Segundo)
fecha1 Primera fecha usada para el cálculo.
fecha2 Segunda fecha usada para el cálculo. La operación se efectúa como fecha1 - fecha2.

Ejemplo de Uso:

  dias=datediff("d",now,this("FECHA"))
  cuantos=datediff("d","01/01/"+cstr(year(now)),now)

Day

Devuelve un entero entre 1 y el máximo día de mes de la fecha que se pasa como parámetro.

Sintaxis Day (fecha)
Parámetro Descripción
fecha Fecha cuyo día de mes se quiere devolver.

Ejemplo de Uso:

  diames=day(now)

FormatDateTime

Devuelve una cadena que representa una fecha y hora formateadas de acuerdo al tipo de formato elegido.

Sintaxis FormatDateTime (fecha[formato])
Parámetro Descripción
fecha Fecha que se quiere formatear
formato Opcional. Un entero que indica el formato de fecha y hora que se quiere aplicar a la fecha: (0 = vbGeneralDate – Por defecto. Devuelve el formato de fecha mm/dd/yyyyhh:mm:ss) (1 = vbLongDate–Devuelve la fecha dd/mm/yyyy) (2 = vbShortDate–Devuelve la fecha : dd/mm/yy) (3 = vbLongTime–Devuelve la hora: hh:mm:ss) (4 = vbShortTime–Devuelve la hora: hh:mm)

El orden de los elementos de la fecha dependerá del lenguaje(locale) del dispositivo en que se ejecuta el script.

Ejemplo de Uso:

  this("MAP_FPEDIDO")=formatdatetime(now,2)

Hour

Devuelve un entero entre 0 y 24 que representa la hora del día de la fecha que se pasa como parámetro.

Sintaxis Hour (fecha)
Parámetro Descripción
fecha Cuya hora del día se quiere obtener.

Ejemplo de Uso:

  horas=CStr(Hour(Time()))

IsDate

Devuelve TRUE si la expresión que se pasa como parámetro es una fecha o se puede convertir en fecha usando las reglas del locale que tiene activo el dispositivo.

Sintaxis IsDate (expresion)
Parámetro Descripción
expresión Expresión cuya validez de conversión se quiere comprobar.

Ejemplo de Uso:

  if IsDate(This("FECHACITA")) then ...

Minute

Devuelve un número entre 0 y 59 que representa el minuto de la hora actual en la fecha/hora que se pasa como parámetro.

Sintaxis Minute (fecha)
Parámetro Descripción
fecha Valor de fecha/hora válido. Si se trata de un valor que no sea de fecha debe ser convertible en fecha/hora. De lo contrario se producirá un error de coincidencia de tipos.

Ejemplo de Uso:

  minutos=cstr(minute(now))
  minutos=CStr(Minute(Time()))

Month

Devuelve un número entre 1 y 12 que representa el mes actual de la fecha que se pasa como parámetro.

Sintaxis Month (fecha)
Parámetro Descripción
fecha Valor de fecha/hora válido. Si se trata de un valor que no sea de fecha debe ser convertible en fecha/hora. De lo contrario se producirá un error de coincidencia de tipos.

Ejemplo de Uso:

  mes = cstr(month(now))

MonthName

Devuelve una cadena con el nombre del mes actual de la fecha que se pasa como parámetro. El lenguaje utilizado corresponde con el locale del dispositivo en que se ejecuta el script.

Sintaxis MonthName (fecha)
Parámetro Descripción
fecha Valor de fecha/hora válido. Si se trata de un valor que no sea de fecha debe ser convertible en fecha/hora. De lo contrario, se producirá un error de coincidencia de tipos.

Ejemplo de Uso:

  mes = cstr(MonthName(now))

Now

Devuelve la fecha/hora del sistema.

Sintaxis Now

Ejemplo de Uso:

  this("FECHA") = now

Second

Devuelve un entero entre 0 y 59 que representa el segundo de la hora actual en el valor de fecha/hora que se pasa como parámetro.

Sintaxis Second (fecha)
Parámetro Descripción
fecha Valor de fecha/hora válido. Si se trata de un valor que no sea de fecha debe ser convertible en fecha/hora. De lo contrario se producirá un error de coincidencia de tipos.

Ejemplo de Uso:

  segundos = cstr(Second(now))

Time

Devuelve una expresión de fecha/hora con la hora actual del sistema.

Sintaxis Time

Ejemplo de Uso:

  hora= cstr(Time)

Timer

Devuelve un entero que contiene el número de segundos desde las 12:00AM del día actual.

Sintaxis Timer

Ejemplo de Uso:

  num=Timer

WeekDay

Devuelve un entero entre 1 y 7 representando el día de semana de la fecha que se pasa como parámetro. El primer día de semana es el correspondiente al locale del dispositivo en que se ejecuta el script.

Sintaxis WeekDay (fecha)
Parámetro Descripción
fecha Valor de fecha/hora válido. Si se trata de un valor que no sea de fecha debe ser convertible en fecha/hora. De lo contrario se producirá un error de coincidencia de tipos.

Ejemplo de Uso:

  diasemana = weekday(now)-1

Week

Devuelve un entero correspondiente a la semana a que pertenece la fecha que se pasa como parámetro. Las semanas se numeran consecutivamente a partir de la 1 desde el primer día del año.

Sintaxis Week (fecha)
Parámetro Descripción
fecha Valor de fecha/hora válido. Si se trata de un valor que no sea de fecha debe ser convertible en fecha/hora. De lo contrario se producirá un error de coincidencia de tipos.

Ejemplo de Uso:

  numsemana = Week(now)

Year

Devuelve un entero correspondiente al año de la fecha que se pasa como parámetro.

Sintaxis Year(fecha)
Parámetro Descripción
fecha Valor de fecha/hora válido. Si se trata de un valor que no sea de fecha debe ser convertible en fecha/hora. De lo contrario se producirá un error de coincidencia de tipos.

Ejemplo de Uso:

  anio = Year(now)

FUNCIONES DE CONVERSIÓN

CDbl

Convierte una expresión a tipo double. La expresión debe ser numérica o convertible en número.

Sintaxis CDbl (expresión)
Parámetro Descripción
expresión Expresión numérica o convertible en número. Si la expresión no puede llevarse a número se produce un error de conversión de tipos.

Ejemplo de Uso:

  this("TOTAL")=cdbl(this("PORCENTAJE"))+cdbl(this("TOTAL"))

Chr

Devuelve un carácter cuyo código ANSI se pasa como parámetro. Los caracteres del 1 al 31 son caracteres no imprimibles.

Sintaxis Chr (expresión)
Parámetro Descripción
expresión Expresión numérica o convertible en número. Si la expresión no puede llevarse a número se produce un error de conversión de tipos.

Ejemplo de Uso:

  msg="Nombre: "+CStr(This("NOMBRE"))+Chr(10)+Chr(13)

CInt

Convierte la expresión que se pasa como parámetro a un número entero. La expresión debe ser numérica o convertible en número.

Sintaxis CInt (expresión)
Parámetro Descripción
expresión Expresión numérica o convertible en número. Si la expresión no puede llevarse a número se produce un error de conversión de tipos.

Ejemplo de Uso:

  this("MAP_TOTAL") = cint(this.contents("Bultos").count)

CLng

Convierte la expresión que se pasa como parámetro a un tipo entero largo. La expresión debe ser numérica o convertible en número.

Sintaxis CLng (expresión)
Parámetro Descripción
expresión Expresión numérica o convertible en número. Si la expresión no puede llevarse a número se produce un error de conversión de tipos.

Ejemplo de Uso:

  valor=CLng(this("DOCUMENTO"))+1

CStr

Devuelve una representación de cadena de la expresión que se pasa como parámetro. Dependiendo del tipo de dato se usarán los formatos válidos en el locale activo en el dispositivo.

Sintaxis CStr (expresión)
Parámetro Descripción
expresión Expresión cuya representación de cadena se quiere obtener.

Ejemplo de Uso:

  msg="Nombre: "+CStr(This("NOMBRE"))

FUNCIONES DE FORMATO

FormatNumber

Devuelve una cadena que representa el número pasado como parámetro en el formato que se decida. La expresión debe ser numérica o convertible en número, de lo contrario se producirá un error de conversión de tipos.

Sintaxis FormatNumber (expresión, decimales)
Parámetro Descripción
expresión Expresión numérica que se quiere formatear.
decimales Opcional. Un entero con la cantidad de decimales después del punto decimal. El resultado se redondea a esta cantidad antes de hacer la representación. Si este parámetro no se pasa se asumen cero decimales (entero).

Debido al uso de la definición original de esta función se aceptan hasta 5 parámetros, pero a partir del tercero son ignorados, por lo que puede pasarse cualquier cosa. Lo suyo sería usarla solamente con los dos primeros parámetros.


El separador de dígitos decimales usado por esta función es el correspondiente al locale activo en el dispositivo.

Ejemplo de Uso:

  this("NUMERO")=FormatNumber(20000,2)

FUNCIONES MATEMÁTICAS

Abs

Devuelve un valor numérico positivo correspondiente al valor absoluto de la expresión numérica que se pasa como parámetro.

Sintaxis Abs (expresión)
Parámetro Descripción
expresión Expresión numérica o convertible en número. Si la expresión no puede llevarse a número se produce un error de conversión de tipos

Ejemplo de Uso:

  This("BRUTO")=vSigno * AppData.SafeRound(CDbl(Abs(This("CANTIDAD")))*This("IMPORTE"),2)

Atn

Devuelve un valor decimal (double) correspondiente a la arcotangente del valor numérico que se pasa como parámetro. Se asume que la cantidad devuelta está en radianes (número real).

Sintaxis Atn (expresión)
Parámetro Descripción
expresión Expresión numérica o convertible en número. Si la expresión no puede llevarse a número se produce un error de conversión de tipos

Ejemplo de Uso:

  ACos = 1.5707963267949 - Atn(valor / Sqr(1 - (valor * valor)))

Acos

Devuelve un valor decimal (double) que representa el arcocoseno del valor real que se pasa como parámetro. El número devuelto está en radianes.

Sintaxis Acos (expresión)
Parámetro Descripción
expresión Expresión numérica o convertible en número. Si la expresión no puede llevarse a número se produce un error de conversión de tipos

Ejemplo de Uso:

  dd = ACos(dvalue) * radtodeg

Cos

Devuelve un valor decimal (double) que representa el coseno del valor real pasado como parámetro. Se asume que el valor está en radianes.

Sintaxis Cos (expresión)
Parámetro Descripción
expresión Expresión numérica o convertible en número. Si la expresión no puede llevarse a número se produce un error de conversión de tipos

Ejemplo de Uso:

  dvalue = (Sin(lat1 * degtorad) * Sin(lat2 * degtorad)) + (Cos(lat1 * degtorad) * Cos(lat2 * degtorad) * Cos(dlong * degtorad))

Int

Devuelve un entero que contiene la parte entera del número que se pasa como parámetro. No se efectúan redondeos.

Sintaxis Int (expresión)
Parámetro Descripción
expresión Expresión numérica o convertible en número. Si la expresión no puede llevarse a número se produce un error de conversión de tipos

Ejemplo de Uso:

  suma = suma + Int((digito * 2) / 10) + (digito * 2) Mod 10

Fix

Esta función funciona de la misma forma que Int.

Sin

Devuelve un valor decimal (double) con el valor del seno del número que se pasa como parámetro. Se asume que el valor pasado como parámetro está en radianes (dominio real).

Sintaxis Sin (expresión)
Parámetro Descripción
expresión Expresión numérica o convertible en número. Si la expresión no puede llevarse a número se produce un error de conversión de tipos

Ejemplo de Uso:

  dvalue = (Sin(lat1 * degtorad) * Sin(lat2 * degtorad)) + (Cos(lat1 * degtorad) * Cos(lat2 * degtorad) * Cos(dlong * degtorad))

Sqr

Devuelve un valor real (double) con el valor de la raíz cuadrada del número que se pasa como parámetro. Si el valor no es válido (negativo) se produce un error de ejecución.

Sintaxis Sqr (expresión)
Parámetro Descripción
expresión Expresión numérica o convertible en número. Si la expresión no puede llevarse a número se produce un error de conversión de tipos

Ejemplo de Uso:

  ACos = 1.5707963267949 - Atn(valor / Sqr(1 - (valor * valor)))

Round

Devuelve un valor real (double) con el número que se pasa como parámetro redondeado a la cantidad de decimales indicada.

Sintaxis Round (expresión[, decimales])
Parámetro Descripción
expresión Expresión numérica o convertible en número. Si la expresión no puede llevarse a número se produce un error de conversión de tipos
decimales Opcional. Entero que indica la cantidad de decimales después del punto. Si no se pasa se considera cero (redondear al entero más cercano)

Ejemplo de Uso:

  in_timer=Round(in_timer/60)

FUNCIONES DE MATRIZ

Array

Devuelve un valor numérico positivo correspondiente al valor absoluto de la expresión numérica que se pasa como parámetro.

Sintaxis Array (valor1[, valor2[, … valor_n]])
Parámetro Descripción
valor_n Los valores pueden ser de cualquier tipo, incluyendo objetos, nulos y vacíos.

Ejemplo de Uso:

  obj.Create Array("IDARTICULO",This("ID"),"IDALMACEN",This("IDALMACEN"),"EXIST",This("EXIST"))

Split

Devuelve una matriz unidimensional (vector) con tantas subcadenas como se logre formar a partir de dividir la expresión indicada basada en los separadores que se indiquen. Si no se encuentra ningún separador el vector contendrá un solo elemento con la cadena original.

Sintaxis Split (expresión, delimitador)
Parámetro Descripción
expresión Expresión de cadena que se quiere separar. Si el valor no es una cadena el runtime intentará convertirlo.
delimitador Cadena de delimitadores. Cada carácter de la cadena será considerado un separador válido. Al contrario que la norma original este parámetro es obligatorio.

Ejemplo de Uso:

  w =Split(st_date," ")
  t =Split(st_time,":")

Ubound

Devuelve el mayor subíndice de la dimensión deseada de una matriz. Si el parámetro que se pasa no es una matriz, el indicador de dimensión está fuera de rango o no es numérico ocurrirá un error de ejecución.

Sintaxis UBound (expresión[, dimensión])
Parámetro Descripción
expresión Expresión de matriz cuya máximo subíndice se quiere determinar.
decimales Opcional. Entero representando la dimensión cuyo máximo subíndice se desea. Si no se pasa ningún valor se asume que es la primera dimensión (0) En el caso de los vectores este es el único valor permitido.

Ejemplo de Uso:

  For i = 0 To UBound(arr, 1)

FUNCIONES DE CADENA

InStr

Devuelve la posición en que ocurre una subcadena dentro de una cadena. Si la subcadena no se encuentra, la función devuelve -1.

Sintaxis InStr ([start,]cadena1, cadena2)
Parámetro Descripción
start Opcional. Entero que representa la posición a partir de la cual se efectúa la búsqueda. El número de posición del primer carácter es 1.
cadena1 Cadena dentro de la cual se busca. Si la expresión no es de cadena se intentará convertirla.
cadena Cadena a buscar. Si la expresión no es de cadena se intentará convertirla.

Ejemplo de Uso:

  n = InStr(st, ":")

Debido a la compatibilidad sintáctica con el VBS original se permite un cuarto parámetro, pero realmente dicho parámetro será ignorado, efectuando siempre una comparación de cadenas.

LCase

Devuelve una cadena con la representación en minúsculas de la expresión de cadena que se pasa como parámetro.

Sintaxis LCase (expresión)
Parámetro Descripción
expresión Expresión de cadena que se quiere convertir. Si la expresión no es de cadena se intentará convertirla.

Ejemplo de Uso:

  n = LCase(st)

Left

Devuelve una cadena consistente en los n primeros caracteres de la cadena que se pasa como parámetro. Si la cantidad de caracteres solicitados es mayor que el tamaño de la cadena original, esta se devuelve completa.

Sintaxis Left (expresión, caracteres)
Parámetro Descripción
expresión Expresión de cadena original. Si la expresión no es una cadena se intentará convertirla.
caracteres Entero con la cantidad de caracteres a obtener. Si el número es mayor que el tamaño de la cadena, esta se devuelve completa.

Ejemplo de Uso:

  n = Left(st,5)

Len

Devuelve la cantidad de caracteres que contiene una cadena.

Sintaxis Len (expresión)
Parámetro Descripción
expresión Expresión de cadena que se quiere convertir. Si la expresión no es de cadena se intentará convertirla. Si el valor es EMPTY se devolverá cero.

Ejemplo de Uso:

  n = Len(st)

Lenb

Esta función se mantiene por compatibilidad con scripts existentes. Tiene el mismo funcionamiento que Len.

Trim

Devuelve una cadena de la cual se han eliminado los espacios y separadores tanto al inicio como al final.

Sintaxis Trim (expresión)
Parámetro Descripción
expresión Expresión de cadena que se quiere convertir. Si la expresión no es de cadena se intentará convertirla. Si el valor es EMPTY se devolverá una cadena vacía.

Ejemplo de Uso:

  st = Trim(st)

Mid

Devuelve una subcadena tomada a partir de la posición deseada con tantos caracteres como se indique.

Sintaxis Mid (expresión, inicio[, largo])
Parámetro Descripción
expresión Expresión de cadena que se quiere convertir. Si la expresión no es de cadena se intentará convertirla. Si el valor es EMPTY se devolverá una cadena vacía.
inicio Posición a partir de la que se comienza a obtener la cadena. Si es mayor que el tamaño de la cadena se devuelve cadena vacía. La primera posición se considera 1.
largo Opcional. Entero indicando la cantidad de caracteres. Si inicio+largo es mayor que el tamaño de la cadena se considera que se devuelve la cadena hasta el final.

Ejemplo de Uso:

  st = Mid(st,1,5)

Replace

Devuelve una cadena en la cual se han reemplazado las ocurrencias de una determinada subcadena con otra.

Sintaxis Replace (expresión, buscar, reemplazo[, inicio])
Parámetro Descripción
expresión Cadena dentro de la que se quiere efectuar la búsqueda y reemplazo. Si la expresión no es una cadena se intentará convertirla.
buscar Cadena que se quiere buscar y sustituir. Si no es una cadena se intentará convertirla.
reemplazo Cadena por la que se quiere sustituir “buscar”. Si no es una cadena se intentará convertirla.
inicio Opcional. Entero que indica a partir de qué posición se comienza la búsqueda (empezando por 1)

Ejemplo de Uso:

  msg = msg + " Descripcion:" + Replace(This("RECADO"),"#243;","ó") + "   "

Debido a la necesidad de compatibilidad con las maquinarias de script VBS antiguas se permite los parámetros adicionales que tiene la función vbs original, pero éstos son ignorados.

Devuelve una cadena con los caracteres obtenidos desde la parte de recha de la cadena que se pasa como parámetro. Si el número indicado es mayor que la cadena original, se devuelve esta completa.

Sintaxis Right (expresión, caracteres)
Parámetro Descripción
expresión Cadena de la que se quiere obtener el fragmento. Si la expresión no es una cadena se intentará convertirla.
caracteres Cantidad de caracteres a obtener contando desde el final de la cadena original.

Ejemplo de Uso:

  st = Right(st,2)

StrComp

Devuelve un entero representando el valor de comparación de dos cadenas.

Sintaxis StrComp (cadena1, cadena2)
Parámetro Descripción
cadena1 Primera cadena a comparar.
cadena2 Segunda cadena a comparar.

Ejemplo de Uso:

  st = StrComp("VBScript","vbscript")
  • Si cadena1 < cadena2 el valor es negativo.
  • Si cadena1 > cadena2 el valor es positivo.
  • Si cadena1 == cadena2 el valor es cero.

Esta función permite un tercer parámetro para mantener la compatibilidad con la maquinaria VBS original, pero será ignorado.

String

Devuelve una cadena compuesta por la repetición de un carácter tantas veces como se indique.

Sintaxis String (número, caracter)
Parámetro Descripción
número Cantidad de veces que se repetirá el carácter indicado.
caracter Expresión que contiene el carácter a repetir. Si se trata de una cadena se obtiene el primer carácter de la misma. Si es un número se obtiene el carácter cuyo código ANSI corresponde al número.

Ejemplo de Uso:

  st = String(5,"a")

Ucase

Devuelve una cadena que contiene la representación en mayúsculas de la cadena original.

Sintaxis UCase (expresión)
Parámetro Descripción
expresión Expresión de cadena cuya representación en mayúsculas se desea obtener. Si la expresión no es una cadena se intentará convertirla.

Ejemplo de Uso:

  st = UCase("vbScript")

OTRAS FUNCIONES

IsEmpty

Devuelve un valor booleano TRUE si se trata de un valor de tipo EMPTY.

Sintaxis IsEmpty (expresión)
Parámetro Descripción
expresión Expresión que se quiere comprobar. Normalmente se trata de una variable, evaluación de fórmula, valor de campo, etc.

Ejemplo de Uso:

  if not isEmpty(appData.CurrentEnterprise.Variables("IDFAMILIA")) then ...

IsNull

Devuelve un valor booleano TRUE si el parámetro pasado es NULL.

Sintaxis IsNull (expresión)
Parámetro Descripción
expresión Expresión que se quiere comprobar. Normalmente se trata de una variable, evaluación de fórmula, valor de campo, etc.

Ejemplo de Uso:

  if matricula="" or isnull(matricula) then ...

IsNumeric

Devuelve un valor numérico TRUE si la expresión es un número o representa un número y puede convertirse a cantidad numérica.

Sintaxis IsNumeric (expresión)
Parámetro Descripción
expresión Expresión que se quiere comprobar. Normalmente se trata de una variable, evaluación de fórmula, valor de campo, etc.

Ejemplo de Uso:

  if isnumeric(numero) then ...
wiki/2.-desarrollo-app/2.4.-scripting-modelo-objetos/a.-objetos-sistema/1.-vbscript/1.7.-otras-funciones-vbscript/start.txt · Última modificación: 2017/10/25 13:08 (editor externo)