Académique Documents
Professionnel Documents
Culture Documents
Documentación de INTEGRA
Manual del desarrollador
Parte III
(El motor de script PasScript)
Versión 2.5.67
ITRIS
Beruti 4583 Piso 5º
Ciudad de Buenos Aires, Argentina
Tel/Fax +54 +11 4779-9200
www.itris.com.ar
e-mail: info@itris.com.ar
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
Notas Aclaratorias.......................................................................................................................3
Documentación de INTEGRA.....................................................................................................4
Anexo I – PasScript.....................................................................................................................5
Símbolos..................................................................................................................................5
Palabras Reservadas..............................................................................................................6
Comentarios............................................................................................................................7
Expresiones.............................................................................................................................8
Operadores..............................................................................................................................9
Funciones..............................................................................................................................10
Declaraciones........................................................................................................................11
Asignaciones.........................................................................................................................12
Procedimiento y llamadas a funciones..................................................................................13
Sentencias.............................................................................................................................14
Sentencia IF.......................................................................................................................14
Sentencia Case..................................................................................................................16
Sentencia Repeat..............................................................................................................17
Sentencia While.................................................................................................................18
Sentencia For.....................................................................................................................18
Bloques..................................................................................................................................21
Alcance..................................................................................................................................22
Tipos de Datos.......................................................................................................................24
Constantes.............................................................................................................................25
Procedimientos......................................................................................................................27
Funciones..............................................................................................................................28
Parámetros Valor y Variable..................................................................................................30
Funciones frecuentes............................................................................................................32
Tipos de datos frecuentes.....................................................................................................35
Funciones habilitadas para Script.........................................................................................36
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
Notas Aclaratorias
Word, Excel, Access, Outlook, MS Office, Windows 95, Windows 98, Windows NT, Windows
2000, Windows XP, SQL Server y Microsoft son marcas registradas de Microsoft Corporation.
Otros productos y compañías mencionadas en este manual son marcas registradas de sus
respectivos dueños.
La información contenida en este manual esta sujeta a cambios sin previo aviso. Los datos
utilizados en los ejemplos son ficticios. Está prohibida la reproducción total o parcial del
contenido de este manual por cualquier medio.
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
Documentación de INTEGRA
¿Como leer esta documentación?
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
Anexo I – PasScript
En la siguiente sección se detalla el lenguaje de scripting PasScript.
Símbolos
Los símbolos especiales son caracteres no-alfanuméricos, o pares de caracteres, que tienen
significados fijos. Los siguientes caracteres simples son símbolos especiales:
Símbolos equivalentes
Símbolo especial Símbolo equivalente
[ (.
] .)
{ (*
] *)
Nota
%, ?, \, !, "(comillas), _ (underscore), | (pipa), y el ~ (tilde) no son caracteres especiales.
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
Palabras Reservadas
Las siguientes palabras reservadas no pueden ser redefinidas o ser utilizadas como
identificadores:
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
Comentarios
Los comentarios no pueden ser anidados. Por ejemplo, {{}} no funcionará, solamente (*{}*).
Esto es útil para comentar secciones del código que también contienen comentarios.
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
Expresiones
X {variable}
@X {dirección de una variable}
15 {constante entera}
InterestRate {variable}
Calc(X, Y) {llamada de función}
X*Y {producto de X y de Y}
Z / (1 - Z) {cociente de Z y (1 - Z)}
X = 1.5 {Boolean}
C en Range1 {Boolean}
Not Done {negación de un Boolean}
['a','b','c'] {Conjunto}
Char(48) {valor typecast}
Las expresiones más simples son variables y constantes (descritas en Tipos de Datos,
variables, y constantes). Las expresiones más complejas se construyen a partir de
expresiones simples, usando operadores, llamadas a funciones, conjuntos de constructores,
índices y casteos.
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
Operadores
Los operadores se comportan como funciones predefinidas que son parte del lenguaje
Delphi. Por ejemplo, la expresión (X + Y) se construye de las variables X e Y – llamadas
operandos -- con el operador +; cuando X e Y representan números enteros o reales, (X + Y)
devuelve su suma. Los operadores incluyen @, not, ^, *, /, div, mod, and, shl, shr, as, +, -,
o, xor, =, >, <, <>, <=, >=, in, e is.
Los operadores @, not, y ^ son unarios (tomando un operando). El resto de los operadores
son binarios (tomando dos operandos), excepto que + y – funcionen tanto como un operador
unario o binario. Un operador unario precede siempre a su operando (por ejemplo, - B), a
excepción de ^, que sigue a su operando (por ejemplo, P^). Un operador binario se ubica
entre sus operandos (por ejemplo, A = 7).
Algunos operadores se comportan diferentes dependiendo del tipo de datos que recibe. Por
ejemplo, not significa negación en un operando de número entero y negación lógica en un
operando Boolean. Tales operadores aparecen abajo bajo categorías múltiples.
Excepto para ^, is, e in, todos los operadores pueden tomar operandos del tipo VARIANT.
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
Funciones
Debido a que las funciones devuelven un valor, las llamadas a funciones son expresiones.
Por ejemplo, si se ha definido una función llamada Calc que toma dos enteros y devuelve un
entero, entonces la función Calc(24, 47) es una expresión entera. Si I y J son variables
enteras, entonces I + Calc(J, 8) es también una expresión entera.
En los ejemplos de funciones se incluyen:
Sum(A, 63)
Maximum(147, J)
Sin(X + Y)
Eof(F)
Volume(Radius, Altura)
GetValue
TSomeObject.SomeMethod(I, J);
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
Declaraciones
Una declaración define un identificador y, cuando sea apropiado, asigna la memoria para él.
Por ejemplo,
declara una variable llamada Size que contiene un valor Extended (real), mientras que
declara una función llamada DoThis que toma dos strings como argumentos y devuelve un
entero. Cada declaración termina con un punto y coma. Cuando se declaran varias variables,
constantes, tipos, o etiquetas al mismo tiempo, se necesita solamente escribir la palabra
reservada apropiada una vez:
var
Size: Extended;
Quantity: Integer;
Description: string;
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
Asignaciones
variable := expresión
Una declaración de asignación reemplaza el valor actual de una variable por el valor de la
expresión. Por ejemplo,
I := 3;
I := I + 1;
X := Y + Z;
Done := (I >= 1) and (I < 100);
Hue1 := [Blue, Succ(C)];
I := Sqr(J) - I * K;
Shortint(MyChar) := 122;
TByteRec(W).Hi := 0;
MyString[I] := 'A';
SomeArray[I + 1] := P^;
TMyObject.SomeProperty := True;
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
PrintHeading;
Transpose(A, N, M);
Find(Smith, William);
Writeln('Hello world!');
DoSomething();
TMyObject.SomeMethod(X,Y);
Las llamadas a funciones, como las llamadas a procedimientos, se pueden tratar como
declaraciones a su derecha:
MyFunction(X);
Cuando se utiliza una llamada a una función de esta manera, el valor que devuelve se
desecha.
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
Sentencias
Sentencia IF
if J = 0 then
Exit
else
Result := I/J;
Las cláusulas then y else contienen cada una una sentencia, puede ser una sentencia
estructurada. Por ejemplo,
if J <> 0 then
begin
Result := I/J;
Count := Count + 1;
end
else if Count = Last then
Done := True
else
Exit;
Notar que nunca hay punto y coma entre la cláusula then y la palabra else. Se puede poner
un punto y coma después de una sentencia entera del if para separarla de la sentencia
siguiente, pero las cláusulas then y else no requieren nada más que un espacio entre ellas.
Poner un punto y coma inmediatamente antes de else (en una sentencia if) es un error de
programación común.
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
es equivalente a
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
Sentencia Case
case selectorExpression of
caseList1: statement1;
...
caseListn: statementn;
end
donde selectorExpression es cualquier expresión de tipo ordinal (tipos string son inválido) y
cada caseList es uno de los siguientes:
Cada valor representado por un caseList debe ser único en la sentencia case; los subrangos
y las listas no se pueden solapar. Una sentencia case puede tener una cláusula else final:
case selectorExpression of
caseList1: statement1;
...
caseListn: statementn;
else
statements;
end
donde statements es una secuencia de sentencias delimitadas por punto y coma. Cuando se
ejecuta una sentencia case, al menos una statement1...statementn es ejecutada. Cualquier
caseList tiene un valor igual al del selectorExpression, determinando la sentencia que se
utilizará. Si ninguno de los caseLists tienen el mismo valor que el selectorExpression,
entonces las sentencias en la cláusula else (si hay una) se ejecutan.
La sentencia case
case I of
1..5: Caption := 'Low';
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
if I in [1..5] then
Caption := 'Low'
else if I in [6..10] then
Caption := 'High'
else if (I = 0) or (I in [10..99]) then
Caption := 'Out of range'
else
Caption := '';
case MyColor of
Red: X := 1;
Green: X := 2;
Blue: X := 3;
Yellow, Orange, Black: X := 0;
end;
case Selection of
Done: Form1.Close;
Compute: CalculateTotal(UnitCost, Quantity);
else
Beep;
end;
Sentencia Repeat
La sintaxis de una sentencia repeat es
donde la expresión devuelve un valor Boolean. (El último punto y coma antes de until es
opcional). La sentencia repeat ejecuta su secuencia de sentencias constitutivas
continuamente, evaluando expression después de cada iteración. Cuando expression
devuelve verdadero, la sentencia repeat termina. La secuencia se ejecuta siempre por lo
menos una vez porque expresión no se evalúa hasta después de la primera iteración.
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
repeat
K := I mod J;
I := J;
J := K;
until J = 0;
repeat
Write('Enter a value (0..9): ');
Readln(I);
until (I >= 0) and (I <= 9);
Sentencia While
Una sentencia while es similar a una sentencia repeat, excepto que la condición del control
es evaluada antes de la primera ejecución de la secuencia de sentencias. Por lo tanto, si la
condición es falsa, la secuencia de sentencias nunca se ejecuta.
donde expression devuelve un valor Boolean y la sentencia puede ser una sentencia
compuesta. La sentencia while ejecuta su statement constitutiva repetidamente, evaluando
expression antes de cada iteración. Mientras expression devuelve verdadero, la ejecución
continúa.
Sentencia For
Una sentencia for, a diferencia de una sentencia repeat o while, requiere que se especifique
explícitamente el número de iteraciones que se desee realizar. La sintaxis de sentencia for
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
donde
• counter es una variable local (declarada en del bloque que contiene la sentencia for)
de tipo ordinal, sin ningunos calificadores.
• initialValue y finalValue son expresiones que son compatibles de asignación con
counter.
Statement es una sentencia simple o estructurada que no cambia el valor de counter.
La sentencia for asigna el valor del initialValue a counter, después ejecuta statement
repetidamente, incrementando o decrementando counter después de cada iteración. (La
sintaxis for..to incrementa counter, mientras que la sintaxis for..downto decrementa
counter). Cuando counter devuelve el mismo valor que finalValue, statement se ejecuta una
vez más y la sentencia for termina. Es decir, statement se ejecuta una vez por cada valor en
el rango de initialValue a finalValue. Si initialValue es igual a finalValue, statement se ejecuta
exactamente una vez. Si initialValue es mayor a finalValue en una sentencia for..to, o es
menor a finalValue en una sentencia for..downto, statement nunca se ejecuta. Después de
que la sentencia for termina, el valor de counter es indefinido.
Con el propósito de controlar la ejecución de un loop, las expresiones initialValue y finalValue
son evaluadas solamente una vez, antes de que el loop comience. Por lo tanto la sentencia
for..to es casi, pero no absolutamente, equivalente a esta construcción while:
begin
counter := initialValue;
while counter <= finalValue do
begin
statement;
counter := Succ(counter);
end;
end
La diferencia entre esta construcción y sentencia for..to es que el loop del while reevalúa
finalValue antes de cada iteración. Esto puede dar lugar a un funcionamiento
perceptiblemente más lento si finalValue es una expresión compleja, y también significa que
los cambios al valor finalValue dentro statement pueden afectar la ejecución del loop.
for I := 2 to 63 do
if Data[I] > Max then
Max := Data[I];
for I := ListBox1.Items.Count - 1 downto 0 do
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
ListBox1.Items[I] := UpperCase(ListBox1.Items[I]);
for I := 1 to 10 do
for J := 1 to 10 do
begin
X := 0;
for K := 1 to 10 do
X := X + Mat1[I, K] * Mat2[K, J];
Mat[I, J] := X;
end;
for C := Red to Blue do Check(C);
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
Bloques
Un bloque consiste en una serie de declaraciones seguido por una declaración compuesta.
Todas las declaraciones deben realizarse al comienzo del bloque. La forma de un bloque es
declarations
begin
statements
end
la primera línea de la declaración es el título de la función y todas las líneas siguientes hacen
el bloque. Ch, L, Source, y Dest son variables locales; sus declaraciones se aplican
solamente al bloque de la función UpperCase y eliminan -- en este bloque solamente --
cualquier declaración de los mismos identificadores que pueda ocurrir en el bloque del
programa o en el interfaz o la sección implementación de unit.
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
Alcance
Un identificador, como una variable o nombre de función, pueden ser utilizados solamente
dentro del alcance de su declaración. La localización de una declaración determina su
alcance. Un identificador declarado dentro de la declaración de un programa, función, o
procedimiento tiene un alcance limitado al bloque en el cual fue declarado. Un identificador
declarado en la sección interfaz de una unit tiene un alcance que incluye cualquier otra unit o
programa que utilicen la unit donde ocurre la declaración. Los identificadores con un alcance
más estrecho -- especialmente identificadores declarados en funciones y procedimientos -- a
veces se llaman locales, mientras que los identificadores con un alcance más amplio se
llaman globales
la definición de un tipo de registro (es decir, el desde el punto de su declaración hasta el final
de la definición del identificador es el nombre de un campo en el tipo de registro)
la definición de una clase (es decir, el identificador desde el punto de su declaración hasta el
final de la definición del el nombre de una propiedad o método de clase, y también incluye los
descendientes de la clase y los bloques de todos los métodos en la clase y sus
descendientes.
Maxi: PasScript soporta clases ¿?
Conflictos
Cuando un bloque incluye a otro, el anterior se llama bloque externo y el último bloque
interno. Si un identificador declarado en un bloque externo es redeclarado en un bloque
interno, la declaración interna toma precedencia sobre la externa y determina el significado
del identificador para la duración del bloque interno. Por ejemplo, si se declara una variable
llamada MaxValue en la sección interfaz de una unit, y luego se declara otra variable con el
mismo nombre en una declaración de una función dentro de esa unit, cualquier ocurrencia de
MaxValue en el bloque de la función es gobernada por la segunda, declaración local. De
forma semejante, una función declarada dentro de otra función crea un nuevo alcance interno
en el cual los identificadores utilizados por la función externa pueden ser redeclarados
localmente.
El uso de múltiples units complica la definición del alcance. Cada unit enumerada en la
cláusula de uso impone un nuevo alcance que incluye las units restantes usadas y el
programa o la unit que contiene la cláusula de uso. La primer unit en una cláusula de uso
representa el alcance exterior y cada unit siguiente representa un nuevo alcance dentro del
anterior. Si dos o más units declaran el mismo identificador en sus secciones de interfaz, una
referencia incompetente al identificador selecciona la declaración en el alcance mas interno --
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
Las units System y SysInit son utilizadas automáticamente por cada programa o unit. Las
declaraciones en el System, junto con los tipos predefinidos, rutinas, y constantes que el
compilador entiende automáticamente, tienen siempre el alcance exterior.
Se puede eliminar estas reglas del alcance y puentear un declaración interno usando un
identificador calificado o con una sentencia.
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
Tipos de Datos
simple
ordinal
integer
character
Boolean
enumerated
subrange
real
string
estructurado
conjunto
array
record
file
class
class reference
interface
puntero
procedural
variant
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
Constantes
Una constante verdadera es un identificador declarado cuyo valor no puede cambiar. Por
ejemplo,
declara una constante llamada a MaxValue que devuelve el número entero 237. La sintaxis
para declarar una constante verdadera es
declara una constante llamada MyNumber, de tipo Int64, que devuelve el número entero 17.
Si no, el tipo de la constante declarada es el tipo de constantExpression.
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
Procedimientos
donde el Nombre del procedimiento es cualquier identificador válido, las Sentencias son una
secuencia de sentencias que se ejecutan cuando se llama al procedimiento, y (Lista de
parámetros) y Declaraciones locales; son opcionales.
NumString(17, MyString);
Esta llamada al procedimiento asigna el valor "17" a MyString (que debe ser una variable
string).
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
Funciones
El bloque de sentencias de la función es gobernado por las mismas reglas que se aplican a
los procedimientos. Dentro del bloque de sentencias, se pueden utilizar variables y otros
identificadores declarados en la parte de la función Declaraciones locales, los nombres de
parámetros de la lista del parámetros, y cualquier identificador dentro del alcance del
procedimiento. Además, el nombre en sí mismo de la función actúa como variable especial
que contiene el valor de resultado de la función, al igual que la variable predefinida Result.
Result se declarará implícitamente en cada función.
define una función constante llamada WF que no toma parámetros y devuelve siempre el
valor entero 17. Esta declaración es equivalente a
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
X := A[0];
for I := 1 to N - 1 do
if X < A[I] then X := A[I];
Max := X;
end;
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
La mayoría de los parámetros son parámetros valor (por defecto) o parámetros variable
(var). Los parámetros valor son pasados por valor, mientras que los parámetros variables
son pasados por referencia. Para ver lo que esto significa considerar las siguientes las
funciones.
var
I, J, V, W: Integer;
begin
I := 4;
V := 4;
J := DoubleByValue(I); // J = 8, I = 4
W := DoubleByRef(V); // W = 8, V = 8
end;
Después de ejecutar este código, la variable I, que fue pasada a DoubleByValue, tiene el
mismo valor que le asignamos inicialmente. Pero la variable V, que fue pasado a
DoubleByRef, tiene un valor diferente.
Un parámetro valor actúa como una variable local que es inicializada con el valor pasado en
la llamada al procedimiento o función. Si se pasa una variable como parámetro valor, el
procedimiento o función crea una copia de ella; los cambios realizados a la copia no tienen
ningún efecto sobre la variable original y se pierden cuando la ejecución del programa
regresa al llamador.
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
Un parámetro variable, por otra parte, actúa como un puntero más que como una copia. Los
cambios realizados al parámetro dentro del cuerpo de una función o de un procedimiento
persisten después de que la ejecución del programa regresa al llamador y el nombre del
parámetro ha salido del alcance.
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
Funciones frecuentes
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
Tipo Descripción
TUpdateKind Conjunto. Representa los valores posibles de tipos de actualización.
1) Agregar un comprobante
En el aceptar del maestro llega ukInsert.
En el aceptar del detalle llega ukInsert
Atributos
Metodos
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
ItsDSAppend(aDataSet: TDataSet);
Agrega un registro nuevo al dataset.
ItsDSDelete(aDataSet: TDataSet);
Borra el registro activo del dataset.
ItsDSDeleteAll(aDataSet: TDataSet);
Borra todos los registros del dataset.
ItsDSPost(aDataSet: TDataSet);
Graba el dataset.
ItsDSFirst(aDataSet: TDataSet);
Devuelve el primer registro del dataset
ItsDSNext(aDataSet: TDataSet);
Devuelve el registro siguiente al que se está parado en el dataset
ItsDSPrior(aDataSet: TDataSet);
Devuelve el registro anterior al que se está parado en el dataset
ItsDSLast(aDataSet: TDataSet);
Devuelve el último registro del dataset
ItsDSClose(aDataSet: TDataSet);
Cierra y libera un dataset
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
ItsDuplicateRecord(SourceDataset, DestDataset);
Duplica el registro activo del dataset.
ItsCronoStart
Inicializa un cronómetro (lo agrega a la pila)
ItsCronoEnd: TDateTime
Devuelve el tiempo transcurrido desde el último tiempo CronoStart (saca el ultimo de la pila)
ItsCronoEndFmt: string;
Idéntico a ItsCronoEnd, pero formateado a string con formato Xh Xm Xs Xms
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
ItsInfo(MessageText: String);
Muestra un mensaje de información
ItsErr(MessageText: String);
Muestra un mensaje de error
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
ItsSetUserInteraction(aValue: boolean)
Le asigna a la variable UserInteraction el valor aValue
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
Cliente asincronico
Parametrización
El tiempo está en segundos.
Se ejecuta uno por vez, aunque por tiempo se superponga con el próximo.
Tipo de script
Ejemplos:
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
begin
frmIvaVen:= ItsFrmCreate('ERP_IVA_VEN', TRUE);
ItsFrmAddFilter(frmIvaVen, 'PERIODO', okEqual, '2006/10' );
ItsFrmOpen(frmIvaVen);
Archivo := ItsCreateFileCube(frmIvaVen, 'C:\Prueba');
frmIvaVen .Free;
end;
begin
frmComVen := ItsFrmCreate('ERP_COM_VEN_FAC', False);
ItsFrmOpen(frmComVen);
dsComVen := ItsFrmGetDataSet(frmComVen);
dsDetCom := ItsDsGetDetail(dsComVen, 'ERP_DET_COM');
ItsFrmAppend(frmComVen);
ItsDsAppend(dsDetCom);
{Asignaciones de cada detalle}
ItsDsPost(dsDetCom);
ItsFrmAccept(frmComVen);
frmComVen.Free;
end;
begin
try
A := 1 / 0;
except
A := 0;
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar
Inteligencia Aplicada
end;
end;
begin
ItsSaveFile(‘C:\AUDITORIA.LOG’, DateToStr(Now) + ‘ Usuario: ‘+ActUserName);
end;
oRec := CreateOleobject('ADODB.Recordset');
oRec.Open ('C:\Desa\Tools\ItsUpdateErp\ERP_VERSION.XML');
while not oRec.Eof do begin
S := oRec.Fields('VERSION').Value;
WriteLn(S);
oRec.MoveNext;
end;
oRec.Close;
Ejemplo “Abrir una conexion Excel”
cnOrigen := ItsCNCreateExcel(‘Archivo.xls’);
try
cnOrigen.open;
except
ItsRollBack('Error al crear la conexión');
end;
Cuando se crea una conexión se debe verificar si ésta se puede abrir o no, eso se lo hace
como se muestra en el ejemplo manejando una excepción si la abertura fue errónea y
realizando RollBack.
Beruti 4583 Piso 5º, Ciudad de Buenos Aires, Argentina Tel/Fax +54 +11 4779-9200 info@itris.com.ar