Funciones soportadas en el editor de formatos

A continuación se detallan las funciones que pueden ser utilizadas dentro de un elemento de tipo expresión.

En la explicación de la forma de utilización, se utilizará la siguiente sintaxis básica:

NombreFunción ( <parametro1>, [parametro2] … <parámetro n>)

En esta sintaxis los parámetros señalizados como <> son obligatorios. Por otra parte los parámetros enmarcados con [ ] son opcionales.

En la explicación de la sintaxis, se darán nombres entendibles y sencillos a los parámetros en el entendido de que durante la operación se deberán incluir valores o datos, según sea la necesidad.

Clasificación de Funciones

  1. Funciones de Fecha.
  2. Funciones de Manejo de Texto ("cadenas de caracteres/strings").
  3. Funciones de Manejo de Variables.
  4. Funciones Estadísticas.
  5. Funciones específicas GES Educativo.
  6. Otras funciones de Uso General.
Funciones de Fecha
Función
Utilización
Ejemplos
Year
Obtiene el año dentro de un valor tipo fecha
Sintaxis:
Year( <fecha> )

Year( FECHANACIMIENTO ) = 1998
Year( '15/11/2014' ) = 2014

MesTexto
Convierte un mes, de un valor numérico a Expresión Textual
Sintaxis:
MesTexto( <número de mes> )

 MesTexto( 2 ) = 'Febrero'

DiasTexto
Convierte un día, de valor numérico a Expresión Textual
Sintaxis:
DiasTexto( <día> )

DiasTexto( 12 ) = 'DOCE'

AnioTexto
Convierte un año, de un valor numérico a expresión Textual
Sintaxis:
AnioTexto( <año> )

AnioTexto( 2010 ) = 'DOS MIL DIEZ'
AnioTexto( Year( FECHANACIMIENTO ) ) = 1986

DiaSemana
Devuelve el nombre del día de la Semana
Sintaxis:
DiaSemana( <fecha> )

DiaSemana( FECHAACTUAL ) = Lunes

Time
Devuelve la hora actual
Sintaxis:
Time

Time = 04:30:33 pm

Date
Devuelve la fecha actual del sistema, es  decir, la fecha de la computadora donde se está ejecutando la aplicación. No confundir con la hora del servidor que pudiera ser diferente.
Sintaxis:
Date

Date = 28/03/2012

InDate
Obtiene los valores de día, mes y año, respecto a una fecha conocida.
Sintaxis:
InDate( <fecha>, <día / mes / año> ).

El segundo parámetro puede ser uno de los siguientes valores:

  1. 1 - año.
  2. 2 - mes.
  3. 3 - día.

Esta función es similar a Year, pero a diferencia de aquella, aquí podemos obtener cualquier valor (día, mes o año). 

InDate( '15/06/2008', 1 ) = 2008
InDate( '15/06/2008', 2 ) = 6
InDate( '15/06/2008', 3 ) = 15

IBDate
Devuelve un valor de fecha compatible con los estándares de Firebird / Interbase.  El resultado de esta función puede utilizarse para hacer llamados a consultas SQL, cuando se usa la función SelectSQL.
Sintaxis:
IBDate( <fecha> )

IBDate( '15/06/2008', 1 ) = '15-jun-2008'

FechaNumerica
Devuelve un valor de fecha en su representación numérica, el cual puede ser utilizado en comparaciones entre dos fechas difrentes.
Sintaxis:
FechaNumerica( <fecha> )

Usualmente un valor de fecha está representado con base en los conceptos dell calendario gregoriano, día, mes y año. Separados por un caracter o símbolo diferenciador tal como un guión o una diagonal. Esta combinación de elementos no puede ser utilizada para hacer comparaciones matemáticas entre dos fechas.
Obtiene el valor numérico para la fecha actual.

FechaNumerica( DATE ) = 5004406966667

El siguiente ejemplo hace la comparación entre la fecha de un pago y la fecha que originalmente fue pactada para su vencimiento, y muestra una leyenda descriptiva...

IF( FechaNumerica(FECHA_PAGO)> FechaNumerica(FECHA_VENCIMIENTO), 'Pagado fuera de tiempo', 'Pagado a tiempo' ) 

Funciones de Manejo de Texto ("cadenas de caracteres / strings")
Formato
Convierte un número a texto, de acuerdo a un formato estándar de Windows (tipo Excel).
Sintaxis:
Formato( <cantidad ó número>,<mascarilla> )

Formato( CANTIDAD, '#,###0.##00' )

Espacio
Separa un valor alfanumérico intercalando espacios o caracteres intermedios.
Sintaxis:
Espacio( <texto original>, [caracter a insertar] )

Si no especifica un caracter a insertar, por default se considera un espacio.

Espacio( 'MARIA' ) = 'M A R I A'
Espacio( 'MARIA', '++' ) = 'M++A++R++I++A'

LlenaCarDerecha / LlenaCarIzquierda

LlenaCarDerecha Llena con algún símbolo o Caracter a la derecha de un texto, hasta que el texto resultante alcance cierta longitud.

LlenaCarIzquierda Llena con algún símbolo a la izquierda de un texto, hasta que el texto resultante alcance cierta longitud
Sintaxis:
LlenaCarDerecha o LlenaCarIzquierda( <texto_original>, <símbolo>, <longitud que deberá alcanzar> )

LlenaCarDerecha( NOMBRE, '-', 25 )
Resultado: 'PEDRO PEREZ JUAREZ------'

LlenaCarIzquierda( NOMBRE, '*', 25 )
Resultado: '****PEDRO PEREZ JUAREZ'


ObtieneLinea
Obtiene una línea específica de un campo de texto con varias líneas.
Utilícese para extraer líneas de los conceptos de cobro concentrados, que contiene los datos de varios pagos en el mismo campo.

Sintaxis:
ObtieneLinea( <texto multilínea>, <línea requerida> )

ObtieneLinea( CONCEPTOS, 2 )

Str
Convierte una expresión de tipo numérico a tipo texto.
Sintaxis:
Str( <valor o campo de datos numérico> )

'A LOS ' + Str( DIAS ) + ' DEL MES DE ' +....
Resultado: 'A LOS 27 DIAS DEL MES DE '....

