You are on page 1of 50

SQR Informe estructurado de consultas (SQR)

lenguaje de programación utilizado para extraer datos de la base de datos, generar


informes y escribir archivos. Veremos cómo SQR utiliza el lenguaje de consulta
estructurado (SQL) para comunicarse con bases de datos relacionales.

La herramienta SQR tiene su propio lenguaje y estructura; Cuando se usa con SQL,
puede producir informes y archivos. Aprenderá los procedimientos, comandos y
funciones de SQR que le permitirán producir archivos e informes informativos.
PeopleSoft recomienda que SQR se use solo para informes porque las ediciones
de la aplicación no se aplican cuando los datos se modifican utilizando los
comandos SQL.

Antes de la versión 8.46 de PeopleTools, SQR era la principal herramienta de


informes entregada con la suite PeopleSoft. PeopleSoft compró el código SQR hace
unas pocas versiones antes de que Brio fuera comprado por Hyperion. Desde
entonces ha habido muchas mejoras en SQR, pero PeopleSoft viene con una
versión anterior. La última versión ahora es parte de una suite con informes de
píxeles perfectos como las declaraciones W2 y se puede obtener de Oracle (que
compró Hyperion) con costos de licencia adicionales. El nombre "SQR" ha sido
retirado en gran parte de la versión de Hyperion; ahora es simplemente una parte
del componente de Informes de producción del Sistema Hyperion 9. Si desea
aprovechar la experiencia de SQR de su personal, SQR Integrator es un
complemento de terceros para ETL y utiliza SQR para hacer el almacén de datos.
Tiene una capa de mapeo de procesos empresariales de arrastrar y soltar de GUI,
que se convierte en el programa SQR.

Fundamentos de SQR

Los SQR se pueden ejecutar a través del programador de procesos, una


herramienta de edición y la mayoría del software de programación. Es una
herramienta poderosa que se puede usar para actualizar, cambiar y eliminar datos.

La siguiente sección tratará las diferentes herramientas de edición y cómo se


procesan los programas SQR.

Editores

Se puede usar una variedad de herramientas para crear su programa SQR.


Cualquier editor de texto básico funcionará (por ejemplo, Bloc de notas o WordPad).
Existen productos shareware gratuitos, como el Editor de archivos del programador,
que permiten el procesamiento de SQR fuera de PeopleSoft. También hay
productos que se pueden comprar que se crearon para ejecutar SQRs (SQR
Runner).
Estos productos pueden editar y validar el SQR escrito antes de que se agregue a
la aplicación. El uso de cualquiera de estos productos requiere acceso a la base de
datos. Las siguientes ilustraciones muestran cómo se vería el código en cada una
de estas herramientas.

Usar el Bloc de notas es el método más fácil, pero no hay funciones de edición que
ayuden a estructurar o formatear. Para ejecutar un SQR, debe usar un archivo bat
o la aplicación, como se muestra aquí.

El Editor de archivos del programador es una herramienta gratuita que puede


descargar en http://www.download.com/3640-2352-904159.html. Esta herramienta
es como el Bloc de notas, ya que no ayudará con el formateo, pero puede
configurarse para ejecutar su SQR desde un indicador de DOS. Es una gran
herramienta para tener cuando se trabaja con cualquier dato de texto.
SQR Runner fue diseñado específicamente para crear programas SQR. Debe ser
comprado. Tiene editores de formato para garantizar que el SQR se crea
correctamente. Puede ayudar con la depuración y ejecutar el SQR. Se puede
comprar en http://www.sqr-runner.de/subd/index.php?categoryid=10.
Independientemente de la herramienta que decida utilizar, deberá comprender la
estructura básica y el lenguaje de un SQR.

Tratamiento

Se realizan dos pasadas a través del SQR cuando se está ejecutando. El pase de
compilación hace lo siguiente:

 Inserta todos los archivos #include (SQC) en el programa fuente


 Interpreta y valida el código SQR y las declaraciones SQL
 Preprocesses #Commands (#Define, #Include, #IfAnd, #IFDef)
 Asigna buffers de trabajo.
 Procesa la sección de configuración inicial.

El paso de ejecución procesará el SQR en el siguiente orden.

1. Comienza con la sección Inicio del programa (or Begin-Report) y continuará


hasta que se alcance un Programa final (or End-Report).
2. A continuación, se procesan las secciones del cuerpo.
3. A continuación, procesa la sección Inicio-Título. Esto configurará el
encabezado del informe y se imprimirá en la parte superior de cada página.
4. Finalmente, procesa la sección de pie de inicio. Esto se imprimirá en la parte
inferior de cada página.

Estructura del programa

Hay una estructura básica para todos los programas SQR. Consta de las siguientes
cinco secciones:

 Programa o Informe
 Configuración
 partida
 pie
 procedimientos

Programa o Informe

Esta sección controla el flujo del programa SQR, llamando a los procedimientos,
utilizando técnicas de programación modular.

Begin-Program
(Commands)
End-Program

Dentro de esta sección, todos los programas SQR deben incluir el setenv.SQC
entregado para identificar el entorno específico de la plataforma. Esto le dice al SQR
en qué entorno necesita ejecutarse. Más SQC que pueden incluirse se tratarán más
adelante en este capítulo.

#include 'setenv.sqc'

Preparar

Esta sección describirá las características del informe (es decir, tamaño de página,
columnas, fuentes de formularios, gráficos). Declare comandos residen en esta
sección.

Begin-Setup
(Commands)
End-Setup

Título

Esta sección contendrá comandos que imprimirán un encabezado en la parte


superior de cada página del informe. "#" Representa el número total de líneas
reservadas para el encabezado. PeopleSoft ofrece encabezados estándar (archivos
SQC) que pueden agregarse utilizando #include al principio o al final del programa
SQR.

Begin-Heading #
(Commands)
End-Heading

Pie

Esta sección contendrá comandos para imprimir el pie de página en cada página
del informe. PeopleSoft entrega pies de página estándar (archivos SQC) que se
pueden agregar usando #include.

Begin-Footing #
(Commands)
End-Footing

Procedimientos

Un procedimiento es cómo organizar el programa para producir el informe deseado.


Procesará los comandos y párrafos SQR (SQL, Documento y Selección), pero cada
procedimiento debe tener un nombre único.

Begin-Procedure procedure_name
(Paragraphs)
(Commands)
End-Procedure procedure_name

Variables y Comandos

Los nombres de las variables pueden tener cualquier longitud y no distinguen entre
mayúsculas y minúsculas. Las siguientes son variables de tiempo de ejecución
válidas. Los campos de texto y fecha comienzan con "$". Los números comienzan
con "#". Los registros y campos de la base de datos comienzan con "&". Las
variables de tiempo de ejecución no tienen que ser declaradas explícitamente. Las
variables de texto y fecha se inicializan con nulo y cero para las variables numéricas;
de forma predeterminada, todas las variables numéricas se crean como un tipo de
datos de flotador. SQR entrega muchas variables reservadas, que se mantienen
dentro de SQR.

Ejemplos de Variables de Cadena y Fecha

$Name
$CurrDate
Ejemplos de números

