En FPScript, no solo puedes acceder a variables locales, sino también a conjuntos de datos externos y resultados de cálculos. Si introduce un nombre como "Serie de datos", FPScript procede de la siguiente manera para encontrar el objeto asociado al nombre. El sistema comprueba primero si existe una constante predefinida con este nombre. A continuación, el sistema comprueba si se ha declarado una variable local con este nombre en la fórmula. Si tampoco es el caso y la fórmula FPScript es una función con argumentos, el sistema comprueba si existe una variable argumental con el nombre. Si ninguna de estas búsquedas conduce a un resultado, se busca un conjunto de datos o una fórmula con el nombre especificado. La búsqueda se realiza en la carpeta en la que se encuentra la fórmula. Sin embargo, si esta carpeta tiene una subcarpeta activada, esta se buscará prioritariamente. Si el objeto encontrado es una fórmula, se calcula si es necesario y se toma el resultado para la compensación.
Nombre de la ruta
El nombre de la ruta de un objeto indica su ubicación exacta dentro de la base de datos del proyecto en la que se encuentra.
Los nombres de ruta absoluta indican la ruta desde la carpeta raíz de la base de datos del proyecto hasta el objeto deseado. Los nombres de las carpetas se enumeran en secuencia, y cada nombre de carpeta termina con "\". Como la carpeta raíz no tiene nombre, solo se escribe "\" para ella. Por lo tanto, todos los nombres de rutas absolutas empiezan por "\". El siguiente ejemplo localiza el objeto "Conjunto de datos" en la subcarpeta "Medición1" de la carpeta "Análisis":
\Análisis\Medición1\Conjunto de datos
La propia subcarpeta "Medición1" se selecciona del siguiente modo:
\Análisis\Medición1
Este acceso proporciona todos los registros de datos de la carpeta en forma de lista en el orden en que aparecen en la lista de objetos sin clasificar.
Nota Si en el ejemplo anterior hay un conjunto de datos "Medición1" en la carpeta "Análisis", se accede a este conjunto de datos y no a la carpeta del mismo nombre. Para acceder a la carpeta también en este caso, debe añadir la extensión de nombre ".fld".
Un objeto "Conjunto de datos" situado en la carpeta raíz se direcciona del siguiente modo:
\Conjunto de datos
Si el nombre de la ruta contiene caracteres especiales, como espacios, o comienza con un número, debe estar entre comillas simples:
'\Análisis\Medición A\Conjunto de datos'
'\01\Conjunto de datos'
Para acceder a todos los conjuntos de datos de una carpeta en forma de lista resumida, basta con dirigirse a la carpeta:
'\Análisis\Medición A'
Si se desea acceder a objetos que no son conjunt de datos, fórmulas, objetos de análisis o carpetas, debe especificarse una extensión de nombre:
\Análisis\Documento.doc
Se puede acceder a la subcarpeta activada de una carpeta con la palabra clave ActivatedFolder, que no termina en "\":
\Analyse\ActivatedFolder
Los nombres de ruta relativa indican la ruta al objeto de destino desde la carpeta desde la que se accede. ".\" indica la carpeta desde la que se accede y "..\" indica su carpeta padre, es decir, la carpeta que está por encima de ella en la jerarquía de carpetas. El siguiente ejemplo accede a un conjunto de datos que se encuentra en la carpeta vecina "Medición2":
..\Medición2\Conjunto de datos
Lee el nombre de la carpeta desde la que se accede:
.\.Nombre
Se accede a un conjunto de datos ubicado en la subcarpeta "Medición1" de la siguiente manera:
Medición1\Conjunto de datos
Para acceder a un objeto que se encuentra en la misma carpeta, basta con especificar el nombre:
Conjunto de datos
o
Planilla.wks
Los nombres de ruta relativa nunca empiezan por "\" sino por ".\", por "..\" o por el nombre de una subcarpeta.
Puede utilizar los marcadores de posición "*" y "?" en los nombres de ruta para crear fácilmente una lista de objetos:
'\Medición*\Señal' corresponde a [\medida1\señal, \medida2\señal, ...].
Utilice el marcador de posición "*" para una cadena de cualquier longitud y el marcador de posición "?" para un solo carácter.
Nota Si utiliza un nombre de ruta absoluta o un nombre de ruta relativa que empiece por ".\", no se tendrán en cuenta las subcarpetas activadas, es decir, el nombre de ruta siempre se referirá exactamente al objeto especificado, aunque este esté superpuesto por un objeto con el mismo nombre en la subcarpeta activada.
Acceso indirecto
El operador de indirección ($$) ofrece la posibilidad de acceder a los objetos utilizando una cadena con el nombre del objeto. El siguiente ejemplo muestra una aplicación común:
Nombre= InputText("Introduzca el nombre del conjunto de datos")
Integral($Name$)
Referencia de objeto
Una referencia de objeto es una referencia a un objeto en FlexPro, por ejemplo, a una fórmula o a una carpeta. Puede utilizar una referencia de objeto de este tipo para acceder al valor de la referencia de objeto, por un lado, y a las propiedades del objeto, por ejemplo, su nombre o comentario, por otro. Si utiliza un nombre de ruta a un objeto de datos en FPScript, esto representa el valor del objeto de datos, es decir, no proporciona una referencia de objeto. Para crear una, debe utilizar la instrucción Set o la palabra clave As Object:
Dim Obj = Conjunto de datos As Object
o
Set Obj = Conjunto de datos
El operador de indirección ($$) se comporta de la misma manera:
Dim Obj = $"Conjunto de datos"$ As Object
es equivalente a:
Dim Obj = Conjunto de datos As Object
y
Set Obj = $"Conjunto de datos"$
es equivalente a:
Set Obj = Conjunto de datos
y
Dim Val = $"Conjunto de datos"$
es equivalente a:
Dim Val = Conjunto de datos
Si un nombre de ruta no se refiere a un objeto de datos, sino a otro objeto, entonces representa una referencia de objeto. Por lo tanto, las siguientes instrucciones son equivalentes:
Dim Obj = '2D-Diagramm.2D' As Object
o
Dim Obj = '2D-Diagramm.2D'
FlexPro evalúa automáticamente una referencia de objeto si el valor es necesario para cálculos posteriores. Puede utilizar el operador Value para evaluar explícitamente una referencia de objeto:
Dim Obj = $"Signal"$ As Object
Dim Val = Value Obj