Pretty
Esta función convierte un texto en su representación similar pero en minúsculas con letras capitales. Opcionalmente, indique un número 1 (UNO) como segundo parámetro, para que cada inicial de palabra sea convertida en mayúscula.
Sintaxis:
Pretty( <texto original>, [primera inicial de palabras en mayúscula])

Pretty ( 'JOSE PÉREZ' ) = 'Jose pérez'
Pretty ( 'JOSE PÉREZ', 1) = 'Jose Pérez'

Copy
Esta función permite extraer alguna sección dentro un texto.
Sintaxis:
Copy( <texto original>, <iniciar en>, <cuantos caracteres> )

Copy( 'JOSE PÉREZ', 1, 4 ) = 'JOSE'
Copy( 'JOSE PÉREZ', 6, 5 ) = 'PÉREZ'

Derecha
Esta función permite extraer algún número de caracteres del lado derecho de un texto.
Sintaxis:
Derecha( <texto original>, <cuantos caracteres del lado derecho> )

Derecha( 'JOSE PÉREZ', 5 ) = 'PÉREZ'
Derecha( 'JOSE PÉREZ', 2 ) = 'EZ'

Lower
Esta función es similar a la anterior, pero convierte un texto en su representación en minusculas.
Sintaxis:
Lower( <texto original> )

Lower( 'JOSÉ PEREZ' ) = 'josé pérez'

Upper
Esta función convierte un texto en su representación similar pero en MAYÚSCULAS.
Sintaxis:
Upper( <texto original> )

Upper( 'Jose Pérez' ) = 'JOSE PÉREZ'

CantidadesATexto
Convierte una cantidad a su expresión textual
Sintaxis:
CantidadesATexto( <cantidad> )

CantidadesATexto(100.50) = 'CIEN PESOS 50/100 M.N.'

Nota: El resultado se adapta a las monedas de otros países como quetzales, reales, soles, etc.
LongitudTexto
Devuelve la longitud en caracteres de un campo de datos o cualquier expresión que haga referencia a una cadena de caracteres.
Sintaxis:
LongitudTexto( <campo de datos o un texto> )

LongitudTexto( 'PEDRO' ) = 5

LongitudTexto( NOMBREASIGNATURA ) = 13 
Cuando la asignatura sea "MATEMATICAS I")

Funciones de Manejo Variables
Var
Permite la utilización de variables nombradas. Pueden almacenarse valores tanto numéricos como alfanuméricos.

Sintaxis:
Var( <nombre de variable>, [<operacion>, <valor_para_almacenar> ] )

  1. Nombre de la Variable. Utilice un nombre descriptivo, de forma libre, pero recomendamos usar nombres que sean breves, pero suficientes y sin espacios.
  2. Operación. = (inicializar) para almacenar un valor, + (incremento) para incrementar un valor previamente almacenado y - (resta o sustracción) para decrementar el valor de la variable. Se puede omitir la operación para consultar el valor de la variable.
  3. Valor_para_almacenar. Es el valor que será aplicado a la variable según la operación. Solo tiene relación y debe adjuntarse cuando la operación es =, + o -

Existen varias posibilidades de uso de esta función u operadores:

- Para definir una variable y colocarle un valor inicial. Se utiliza el operador = (igual como inicialización).
- Para consultar y obtener el dato de una variable.  NO se  utilizan operadores, ni valores.
- Para incrementar o decrementar el valor de una variable. Se utiliza el operador + (como incremento) o - (para decrementar).


1. Define una variable llamada AdeudoTotal y la inicia con el valor numérico CERO.

Var( 'AdeudoTotal', '=', 0 )

2. A la misma variable AdeudoTotal le incrementará el valor por lo que contenga el campo ADEUDO.

Var( 'Adeudo', '+', ADEUDO )

Para obtener o imprimir el contenido de la variable Adeudo.

Var( 'Adeudo' )


VarNum o VarAlfa

Permite la utilización de variables alfanuméricas VarNum o variables alfanuméricas VarAlfa. Se permite usar hasta 100 variables con un índice relativo a la posición de memoria o variable que se desea utilizar.

Importante: Se ha comprobado que la legibilidad de un formato para efectos de mantenimiento a largo plazo se dificulta con el uso de estas funciones, por ello ya no está recomendado, deberá usar en su lugar la función Var.

Sintaxis:
VarNum o VarAlfa( <índice>, [acción], [valor_para_almacenar] )

  1. Indice = número del 1 al 100, indicando la posición de la variable numérica que utilizaremos.
  2. Acción = 1 (UNO) para almacenar un valor, 0 (CERO) para consultar un valor previamente almacenado y 3 (TRES) para incrementar el valor. Por default es (0) CERO.
  3. Valor_para_almacenar = Cuando Acción es 1 (UNO) ó 3 (TRES) y es el número que será almacenado en la variable.
En los ejemplos se utiliza la variable numérica 3:

Para almacenar un valor:

VarNum( 3, 1, NCALIFICACION )

Para consultar un valor:

De consultar valor = IF( VarNum(3,0) = 5, 'ROJO', '' )

ResetVars
Inicializa todos los espacios posibles para variables y las variables con valores nulos o vacíos. Con esto se pueden escribir valores e iniciar cualquier cálculo de forma segura.

Sintaxis:  ResetVars

El uso de esta función evita utilizar inicialización de variables de forma individual.

Al usar ResetVars cualquier variable definida con la función Var será eliminada de memoria.

ResetVars

El uso de ResetVars se recomienda dentro de la sección título, que se ejecuta antes de cualquier otra sección.
Funciones Estadísticas
Sum
(Suma)
Efectúa la sumatoria de un dato de tipo numérico.
Sintaxis:
Sum( campo de datos númerico )


SUM( CANTIDAD)

Average
(Promedio)
Efectúa el promedio de un dato de tipo numérico.
Sintaxis:
Average( campo de datos numérico )


Average( EDADES ) = 12

RecNo
Utilizado para mantener el conteo del los registros que se incluyen en algún listado o reporte.
Sintaxis:
RecNo( <Acción> )

Acción puede tener 3 valores:
0 – Reiniciar el contador (se utiliza en los encabezados y grupos).
1 – Incrementar el contador y devolver el nuevo valor (se utiliza generalmente en el detalle de un reporte).
2 – Devolver el nuevo valor sin incrementarlo.

El valor que devuelve es un valor textual o de tipo caracter, por lo cual no se podrán realizar operaciones aritméticas.