#Amount
#Age

Ejemplos de campos de base de datos

&JobCode
&Emplid

Tipos de datos

SQR soporta muchos tipos de datos para variables. Estos pueden definirse
explícitamente dentro del comando Declare-Variable. Si las variables no se definen
explícitamente, utilizarán el valor predeterminado para ese tipo de datos.

1. Decimal le permite definir la precisión después del punto decimal. La


precisión puede ser de 1 a 38, con el valor predeterminado en 16.

Decimal Variable_Name [(precision)]


Decimal #Salary(2)
Decimal #Age(1)

2. Flotante Este es el valor predeterminado si se usa una #variable y no se


declara. Los valores después del punto decimal pueden ser cualquier
número; esto depende de la máquina en la que se está ejecutando.

Float Variable_Name
Float #AnnSal

3. Entero Este es un valor numérico sin valores después del punto decimal.

Integer Variable_Name
Integer #Year

4. Fecha Esta variable identifica que estos son campos de Fecha y se


formatearán en consecuencia. Esto también permitirá que se utilicen
funciones de fecha en estos campos.

Date Variable_Name
Date $Curr_Date

5. Texto / Char Esto identifica que los valores son variables de cadena.

Text Variable_Name
Text $Empl_Name
6. Lista Las variables de lista contienen una lista de otras variables. Asigne la
lista a un nombre de variable que comience con ‘%’.

LIST (number_variable1|string_variable1,
number_variable2|string_variable2,...)
Let %ListAddress = List($address1, $address2,
$city,$state,$zip);

Tipo de archivo de salida

Los informes SQR se almacenan en su servidor de archivos. Al ejecutar el


programador de procesos, puede determinar cómo desea que se vea su salida sin
realizar ninguna codificación. La siguiente es una lista de los tipos de archivos de
salida que están disponibles:

 PDF Adobe Acrobat Reader es el tipo predeterminado para la salida SQR


cuando se ejecuta a través del programador de procesos a menos que se
modifique. Esto genera el informe en un formato legible agradable. La
mayoría de los usuarios se sienten cómodos con este formato.
 SPF Este es el formato independiente de la impresora, por lo que se puede
crear el formato para una impresora específica.
 CSV Este es un archivo delimitado por comas de texto. Este formato es
bueno cuando los datos deben importarse a Excel o Access.
 HTM Esto crea el informe en formato HTML, para que el informe pueda
enviarse a la web.
 LIS Esta es la salida predeterminada para SQR. Cuando el archivo se ejecuta
localmente, este tipo de archivo se mostrará en la biblioteca C:\temp. No es
muy bonito, pero es bueno para probar.
 REGISTRO Aquí es donde se mostrarán los errores. Además, cualquier
muestra o visualización dentro del programa se enviará al registro.
 OUT Esto solo se mostrará cuando el SQR se ejecute a través de un
programador de procesos. Mostrará todos los caminos que se utilizaron.

Variables Reservadas

Las variables reservadas son variables que SQR ha predefinido. Puede usar estas
variables en su programa, en lugar de tener que crear una función o código para
recuperar los valores. SQR tiene variables de sistema que pueden usarse con
cualquier base de datos y también hay variables creadas que solo funcionan con
PeopleSoft.

Variables de PeopleSoft

La siguiente es una lista de variables que se crearon para trabajar con las
aplicaciones de PeopleSoft. Obtienen valores que son específicos de la
funcionalidad de PeopleSoft.
 $prcs_oprid Esto devolverá el Id. De operador de la persona que ejecuta el
SQR.
 $prcs_run_cntl_id Esto devolverá el Id. De Control de Ejecución que se está
utilizando para ejecutar el SQR. Esto es útil si los parámetros se pasan a
través de un registro de control de ejecución.
 $AsofToday Esto devolverá la fecha del sistema en el formato nativo.
 $Asofnow Esto devolverá la hora del sistema en el formato nativo.
 $SysDateTime Esto devolverá la fecha y hora del sistema en el formato
nativo.
 ReportDate Esto devolverá la Fecha del informe, en el formato de fecha
utilizado en el informe.
 ReportTime Esto devolverá la Hora del informe, en el formato de hora
utilizado en el informe.
 SQL_Statement Esto generará un texto cuando haya un error de SQL.

Variables del sistema

Las variables del sistema se pueden utilizar con cualquier aplicación. Como los SQR
son independientes del sistema, los programas que se producen pueden ejecutarse
en cualquier base de datos a la que tenga acceso. Esta lista es una muestra de las
variables del sistema provistas con el lenguaje SQR.

 #current-column Mantiene la columna actual en la página del informe.


 #current-date Devolverá la fecha y hora actual para la máquina local que se
está utilizando.
 #current-line Mantiene el número de línea física en la página del informe.
 #end-file Al leer un archivo, determinará si el archivo está al final. False se
almacena como 0 y True se almacena como 1.
If #end-file then
break
End-if
 #page_count Almacena el número de página actual. Esto es utilizado por
diferentes SQC para imprimir el número de página en los informes.
 #return-status Este valor proviene del sistema operativo. Si el SQR falla,
este valor se puede generar para la depuración.
 #sql-count Cuenta las filas que están afectadas en una declaración SQL.
 #sql-error Almacena el último mensaje de texto cuando hay un error. Este
valor se puede mostrar en el registro para ayudar con la depuración.
 #sql-status Estado de cada consulta SQL.
 #sqr-hostname El nombre de la máquina en la que se está ejecutando el
SQR.
 #sqr-max-columns Proporciona las columnas máximas en el informe.
 #sqr-max-lines Da el máximo de líneas en el informe.
 $sqr-database Almacena la base de datos con la que se está ejecutando el
SQR. Las bases de datos válidas son ORACLE, DB2, ODBC, SYBASE e
INFORMIX.
 #sqr-pid Almacena la identificación del proceso para la ejecución actual del
SQR.
 $sqr-program Almacena el nombre del programa SQR. Los encabezados
SQC entregados también lo utilizan para imprimir en el informe.
 $sqr-report Almacena el nombre del informe SQR, que se imprimirá en los
informes.
 $sqr-ver La versión de SQR que se está utilizando.

Declarar-variable

Esta variable se utiliza para definir explícitamente las variables. Si está dentro de la
sección de configuración, estas variables serán globales. Cuando se usa en un
procedimiento local, solo se conocerá ese procedimiento.

Declare-variable [DEFAULT-NUMER= {Decimal [(precision)]} | Float | Integer}


[Decimal Variable_Name [(precision)]]
[FLOAT Variable_Name]
[INTEGER Variable_Name]
[DATE Variable_Name]
[TEXT Variable_Name]
End-Declare
declare-variable
decimal #Age(1)
integer #year
date $curr_date
text $Empl_name
end-declare

Variables de sustitución

Las variables de sustitución se declaran al comienzo de su programa con una


instrucción #define. Aquí es donde se almacenarán las columnas para la declaración
de impresión. Estas variables se pueden referenciar entre paréntesis en cualquier
parte del programa.
Ejemplo

Example
#Define C1 5
#Define C2 20