RecNoNumero Lo mismo que la función RecNo, solo que esta función devuelve valores numéricos o de tipo número, y por lo tanto SI PERMITE realizar operaciones aritméticas.


Max
Retorna el número máximo de una serie almacenada en un campo de datos.
Sintaxis:
Max( campo de datos numérico )

Max( ADEUDO )

Min
Retorna el número mínimo de una serie almacenada en un campo de datos.
Sintaxis:
Min(campo de datos numérico )

Min( ADEUDO )

Funciones específicas para datos de GES Educativo
DescripcionNivel
Devuelve la descripción completa de un nivel educativo de acuerdo a un código de nivel.
Sintaxis:
DescripcionNivel( <Código del Nivel> )

Nota: Para más información consultar el tema “Configuración de Niveles...”.

DescripcionNivel( NIVEL ) = 'Secundaria'.

Resultado: 'SECUNDARIA', siendo el código del nivel SEC.

CalculaEdad
Calcula la edad en años de una persona, requiere como parámetro la fecha de nacimiento del alumno.
Sintaxis:
CalculaEdad ( <fechanacimiento>, [fecha de referencia para calculo] ).

La fecha de referencia para cálculo es opcional, si no se especifica el sistema utilizará la fecha actual de la computadora para calcular la edad

CalculaEdad( '05/11/1993') = 20.

CicloEscolar
Devuelve los valores del ciclo escolar activo (también llamado ciclo escolar de trabajo), según el parámetro requerido.
Sintaxis:
CicloEscolar( <dato requerido> ).

Se puede solicitar alguno de los siguientes valores:

  • 'INICIAL' - Para solicitar el año inicial del ciclo.
  • 'FINAL' - Para solicitar el año final del ciclo.
  • 'PERIODO' - Para solicitar el periodo del ciclo.
  • 'DESCRIPCION' - Para solicitar la descripción del ciclo.
  • 'CODIGOCORTO' - Para solicitar el código corto del ciclo.
  • 'FECHAINICIAL' – Para solicitar la fecha de inicio del ciclo.
  • 'FECHAFINAL' – Para solicitar la fecha de término del ciclo.

CicloEscolar( 'INICIAL' ) = 2009
CicloEscolar( 'FINAL' ) = 2010
CicloEscolar( 'CODIGOCORTO' ) = '09-10'

GradoTexto
Devuelve la representación textual de un grado y su denominación respecto a un nivel educativo o sección.
Sintaxis:
GradoTexto( <nivel>, <grado> ).

GradoTexto( 'PRI', 2 ) = 'Segundo Año'
GradoTexto( 'PRE', 3 ) = 'Tercer Semestre'

CalificacionATexto
Convierte una calificación numérica a su representación textual

Sintaxis:
CalificacionATexto( <calificación>, [decimales], [separador de expresión decimal], [incluir CERO])

p.e. CalificacionATexto( 9.30, 2 ) = 'NUEVE PUNTO TREINTA'
CalificacionATexto( 8.20, 2, '/' ) = 'OCHO / VEINTE'

Observaciones: Por default esta función no incluye el valor CERO cuando la calificación tiene CERO DECIMAS (p.e. 8.0), si Usted desea que la incluya, coloque el parámetro [incluir CERO] con valor de 1, como en los ejemplos.

CalificacionATexto( 10.0, 1, 'PUNTO', 1 ) = 'DIEZ PUNTO CERO'
CalificacionATexto( 10.0, 2, ' : ', 1 ) = 'DIEZ : CERO'

ObtenerAdeudo
Permite incorporar en cualquier formato la cantidad de adeudos que presenta un alumno.
Sintaxis:
ObtenerAdeudo( <id alumno>, <detalle>, <año>, <mes>, <concepto> ).
  1. Id alumno - Número de Alumno (id interno).
  2. Detalle - 'CANT' si desea saber la cantidad, 'DET' si desea conocer todo los diferentes conceptos adeudados.
  3. Año, Mes y Concepto. Indique estos datos si desea filtrar por algún mes y concepto rezagados.

Nota. El identificador del alumno es un campo que está disponible en la mayoría de los reportes y se representa como NUMEROALUMNO.


ObtenerAdeudo( 100022, 'CANT' ) = 2500.00
ObtenerAdeudo( 100022, 'CANT', 2002, 2, 'COL' ) = 1900.00

HorarioCurso
Permite conocer el horario de un curso/clase particular
Sintaxis:
HorarioCurso( <código del curso>, [incluir_aula] )
  • Código del curso según fue registrado en el Catálogo - Este dato generalmente está disponible en los reportes relacionados como el campo de datos CODIGO_CURSO.
  • Incluir_aula - Este dato es opcional, indique con el valor numérico 1 si desea conocer también el aula en donde se impartirá la clase.


HorarioCurso( "A1022-B", 1) = 'Miércoles de 15:00 a 17:00, Viernes de 17:00 a 19:30 (Aula: 17 Laboratorio de Física'

Normalmente Usted dispondrá del campoo CODIGO_CURSO, por lo cual introducirá una expresión como esta:

HorarioCurso( CODIGO_CURSO ) = 'Martes de 14:00 a 15:30, Jueves de 14:00 a 15:55'

PromedioXGrupo
Permite conocer el promedio simple de los alumnos un grupo.

Puede ser de una asignatura o de varias de ellas.

Puede ser de algún criterio de evaluación en particular, o de lo contrario se toma el criterio de mayor. Vea criterios de evaluación.
Sintaxis:
PromedioXGrupo( <código del grupo>, <Plan de Estudios>, <Aspecto evaluado>, <Etapa del plan de Estudios>, <grado>, <clave de asignatura>, <criterio de evaluación>, <Sólo oficiales>)
  • Código del grupo - Este dato generalmente está disponible como el campo de datos CODIGOGRUPO.
  • Plan de Estudios- Este dato permite centrar el análisis del promedio en el plan de estudios que ha sido asignado al alumno. Generalmente está disponible como el campo ID_PLAN.
  • Aspecto evaluado- Generalmente se evalúa el Rendimiento Académico, por lo cual este dato casi siempre se maneja como la constante 'A'. Está disponible como el campo ID_TIPOEVAL.
  • Etapa del Plan de Estudios- Los planes de estudio pueden estar divididos en varias etapas, si desea conocer el promedio de alguna etapa en particular indíquela aquí, si desea obtener el promedio general indíquela con un cadena vacía ('').
  • Grado- Aquí deberá indicar el grado (año, semestre, cuatrimestre, etc.) del cual desea obtener el promedio. Si desea obtener un promedio general de todos los grados ponga el número CERO.
  • Clave de la Asignatura- Si desea promediar todas las asignaturas del grado correspondiente indíquelo con una cadena vacía (''), de lo contrario especifique una clave de asignatura para obtener solo el promedio de ella.
  • Criterio de Evaluación- Indique la letra o letras correspondientes al criterio de evaluación del cual desea obtener el promedio. Generalemente está disponible como el campo ID_EVAL. Si no desea especificar un criterio de evaluación en específico, indique una cadena vacía ('') y el sistema tomará el criterio de mayor.
  • Sólo Oficiales. Indique con S(i) o con N(o), si desea el promedio solamente de las asignaturas oficiales.

Este promedio VERTICAL se calculará con base en los parámetros de Planes de Estudio para considerar los decimales y el redondeo que aplique.

Solo considerará las asignaturas que hayan sido marcadas como Promediables. Vea como Configurar una asignatura  como Promediable.

Vea como Configurar un Plan de Estudios.

Para promediar todas las asignaturas de 2o. grado, del grupo SEC2A:

PromedioXGrupo( 'SEC2A', 'PlanA', 'A', '', 2, '', 'C', 'N' )

PromedioXCurso
Permite conocer el promedio simple de los alumnos en un curso. Puede ser de una asignatura o de varias de ellas.
Sintaxis:
PromedioXGrupo( <ciclo año inicial>, <ciclo año final>, <ciclo periodo>, <código del curso>, <criterio de evaluación> )
  • Código del curso- Este dato generalmente está disponible como el campo de datos CODIGOGRUPO.
  • Grado- Aquí deberá indicar el grado (año, semestre, cuatrimestre, etc.) del cual desea obtener el promedio. Si desea obtener un promedio general de todos los grados ponga el número CERO.
  • Criterio de Evaluación- Indique la letra o letras correspondientes al criterio de evaluación del cual desea obtener el promedio. Generalemente está disponible como el campo ID_EVAL. Si no desea especificar un criterio de evaluación en específico, indique una cadena vacía ('') y el sistema tomará el criterio de mayor.
Este promedio VERTICAL se calculará con base en los parámetros de Planes de Estudio para considerar los decimales y el redondeo que aplique.
Para obtener el promedio final de los alumnos de un curso:

PromedioXGrupo( INICIAL, FINAL, PERIODO, CODIGO_CURSO );

Para obtener el promedio de los alumnos de un curso, del primer parcial (considerando que el primer parcial esté evaluado en el criterio de evaluación  'B' ).

PromedioXGrupo( INICIAL, FINAL, PERIODO, CODIGO_CURSO, 'B' );

PromedioXAlumno
Permite conocer el promedio simple de un grupo. Puede ser de una asignatura o de varias de ellas.

Sintaxis:
PromedioXAlumno( <Número de Alumno>, <Plan de Estudios>, <Aspecto evaluado>, <Etapa del plan de Estudios>, <clave de asignatura>, <grado>, <criterio de evaluación>, <Sólo oficiales> )

  • Número de Alumno - Este dato indentificará a un alumno, generalmente está disponible como el campo de datos NUMEROALUMNO.
  • Plan de Estudios- Este dato permite centrar el análisis del promedio en el plan de estudios que ha sido asignado al alumno. Generalmente está disponible como el campo ID_PLAN.
  • Aspecto evaluado- Generalmente se evalúa el Rendimiento Académico, por lo cual este dato casi siempre se maneja como la constante 'A'. Está disponible como el campo ID_TIPOEVAL.
  • Etapa del Plan de Estudios- Si desea conocer el promedio de alguna etapa en particular indíquela aquí, si desea obtener el promedio general indíquela con un cadena vacía ('').
  • Clave de la Asignatura - Si desea promediar todas las asignaturas del grado correspondiente indíquelo con una cadena vacía (''), de lo contrario especifique una clave de asignatura para obtener solo el promedio de ella.
  • Grado- Aquí deberá indicar el grado (año, semestre, cuatrimestre, etc.) del cual desea obtener el promedio. Si desea obtener un promedio general de todos los grados ponga el número CERO.
  • Criterio de Evaluación- Indique la letra o letras correspondientes al criterio de evaluación del cual desea obtener el promedio. Generalemente está disponible como el campo ID_EVAL. Si no desea especificar un criterio de evaluación en específico, indique una cadena vacía ('') y el sistema tomará el criterio de mayor.
  • Solo Oficiales. Indique con S(i) o con N(o), si desea el promedio solamente de las asignaturas oficiales.

Este promedio VERTICAL se calculará con base en los parámetros de Planes de Estudio para considerar los decimales y el redondeo que apliqué. Vea como Configurar un Plan de Estudios.

P.e. Para promediar todas las asignaturas de todos los grados de un alumno.

PromedioXAlumno( 1244, 'SEC_SEP', 'A', '', '', 0, 'C', 'N' ).

AsignaturaNombre
Permite obtener el nombre de una asignatura o materia.
Sintaxis:
AsignaturaNombre(<plan>,<aspecto que se evalúa>,<etapa>,<clave_asignatura>)
  • Plan. Código del plan de estudios.
  • Aspecto que se evalúa. Aspecto al cual pertenece la asignatura, usualmente suele ser 'Rendimiento Académico' cuyo código es la A.
  • Etapa. Etapa de la asignatura.
  • Clave de Asignatura. Clave de la asignatura, de la cual deseamos conocer el nombre.
Nota Importante: Usualmente se utilizará en aquellos reportes u opciones, donde están disponibles los campos ID_PLAN, ID_ETAPA, ID_TIPOEVAL y CLAVEASIGNATURA.

El ejemplo más usual será:

AsignaturaNombre( ID_PLAN, ID_TIPOEVAL, ID_ETAPA, CLAVEASIGNATURA )

Resultado Posible: MATEMATICAS / HISTORIA UNIVERSAL, etc.
AsignaturaNombreOptativo
Permite obtener el nombre optativo o nombre secundario de una asignatura o materia.

Sintaxis: AsignaturaNombreOptativo(<plan>,<aspecto que se evalúa>,<etapa>,<clave_asignatura>)