Print Name (+1, {C1})
Print Phone (0, {C2})
Mover y dejar comandos

Hay dos comandos que se pueden usar para asignar valores a las variables. El
primero es el comando MOVE. Esto copiará los datos de una ubicación de
almacenamiento a otra. Los datos de origen pueden ser un literal o una variable. La
variable de destino debe ser un campo definido por el usuario; Se puede usar una
máscara de edición para formatear los datos.

MOVE source data to target_variable [edit_mask]


MOVE $Id to $SSN xxx-xx-xxxx

El segundo comando es la instrucción LET. Esto se utiliza para asignar valores o


expresiones a una variable definida por el usuario. Las expresiones pueden usar
una combinación de operandos, operadores y funciones.

LET target-variable = expresión


LET #total = #total + #salary

Mostrar y mostrar comandos

Los siguientes comandos se utilizan para la depuración. Ellos escribirán las


declaraciones en el archivo de registro. Las instrucciones DISPLAY escribirán solo
una variable en cada línea. Esta variable puede contener una máscara de edición.
Para detener un control de carro al final de la línea, use una opción noline.

DISPLAY {variable | literal} [edit_mask] [noline]


Display 'Total Salary = ' noline
Display #total

El uso de un comando MOSTRAR permitirá que se escriban múltiples literales o


variables en la misma línea. Editar máscara también está permitido formatear
variables.

SHOW {variable | literal} [edit_mask] [{variable | literal} [edit_mask]…]


Show 'Total Salary = ' #total ' Total Employees = ' #totemp

Comandos del programa SQR

Los siguientes comandos SQR utilizados en las conjugaciones con comandos SQL
permitirán escribir un programa que pueda modificar, manipular y formatear los
requisitos de datos.

Comentarios

Para incluir comentarios en su programa, use el signo de exclamación (!). Los


comentarios se utilizan para documentar su programa.
Comando DO

Este comando se utiliza para llamar a un procedimiento. El procedimiento debe


existir dentro del SQR o un archivo SQC incluido. Cuando el procedimiento se haya
completado, volverá a la siguiente declaración. Se puede pasar una lista de
parámetros al procedimiento. Cada variable está separada por una coma.

DO procedure_name [(parm_list)]
Do Get-Name

Comando IF

Este comando se usa para pruebas condicionales de variables. Todos los comandos
IF terminan con un END-IF. Los comandos ELSE se ejecutan si la condición es
falsa. SQR utiliza los operadores lógicos de =, <, <=,> =,>, <> y los operadores
booleanos "and", "or", y "not".

If condition
{When condition is true}
[Else
{When condition is false}]
End-If
If #total > 50,000
Let $overflag = 'Y'
Else
Let $overflag = 'N'
End-if

Comando de evaluación

El comando EVALUAR es otra forma de realizar pruebas condicionales cuando hay


varios procesos que deben realizarse en función del valor. Cada comando de
EVALUACIÓN debe terminar con una EVALUACIÓN DE FINALIZACIÓN. Cada
variable se evalúa contra la variable cuando o literal. Las declaraciones de condición
pueden incluir operadores lógicos (=, <, <=,> =,>, <>), pero los operadores
booleanos no están permitidos. Un comando OR se puede simular teniendo
múltiples comandos WHEN sin ningún otro comando SQR entre ellos. Una
condición WHEN-OTHER capturará todos los demás valores. Agregue un comando
BREAK para salir de la instrucción EVALUATE.

EVALUATE {literal | variable}


WHEN condition_1
{When condition_1 true}
[Break]
WHEN condition_2
{When condition_2 true}
[Break]
WHEN-OTHER
{When none of the other conditions are true}
END-EVALUATE
Evaluate &Status
When 'A'
Let #activecount = #activecount + 1
When 'L'
Let #leavecount = #leavecount + 1
When-Other
Let #termcount = #termcount + 1
End-Evaluate

Comando WHILE LOOP

Este comando continuará procesando sentencias cuando la condición sea


verdadera. Un WHILE LOOP se termina con un END-WHILE. Se puede agregar un
comando BREAK para salir del WHILE LOOP para otras condiciones, además de la
condición WHILE.

WHILE condition
{Statements when condition is true}
END-WHILE
While &emplid = $prevemplid
Do Get-Salary-Data
Do Get-Tax-Data
End-While

Comando BREAK

El comando BREAK se puede usar para salir de las declaraciones EVALUATE y


WHILE.

BREAK
Evaluate &Status
When 'A'
Let #activecount = #activecount + 1
Break
When 'L'
Let #leavecount = #leavecount + 1
Break
When-Other
Let #termcount = #termcount + 1
End-Evaluate
Comando EXIT-SELECT

Estos comandos son similares a los comandos BREAK, pero se usan para salir de
una instrucción SELECT de SQL.

EXIT-SELECT
Let #count = 0
Begin-select
Select
Emplid
Name
If #count =100
Exit-select
Else
Let #count = #count + 1
End-if
From ps_personal_data
End-Select

Comando GOTO

Este comando se ramificará a una sección del programa.

GOTO {Label}
Begin-Procedure GetHighSalary
If #total < 50,000
GoTo GetHighSalaryExit
End-if
GetHighSalaryExit:
End-Procedure GetHighSalary

Comando de parada

El comando STOP terminará un comando SQR. Al agregar la opción de silencio a


su código, suprimirá el archivo de Rastreo.

STOP [Quiet]
If #activecounts < 1
Show 'No active employees to process'
Stop
End-if

Funciones y comandos de formato entregados

PeopleSoft ofrece muchos comandos y funciones que se utilizan para la


manipulación de datos. Esta sección mostrará algunas manipulaciones de cadena,
conversiones de fecha y funciones numéricas.
Función STRING

La función STRING permite la concatenación de dos o más campos o variables


mediante el uso de un delimitador común.

STRING {String1 | Variable1} {String2 | Variable2} … {StringN | VariableN}


BY {Delimiter}
INTO Results_String
String &LastName &FirstName by ', ' into $FullName

Funciones SUBSTR y UNSTRING

Hay dos funciones principales que separan una parte de una cadena. SUBSTR
requiere un punto de partida y la cantidad de caracteres que se están extrayendo.

Let $NewString = SUBSTR({String|Variable}, {Starting Position}, {Length})


Let $FirstInitial = SUBSTR(&FirstName, 1, 1)

UNSTRING separará las variables de cadena en múltiples cadenas dependiendo


del delimitador

UNSTRING {String|Variable}
BY {Delimiter}
INTO {Results_String1 … Results_StringN}
Unstring $FullName by ',' Into $FirstName $LastName

Función de longitud

La función LENGTH devolverá la longitud de la cadena o variable, incluidos los


espacios.

Let Numeric = LENGTH({String|Variable})


Let #LastNameLen = Length(&LastName)

Funciones de edición

Para formatear una cadena, use la función EDITAR. Esto se usa normalmente en la
función IMPRIMIR, pero a veces será necesario formatear la cadena para la salida.

Let String = EDIT({String|Variable}, edit_mask)


Let $SSN = EDIT(&SSN, 'XXX-XX-XXXX')