En el espacio de nombre optativo o secundario, pueden colocarse equivalencias en otros idiomas, descripciones o incluso claves especiales. 

AsignaturaNombreOptativo( ID_PLAN, ID_TIPOEVAL, ID_ETAPA, CLAVEASIGNATURA )

Resultado Posible: MATHEMATICS / UNIVERSAL HISTORY, etc.
AsignaturaEnReporte
Permite conocer los datos de las asignaturas que se incorporarán en el Reporte Concentrado de Calificaciones por Grupo.
Nota Importante: Esta función solamente puede ser utilizada en el Reporte Concentrado de Calificaciones por Grupo. En ese reporte las asignaturas que se incorporan varian con relación a la decisión del usuario, por tal motivo, ante tal incertidumbre un formato de reporte puede ser difícil de adaptar o personalizar al desconocer las asignaturas que el usuario selecciona.

Sintaxis:
AsigRep o AsignaturaEnReporte ( <Indice>, <dato> )

  • Indice. En un orden consecutivo se refiere a la asignatura que se incorpora en el reporte.
  • Dato. Dato que deseamos conocer de la asignatura.

El dato puede ser cualquiera de los siguientes números:

  • 1. Código del Plan de Estudios.
  • 2. Etapa del plan de Estudios a la que pertenece la asignatura.
  • 3. Aspecto a evaluar al que corresponde la asignatura.
  • 4. Clave de la Asignatura.
  • 5. Nombre Completo de la Asignatura.
  • 6. S o N, si la asignatura es Oficial.
  • 7. S o N, si la asignatura es Promediable.
  • 10. Calificación que el alumno obtuvo en esa asignatura.
  • 11, 12 y 13. Auxiliares Numéricos para calificaciones (p.e. 11=Auxiliar 1, 12=Auxiliar 2 y 13=Auxiliar 3).
  • 14, 15 y 16. Auxiliares Alfanuméricos para calificaciones.
  • 17. Fecha en la cual fue capturada la calificación.
  • 18. Valor TipoExamen con el cual fue capturada la calificación. Será 0 si es primera oportunidad, o mayor según el número de recursamientos.
  • 19. Código Corto del ciclo escolar.
  • 20. Código Corto de la Asignatura. Este dato es complementario a los datos 1 al 5.

Para comprender mejor el significado de estos datos, obsérvelos y aplíquelos en el contexto del Reporte Concentrado.

AsignaturaEnReporte( 1, 4 ) - Nos devolverá la Clave de la PRIMERA Asignatura que se incorpora al reporte.

AsignaturaEnReporte( 2, 5 ) - Nos proporciona el nombre completo de la SEGUNDA asignatura que contiene el reporte.

AsignaturaEnReporte( 1, 10 ) - Nos devuelve la calificación que obtuvo el alumno en la PRIMERA asignatura del reporte.

Opcionalmente se puede utilizar el sinónimo AsigRep por ejemplo: AsigRep( 1, 10 )
PlanEstudiosNombre
Permite obtener el nombre de un plan de estudios
Sintaxis: PlanEstudiosNombre(<plan>)

Generalmente será utilizado el campo ID_PLAN, para incorporar en esta función.

PlanEstudiosNombre( ID_PLAN )


Resultado Posible: MAESTRIA EN CIENCIAS.
PeriodoEvalNombre
Permite obtener el nombre de un periodo de evaluación.

Esto solo aplica cuando los planes de estudio están divididos por periodos académicos. Vea configuración de planes de estudio.
Sintaxis: PeriodoEvalNombre(<id del periodo>)

Como parámetro generalmente se usará el campo ID_PERIODO o en su defecto algún valor numérido correspondiente a tal periodo.
Los siguientes ejemplos muestran dos resultados probables.

PeriodoEvalNombre( ID_PERIODO ) = '1er Bimestre'

PeriodoEvalNombre( 2 ) = '2nd Period'

ObtenerObsCalif
Esta función permite obtener esa nota de observación e incorporarla en algún formato de reporte, como puede ser una Boleta o Kárdex.

Usted puede configurar cualquier plan de estudios para permitir que se incorporé una nota de observación junto con cada calificación. P.e. Calificación: 10 - Nota de Observación: FELICIDADES!! MUY BUEN ESFUERZO, LO HICISTE MUY BIEN!!.


Sintaxis:
ObtenerObsCalif( <Número de Alumno>, <Plan de Estudios>, <Aspecto evaluado>, <Etapa del plan de Estudios>, <clave de asignatura>, <tipo de examen>, <criterio de evaluación> )
  • Número de Alumno - Este dato indentificará al alumno, generalmente está disponible como el campo de datos NUMEROALUMNO.
  • Plan de Estudios- Indica el plan de estudios de la asignatura. Generalmente está disponible como el campo ID_PLAN.
  • Aspecto evaluado- Generalmente se evalúa el Rendimiento Académico, por lo cual este dato casi siempre se maneja como la constante 'A'. Está disponible como el campo ID_TIPOEVAL.
  • Etapa del Plan de Estudios- Indique la clave de la etapa correspondiente la asignatura. Está disponible como el campo ID_ETAPA.
  • Clave de la Asignatura - Indique la clave de la asignatura. Está disponible como el campo CLAVEASIGNATURA.
  • Tipo de Examen. Es la oportunidad en que está siendo evaluada la asignatura. 0=Primera Oportunidad, 1=Primer Recursamiento, 2=Segundo Recursamiento, etc. Este dato está disponible en el campo TIPOEXAMEN.
  • Criterio de Evaluación- Indique la letra o letras correspondientes al criterio de evaluación del cual desea obtener la observación. Generalemente está disponible como el campo ID_EVAL.
Para obtener las observaciones de una calificación en un kárdex puede utilizar la siguiente expresión, en este caso es el criterio de evaluación "A".

ObtenerObsCalif( NUMEROALUMNO, ID_PLAN, 'A', ID_ETAPA, CLAVEASIGNATURA, TIPOEXAMEN, 'A' )

AlumnosXCurso
Devuelve el número de alumnos que están inscritos en un curso/clase. Puesto que en un curso pueden coexistir alumnos de varios niveles educativos, opcionalmente podemos indicar que nos proporcione el número de los alumnos de algún nivel educativo en específico.

Sintaxis:
AlumnosXCurso( <código del curso>, [<código del nivel educativo>] )
  • Código del Curso - Este dato indentifica al curso o clase, generalmente está disponible como el campo de datos CODIGO_CURSO.
  • Nivel Educativo- Si utilizamos este parámetro, deberemos indicar el código del nivel educativo tal como se dió de alta en la configuración del sistema.


Para conocer cuantos alumnos están inscritos en el curso o clase.

AlumnosXCurso( 'INGLESI-A' )

Para conocer cuantos alumnos de la licenciatura en IDIOMAS están inscritos en el curso o clase.

AlumnosXCurso( 'INGLESI-A', 'LICIDIOM' )

AlumnosXGrupo
Devuelve el número de alumnos que están inscritos en un grupo.
Sintaxis:
AlumnosXGrupo( <los 3 datos del ciclo escolar>, <código del grupo>, <incluir bajas> )
  • Datos del ciclo escolar. Año Inicial, Año Final y Periodo. Estos datos generalmente están disponibles como los campos INICIAL, FINAL y PERIODO.
  • Código del Grupo. Este dato generalmente está disponible como el campo CODIGOGRUPO.
  • Incluir Bajas. Indique con 'S' o con 'N' si desea incluir en el conteo a los alumnos marcados como BAJA.
Para conocer los alumnos inscritos en el grupo SEC2A, del ciclo 2004-2005 (sin incluir bajas).

AlumnosXGrupo( 2004, 2005, 0, 'SEC2A', 'N' )

AlumnosNivelesEnCurso
Devuelve la cantidad de alumnos que están inscritos a un curso, indicando detalladamente cuantos alumnos por nivel.

Sintaxis:
AlumnosNivelesEnCurso( <los 3 datos del ciclo escolar>, <código del curso>)

  • Datos del ciclo escolar. Año Inicial, Año Final y Periodo. Estos datos generalmente están disponibles como los campos INICIAL, FINAL y PERIODO.
  • Código del Curso. Este dato generalmente está disponible como el campo CODIGOCURSO.

Para conocer los alumnos inscritos en un curso, del ciclo 2004-2005.

AlumnosNivelesEnCurso( 2004, 2005, 0, 'SEC2A', CODIGOCURSO) 
Devuelve: DERECHO-10, IDIOMAS-8, CONTAB-12, etc.

ObtenerProfesor
Obtiene el nombre de un profesor con diferentes posibilidades.

Esta función tiene cuatro posibilidades:

1) Obtiene el Nombre del Profesor con base en una clave del profesor conocida.  Es la función más básica.

Sintaxis: ObtenerProfesor( <Clave del Profesor> ).

  • Clave del Profesor - En los reportes generalmente se tiene el campo CLAVEPROFESOR.

2) Obtiene el Nombre del Profesor titular o suplente de un grupo. Esta modalidad NO OBTIENE los profesores que imparten las asignaturas, sino que solamente se limita a obtener el nombre del profesor Titular o Suplente del Grupo.

Sintaxis: ObtenerProfesor( [<datos del ciclo escolar>], <Código del Grupo>, <Titular o Suplemente> )

  • Datos del ciclo escolar. Año Inicial, Año Final y Periodo. Estos datos generalmente están disponibles como los campos INICIAL, FINAL y PERIODO. Estos valores son opcionales y en caso de que sean omitidos el sistema tomará automáticamente los valores del ciclo escolar de trabajo.
  • Código del Grupo. Este dato generalmente está disponible como el campo CODIGOGRUPO.
  • Titular o Suplente. Indique con 1 para Profesor Titular o 0 para Profesor Suplente.

3) Obtiene los datos del profesor que imparte alguna asignatura.

Sintaxis: ObtenerProfesor( <Código del Grupo>, <Plan de Estudios>, <Etapa del Plan>, <Aspecto a evaluar>, <Asignatura>, [Fecha] )

  • Código del Grupo - Código del grupo, comunmente se obtiene con el campo CODIGOGRUPO.
  • Plan de Estudios - Plan de Estudios al que corresponde la asignatura. Utilice el campo ID_PLAN.
  • Etapa del Plan - Etapa del Plan de Estudios a la que corresponde la asignatura. Utilice el campo ID_ETAPA.
  • Aspecto a Evaluar- Generalmente se evalúa el Rendimiento Académico, por lo cual se utiliza 'A'. Utilice el campo ID_TIPOEVAL.
  • Asignatura. Clave de la Asignatura. comunmente se obtiene con el campo CLAVEASIGNATURA.
  • Fecha. Este parámetro es opcional, pero se utiliza para indicar una fecha específica en la cual un profesor puede impartir clase. Por default este parámetro corresponde a la fecha inicial del ciclo escolar de trabajo.

4) Obtiene el Nombre del Profesor titular o suplente de un curso. En esta modalidad siempre se obtiene la información del ciclo escolar de trabajo, por lo tanto no hay necesidad de indicar parámetros del ciclo escolar.

Sintaxis: ObtenerProfesor( <Código del Curso>, <Titular o Suplemente>, 'CURSO')

  • Código del Grupo. Este dato generalmente está disponible como el campo CODIGOGRUPO.
  • Titular o Suplente. Indique con 1 para Profesor Titular o 0 para Profesor Suplente.
  • El valor 'CURSO' debe ir siempre para indicar que estamos trabajando por cursos.
1) Obtiene los datos del profesor que imparte alguna asignatura.

ObtenerProfesor( 'SEC1A', 'OF_SEC', 'GRAL', 'A', 'INGLES1' ) = 'JUAN LOPEZ PEREZ'

2) Obtiene el Nombre del Profesor con base en una clave del profesor conocida.

ObtenerProfesor( 'PF00032' ) = 'JUAN LOPEZ PEREZ'

3) Obtiene el Nombre del Profesor titular o suplente de un grupo

ObtenerProfesor( 2005, 2006, 0, 'SEC1A', 1 : = 'JUAN LOPEZ' ObtenerProfesor( 2005, 2006, 0, 'SEC1A', 0) = 'JOSE LUIS SANCHEZ'


4) Obtiene el Nombre del Profesor titular o suplente de un curso.

ObtenerProfesor( 'INVEST1', 1, 'CURSO' ) = 'MARISSA RIVERA'
ObtenerProfesor( CODIGO_CURSO, 0, 'CURSO' ) = 'LUIS JUAREZ'