Funciones RTRIM y LTRIM

Para eliminar caracteres no deseados utilice las funciones RTRIM y LTRIM. Se


eliminarán los caracteres de los lados derecho e izquierdo de la cadena.
Let NewString = {Rtrim|LTrim} ({String|Variable}, UnwantedCharacter)
Let $JobCode = Rtrim(&Jobcode, ' ')
Let $Sal = Ltrim($Total, '$')

Funciones RPAD y LPAD

Para agregar caracteres a una cadena, use las funciones RPAD y LPAD. Esto
permite que todas las cadenas tengan la misma longitud.

Let Newstring = {Rpad|Lpad} ({String|Variable}, Max_length, Character)


Let $FullName = Rpad(&FullName, #largestName, ' ')
Let $Sal = Lpad($EmpSal, 7, '0')

Comandos de mayúsculas y minúsculas

Para asegurarse de que sus variables de cadena sean todas del mismo caso, use
los comandos en mayúsculas o en minúsculas.

{UPPERCASE|LOWERCASE} String
Uppercase $FullName
Lowercase $JobDescr

Función TO_CHAR

Para cambiar una variable numérica de un número a una cadena, use la función
TO_CHAR.

Let String = TO_CHAR(Numeric)


Let $Salary = To_Char(#Totalary)

Función TO_NUMBER

Para cambiar una variable de cadena a un número, use la función TO_NUMBER.


Esto solo funcionará si la variable de cadena contiene solo caracteres numéricos.

Let Numeric = TO_NUMERIC({String|Variable})


Let $AnnualSal = To_Numeric(&Annual_Sal)

Aritmética básica

Hay dos formas de hacer aritmética básica. SQR utiliza los operadores estándar con
el comando LET ("+", "-", "*", "/").

Let Numeric = {Numeric1|Variable1} Operator1 {Numeric2|Variable2}


[Operator2 {NumericN|VariableN}]
Let #Total = #Total + #EmplSal
Let #AvgSal = #Total / #TotCount
Funciones aritméticas

SQR también tiene las siguientes funciones: AGREGAR, DESTACAR,


MULTIPLICAR y DIVIDIR. El nuevo valor se almacena en el campo Objetivo. Estas
funciones permiten argumentos opcionales para redondear y probar errores.

Add {Numeric|Variable} TO Target_Numeric[Round = nn]


Subtract {Numeric|Variable} from Target_Numeric [Round = nn]
Multiply {Numeric|Variable} Times Target_Numeric [Round = nn]
Divide {Numeric|Variable} into Target_Numeric [On-Error = {High|Zero}] [Round = nn]
Add #EmplSal to #Total
Subtract 1 from #TotEmp
Multiply #hours times #TotEmp Round=2
Divide #TotCount Into #AvgSal On-Error=Zero Round=2

Función ROUND

La función ROUND se utiliza para especificar la precisión decimal. Esto se utiliza


con los cálculos del comando LET. La precisión puede ser de 0 a 38 posiciones a la
derecha del punto decimal. Cualquier valor 5 o superior se redondeará al siguiente
valor dependiendo de la precisión decimal.

Let Numeric = ROUND({Numeric|Variable}, Precision)


Let #AvgSal = Round(#Total/#TotCount, 4)

Función TRUNC

La función TRUNC elimina todos los dígitos más allá del valor de precisión.

Let Numeric = TRUNC({Numeric|Variable}, Precision)


Let #Amount = Trunc(#hours * #rate, 2)

Funciones ISNULL e ISBLANK

Para verificar si hay una variable vacía, use la función ISNULL. Esta función se
puede utilizar en cadenas o fechas. Devolverá un valor Booleon, 1 para verdadero
y 0 para falso. Esto es bueno para usar al verificar entradas válidas. Una cadena se
considera vacía si la longitud es cero. Una fecha se considera vacía si contiene
valores nulos.

ISNULL({String|Date})
If ISNULL($Input_date)
Show 'No Date Entered'
Stop
End-if
Para verificar el espacio en blanco use la función ISBLANK. Los espacios en blanco
pueden ser nulos, tabulación, control de carro, avance de línea y caracteres de
avance de página.

ISBLANK({String|Date})
If ISBLANK($Input_Name)
Show 'No Name Entered'
Stop
End-if

Función STRTODATE

Para convertir una cadena en una fecha, use la función STRTODATE. Esta función
devolverá la representación de fecha de la cadena en función de la máscara de
edición. Si no se especifica una máscara de fecha, entonces el valor predeterminado
usará SQR_DB_DATE_FORMAT entregado en el archivo PSSQR.INI.

Let Date = STRTODATE(String [, edit_mask])


Let $YearEndDate = STRTODATE ('12/31/2007', 'MM/DD/YYYY')

Función DATETOSTR

Para convertir una fecha en una cadena, use la función DATETOSTR. Esto utiliza
los mismos valores predeterminados de fecha.

Let String = DATETOSTR(DATE [, edit_mask])


Let $Birthdate = DATETOSTR(&Birthdate, 'MM/DD/YYYY')

Función DATENOW

Para obtener la fecha de hoy, use la función DATENOW. Devolverá la fecha del
sistema operativo.

Let String = DATENOW()


Let $Totay = DATENOW()

Función DATEADD

Para agregar a una fecha, use la función DATEADD. Esta función permite que las
siguientes unidades de fecha (año, trimestre, mes, semana, día, hora, minuto o
segundo) se agreguen o resten de una fecha determinada.

Let String = DATEADD(Date, date units, amount)


Let $AddTenYears = DateAdd($Today, 'year', 10)
Función DATEDIFF

Para encontrar la diferencia entre dos fechas dadas, use la función DATEDIFF. Esta
función devolverá el valor en las siguientes unidades de fecha (año, trimestre, mes,
semana, día, hora, minuto o segundo).

Let Numeric = DATEDIFF(Date1, Date2, date units)


Let #age = DATEDIFF($Today, $Birthdate, 'year')

SQR Arrays

Para guardar varias filas del mismo tipo de datos, es mejor trabajar con matrices
SQR. Las matrices son unidades de almacenamiento temporal de datos que se
utilizarán dentro del programa SQR. Los siguientes comandos se utilizan para
trabajar con arrays: CREATE-ARRAY, CLEARARRAY, GET, PUT, ARRAY-ADD,
ARRAY-SUBTRACT, ARRAY-MULTIPLY y ARRAY-DIVIDE. El primer paso es
crear una matriz vacía con los campos requeridos.

Create-Array Name={ArrayName}
Size= {number}
Field = {name:type[:occurs][=initial_value]}
Clear-Array Name={ArrayName}

Este ejemplo creará una matriz, cargará datos y luego borrará la matriz.

Create-Array Name=Employees_by_Dept
Size=12
Field=Month:Char
Field=DeptCnt:3
Put 'Jan' 4 6 10 Into Employees_by_Dept(0)
Month DeptCnt(0) DeptCnt(1) DeptCnt(2)
Put 'Feb' 7 2 4 Into Employees_by_Dept(0)
Month DeptCnt(0) DeptCnt(1) DeptCnt(2)

Put 'Dec' 5 4 5 Into Employees_by_Dept(0)
Month DeptCnt(0) DeptCnt(1) DeptCnt(2)
Clear-Array Employees_by_Dept

Impresión

El comando IMPRIMIR (PRINT) se puede usar para controlar la forma en que el


usuario final debe ver la información. Estos comandos pueden usarse dentro de un
párrafo (impresión explícita) o adjuntarse al SQL (impresión implícita). El comando
IMPRIMIR utiliza tres coordenadas (línea, columna, longitud), que son opcionales,
para determinar dónde colocar la información en el informe. Estas coordenadas
pueden ser fijas o relativas a otra posición, utilizando un signo más o menos. EDIT-
MASK se puede utilizar para formatear el campo que se muestra.
Print {Variable|Literal} ([line][, [column][,[length]]]) format edit-mask
Print 'My Company' (1,1,10) Center

Opciones de formato

Hay diferentes opciones de formato disponibles. No todas las opciones de formato


son compatibles entre sí o con algunas impresoras. Aquí hay algunas opciones de
uso común.

 Bold Hace que el valor esté en negrita


 Box Crea un cuadro alrededor del valor.
 Center Centra el valor en toda la página
 Fill Rellena el búfer de longitud con el carácter.
 Shade Coloca un cuadro sombreado alrededor de los datos.
 Money usa la máscara de edición de dinero
 Number Utiliza la máscara de edición de número estándar
 Underline Subraya el valor
 Wrap Envuelve los caracteres cuando es un campo de texto largo

EN EL ALMUERZO O DESCANSO (ON-BREAK)

Los programas SQR pueden imprimir datos desde las sentencias SELECT. Esto se
hace usando la función ON-BREAK. La función ON-BREAK tiene las siguientes
opciones que se utilizan para determinar cómo imprimir el campo.

 Print = Always imprime el valor del campo


 Print = Change solo se imprime si el valor del campo cambia
 Print = Change / Top-Page Inicia una nueva página cuando cambia el valor
 Skiplines = nn identifica cuántas líneas omitir
 Procedure = procedure-name Llama a un procedimiento
 After = procedure-name Llama al procedimiento después de un descanso
 Before = procedure-name Llama al procedimiento antes de un descanso
 Level Determina el nivel de descanso

El siguiente es un ejemplo de cómo se puede usar la función On-Break en un


programa SQR. La empresa se utiliza como un salto de página, de modo que todos
los empleados de una empresa se muestren en la misma página.

Begin-Select
Company (,1,4) On-Break Print=Change/Top-Page
Emplid (,15,10)
Name (, 35,40)
From Ps_Employees
Order by Company, Name
EDITAR MÁSCARA

EDIT-MASK permite el formateo de la variable que se está imprimiendo. Hay tipos


específicos de máscaras según el tipo de campo.

Enmascaramiento de texto

 X ocupa el lugar de cada personaje del campo


 B Insertará un espacio en lugar del carácter.
 ~ Se salta el valor del personaje en el campo
 / Le dice al sistema que use los caracteres después de una barra invertida
como literal
 | Se utiliza para concatenar diferentes basks.
 Enmascaramiento numérico
 9 imprimirá el número del campo, cero rellenar con el decimal correcto, y
 espacio de relleno a la izquierda.
 8 imprimirá el número del campo, cero rellenos a la derecha del decimal,
 recortar espacios en blanco, y la izquierda justificar el número.
 0 imprimirá el número del campo y el cero se llenará a la izquierda.
 . El punto se agregará cuando se imprima el campo.
 , la coma se agregará cuando se imprima el campo.
 $ Imprimirá el número y un signo de dólar a la derecha del número. El uso de
un símbolo de dólar se imprimirá en una posición fija; el uso de más de un
símbolo de dólar se imprimirá a la izquierda del número.
 B Imprimirá el número a menos que sea un cero, en cuyo caso se convertirá
en un espacio en blanco.

Enmascaramiento de fecha (mayúsculas y minúsculas)

 MM mes de dos dígitos (01–12)


 MON Abreviatura de tres caracteres del mes.
 MES Nombre completo del mes
 Día Nombre del día
 DD Día de dos dígitos del mes (01–31)
 D Día de la semana (1–7)
 YYYY año de cuatro dígitos
 YY Año de dos dígitos (se supone el siglo actual)
 RR año de dos dígitos (se calcula el siglo)
 Q Trimestre del año (1–4)
 WW Semana del año (1–53)
 W semana del mes (1–5)
 HH Hora del día reloj de 24 horas.
 Minutos de MI (0–59)
 Segundos SS (0–59)
 AM PM indicador de tiempo
 B agregará un espacio en blanco
Estas son solo algunas de las máscaras de edición disponibles. Para obtener una
lista completa, vaya a PeopleSoft Library People Books de Oracle, SQR Language
Reference, Copyright © 1988–2005 PeopleSoft, Inc. La Tabla 10-1 proporciona
ejemplos de cómo usar máscaras.

PeopleSoft entrega un repositorio de informes para ver todos los informes y


procesos a través de las aplicaciones de PeopleSoft. Hay muchas opciones para
mostrar automáticamente su salida (Web, CSV, texto, PDF). Para obtener
capacidades más amplias para administrar la salida de SQR, vaya a
http://blog.greysparling.com/2005/08/reportdistribution-with-3rd-party.html.

Gráficos

SQR admite diferentes objetos gráficos que permiten el uso de cuadros, gráficos,
etiquetas e imágenes. Estos tipos de objetos mejoran los informes y formularios.
Tenga en cuenta que no todas las impresoras admitirán estas funciones. El control
de la posición de un gráfico en una página puede ser complicado, ya que el SQR
comenzará en la esquina superior izquierda después de haber impreso el gráfico.
SQR entrega diferentes comandos para ayudar a crear estos objetos gráficos.
DECLARAR CARTA

Este comando definirá todas las características básicas del gráfico. Los tipos de
gráficos disponibles son gráficos de líneas, gráficos de barras, histogramas, gráficos
de área, diagramas de dispersión XY y gráficos de alta-baja-baja.

Begin-Setup
Declare-Chart {Chart Name}
Title={'Chart Title'}
Type = {Line|Pie|Bar|Stacked-Bar|100%-Bar|Overlapped-Bar|
floating|Bar|Histogram|Area|Stacked|100%-Area|XY-Scatter-Plot| High-LowClose}
Legend = {YES|NO}
Legend-Placement = {Center-Right|Center-left|Upper-Right|Upper-Left|
UpperCenter| Lower-Right | Lower-Left | Lower-Center}
X-Axis-Label= {'Label Name'}
Y-Axix-Label = {'Label Name'}
End-Declare
End-Setup

Lo siguiente declarará un gráfico de barras.


Begin-Setup
Declare-Chart Employees_By_Department
Title = 'Count of employees by Department'
Type = STACKED-BAR
Legend = YES
X-Axis-Label = 'Months'
Y-Axis-Label = '# of Employees'
End-Declare
End-Setup

TABLA DE IMPRESIÓN

Después de que se haya declarado un gráfico, se puede hacer referencia a él dentro


de la función PRINT-CHART. Normalmente, una matriz de datos se utiliza para
rellenar el gráfico y con estos datos se puede crear un Gráfico de impresión.

Print-Chart {ChartName} (X [,Y])


Data-Array = {ArrayName}
Data-Array-Row-Count= number
Data-Array-Column-Count = number
Data-Array-Column-Labels = {None|ArrayName|Label}
Sub-title = {Subtitle}
Print-Chart Employees_By_Department (+5 ,10)
Data-Array = Employees_by_Dept
Data-Array-Row-Count= 12
Data-Array-Column-Count = 3
Data-Array-Column-Labels = (Dept1, Dept2, Dept3)
Sub-title = 'By Month'
DECLARAR IMAGEN

Las imágenes pueden personalizar su documento, como los logotipos de la empresa


o las imágenes que representan los datos del documento. Para utilizar una imagen,
debe guardarse en el directorio SQRDIR o debe especificarse una ruta completa.
Esta imagen se puede utilizar más adelante dentro de un comando IMPRIMIR
IMAGEN.

Declare-Image ImageName
[Type = {EPS- FILE |HPGL- FILE |GIF- FILE |JPEG- FILE |BMP- FILE }]
[Image-Size = (width, height)]
[Source = File_name]
End-Declare

Declare-Image Company_Logo
Type = JPEG-FILE
Image-Size = (10, 20)
Source = 'My_Company_Logo.JPG'
End-Declare

IMPRIMIR IMAGEN

PRINT-IMAGE utilizará la información de DECLARE-IMAGE para imprimir la


imagen en el documento. Las definiciones de tipo, tamaño de imagen y fuente se
pueden sobrescribir en el comando PRINT-IMAGE.

Print-Image ImageName (row, column)


[Type = {EPS- FILE |HPGL- FILE |GIF- FILE |JPEG- FILE |BMP- FILE }]
[Image-Size = (width, height)]
[Source = File_name]

Print-Image Company_Logo (+4, 30)


Image-Size = (15, 30)

Lenguaje de consulta estructurado

El lenguaje de consulta estructurado (SQL) se utiliza dentro del programa SQR para
extraer datos de la base de datos. Para usar estos comandos, uno necesita conocer
sus tablas dentro de la base de datos. Todos los ejemplos en esta sección harán
referencia a la base de datos de HRMS de PeopleSoft. Todos los comandos SQL,
incluidas las columnas, deben comenzar con justificación a la izquierda. Cualquier
comando SQR incluido dentro del comando SQL debe estar sangrado; de lo
contrario, se producirá un error. Los comandos principales son BEGIN-SELECT y
BEGIN-SQL.
COMENZAR-SELECCIONAR (BEGIN-SELECT)

Este comando se utiliza para extraer datos de la base de datos. Aquí es donde se
identifican las columnas para su uso dentro del programa SQR. Cada columna, a
menos que se especifique, comenzará con una "&" y luego el nombre de la columna.
Cada columna está alineada a la izquierda sin una coma.

siguiendo. Si más de un campo tiene el mismo nombre de columna de la base de


datos, debe agregar un sinónimo que comience con "&".

El siguiente ejemplo es leer dos tablas, obtener tres variables de estas tablas y usar
el comando SQR DO para llamar a otro párrafo. Luego imprimirá las variables
recuperadas.

Begin-Procedure Get-Empl-Job
Begin-Select
A.EMPLID
A.NAME &NAME
B.JOBCODE &JOBCDE
Do Get-Job-Desc
FROM PS_PERSONAL_DATA A,
PS_JOB B
WHERE ……
END-SELECT
Print &A.Emplid (+1,1)
Print &Name (+0, 10)
Print &Desc (+0, 40)
End-procedure Get-Empl-Job

COMENZAR-SQL

Este comando se utiliza para todos los demás comandos SQL (INSERTAR,
ACTUALIZAR, BORRAR, etc.). Estas declaraciones se utilizan para manipular los
datos en la base de datos. Debe tener el acceso adecuado a la base de datos para
usar estas declaraciones SQL.

Begin-SQL on-error={procedure_name or STOP|WARN|SKIP}


{SQL statements}
End-SQL

Este ejemplo está actualizando el campo ubicación_trabajo en la tabla de trabajos


donde la ubicación_trabajo actualmente es igual a "BuildingA".

Begin-Procedure Update-location
Let $location = 'BLDG1'
Begin-SQL
UPDATE PS_JOB
SET WORK-LOCATION = $location
WHERE WORK_LOCATION = 'BuildingA'
End-SQL
End-procedure Update-location

Filas Fechadas Efectivas

Esta aplicación de PeopleSoft utiliza filas con fecha efectiva en todo el historial de
mantenimiento del sistema. Esto permite el procesamiento basado en ciertas
fechas. Las filas con fecha futura se pueden ingresar por adelantado y no afectan la
forma en que se procesan los datos en la fecha actual.

El historial se puede recuperar en base a ciertas fechas para fines de auditoría. Al


recuperar estos registros para los informes, deseará seleccionar solo la fila más
actual para el período de tiempo para el que está informando. La tabla PS_JOB se
utiliza para almacenar datos de trabajo para los empleados. El siguiente ejemplo le
mostrará cómo obtener la fila de trabajo actual.

Begin-Select
A.EMPLID
A.NAME &NAME
B.JOBCODE &JOBCDE
Do Get-Job-Desc
FROM PS_PERSONAL_DATA A,
PS_JOB B
WHERE A.EMPLID = B.EMPLID
AND B.EFFDT = (SELECT MAX(EFFDT) FROM PS_JOB B1
WHERE B.EMPLID = B1.EMPLID
AND B.EMPL_RCD = B1.EMPL_RCD
AND B1.EFFDT <= $DATEIN)
AND B.EFFSEQ = (SELECT MAX(EFFSEQ) FROM PS_JOB B2
WHERE B.EMPLID = B2.EMPLID
AND B.EMPL_RC = B2.EMPL_RCD
AND B.EFFDT = B2.EFFDT)
END-SELECT

Variables de consulta dinámicas

Las variables de consulta dinámicas permiten que partes de la sentencia de SQL se


creen antes de usarla dentro del SQL. La declaración se almacena como una
variable de cadena y, cuando se utiliza, se muestra con corchetes alrededor de
[declaración $]. Estas variables dinámicas le permiten crear sentencias SQL
basadas en la entrada del usuario. Lo siguiente solicitará información sobre cómo
deben seleccionarse los datos. Esta información se utilizará para construir una
cláusula Where.
Let $Quote = '"'
Input $choice "Do you want employee by State (S) or Company (C)'
If $Choice = 'S' then
Input $State 'Enter the two character State:'
Let $Where = 'State = ' || $quote || $State || $quote
Else
Input $Company 'Enter the Company Code:'
Let $Where = 'Company = ' || $quote || $Company || $quote End-if;

Begin-Select
Emplid
Name
From PS_EMPLOYEES
Where [$Where]
End-Select

Ejecutando un SQR

Para ejecutar un SQR desde Windows, necesita tener permisos para todas las
tablas que necesita su programa en la base de datos. Si está utilizando una
herramienta SQR, como el corredor SQR, siga su proceso de configuración para
ejecutar SQR. Puede usar ejecutables entregados, que normalmente se almacenan
en su servidor. La siguiente ilustración muestra todos los campos disponibles que
deben completarse en función de su configuración.

Ejecutar SQR desde un archivo bat

Los SQR también se pueden ejecutar creando un archivo bat, que se utilizará en
una línea de comandos o mediante un script. Para obtener una explicación más
detallada de las opciones que utilizan el archivo bat, vaya a
http://www.ontko.com/sqr/sqrcard6.html#SQR_COMMAND_LINE.
Ejecutando SQR a través del Programador de Procesos

Para ejecutar un SQR a través del programador de procesos se requiere configurar


una página y un componente. Consulte el Capítulo 5 para obtener información sobre
cómo crear una página y un componente, agregarlos a un menú y configurar
permisos. Después de crear un SQR y guardarlo en las bibliotecas de PeopleSoft
correctas, debe definirse una definición de proceso.
creado.

Para configurar la definición de proceso dentro de PeopleSoft, siga estos pasos:

1. Dentro de PeopleSoft HRMS, seleccione PeopleTools | Programador de


procesos | Procesos. Añadirás un nuevo proceso. El sistema mostrará el
cuadro Agregar definición de proceso. El tipo de proceso será SQR Report.
El nombre del proceso será el mismo que el nombre de su programa. Tenga
en cuenta que este nombre no debe tener más de ocho caracteres de
longitud. En las siguientes ilustraciones, puede ver que hay tres páginas que
pueden configurarse. Solo se requieren las páginas de definición de proceso
y opciones de definición de proceso; los otros son opcionales.
2. Complete la descripción y otros requisitos en la página Definición de proceso.
3. En la página Opciones de definición de proceso, seleccione un servidor y
configure la seguridad conectándolo a un componente que contenga su
página de control de ejecución.
4. Haga clic en Guardar para guardar la definición. Ahora puede ir a su menú y
ejecutar su programa SQR.

Ejecutando SQR desde PeopleCode

A veces será necesario iniciar un SQR dentro de PeopleCode. Esto permitirá que el
cliente ejecute un trabajo o lo activará si se cumplen ciertos criterios. Esto se puede
hacer utilizando las funciones de PeopleSoft entregadas: CreateProcessRequest ()
y Schedule (). CreateProcessRequest (): Process_Type y Process_Name necesitan
dos parámetros necesarios. Para Process_Type use "Informe SQR" para un solo
SQR o "PSJob" para múltiples SQR que se hayan programado como un trabajo.
Nombre_proceso es el nombre de su SQR o trabajo, que se ha configurado con la
Definición de proceso. Lo siguiente proporcionará un ejemplo de cómo se debe
configurar PeopleCode para ejecutar un solo programa SQR.

Local ProcessRequest &SQRrequest;


! Create the process Request object
&SQRrequest = CreateProcessRequest("SQR Process", "EMPLRPT1");
&SQRrequest.RunControlID = "MYRUNCNTRL_ID";
&SQRrequest.SetOutputOption("Web", "PDF", "", "EMPLRPRT1");
! With the information stored above. The Schedule method can be used.
&SQRrequest.Schedule();
If &SQRrequest.status <> 0 then
! An error has occurred
End-if;
Usando archivos SQC

PeopleSoft entrega muchos archivos SQC con su software. Estos son


procedimientos y declaraciones de uso común que se pueden usar en cualquier
programa SQR. Los archivos SQC se agregan a su programa usando el operador
#include. El estándar de nombres que no es de PeopleSoft para los archivos de
inclusión es .inc, pero PeopleSoft usa SQC como su convención de nombres. El
archivo de inclusión suele ser el origen de un error al realizar la depuración, y el
desarrollador tendrá que abrir el archivo de inclusión para leer todo el procedimiento
para realizar la depuración. Al igual que los archivos SQR, los archivos de inclusión
deben residir en las bibliotecas correctas.

Su programa puede utilizar cualquier procedimiento incluido en estos archivos SQC.


People Books ofrece una lista completa de los archivos SQC entregados. La Tabla
10-2 describe los archivos SQC utilizados comúnmente (tomado del manual de la
clase de capacitación SQR de PeopleTools 8.1,Apéndice E).
Funciones de archivo

Los programas SQR son muy útiles para leer y escribir archivos externos. Es una
buena herramienta para crear interfaces con sistemas externos. SQR incluye siete
comandos para ayudar a procesar archivos externos: CERRAR, BORRAR, EXISTA,
ABRIR, LEER, RENOMBRAR y ESCRIBIR.
CERRAR

Este comando es opcional a menos que se abran más de 256 archivos, pero es una
buena práctica de codificación cerrar los archivos siempre antes de finalizar el
programa.

CLOSE {filenum} Close 10


Close 20

BORRAR

Este comando eliminará el archivo de su ubicación. Esta es una buena idea cuando
quiere asegurarse de que un archivo de entrada no se procese dos veces. Si la
eliminación se realiza correctamente, el estado del archivo será 0.

Delete(filename)
#status = delete($bonus_in)

EXISTE

Este comando comprobará que el archivo exista antes de continuar con el proceso.
Una devolución de 0 le dice que el archivo existe.

Exists(filename)
#status = exists($bonus_in)

ABIERTO

Antes de poder leer o escribir un archivo, debe abrirlo. Dentro de este comando, se
establece un nombre de archivo y se adjunta a un número de archivo, tipo de archivo
(lectura o escritura), longitud del archivo y estado del archivo. Se puede abrir un
máximo de 256 archivos a la vez. El nombre del archivo debe estar completamente
calificado, incluida una ruta completa. El archivo puede se puede abrir de tres
formas diferentes. For-Reading solo leerá los datos y los procesará de forma
secuencial. For-Writing creará un nuevo archivo de salida o sobrescribirá un archivo
existente en la misma ubicación. For-Append agregará datos al final de un archivo
existente o creará un nuevo archivo. Las longitudes de los registros se pueden
establecer como fijas o pueden variar en tamaño, pero se deben establecer en el
registro más largo escrito. El estado permite la verificación de errores asegurando
que el archivo está abierto. Este valor debe ser numérico; cero indica éxito y -1
indica fracaso.

OPEN {filename} As {filenum}


FOR-READING | FOR-WRITING | FOR-APPEND
RECORD = {length} [:FIXED | VARY]
STATUS = {variable}
OPEN 'C:\temp\datain.txt' as 10
FOR-READING
RECORD=80:FIXED
STATUS = #Datein10
If #Datain10 = -1
STOP QUIET
End-If

LEER

El comando READ leerá secuencialmente cada registro hasta que se alcance el


archivo final de la variable SQR # (establecido en –1). Al leer este comando,
consulte el número de archivo.

READ {filenum} into {variable}:{length}

Hay dos formas en que se pueden leer los datos. La primera es leer el archivo en
un solo campo y luego analizarlos en campos separados utilizando la función
SUBSTR.

While 1=1
Read 10 into $DataIn:80
If #END-FILE = 1
Break
End-if
Let $Emplid = Substr($DateIn,1,6)
Let $EmpName = Substr($DateIn, 10,40)
End-While

La segunda forma es leerlo en cada campo; solo tienes que tener en cuenta la
longitud total del registro. Si hay datos que no desea incluir, se les debe asignar una
variable ficticia.

While 1=1
Read 10 into $Emplid:6
$Dummy1:4
$EmpName:40
$Dummy2:30
If #END-FILE = 1
Break
End-if
End-While

REBAUTIZAR

Este comando cambiará el nombre de los archivos. Esta es otra forma de


asegurarse de que el archivo no se procese dos veces, pero los datos deben
conservarse con fines de copia de seguridad. Un retorno de 0 le permitirá saber que
el cambio de nombre fue exitoso.

Rename(filename1, filename2)
#status = Rename($bonus_in, $bonus_in_bkup)

ESCRIBIR

Este comando escribirá variables o literales en un conjunto de archivos en For-


Writing o ForAppend. Consulte el archivo utilizando el número de archivo.

WRITE {filenum} into {variable}:{length}


WRITE 20 from $EmpName:40
$EmpAddress:40

Funciones del compilador

Estas funciones se utilizan durante la fase de compilación. La fase de compilación


determinará si las declaraciones deben ser compiladas. Esto acelerará el
procesamiento, al probar la validez de los valores de entrada. Tampoco tiene que
ser removido para ser movido a producción.

#DEBUG

Esta función se utiliza con el indicador –Debug en la línea de comando. Prueba y


depura el código sin tener que sacarlo cuando el programa pasa a producción.

#DEBUG SQR command


#DEBUG show 'Total of employees is ' #empcount

#DEFINE

Esta función declara un valor para una variable de sustitución. Establece variables
estáticas para valores específicos. Estas variables no comienzan con un “$” o “#”.

#Define Variable Value


#Define Column1 5
#Define Male M

Directiva de compilación

Esta función solo compilará el código dentro de si la declaración cumple con los
criterios. Hay cinco directivas compiladas entregadas:

 #IF Si la declaración es verdadera, entonces compilará las siguientes


declaraciones. Sólo es simple si se permiten declaraciones. Puede ser
anidado hasta 10 veces.
 #ELSE Cuando la instrucción #IF es falsa, compilará estas declaraciones.
 #ENDIF finaliza la directiva #IF.
 #IFDEF Cuando una variable de sustitución se haya declarado con un
comando #DEFINE o ASK, estas declaraciones se compilarán.
 #IFNDEF Esto se compilará cuando no se haya declarado una variable de
sustitución.

#IF {literal|variable} operate {literal|variable}


#IFDEF substitution variable
#IFNDEF substitution variable
begin-setup
ask mailtype 'Home or Mail or None(H,M,N)'
end-setup
begin-procedure Main
#if {mailtype} = 'H'
...code for H here
#else
#if {mailtype} = 'M'
...code for M here
#else
#if {type} = 'N'
...code for N here
#else
show 'H, M or N not selected. Report will not run.'
stop
#endif
#endif
#endif
End-Procedure Main

#INCLUDE

Esta función muestra cómo todos los archivos SQC y .inc están disponibles para su
uso dentro del SQR. #INCLUDE Los archivos pueden estar al principio o al final del
programa, ya que se procesan durante la fase de compilación.

#INCLUDE '{SQC name | .inc name}'


#INCLUDE 'mysqc.sqc'

HTML

SQR entrega comandos que generarán y publicarán archivos e informes HTML.


Para proporcionar a su empresa tecnología actualizada y utilizar las capacidades
de Internet, esta sección lo ayudará a comenzar a producir estos informes y archivos
HTML. Si el informe que ha creado es justo lo que desea, pero desea publicarlo en
Internet o en una intranet, agregue –PRINTER: HT cuando ejecute el programa.
Esto convertirá automáticamente la salida en formato HTML 3.0. Dentro de su
programa SQR, puede mejorar su documento agregando títulos y colores de fondo
para el cuerpo y la barra de navegación usando el comando PRINT-DIRECT.

Print-Direct [Nolf]
[printer= {HTML}
Text
Print-Direct Printer=html '%%Title Monthly Department Counts'
To specify links use the target option.
Print-Direct Printer=html '%%Href target = "_top" http://www.myweb.com

Para usar etiquetas y características HTML más complicadas, incluya el archivo


html.inc. Esto permitirá el uso de procedimientos HTML entregados. Al comienzo de
un programa SQR se debe llamar a html_on.

Do html_on

Además, un gran tamaño de página debe asignarse dentro de un comando


DECLARE-LAYOUT para evitar saltos de página. Los saltos de página dentro del
HTML harán que se muestren datos erróneos. Los procedimientos HTML se deben
utilizar alrededor de las declaraciones de impresión para dar formato al documento
correctamente. La tabla 10-3 enumera algunos de los procedimientos disponibles
para formatear. Cada procedimiento requiere un final del procedimiento.

Ejemplo de un registro de encabezado

Do html_h2
Print 'Company Status Report' (1,1)
Do html_h2_end

Ejemplo de texto parpadeante

Do html_blink
Print 'This text blinks' (1,20)
Do html_blink_end

Ejemplo de crear un enlace

Do html_a ('HREF=myhome.html')
Print 'Go to myhome' (1,1)
Do html_a_end
Para publicar el informe o archivo SQR finalizado, trabaje con su webmaster para
establecer un directorio en el servidor donde se puedan copiar estos documentos.
Entonces cualquiera puede ir a esta ubicación y ver el informe.
http: //www.mycompanyserver/departmentcountreport.html

Programas de muestra

Este programa recuperará registros de datos personales y de trabajo e imprimirá la


información.
La siguiente ilustración muestra la página resultante usando este programa.
Este programa leerá un archivo, obtendrá información de la base de datos y
escribirá un nuevo archivo. También demuestra un simple manejo de errores si los
archivos no están disponibles y no se puede encontrar al empleado.
En las siguientes ilustraciones, puedes ver los nuevos archivos.

A veces es útil probar un programa SQR fuera de la aplicación PeopleSoft, pero


como desarrollador lo quiere listo para ejecutarse a través del programador de
procesos, para que no tenga que recodificar. Este programa mostrará cómo ejecutar
un programa que requiere valores de entrada.
Los resultados de ejecutar este programa se muestran en las siguientes
ilustraciones.
Resumen

En este capítulo, aprendió a usar el lenguaje SQR para recuperar, manipular y


escribir informes. Su integración con comandos SQL permite recuperar campos de
la base de datos. Se le ha introducido cómo agregar gráficos e imágenes a su
documento y cómo convertir su documento a HTML. Los programas SQR son
buenos para proporcionar informes informativos y obtener datos dentro y fuera de
la base de datos. Existen muchas herramientas gratuitas valiosas, como el uso de
SQR para crear hojas de cálculo XML. Otros enlaces útiles relacionados con SQR
se pueden encontrar en www.sqr-info.com.

You might also like