DigitoVerificador
Está es una función que analizará un texto y devolverá una serie de caracteres o dígitos verificadores, de acuerdo a algoritmos conocidos.

Sintaxis:
DigitoVerificador( <texto a analizar>, <base>, <factores> )

Los distintos parámetros son:

  1. Texto a analizar. Es el código o referencia que se analizará y que servirá para generar el dígito o los dígitos de verificación. Se sugiere que el texto a analizar contenga solo números.
  2. Base. Existe una amplia variedad de algoritmos de generación de dígitos verificadores. Tales como Base 10 y Base 97. El valor default de este parámetro es '10'.
  3. Factores. Cada algoritmo de verificación requiere de ciertos factores de ponderación. El valor default es de '2:1'.

Esta es una función avanzada, no deberá utilizarse para sustituir la funcionalidad de referencias bancarias. Pida apoyo a su asesor de servicio para analizar las posibilidades en caso de que necesita utilizar algún proceso con dígitos verificadores.

En base 10 standard. 

DigitoVerificador( '0123456789' ) = 7

En base 97, con factores de ponderación.

DigitoVerificador( '00002005 07 01 006086', '97', 'I19:17:13:25:23' ) = 60

Redondear
Permitirá redondear un valor numérico (usualmente una calificación), según los parámetros dados.

Sintaxis:
Redondear( <calificación numérica>, [<decimales>, <redondear desde>, <mínimo>, <máximo>, <mínimo aprobatorio>, <redondear calificaciones reprobatorias>] )

Los distintos parámetros son:

  1. Calificación numérica. Es el dato numérico que se desea redondear. Si únicamente se dispone de este dato, el sistema hará un redondeo automático al entero más próximo, partiendo de 0.6 .
  2. Decimales. Es el número de decimales que se desea tener en el resultado redondeado.
  3. Redondear desde. Es el valor decimal desde el cual se desea hacer el redondea al entero más próximo.
  4. Mínimo y Máximo. Son los valores inferior y superiores tolerados para calificaciones.
  5. Mínimo Aprobatorio. Es la calificación mínima que se considera como aprobatoria. Cualquier calificación inferior se considera reprobada.
  6. Redondear Calificaciones reprobatorias ?. Se indica con S o N, si deseamos que las calificaciones reprobatorias sean redondeadas de igual forma que las aprobatorias.

Redondear( CALIFICACION, 2, 0.6, 5, 10, 6, 'N' )

El ejemplo anterior, resultará en un valor con 2 decimales que se redondeará a partir de 0.6. Considerando calificaciones de 5 a 10, siendo 6 la mínima aprobatoria. En el ejemplo NO SERAN redondeadas las calificaciones reprobatorias (menores a 6).
TruncarNumero
Esta función tomará un número de punto flotante con decimales (p.e. 2343.4444) y truncará (cortará) los decimales después de la posición indicada.

Sintaxis:
TruncarNumero( <numero>, <decimales> )

Los parámetros son:

  1. Número. Es el valor numérico original.
  2. Decimales. Son los decimales que deseamos mantener en el número.

El siguiente ejemplo resultará en el mismo valor entero pero se tomarán solo dos decimales.

TruncarNumero( 112.55566, 2 ) = 112.55

Este nuevo ejemplo, usa una variable o campo de datos llamado VALOR que contiene un número en punto flotante y lo truncará dejando solo un decimal.

VALOR = 8.4656676
TruncarNumero( VALOR, 1 ) = 8.4

VerificarSeriacion

Esta función verificará toda la cadena de seriación de una asignatura, incluyendo las 5 posibles seriaciones que pueden tener.

¿Qué es una cadena de seriación?
Es una línea secuencial de comprobación que recorrerá la seriación de una asignatura a través de todo el plan de estudios.

Ejemplo de una cadena de seriación:
Matemáticas Financieras
(3er grado) -> Matemáticas Empresariales (2do. grado) -> Matemáticas Básicas (1er. grado).

(Lo cual se interpreta como: Mátemáticas Financieras está seriada con Matemáticas Empresariales -primera en la cadena-, la cual a su vez está seriada con Matemáticas Básicas -segunda en la cadena-)

Sintaxis:
VerificarSeriacion( <Número de Alumno>, <plan de estudios>, <tipo de evaluación>, <clave de asignatura>, <tipo de resultado requerido>)

Los parámetros son:

  1. Número de Alumno. Es el identificador de un alumno en particular.
  2. Plan de Estudios, Tipo de Evaluación y Clave de Asignatura. Valores correspondientes a la asignatura cuya seriación queremos comprobar.
  3. Tipo de Resultado Requerido. 1 ó 2; 1 = Devolverá la calificación de la primera asignatura en la cadena de seriación cuando todas las seriaciones sean aprobadas, 2 = Devolverá la clave de la primera asignatura pendiente de aprobar dentro de la cadena de seriación.

Ejemplo utilizando campos disponibles en un reporte).

TruncarNumero( NUMEROALUMNO, ID_PLAN, ID_TIPOEVAL, CLAVEASIGNATURA, 1 ) = 8.00

Ejemplo utilizando combinación de campos y valores constantes).

TruncarNumero( NUMEROALUMNO, 'SEC', 'A', 'MATFIN', 2 ) = 'MATBAS'

Funciones de Tipo Financiero
TotalXFormaPago
Permite obtener la cantidad total cobrada de alguna forma de pago, durante una sesión de caja determinada o de algún cobro específico.

De forma más específica podemos decir que puede utilizarse para obtener el total cobrado por forma de pago de uno o varios días, o bien, obtenerlo por un pago de una persona.
Sintaxis:
TotalXFormaPago( <fecha>, <caja>, <sesioncaja>, <código de la forma de pago>, [folio del comprobante/recibo de caja] )

  Ver configuración de formas de pago »».

1) Para obtener el total cobrado en Efectivo de una sesión de caja:

TotalXFormaPago( FECHA, CAJA, SESIONCAJA, 'EFE' ) = 22500.00


2) Para obtener el total cobrado en Depósito Bancario del cobro emitido con el folio 24455:

TotalXFormaPago( FECHA, CAJA, SESIONCAJA, 'DEP', '24455' ) = 3450.00

MetodoPagoFactura
Obtiene una cadena de texto con el método de pago y el numero de cuenta

Esta función solo tiene relevancia en un formato de representación impresa de una factura.
Sintaxis:
MetodoPagoFactura( <fecha de la factura>, <serie>, <número de factura>, [incluir la cuenta] )
  1. Fecha, Serie y Número de la factura. Corresponde a los datos de la factura que se está imprimiendo. Generalmente estarán disponibles con los campos de datos FECHA_FACTURA, SERIE y FACTURA.
  2. Incluir cuenta.  Indique S o N, para que el sistema devuelva también los últimos 4 dígitos de la cuenta con la que fue pagada una factura.

MetodoPagoFactura( FECHA_FACTURA, SERIE, FACTURA, 'S' ) = Pago con Tarjeta, Cuenta: 3498

Otras funciones de Uso General
Numero ó Num ó NumeroDesdeTexto Permite convertir un valor alfanumérico que contiene números a su representación en datos numéricos puros.

Sintaxis:
Numero o Num ( <valor alfanumérico conteniendo números> )

Para operaciones aritméticas es necesario tener valores numéricos puros, por lo cual en ciertos casos deberá realizarse esta conversión.

Nota: En la mayoría de formatos con calificaciones, todas ellas se obtienen en representación alfanumérica, pues permite incluir valor como SD y NP. Para utilizarlas en expresiones aritméticas, recuerde primero convertir la calificación a números puros.

Numero( '123' ) = 123
Num( '7' ) = 7

IF
(SI)
Evalúa una condición devolviendo el primer valor cuando la condición se cumple y el segundo valor cuando no se cumple.

Sintaxis:
IF( <condicion>, <valor_cierto>, <valor_falso> ).

IF ( NCALIFICACION <= 5, 'REPROBADO', 'APROB')

TypeOf Esta función permite conocer el tipo de dato de cualquier campo o expresión.

Sintaxis:
TypeOf <dato> )

Nota: Devolverá ERROR cuando no identifique el tipo de dato.

TypeOf( 'JOSE PEREZ' ) = 'STRING'
TypeOf( 345.66 ) = 'FLOAT'
TypeOf( 345 ) = 'INTEGER'

Int Devuelve el valor entero de un número con decimales.

Sintaxis:
Int( <valor númerico> )

Int( 345.66 ) = 345

PageNumber Imprime el número de página del reporte.

SelectSQL

Función muy poderosa que permite realizar consultas de selección en la base de datos. Por sus amplias posibilidades permite extender los límites del editor de formatos.


Importante: Para utilizar esta función se requiere un buen grado de entendimiento de lenguaje SQL para bases de datos.

Se requiere también, un muy buen dominio de los conceptos alrededor de los reportes, formatos, campos, entre otros, por lo tanto a pesar de que es muy poderosa puede resultar inapropiada para la mayoría de los usuarios. Sus asesores de soporte y asesores de sistemas, son las personas más apropiadas para crear y utilizar con eficiencia las instrucciones de SQL.

Sintaxis:
SelectSQL( <instrucción SQL>, [variables de retorno] )

Notas Adicionales: En estos ejemplos las instrucciones SQL están expresadas de forma sencilla, sin embargo al incorporarlas en un formato es necesitario utilizar variables de reemplazo o expresiones concatenadas para incorporar valores como Matrícula, ID de Alumno, etc.

Uso de variables de reemplazo (Nuevo !!)

Dentro de la instrucción SQL se pueden incorporar variables de reemplazo que servirán para armar la instrucción SQL con base en ciertos campos o valores.

Ejemplo en una lista de alumnos donde se conoce el ID de la Familia.
SelectSQL( 'SELECT NOMBRE_PADRE FROM familias_mst WHERE ID_ESCUELA=${ID_ESCUELA} ID_FAMILIA=${ID_FAMILIA}' )

La anterior instrucción SQL arrojará el nombre del padre de cada alumno que aparezca en el formato impreso.

Uso de variables de retorno

Al ejecutarse la instrucción SQL podemos diseñarla con el objetivo que obtenga y devuelva varios campos. En estos casos lo más recomendable es almacenar cada campo que se obtenga en una variable que podamos usar  para otras operaciones o simplemente para mostrarla.

SelectSQL( 'SELECT NOMBRE_PADRE, EMAIL_PADRE FROM familias_mst WHERE ID_ESCUELA=${ID_ESCUELA} ID_FAMILIA=${ID_FAMILIA}', '$nombre_padre', '$email_padre' )

En este caso la consulta traerá como resultado el nombre y el email del padre, mismos que serán almacenados directamente en las variables nombre_padre y email_padre.
* Para obtener el nombre del padre de un alumno, teniendo el ID de la familia en un campo de datos llamado ID_FAMILIA.

SelectSQL( 'SELECT PADRE FROM familias_mst WHERE ID_FAMILIA=${ID_FAMILIA}' ) = 'JOSE RAMIREZ CUEVAS'.

Equivalente en otras versiones:
SelectSQL( 'SELECT PADRE FROM familias_mst WHERE ID_FAMILIA='+STR(ID_FAMILIA) )

* Para conocer la fecha del último pago que ha realizado un alumno, conociendo el número de alumno a través del campo de datos NUMEROALUMNO.

SelectSQL( 'SELECT ULTIMO_PAGO_FECHA FROM alumnos WHERE NUMEROALUMNO='+STR(NUMEROALUMNO) )

Se recomienda construir la condición WHERE utilizando la mayor cantidad de campos posibles correspondientes a la llave primaria.
Select Es una función que permite de forma muy cómoda obtener un campo de una tabla y especificar alguna condición.

Con esta función se pretende reemplazar la complejidad de construir instrucciones SQL integrales.

Sintaxis:
Select( <nombre de la tabla>, <campo o dato a obtener>,<condicion 1>[,<condición n>] )

Para hacer más precisa la obtención del dato se pueden especificar varias condiciones. Y se sugiere  utilizar todos los campos de la llave primaria de la tabla.
* Para obtener el nombre del padre de un alumno, teniendo el ID de la familia en un campo de datos llamado ID_FAMILIA.

Select( 'familias_mst', 'PADRE', 'ID_ESCUELA=${ID_ESCUELA}','ID_FAMILIA=${ID_FAMILIA}' ) => 'JOSE RAMIREZ CUEVAS'.

Internamente se construirá una sentencia SQL equivalente.

Agregar elementos a las secciones.

Volver al Índice.