Você está na página 1de 248

Curso GeneXus

Curso GeneXus
Agenda
Agenda
Parte !: Basico
1er.dia: Terico +hrs.
2do. al 10 dia: Terico 2 hs - Practico 1,5 hs.
2 semanas: Taller +hrs.
Parte !!: Avanzado
+ dias: Terico +hrs.
Examen tericofpractico
Versin GeneXus 7.5 Trial
Versin GeneXus 7.5 Trial
En el practico y taller se utilizara la
versin Trial de GeneXus 7.5
Puede bajarse para ser utilizada fuera de
las instalaciones de ARTech de:
http:JJwww.genexus.comJtrialversion
Consultar documento Requerimientos y
Limitaciones de GeneXus Trial" que se
obtiene de la misma pagina
Conocimientos previos
Conocimientos previos
Exigidos:
Conocimientos tericos de base de datos:
- Nodelo relacional
- Concepto de clave (candidata, primaria y foranea)
- Concepto de restricciones de integridad
- Concepto de normalizacin de BD's
- Dependencias funcionales
- Concepto de indices
Concimientos sobre programacin
Recomendados:
Lectura del libro Desarrollo de Aplicaciones"
entregado previo al comienzo del curso
Temario Parte I
Temario Parte I
!ntroduccin terica
Diseno de Transacciones
!ntegridad Referencial
Atributos Frmulas
Comunicacin entre objetos
Arbol de Evaluacin y Eventos
Reportes y procedimientos
Work Panels
Subtipos
Temario Parte I
Temario Parte I
{cont.)
{cont.)
Knowledge Nanager
Objetos Privados
Eficiencia y Performance de las aplicaciones
Nultiples forms
Styles
Propiedades, Eventos y Ntodos asociados a
los controles
Nenu Bar y Tool Bar
Objetos Nain
Data views
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
INTRODUCCIN TERICA
INTRODUCCIN TERICA
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
BASE
DE
DATOS
PROGRAMAS
REALIDAD
Herramientas y
Herramientas y
Metodologas
Metodologas
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
BASE
DE
DATOS
PROGRAMAS
VISIONES
DE
USUARIOS

MODELO DE
LA REALIDAD
Ingenieria Inversa
Modelado de la realidad a
Modelado de la realidad a
partir de las visiones de
partir de las visiones de
los usuarios
los usuarios
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Comparacin
Comparacin
de
de
Metodologas
Metodologas
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Metodologa Tradicional
Metodologa Tradicional
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
REALIDAD REALIDAD
ANALISIS
DE
DATOS
BASE
DE
DATOS
ANALISIS
FUNCIONAL
PROGRAMACION
PROGRAMAS
GENERACIONJ
INTERPRETACION
ESPECIFICACION
FUNCIONAL
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Metodologa
Metodologa
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Desarrollo con
Desarrollo con
REALIDAD
DESCRIPCION
DE OBJETOS
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
REALIDAD
DESCRIPCION
DE OBJETOS
BASE DE
CONOCIMIENTO
BASE
DE
DATOS
PROGRAMAS
Desarrollo con
Desarrollo con
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Descripcin de Objetos
Descripcin de Objetos
Transacciones
{Trns)
Reportes
{Rpts)
Procedimientos
{Procs)
Work Panels
{Wkps)
Web Panels
{Wbps)
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Proceso de desarrollo de una
Proceso de desarrollo de una
aplicacin con
aplicacin con
Base de Conocimiento
Base de Conocimiento
Base Base
de de
Datos Datos
Transacciones
{Trns)
Reportes
{Rpts)
Procedimientos
{Procs)
Work Panels
{Wkps)
Web Panels
{Wbps)
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Creacin de la Base de Datos
Creacin de la Base de Datos
Base Base
de de
Datos Datos
Programas
Creacin
BD
Base de Conocimiento
Base de Conocimiento
Transacciones
{Trns)
Reportes
{Rpts)
Procedimientos
{Procs)
Work Panels
{Wkps)
Web Panels
{Wbps)
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Programas de Aplicacion
(Trns, Rpts, Procs, Wkps y Wbps)
Generacin de los Programas
Generacin de los Programas
de la Aplicacin
de la Aplicacin
Base de Conocimiento
Base de Conocimiento
Transacciones
{Trns)
Reportes
{Rpts)
Procedimientos
{Procs)
Work Panels
{Wkps)
Web Panels
{Wbps)
Base Base
de de
Datos Datos
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Resultado final en la Etapa de
Resultado final en la Etapa de
Desarrollo
Desarrollo
Programas de Aplicacin
Aplicaciones
Base de Conocimiento
Base de Conocimiento
Transacciones
{Trns)
Reportes
{Rpts)
Procedimientos
{Procs)
Work Panels
{Wkps)
Web Panels
{Wbps)
Base Base
de de
Datos Datos
(Trns, Rpts, Procs, Wkps y Wbps)
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Las visiones de los usuarios cambian
Las visiones de los usuarios cambian
Programas de Aplicacion
Base de Conocimiento
Base de Conocimiento
Nueva Nueva
Base Base
de de
Datos Datos
Nuevas
Transacciones
Nuevos
Reportes
Nuevos
Procedimientos
Nuevos
Work Panels
Nuevos
Menues
Base Base
de de
Datos Datos
(Trns, Rpts, Procs, Wkps y Wbps)
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Anlisis de Impacto Totalmente
Anlisis de Impacto Totalmente
Automtico
Automtico
Anlisis
de
impacto
Base de Conocimiento
Base de Conocimiento
Programas de Aplicacion
Base de Conocimiento
Base de Conocimiento
Nueva Nueva
Base Base
de de
Datos Datos
Nuevas
Transacciones
Nuevos
Reportes
Nuevos
Procedimientos
Nuevos
Work Panels
Nuevos
Menues
Base Base
de de
Datos Datos
(Trns, Rpts, Procs, Wkps y Wbps)
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Generacin de Programas de
Generacin de Programas de
Reorganizacin de la Base de Datos
Reorganizacin de la Base de Datos
Programas de Aplicacin Nueva Nueva
Base Base
de de
Datos Datos
Programas
de
Reorganiz.
Base de Conocimiento
Base de Conocimiento
Base Base
de de
Datos Datos
Nuevas
Transacciones
Nuevos
Reportes
Nuevos
Procedimientos
Nuevos
Work Panels
Nuevos
Menues
(Trns, Rpts, Procs, Wkps y Wbps)
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Anlisis automtico del impacto de
Anlisis automtico del impacto de
los cambios sobre los programas
los cambios sobre los programas
Nueva Nueva
Base Base
de de
Datos Datos
Base de Conocimiento
Base de Conocimiento
Nuevos
Programas de Aplicacin
Anlisis
de
impacto
(Trns, Rpts, Procs, Wkps y Wbps)
Nuevas
Transacciones
Nuevos
Reportes
Nuevos
Procedimientos
Nuevos
Work Panels
Nuevos
Menues
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Generacin automtica de nuevos
Generacin automtica de nuevos
Programas
Programas
Nueva Nueva
Base Base
de de
Datos Datos
Nuevas
Transacciones
Nuevos
Reportes
Nuevos
Procedimientos
Nuevos
Work Panels
Nuevos
Menues
Base de Conocimiento
Base de Conocimiento
Nuevos
Programas de Aplicacion
Generacin
de nuevos
programas
(Trns, Rpts, Procs, Wkps y Wbps)
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Aplicaciones
Nueva realidad, con los cambios en
Nueva realidad, con los cambios en
la aplicacin
la aplicacin
Nueva Nueva
Base Base
de de
Datos Datos
Nuevas
Transacciones
Nuevos
Reportes
Nuevos
Procedimientos
Nuevos
Work Panels
Nuevos
Menues
Base de Conocimiento
Base de Conocimiento
Nuevos
Programas de Aplicacin
(Trns, Rpts, Procs, Wkps y Wbps)
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Consiste en construir una aplicacin mediante aproximaciones
sucesivas.
DEFINICION
INICIAL
Metodologa Incremental
Metodologa Incremental
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Diseo
Prototipo Produccin
Ciclos Diseo
Ciclos Diseo
-
-
Prototipo y
Prototipo y
Diseo
Diseo
-
-
Produccin
Produccin
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Caractersticas de Diseo y
Caractersticas de Diseo y
de Prototipo
de Prototipo
Diseno:
Un unico modelo
No existe base de datos ni programas de
aplicacin asociados
Prototipo:
Pueden haber varios modelos en la misma Base
de Conocimiento
Cada modelo de Prototipo tiene una base de
datos asociada y programas de aplicacin que se
generan en el lenguaje elegido para ese modelo
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
BASE
DE
DATOS
PROGRAMAS
MODELO DE
LA REALIDAD
Construccin
Automtica
Usuario probando todos los detalles
de la aplicacin
Prototipacin Integral en PC
Prototipacin Integral en PC
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Ventajas
Ventajas
de la
de la
Prototipacin
Prototipacin
Permite ver resultados en forma temprana
Permite el seguimiento de los requerimientos
del usuario
Deteccin de errores en forma temprana
Logra el compromiso de los usuarios con el
desarrollo
Sistemas de mejor calidad
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
DISEO DE
DISEO DE
TRANSACCIONES
TRANSACCIONES
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Caractersticas
Caractersticas
Algunas de ellas son:
Estructura
Form GU!-Windows
Form Web
Reglas
Subrutinas
Eventos
Propiedades
Documentacin
Ayuda
Form Classes
Style Asociado
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Estructura de una Transaccin
Estructura de una Transaccin
Ejemplo: Proceso de Emisin de Facturas
FacNro* Cdigo de la factura
CliCod Cdigo del cliente
CliNom Nombre del cliente
FacFch Fecha de la factura
(ProdCod* Cdigo del producto
ProdNom Nombre del producto
ProdPre Precio del producto
FacLinCnt Cantidad llevada del producto
FacLinImp) !mporte total del producto a facturar
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Estructura de la Transaccin
Estructura de la Transaccin
de Facturas en GeneXus
de Facturas en GeneXus
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Diseo de Base de Datos en 3ra. Forma Normal para Diseo de Base de Datos en 3ra. Forma Normal para
soportar las transacciones definidas soportar las transacciones definidas
Facturas
FacNro*
CliCod
CliNom
FacFch
(ProdCod*
ProdNom
ProdPre
FacLinCnt
FacLin!mp)
FACTURAS
FacNro*
CliCod
CliNom
FacFch
FACTURAS1
FacNro*
ProdCod*
ProdNom
ProdPre
FacLinCnt
FacLin!mp
Transaccin
Tablas
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Definicin de las transacciones
Definicin de las transacciones
Clientes y Productos
Clientes y Productos
Trn. Clientes
CliCod*
CliNom
Trn. Productos
ProdCod*
ProdNom
ProdPre
ProdStk
+
Trn. Facturas
CLIENTES
CliCod*
CliNom
PRODUCTOS
ProdCod*
ProdNom
ProdPre
ProdStk
TABLAS
FACTURAS
FacNro*
CliCod
CliNom
FacFch
FACTURAS1
FacNro*
ProdCod*
ProdNom
ProdPre
FacLinCnt
FacLin!mp
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
GeneXus establece las relaciones por
GeneXus establece las relaciones por
los nombres
los nombres
Todo lo que es conceptualmente lo mismo debe tener el mismo
nombre
Trn. Facturas
FacNro* Trn. Clientes
CliCod SI CliCod*
CliNom CliNom
Trn. Facturas
FacNro* Trn. Clientes
CliFacCod NO CliCod*
Conceptos diferentes NO deben tener el mismo nombre
Trn. Ventas Trn. Compras
FctvtaNro* FctCmpNro*
Fecha NO Fecha
CliCod PrvCod
CliNom PrvNom
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Es
Es
conveniente
conveniente
usar
usar
padrones
padrones
para los
para los
nombres
nombres
de
de
atributos
atributos
.
.
Facilitan la tarea de darle nombre a un
atributo dentro de las reglas
establecidas
Facilitan la tarea de integracin de
bases de conocimiento
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Categora Semntica {1 a 3)
Objeto { 1 a 6 )
Calificador {1 a 3)
Calificador {1 a 3)
Complemento
{texto libre)
Nomenclatura GIK
Nomenclatura GIK
-
-
Nombre de Atributo
Nombre de Atributo
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Ejemplo de Nomenclatura GIK
Ejemplo de Nomenclatura GIK
Objeto Categora Calificador
Cli
Cli
Cli
Cli
Facvta
FacCmp
Cod
Nom
Fch
Fch
Nro
Nro
!ni
Fin
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Definicin de atributos
Definicin de atributos
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Tipos
Tipos
de Datos
de Datos
Numeric, Character, Date
varChar
Equivalente al Character, salvo en la forma en que
se almacena en la BD.
Definicin: varChar(N,N)
Long varchar
DateTime
Definicin: DateTime(N,N)
Los valores de N y N no afectan la forma de
almacenar el tipo de datos, sino la forma de
aceptar o mostrar su contenido.
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Comandos de asignacin
Comandos de asignacin
+=
-=
*=
f=
Sintaxis:
<variable_o_Atributo><Comando><Expresin>
Ejemplo:
8! += 1 (equivalente a 8! = 8! + 1)
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Dominios
Dominios
cCuando debemos usar dominios?
Atributos con la misma definicin
No existe relacin entre ellos
Ejemplo:
Direccin: Character 30
Direccin del Cliente: CliDir
Direccin del Banco: BcoDir
Atributos
Dominio
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Form GUI
Form GUI
-
-
Windows de la
Windows de la
transaccin de Facturas
transaccin de Facturas
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Tool
Tool
b
b
ar
ar
de
de
Controles
Controles
Para el diseno de Forms (GU! y Web)
Atributo f variable
Texto
Linea
Recuadro
Subfile
Botn
Bitmap
Tab Control
Print Block
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Tab Control
Tab Control
Permite definir varios controles dentro de otro.
Tiene una o varias paginas.
Default: Dos paginas
Agregar o eliminar paginas:
- Botn derecho sobre el Tab Control
Pagina
- Titulo
- Area util
Check Box de Hide Tabs ==> Para diseno de Wizards
Slo para los generadores visuales.
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Reglas
Reglas
Se utilizan para definir el comportamiento
de las transacciones.
Algunas reglas
Default, Error, Nsg, Asignacin, Serial, Noaccept,
Add, Subtract, Ask, etc.
- Default(FacFch, 8today);
- Error(`No se permiten clientes sin nombre')
if null(CliNom);
Pueden incluir: atributos, variables, constantes
y funciones.
Las reglas son LOCALES a la transaccin.
Programacin DECLARAT!vA
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Generacin de
Generacin de
HELP
HELP
Dos formatos
CHN:
- es necesario generar y compilar el Help
- El compilador viene con el visual Studio
HTNL
- Permite definicin de ayuda para aplicaciones Web
Se genera un directorio HELP bajo el
directorio del modelo para contener los
archivos correspondientes al help
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Generacin de
Generacin de
HELP
HELP
Botn de Help:
Llama al help del objeto.
F1:
Llama al help del atributo en donde se
encuentra el cursor.
- Si ese atributo no tiene help se llama al help
del objeto.
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Pasemos a Prototipo...
Pasemos a Prototipo...
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
INTEGRIDAD
INTEGRIDAD
REFERENCIAL
REFERENCIAL
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Diagrama
Diagrama
de Bachman
de Bachman
CLIENTES
CATEGORIAS
DEPARTAMENTOS
DtoCod*
DtoNom
CliCod*
CliNom
CatCod
DtoCod
CatCod*
CatNom
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Definicin
Definicin
de Indices
de Indices
Tabla !ndice
Tipo Composicin
CATEGOR!AS PK CatCod
DEPARTANENTOS PK DtoCod
CL!ENTES PK CliCod
FK DtoCod
FK CatCod
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
CONCEPTO DE TABLA
CONCEPTO DE TABLA
EXTENDIDA
EXTENDIDA
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Tabla Extendida
Tabla Extendida
Definicin
Dada una tabla de la base de datos, X, se denomina
tabla extendida de la misma al conjunto de
atributos conformado por:
Atributos que pertenecen a la tabla X.
Atributos de toda tabla Y, tal que la relacin
entre la tabla extendida determinada hasta el
momento y la tabla Y sea N-1.
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
FACTURAS CLIENTES CATEGORIAS
FACTURAS1 PRODUCTOS
FacNro*
FacFch
CliCod
CliCod*
CliNom
CatCod
CatCod*
CatDto
FacNro*
ProdCod*
FacLinCnt
FacLinImp
ProdCod*
ProdNom
ProdPre
ProdStk
Tabla Base y Tabla Extendida
Tabla Base y Tabla Extendida
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Tabla Base: Tabla extendida:
Categoria Categoria
Cliente Cliente
Categoria
Factura Factura
Cliente
Categoria
Factura1 Factura1
Producto
Factura
Cliente
Categoria
Producto Producto
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
ATRIBUTOS FRMULAS
ATRIBUTOS FRMULAS
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Caractersticas
Caractersticas
Relacin entre Atributos, Constantes yfo
Funciones
Definicin Global, definidas a nivel del
modelo
Atributo virtual (no se almacena en la tabla)
Son calculadas siempre que se hace
referencia al atributo
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Clasificacin
Clasificacin
Horizontales
Una o varias expresiones aritmticas
condicionales.
verticales
SUN
COUNT
Aggregate f Select
Select
- Nax, Nin, Find
Aggregate
- Sum, Count
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Frmulas
Frmulas
Horizontales
Horizontales
Atributo = <Expresin> if <Condicin>;
<Expresin> if <Condicin>;
<Expresin> Otherwise;
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Frmulas
Frmulas
Horizontales
Horizontales
Ejemplo:
TRANSACCION TABLA
CliCod* CliCod*
CliNom CliNom
CliTotCmp CliTotCmp
CliTotPgo CliTotPgo
CliSdo
= CliTotCmp - CliTotPgo
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Importe de la Lnea de la Factura
Importe de la Lnea de la Factura
FACTURAS CLIENTES CATEGORIAS
FACTURAS1 PRODUCTOS
FacCod*
FacFch
CliCod
CliCod*
CliNom
CatCod
CatCod*
CatDto
FacCod*
ProdCod*
FacLinCnt
FacLinImp
ProdCod*
ProdNom
ProdPre
ProdStk
FacLinImp = FacLinCnt * ProdPre if FacLinCnt <= 100;
FacLinCnt * ProdPre * 0.9 if FacLinCnt >100;
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Frmulas
Frmulas
Verticales
Verticales
SUM
SUM
-
-
COUNT
COUNT
Sintaxis:
AtriFla = SUN(Att)
AtriFla = COUNT(Att)
Caracteristicas:
Att debe pertenecer a una tabla directamente
subordinada a la tabla asociada al AtriFla
Att en COUNT no puede formar parte de ninguna
clave del modelo (no puede ser atributo primario)
Son incondicionales.
Navegacin vertical - Performance
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Ejemplo: Calculo de total de la Factura:
FACTURAS:
FacNro*
FacFch
CliCod
FacTot = SUN(FacLin!mp)
FACTURAS1:
FacNro*
ProdCod*
FacLinCnt
FacLin!mp = FacLinCnt * ProdPre
- FacTot y FacLin!mp no estan almacenados.
- Equivalencia entre SUM redundante y regla ADD
FACTURAS
FACTURAS1
1
N
Frmulas
Frmulas
Verticales
Verticales
SUM
SUM
-
-
COUNT
COUNT
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Frmulas Verticales
Frmulas Verticales
Slo se pueden definir entre atributos de tablas
"directamente" subordinadas
FACTURAS CLIENTES
FACTURAS1
SUM(att)
No permitido
1 N
1
N
FacTot = SUM(FacLinImp)
FacLinImp
SUM (att)
Puede ser Frmula
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Frmulas
Frmulas
AggregateJSelect
AggregateJSelect
Son frmulas que permiten buscar, sumar,
contar atributos que cumplan determinadas
condiciones, en cualquier tabla del
modelo.
Aggregate
- Sum
- Count
Select
- Nax
- Nin
- Find
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Frmulas
Frmulas
AggregateJSelect
AggregateJSelect
Sintaxis
atrib = Sum { Count(<att>, <cond. busq.>,<def>)
atrib = Nax { Nin(<att>, <cond. busq. >,<def>, <ret>)
atrib = Find(<att>, <cond. busq.>, <def>)
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
USO DE LA FORMULA MAX{ )
USO DE LA FORMULA MAX{ )
Ejemplo: Buscar el precio del producto segun
la fecha de la Factura.
Transaccin Productos Transaccin Factura
ProdCod* FacNro*
ProdNom CliCod
ProdStk FacFch
{ProdFch* FacTot
ProdPre) {ProdCod*
FacProdPre
FacLinCnt
FacLinImp)
Atributo = NAX(<Atributo a Naximizar>, <Condicin de Naximizacin>, <valor
por defecto>, <Atributo a devolver>)
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
USO DE LA FORMULA MAX{ ).
USO DE LA FORMULA MAX{ ).
FacProdPre = Max{ProdFch, ProdFch <= FacFch, 0, ProdPre)
Fecha de Factura: 10f10f99
Precio correspondiente: 220
Cdigo de Producto Fecha Aumento Precio valor del Producto
1021 10f08f97 200
1021 20f11f98 210
1021 03f10f99 220
1021 15f10f00 230
1022 10f08f97 100
1022 20f11f98 110
1022 03f10f99 120
1022 15f10f99 180
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
1.
1.
Condiciones
Condiciones
involucradas
involucradas
en
en
una
una
Frmula
Frmula
Aggregate Select
Aggregate Select
Condicin de Busqueda
Es la condicin a la cual esta sujeta la
busqueda.
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
2.
2.
Inferencias
Inferencias
en el
en el
caso
caso
de
de
una
una
Frmula
Frmula
Aggregate Select
Aggregate Select
La condicin de busqueda queda
determinada por:
La condicin explicitada como segundo
parametro.
Atributos que quedan instanciados por el
ambiente en el que se dispara la Frmula :
- !nterseccin de la tabla extendida del atributo definido
como frmula (tabla de partida) y la tabla sobre la cual
se esta resolviendo la frmula (tabla de llegada).
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
En el ejemplo que vimos:
Transaccin de Productos:
ProdCod*
ProdNom
ProdStk
(ProdFch*
ProdPre)
Transaccin de Facturas:
FacNro*
FacFch
CliCod
........
(ProdCod*
ProdNom
FacProdPre = Nax(ProdFch,ProdFch<=FacFch,0,ProdPre)
FacLinCnt
FacLin!mp)
Given: ProdCod
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
3.
3.
Cmo
Cmo
se
se
determina
determina
la
la
tabla
tabla
sobre
sobre
la
la
cul
cul
efectuar
efectuar
la
la
bsqueda
bsqueda
{
{
tabla
tabla
de
de
llegada
llegada
)
)
Atributo de Busqueda
Atributos que estan en la condicin y que no
pertenecen a la tabla extendida del Atributo
Frmula
Atributo de Retorno
De otra forma:
<Atr.Frm.> - Frmula !nvalida
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Ejemplo
Ejemplo
de
de
determinacin
determinacin
de
de
la
la
tabla
tabla
sobre
sobre
la
la
cual
cual
buscar
buscar
:
:
X = Find( A , B = C and D = + and E = F , 0 )
Atributos de la tabla extendida de X
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Ejemplo
Ejemplo
de
de
determinacin
determinacin
de
de
la
la
tabla
tabla
sobre
sobre
la
la
cual
cual
buscar
buscar
:
:
Deben pertenecer fisicamente a una misma
tabla (tabla de llegada)
X = Find( A , B = C and D = + and E = F , 0 )
Atributos de la tabla extendida de X
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
4. Frmulas AggregateJSelect no pueden
4. Frmulas AggregateJSelect no pueden
participar en frmulas SUM y COUNT simples
participar en frmulas SUM y COUNT simples
No se permite definir una frmula SUN que suma un atributo
que es una AggegatefSelect o depende de ella.
Ejemplo:
FacProdPre = frmula NAX
FacLin!mp = FacLinCnt * FacProdPre
FacTot = SUN (FacLin!mp)
Para resolver esto, se deberia almacenar el valor de FacProdPre
en otro atributo, pues las Frmulas Aggregate Select NO
PUEDEN SER DEF!N!DAS REDUNDANTES.
O utilizar la regla ADD en lugar del SUN vertical
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
5.
5.
Dependencia
Dependencia
fsica
fsica
de
de
las
las
frmulas
frmulas
Aggregate Select
Aggregate Select
Las frmulas Aggregate Select dependen de la
insercin, actualizacin o eliminacin fisica del o los
registros que involucran.
Ejemplo : Transaccin de Asientos
AsiNro*
AsiFch
AsiTotDeb = Sum(Reng!mp, RengTipDH=D" , 0)
AsiTotHab = Sum(Reng!mp, RengTipDH=H" , 0)
(Reng!d*
NonCod
Reng!mpS
Reng!mp
RengTipDH
CtaCod )
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Diferencias
Diferencias
entre
entre
frmulas
frmulas
aggregate
aggregate
select y
select y
frmulas
frmulas
verticales
verticales
Las frmulas aggfsel actuan sobre cualquier tabla de la base
de datos y las frmulas verticales solamente sobre tablas
directamente subordinadas.
En las frmulas aggfsel se pueden especificar condiciones de
busqueda. En las verticales no.
Las frmulas verticales generalmente cuentan o suman los
valores que estan en "memoria". Las aggregatefselect no.
Las frmulas verticales cuentan o suman atributos que pueden
ser frmulas (pero estas frmulas no pueden ser aggfsel ni
involucrar en su definicin una frmula aggfsel).
Los atributos mencionados en las frmulas aggregatefselect y
pertenecientes a la tabla de llegada deben estar
ALMACENADOS FISICAMENTE en la tabla de llegada.
Las frmulas aggfsel no se pueden definir como redundantes.
Las verticales si.
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
COMUNICACIN
COMUNICACIN
ENTRE OBJETOS
ENTRE OBJETOS
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Objetos GeneXus
Objetos GeneXus
TRN
RPT
MENU
WKP
PROC
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Reglas y
Reglas y
Comandos
Comandos
para
para
implementar
implementar
la
la
comunicacin
comunicacin
CALL
UDP (User defined Procedure)
UDF (User defined Function)
Entregado a Victor Gomez
Sedalib Trujillo 01/2004

Cul
Cul
es la
es la
convencin
convencin
usuada
usuada
para el
para el
nombre
nombre
de los objetos GeneXus en las
de los objetos GeneXus en las
llamadas
llamadas
?
?
Objeto Prefijo
Transaccin T + nombre de objeto
Procedimiento P + nombre de objeto
Reportes R + nombre de objeto
Work Panel W + nombre de objeto
Nenu N + nombre de objeto
Web Panels H + nombre de objeto
El nombre del objeto se trunca a la cantidad de caracteres
significativos seteados en la preferencia Significant Object
Name Length".
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Call
Call
Sintaxis:
En regla de Transacciones:
call(nom-prog,par1,...,parn) if (condicin);
En program sources de Reportes y Procedimientos,
eventos de Work Panels, Web Panels, Menu Bars y
eventos de Transacciones:
if (condicin)
call(nom-prog, par1,...,parn)
endif
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Call
Call
-
-
Regla
Regla
Parm
Parm
La regla PARN tiene como funcin declarar los
parametros en el objeto llamado.
Sintaxis:
Parm(atributofvariable);
Ejemplo:
call(PAltaCli, par1, . , parn)
En las Rules de PAltaCli:
parm(par1, ..., parn );
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Udp
Udp
Sintaxis:
En reglas de Transacciones:
<Att{8var> = Udp(nom-prog,par1,...,parn) if (condicin);
En Frmulas:
<Att> = Udp(nom-prog,par1,...,parn) if (condicin);
En el layout de los Reportes, y en los eventos de Work
Panels, Web Panels o Transacciones:
<8var> = Udp(nom-prog,par1,...,parn)
En el program source de un Procedimiento:
if (condicin)
<Att{8var> = Udp(nom-prog,par1,...,parn)
endif
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Udp
Udp
-
-
Regla
Regla
Parm
Parm
El ultimo parametro en la regla parm es el valor de
retorno.
Ejemplo:
parsal = udp(PAltaCli, par1, . , parn)
En las Rules de PAltaCli:
parm(par1, ..., parn, parsal);
PARMETRO DE SALIDA J DE RETORNO
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Definicin de Parmetros de
Definicin de Parmetros de
"IN" y de "OUT"
"IN" y de "OUT"
Se permite definir el tipo de pasaje de parametros:
entrada (in)
salida (out)
entradafsalida (inout)
Sintaxis:
parm(out:&par1, in:&par2, &par3);
Esto permite:
Una mejor especificacin de la semantica de las interfaces
Optimizar el pasaje de parametros de las aplicaciones de
acuerdo a la arquitectura en la que stas se implementan.
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
SUBRUTINAS
SUBRUTINAS
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Comando
Comando
SUB
SUB
Sintaxis :
Sub 'RoutineName'
ffcuerpo de la subrutina
EndSub
No se permite el pasaje de parametros.
Todas las variables del programa fuente pueden ser
usadas en la rutina 'RoutineName' , es decir que son
globales.
Disponible en Transacciones, Work Panels, Reportes,
Procedures y Web Panels.
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Comando
Comando
DO
DO
Sintaxis :
Do 'RoutineName'
Ejecuta la rutina `RoutineName'.
Disponible en Transacciones, Work
Panels, Reportes, Procedures y Web
Panels.
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
ARBOL DE EVALUACION Y
ARBOL DE EVALUACION Y
EVENTOS
EVENTOS
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Trn. Categorias
CatCod*
CatDto
Trn. Clientes
CliCod*
CliNom
CatCod
CliTotCmp
Ejemplo:
Ejemplo:
Trn. Fletes
FleFch*
FleVal
Rules de Facturas:
Add( FacTot, CliTotCmp);
Error( `Stock insuficiente') if ProdStk<0;
Subtract( FacLinCnt, ProdStk);
Trn. Facturas
FacNro*
FacFch
CliCod
CliTotCmp
CatDto
FacDto = FacSubTot * CatDto
FacFleVal = Nax( FleFch, FleFch <= FacFch,,Fleval)
FacSubTot = SUN( FacLin!mp )
FacTot = FacSubTot - FacDto + FacFleval
(ProdCod*
ProdPre
ProdStk
FacLinCnt
FacLinImp) = FacLinCnt * ProdPre
Trn. Productos
ProdCod*
ProdPre
ProdStk
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Arbol
Arbol
de
de
evaluacin
evaluacin
error {'No hay Stock')
ProdStk
FacLinCnt
FacLinImp
FacTot
FacSubTot
FacDto
ProdPre
CatDto
CliTotCmp
FacFleVal
FacFch
R. Add{FacTot, CliTotCmp) ;
F. FacTot = FacSubTot - FacDto + FacFleVal
F. FacDto = FacSubTot * CatDto
F. FacFleVal = MAX{ FleFch, FleFch<=FacFch,,FleVal )
F. FacSubTot = SUM { FacLinImp)
F. FacLinImp = FacLinCnt * ProdPre
R. Subtract{FacLinCnt, ProdStk) ;
R. Error{ 'Stock Insuficiente') if ProdStk < 0 ;
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Alteraciones
Alteraciones
del
del
orden
orden
de
de
disparo
disparo
de las Reglas
de las Reglas
PrvCod*
FacNro*
...
FacTotIng Total ingresado
{ ProdCod*
FacLinCnt
FacPre
FacLinImp = FacPre * FacLinCnt)
...
FacTotCalc = SUM{FacLinImp) Total calculado
Error
Total
Calculado
Total
Ingresado
FacLinImp
Error('El total ingresado no coincide con el total calculado') if
(FacTotCalc <> FacTotIng)
and After{Level{ProdCod));
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
-After( Atributo )
-After( !nsert )
-After( Update )
-After( Delete )
-After( Confirm )
-After( Level( Atributo ))
-After( Trn )
-!nsert
-Update
-Delete
-Level( Atributo )
Eventos para modificar el
momento de disparo de las
reglas
Funciones booleanas
Alteraciones
Alteraciones
del
del
orden
orden
de
de
disparo
disparo
de las Reglas
de las Reglas
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Ejemplo de transaccin de dos niveles
Ejemplo de transaccin de dos niveles
REGLAS STAND-ALONE
EvALUAC!ON DE REGLAS Y
FORNULAS SEGUN ARBOL
AFTER(CONF!NR)
GRABAC!ON DEL CABEZAL
AFTER(!NSERTfUPDATEfDELETE)
AFTER(CONF!RN)
GRABAC!ON DE LA L!NEA
AFTER(!NSERTfUPDATEfDELETE)
AFTERLEvEL LEvEL (ATR!B 2 N!vEL)
AFTER(TRN)
CONN!T
CONF!RNAC!ON
CONF!RNAC!ON
EvALUAC!ON DE REGLAS Y
FORNULAS SEGUN ARBOL
PARA
CADA
LINEA
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Reglas que
Reglas que
ocurren
ocurren
en el
en el
mismo
mismo
evento
evento
Son disparadas en el orden en que fueron definidas
Ejemplo 1
call('xxx') if After( Trn );
call('yyy ') if After( Trn );
Ejemplo 2
call('pgmname', CliCod, 8flag) if After( Confirm );
error(' ') if 8flag = 'N' and After( Confirm );
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Eventos
Eventos
en las
en las
Transacciones
Transacciones
Evento = Accin reconocida por un
objeto y a la cual se le puede asociar
un cdigo ejecutable
El cdigo permanece ocioso hasta
que ocurre un evento al cual esta
relacionado
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Eventos
Eventos
explcitos
explcitos
en las
en las
Transacciones
Transacciones
Evento Start
Evento `User Event'
Evento After Trn
Evento Exit
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Evento
Evento
Start
Start
Sintaxis: Event Start
cdigo
EndEvent
Se ejecuta al principio del programa
Ejemplo: Guardar el inicio de ejecucin del programa
Event Start
8entrada = Time()
EndEvent
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Evento
Evento
Start
Start
Ejemplos:
Event Start
8Nes1 = `Enero'
EndEvent
En el Evento Start de la transaccin de Facturas :
Event Start
call(PFindCli,8today, CliCod)
EndEvent
Parametro de salida. Se instancia el Cliente. Se accede slo a
las Facturas de ese Cliente.
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Eventos
Eventos
del Usuario
del Usuario
Sintaxis: Event 'User-event-name' <Key>
Level <att>
cdigo
Endevent
Ejemplo:
Event `Deuda Cliente' 2
Level Fac!d
if not null(Cli!d)
call(wdeucli,Cli!d)
endif
Endevent
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Evento
Evento
After Trn
After Trn
Sintaxis: Event After trn
cdigo
EndEvent
Ejemplo:
Event After trn
Return
EndEvent
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Evento
Evento
Exit
Exit
Sintaxis: Event Exit
cdigo
EndEvent
Se activa cuando el usuario abandona el
programa.
Ej: Llamar a un procedimiento que graba la
hora de entrada y salida del programa para
cada usuario en una tabla de control.
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Rules J
Rules J
Eventos
Eventos
En caso de conflicto de evaluacin entre reglas
y eventos de una transaccin, la regla se
evalua primero.
Eventos: Rules:
Event After trn call(tvenfac,FacCod) if
... After( Trn );
return
EndEvent
Entregado a Victor Gomez
Sedalib Trujillo 01/2004
Consideraciones
Consideraciones
En los Eventos NO se permite asignar
valor a los atributos.
Start y Exit Eventos S!N tabla base
`User Event' y After(trn) Eventos CON
tabla Base
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
REPORTES Y
REPORTES Y
PROCEDIMIENTOS
PROCEDIMIENTOS
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Reportes
Reportes
y
y
Procedimientos
Procedimientos
Reportes
Procesos no interactivos de consulta de
la base de datos.
Procedimientos
Procesos no interactivos de
actualizacin de la base de datos.
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Caractersticas
Caractersticas
Definicin procedural
Definicin sobre la Base de Conocimiento
!ndependencia de la Base de Datos
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Comando
Comando
For Each
For Each
Sintaxis:
For Each [Order| [ Atr...Atr|
Where <Condition>
.
.
.
Where <Condition>
Defined by <Attribute List>
.
Endfor
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Inferencia
Inferencia
de las
de las
tablas
tablas
utilizadas en el For Each
utilizadas en el For Each
Determinadas automaticamente a travs de
los atributos del grupo For Each (Order ,
where, defined by y cuerpo del For Each)
GeneXus despus de definir los atributos que
participan determina una Tabla Base y su
Tabla Extendida
A partir de esto define la navegacin
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
When None
When None
Ejecutar determinado cdigo, cuando en
un For Each no se encuentra ningun
registro.
Sintaxis
For each ffclientes
Where (condiciones de filtro)
(proceso el cliente)
When none
Nsg(ningun cliente cumple condiciones")
Endfor
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
For Each
For Each
paralelos
paralelos
For Each ff Facturas
EndFor
For Each ff Recibos
EndFor
Navegaciones totalmente independientes
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
For Each anidados
For Each anidados
Tres casos:
Tabla Base de los For Each DISTINTAS, pero tabla
extendida del For Each principal relacionada con la
tabla Base del For Each anidado por uno o varios
atributos.
Tabla Base de los For Each DISTINTAS, y NO
existe ningun atributo relacin entre la tabla
extendida del For Each principal y la tabla base del
For Each anidado.
Tablas base de los For Each IGUALES Corte de
Control
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
For Each
For Each
anidados
anidados
Caso 1 : For each anidados con distintas
tablas base pero tabla extendida del for each
principal relacionada con tabla base del
anidado por uno o mas atributos
For Each
[CliCod| [CliNom|
For Each
[FacNro| [FacSubTot|
Endfor
Endfor Atributo relacin: CliCod
Se instancia el orden CliCod en el For Each
anidado
CLIENTES
FACTURAS
CliCod
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
For Each
For Each
anidados
anidados
Caso 2 : Cuando tenemos que la tabla
base de los For eachs son distintas y no
existe ningun atributo que relacione la
tabla base del For Each anidado con la
tabla extendida del For Each principal,
el resultado que obtenemos es el
Producto Cartesiano de dichas tablas.
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Corte de Control
Corte de Control
Caso 3 : Procesar informacin por grupos.
Ej: Procesar facturas por cliente". Cada vez
que cambia el cliente se define un nuevo
grupo.
For Each Orden CliCod
(tabla Factura) orden -determina
For Each corte de control
(tabla Factura)
EndFor
EndFor -> Defined by, Print if detail
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Otros comandos
Otros comandos
If <Cond>
...
[Else]
...
endif
Do while <Cond>
...
Enddo
Do case
Case <Cond>
...
[Case <Cond>|
...
Otherwise
...
Endcase
For 8<var>=<Expresion> To <Expresion> [Step<!nteger>|
...
Endfor
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Algunas Reglas
Algunas Reglas
Definen el comportamiento general del
reportefprocedimiento
Siguen estilo de programacin declarativo
Algunas reglas disponibles:
Default( 8<var>, <valor>)
Output_file(nombre"{<att>{8<var> , formato" )
Ejemplo:
Output_file(C:clientes", rtf")
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Report Wizard
Report Wizard
Permite disear el layout de un
reporte {o procedimiento) de una
forma mucho ms fcil.
Se define a partir de una estructura
de datos muy similar a las
transacciones.
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Filtros
Filtros
en la
en la
navegacin
navegacin
Where
Condition
Parm(Atr ... Atr) - Atributos
recibidos como parametros
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Diseo
Diseo
de la salida
de la salida
Header
...
End
CP [nlinea]
Lineno [nlinea]
Eject
Noskip
Footer
MB
End
MT
PL
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Report Viewer
Report Viewer
Permite:
!mprimir
visualizar el reporte mientras se esta
generando
Paginado
Zoom
Salvado a un archivo
Find
En las preference del modelo se indica si
se desea o no utilizar el report viewer.
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
PROCEDIMIENTOS
PROCEDIMIENTOS
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Insercin
Insercin
de
de
registros
registros
Ejemplo: Insercin en tabla de resumen de
ventas anuales
Tabla: CliCod*
VtaAno*
VtaTot
New
CliCod = &CliCod
VtaAno = &Ao
VtaTot = &Total
When Duplicate
For each
VtaTot = VtaTot + &Total
Endfor
EndNew
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Actualizacin
Actualizacin
For Each
......
Atr = <Exp> Actualiza atributo de
...... la tabla extendida
Endfor
La actualizacin se realiza en el Endfor
No se puede actualizar ningun atributo que sea
parte de la clave primaria
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Delete
Delete
For Each
defined By FacFch
Delete slo Tabla Base
endFor
La ejecucin real del comando se produce cuando
se encuentra el Delete y no cuando se llega al
EndFor .
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Restricciones
Restricciones
No se realiza control de integridad
referencial
No Actualiza atributos definidos como
redundantes
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
WORK PANELS
WORK PANELS
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Work Panels
Work Panels
Permiten definir consultas
interactivas a la base de datos.
Son flexibles por lo que se prestan
para multiples usos.
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Caractersticas
Caractersticas
Algunas de ellas son:
Form (GU!-Windows)
Reglas
Conditions
Eventos
Subrutinas
Propiedades
Documentacin
Ayuda
Form classes
Style asociado
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Diferentes
Diferentes
tipos
tipos
de
de
Work Panels
Work Panels
Panel de Entrada
Panel de Salida
Panel Nixto
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Panel de
Panel de
Entrada
Entrada
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Panel de Salida
Panel de Salida
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Panel de
Panel de
Salida
Salida
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Area Fija
Subfile
Eventos y
Teclas de funcin
Panel Mixto
Panel Mixto
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Panel Mixto
Panel Mixto
Evento `visualizar Cliente' Evento `visualizar Facturas'
Evento `ElimCli'
Evento `NodifCli'
Evento `AltaCli'
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Event 'AltaCli'
Call( TClientes, `!NS', 0)
Endevent
Event 'ModifCli'
Call( TClientes, `UPD', CliCod)
Endevent
Event 'ElimCli'
Call( TClientes, `DLT', CliCod)
Endevent
Event 'Visualizar Cliente'
Call( TClientes, `DSP', CliCod)
Endevent
Parm( 8Node, 8CliCod);
variable del variable de
sistema usuario
CliCod = 8CliCod if Update or Delete;
EVENTOS del WKP
RULES de TClientes
Refresh
Refresh
Refresh
CliCod = udp( `Pnumera', `CL!') if !nsert;
ffsi queremos autonumerar los clientes
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Comando
Comando
For Each Line
For Each Line
Sintaxis:
For Each Line [in]
.... Recorre todas las lineas del subfile
EndFor
En caso de querer recorrer slo las lineas del subfile
que fueron seleccionadas:
For Each Selected Line
.....
EndFor
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Programacin
Programacin
dirigida
dirigida
por
por
Eventos
Eventos
El cdigo del programa permanece ocioso hasta que se
invoca su ejecucin mediante acciones tomadas por el
operador del programa frente a la pantalla.
Ejemplo:
Event Enter
Cdigo en respuesta a pulsar la tecla Enter
EndEvent
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Eventos
Eventos
Start
Refresh
Load
Enter
User-defined
Exit
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Estructura de los eventos
Estructura de los eventos
Comienzo de ejecucin del work panel
Fin de ejecucin del work panel
Evento Start
Evento Exit
Evento Refresh
Evento Load
Se muestran datos en pantalla (subfile cargado)
Evento Enter
Evento 'User defined'
N veces si work panel CON tabla base
1 vez si work panel SIN tabla base
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Reglas
Reglas
ms
ms
importantes
importantes
Order
Noaccept
Search
Hidden
Workfile_lines
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Propiedades
Propiedades
ms
ms
importantes
importantes
Loading
Load Records
Load at Startup
Automatic Refresh
Refresh Timeout
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Dilogo
Dilogo
ModalJNo Modal
ModalJNo Modal
Property Modal dialog
En transacciones y work panels (llamados).
Opciones:
Yes if parameters specified
Yes
No
Slo generadores visuales.
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Los atributos que determinan la tabla base y su
extendida son los definidos en:
Panel
Reglas Hidden y Order
Eventos (fuera de comandos For Each)
Work Panel sin tabla base comando LOAD
Work Panel con o sin tabla
Work Panel con o sin tabla
Base?
Base?
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Work
Work
P
P
anel
anel
sin
sin
tabla
tabla
base
base
Event Load
For Each Cli!d
defined by FacFch
8cli =CliNom
8tot =0
For Each
8tot =8tot + FacTotal
endfor
LOAD
endfor
EndEvent
Ejemplo: Nostrar para cada cliente el total facturado, pero slo de los clientes
que tienen facturas.
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
SUBTIPOS
SUBTIPOS
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Subtipos
Subtipos
Ejemplo: Transferencias entre Bancos
Transaccin de Bancos:
BcoCod* Cdigo de Banco
BcoNom Nombre de Banco
Transaccin de Transferencia :
TrnNro* Numero de transferencia
TrnFch Fecha
'PROBLEMA' BcoCod Banco Origen
Atributos BcoNom Nombre del Banco Origen
con el BcoCod Banco Destino
mismo BcoNom Nombre del Banco Destino
nombre TrnImp !mporte
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Bancos:
BcoCod*
BcoNom
Transferencia:
TrnNro*
TrnFch
TrnBcoOriCod
TrnBcoOriNom
TrnBcoDestCod
TrnBcoDestNom
Subtipo: Supertipo:
TrnBcoOriCod BcoCod
TrnBcoOriNom BcoNom
TrnBcoDestCod BcoCod
TrnBcoDestNom BcoNom
Subtipos de...
Subtipos
Subtipos
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
TRANSFERENCIA
BcoCod*
BcoNom
TrnNro*
TrnFch
TrnBcoOriCod
TrnBcoOriNom
TrnBcoDestCod
TrnBcoDestNom
BANCOS
Subtipos
Subtipos
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Solucin
Solucin
:
:
Grupos
Grupos
de
de
Subtipos
Subtipos
Almacenado TrnBcoOriCod Grupo
TrnBcoOri
Inferido TrnBcoOriNom
Almacenado TrnBcoDestCod Grupo
TrnBcoDest
Inferido TrnBcoDestNom
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Consideraciones
Consideraciones
El subtipo y supertipo seran definidos del mismo tipo,
GeneXus lo determina asi y cuando se quiere definir
un subtipo ste "hereda" la definicin del supertipo.
No incluir subtipo y supertipo en la misma
transaccin, ni tampoco en la misma tabla extendida.
No se pueden actualizar los subtipos inferidos (Add,
Subtract, asignacin).
Los subtipos inferidos no se pueden definir
redundantes
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Consideraciones
Consideraciones
Al menos uno de los supertipos del grupo debe ser identificador
en alguna transaccin.
Si al definir el grupo, uno de los atributos inferidos queda como
secundario ( S ), es porque hubo un error en la definicin del
grupo.
Se pueden definir subtipos de subtipos, pero no se infieren los
subtipos de subtipos inferidos (slo son validos para los
primarios).
Ejemplo: CliNro subtype of EmpNro
CliNom subtype of EmpNom
CliCredNro subtype of CliNro
CliCredNom subtype of CliNom
Los subtipos no pueden participar en la definicin de Combo
Box, ni Dynamic Combo Box.
No se puede
Grupo Cliente
Grupo CliCred
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Trn. Productos
ProdCod*
ProdNom
ProdPre
ProvCod ffproveedor que provee este producto
Trn. Proveedores
ProvCod*
ProvNom
Trn. Pedidos
PedNro*
ProvCod ffproveedor del pedido
ProvNom
PedFch
(ProdCod* ffproducto pedido
ProdNom
PedLinCnt)
Qu controles de integridad se resuelven
automticamente en el ejemplo?
Otro ejemplo de uso
Otro ejemplo de uso
de
de
subtipos
subtipos
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Otro caso de uso
Otro caso de uso
de
de
subtipos:
subtipos:
"e
"e
specializacin
specializacin
de
de
atributos
atributos
"
"
Se definen PrvNro y CliNro como subtipos simples
Empresas Proveedores Clientes
EmpNro* PrvNro* CliNro*
EmpNom PrvSdo CliLimCred
EmpRuc EmpNom EmpNom
EmpTel
EmpDir
EmpNom solo va a estar almacenado en la tabla empresas
CLIENTES
EMPRESAS
PROVEEDORES
CliNro subtype
of EmpNro
PrvNro subtype
of EmpNro
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
K
K
NOWLEDGE
NOWLEDGE
MANAGER
MANAGER
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Se genera el archivo Respaldo.xpz en la raiz de la KB
Distribucin
Distribucin
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Pide el path del archivo a ser consolidado
Consolidacin
Consolidacin
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
BUSINESS
BUSINESS
OBJECTS
OBJECTS
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Qu es un
Qu es un
Business Object
Business Object
?
?
Representacin de un objeto de la
realidad: producto, persona, factura,
moneda, pais
Para su definicin se toman en cuenta:
atributos que definen al objeto,
operaciones que le son relevantes,
cmo se relaciona con otros objetos.
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Cmo representar un
Cmo representar un
B
B
usiness
usiness
O
O
bject con Genexus?
bject con Genexus?
Cada BO GeneXus GeneXus es un folder que contiene
todos los objetos necesarios para definir el
comportamiento y el uso de dicho BO:
Transacciones que definen objetos basicos
Work Panels de trabajo
Reportes
Procedimientos que implementen operaciones
relevantes
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Business Object GeneXus
Business Object GeneXus
Ejemplo: Business Object Paises
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Caractersticas de un
Caractersticas de un
BO
BO
!ndependiente
No ligado a ninguna aplicacin
Standard y simple
Facilmente adaptable
Documentado
Bien testeado
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Cundo usar
Cundo usar
BO
BO
?
?
Al crear nuevas aplicaciones
Al agregar nuevas funcionalidades a
una aplicacin existente
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Ventajas de su uso
Ventajas de su uso
Reusabilidad:
Aumenta productividad
Disminuye esfuerzo de desarrollo
Proveer soluciones rapidamente
Facilitar la ampliacin de las
funcionalidades de una aplicacin
Compartir conocimiento
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Algunos BO Genexus
Algunos BO Genexus
Productos
Personas
Nonedas
Tipos de !vA
Numeradores
Disponibles en el Disponibles en el Web Site Web Site de Artech de Artech
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Distribucin de los BO
Distribucin de los BO
Exportar el folder que contiene el BO
Enviar exportacin (xpz) por mail a
webmaster@artech.com.uy
Datos importantes que deben ser incluidos en
la documentacin enviada:
Breve descripcin del BO (objetos que lo
componen y su funcionalidad).
Documentacin adicional que se desee adjuntar.
Autor.
Fecha de ultima actualizacin.
versin de GeneXus GeneXus con que se implement.
ARTech pondra disponible el BO en su Web
Site.
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
OBJETOS PRIVADOS
OBJETOS PRIVADOS
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Objetos Privados
Objetos Privados
Objetivo: proteger el conocimiento
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Objetos Privados
Objetos Privados
Al momento de distribuir", si existe
algun objeto privado se ingresara:
Copyright by: Derechos de autor del
dueno del objeto.
Buyer: Casa de software a la cual se esta
licenciando.
Purpose: Texto general.
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Objetos Privados
Objetos Privados
Operativa de los objetos privados: son generables" y
algunas partes visibles yfo editables
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
EFICIENCIA Y PERFORMANCE
EFICIENCIA Y PERFORMANCE
DE LAS APLICACIONES
DE LAS APLICACIONES
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Puntos
Puntos
a
a
Considerar
Considerar
Optimizacin del acceso a las tablas
Uso de Calls
Uso de !ndices Temporales
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Peor Estrategia Estrategia Optima
Begin of File Begin of File
READ
READ
READ < Start Point
READ READ
READ READ
READ READ
READ READ
READ READ
READ READ
READ < End Point
End of File End of File
Optimizacin
Optimizacin
de
de
Entrada
Entrada
-
-
Salida
Salida
Definicin
Definicin
de
de
Filtros
Filtros
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Definicin de Filtros
Definicin de Filtros
Clausula Where en For Each
Conditions en Prcs, Rpts, Wkps.
Parm() en Trns, Prcs, Rpts, Wkps.
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Definicin
Definicin
de la
de la
estrategia
estrategia
de
de
acceso
acceso
.
.
Se define el orden en que se recorrera el archivo
Se elige el punto de comienzo (Starting Point)
Se elige la posicin final (End Point).
Se leen secuencialmente los registros entre el punto
inicial y el punto final, seleccionando los registros que
cumplen las condiciones y descartando los restantes.
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Posicin
Posicin
de
de
Comienzo
Comienzo
Consideraciones
Consideraciones
para
para
su
su
definicin
definicin
.
.
Se consideran las condiciones compatibles con el
orden y que sean por:
Si el orden es ascendente
- Nayor (>)
- Nayor o !gual ( >=)
- !gual (=)
Si el orden es descendente
- Nenor (<)
- Nenor o !gual (<=)
- !gual(=)
Las condiciones deben estar relacionadas por And
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Posicin
Posicin
de
de
Comienzo
Comienzo
Ejemplos
Ejemplos
:
:
Orden: A B C
Condiciones : A >= 5 and C > 3
Posicin de comienzo: A >= 5
Orden: A B C
Condiciones : A > 5 and B < 2 and C > 3
Posicin de comienzo: A > 5
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Posicin
Posicin
Final
Final
Consideraciones
Consideraciones
para
para
su
su
definicin
definicin
.
.
Se consideran las condiciones compatibles con el
orden y que sean por:
Si el orden es ascendente
- Nenor (<)
- Nenor o !gual ( <=)
- !gual (=)
Si el orden es descendente
- Nayor (>)
- Nayor o !gual (>=)
- !gual(=)
Las condiciones deben estar relacionadas por And
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Orden
Orden
de
de
Recorrida
Recorrida
Importancia Importancia del del Orden Orden en en que que se se leen leen los los registros registros. .
Ejemplo: Condiciones de Filtro compatibles con el Orden
For each Order CliCod
Where CliCod >= &CodIni and CliCod <= &CodFin
....
....
Endfor
Cod Nombre
1 Smith
* 2 Jones Starting Point Read &CodIni = 2
* 3 Ball Read &CodFin = 4
* 4 King Ending Point Read
5 Ander
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Ejemplo: Condiciones de Filtro no compatibles con el Orden
For each Order CliNom
Where CliCod >= &CodIni and CliCod <= &CodFin
. . .
Endfor
Cod Nombre
*3 Ander Starting Point Read &CodIni = 2
5 Ball Read &CodFin = 4
6 Churchill Read
1 King Read
*4 Smith Read
*2 William Ending Point Read
Orden
Orden
de
de
Recorrida
Recorrida
Importancia Importancia del del Orden Orden en en que que se se leen leen los los registros registros. .
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Orden de Recorrida
Orden de Recorrida
Ejemplo: Nombre inicial : &NomIni
Nombre final : &NomFin
For each
where CliNom >= &NomIni and CliNom <=&NomFin
. . .
Endfor
Orden elegido CliCod
Si no se define un orden se elige el de
la Primary Key
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Diagrama
Diagrama
de
de
Navegacin
Navegacin
For each CliCod
[ CliCod ] [ CliNom ]
Endfor
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Diagrama
Diagrama
de
de
Navegacin
Navegacin
For each CliCod
Where CliCod >= &Ini AND CliCod <= &Fin
[ CliCod ] [ CliNom ]
Endfor
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
For each
Where CliNom >= &Ini AND CliNom <= &Fin
[ CliCod ] [ CliNom ]
Endfor
Diagrama
Diagrama
de
de
Navegacin
Navegacin
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Tambin influyen en la
Tambin influyen en la
performance
performance
Calls (fundamentalmente en ASf+00)
Uso de ndices Temporales
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
MULTIPLES FORMS
MULTIPLES FORMS
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Mltiples
Mltiples
Forms por
Forms por
Objeto
Objeto
Poder tener N pantallas por objeto.
Permitir dentro de una misma KB tener
modelos en los que se genera para
ambiente grafico y otros en los que se
genera para ambiente caracteres.
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Form Classes
Form Classes
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Mltiples
Mltiples
Forms por
Forms por
Objeto
Objeto
Form Classes
Graphic y Text (son del sistema)
Definidas por el usuario (modo texto o grafico)
Cada objeto tiene forms que pertenecen a
alguna de las form classes y cada Nodelo
tiene asociado una lista de Form Classes para
cada generador del mismo.
Opcin: Filef Edit Nodelf Nodel Forms
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004

Cundo
Cundo
decide GX
decide GX
el form a utilizar ?
el form a utilizar ?
Apertura del objeto
En tiempo de Especificacin
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
STYLES
STYLES
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Propiedades
Propiedades
de los Styles
de los Styles
Permiten la definicin de standards.
La definicin es por tipo" de objetos
(transacciones, work panels, etc).
Objeto GeneXus no tenido en cuenta al
normalizar.
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Definicin
Definicin
de un Style
de un Style
ObjectfNew Object.
Ejemplo de un Style de transaccin.
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Style
Style
Data Area
Style Area
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Creacin
Creacin
de un
de un
objeto
objeto
basado
basado
en un Style
en un Style
Al momento de crear el objeto, en el
!nformationfStyle se elige el Style deseado.
Relacin entre objeto y Style:
Form y Properties: Relacin dinamica
Otras partes del objeto: Relacin estatica
Dinamismo con las properties
Los objetos heredan las propiedades del style asociado
El dinamismo es por property"
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Creacin
Creacin
de un
de un
objeto
objeto
basado
basado
en un Style
en un Style
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Cmo
Cmo
asociar
asociar
Styles
Styles
a objetos
a objetos
existentes
existentes
Opciones
Objectf!nformationfStyle
Reapply Form Style
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Tres
Tres
Tipos
Tipos
de
de
Controles
Controles
Controles que vienen de la default Data
Area
Los que vienen del Style
Controles del Usuario
Los que agrega el usuario al objeto.
Los que vienen de la data area del Style.
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Qu
Qu
pasa
pasa
con el
con el
dinamismo
dinamismo
?
?
cCuando se pierde?
Respectivamente cuando se modifica:
- los controles que vienen de la DDA
- los controles que vienen de la Style Area" del Style
- una property
Al mover las lineas divisorias de Data Area y Style Area.
Opciones:
Edit Default Data Area
Edit Reapply Style Form
Para volver a
obtener
dinamismo
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Consideraciones
Consideraciones
para
para
el
el
diseo
diseo
de Styles
de Styles
Los controles que queden dentro de la Data Area del
Style son considerados como Controles de usuario".
Definir forms para diferentes form classes si los objetos
que lo usan tienen multiples forms. (Ej.: definir un form
grafico y uno de texto en el style).
Cuando se ponen Eventos y Rules incluir comentarios al
principio sobre qu cambios se deben realizar en el
objeto.
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Master
Master
Style
Style
Objetivo: Style default
Se define por modelo
Por tipo de objeto" salvo:
Prompt - Workpanel
Report - Procedure
FilefEdit NodelfNaster Styles
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Master Style
Master Style
Precedencia:
Style asociado
Naster Style
Default
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
PROPIEDADES, EVENTOS
PROPIEDADES, EVENTOS
Y MTODOS ASOCIADOS A
Y MTODOS ASOCIADOS A
LOS CONTROLES
LOS CONTROLES
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
PROPIEDADES DE LOS
PROPIEDADES DE LOS
CONTROLES
CONTROLES
Cada control en un Form tiene un `nombre' y
`propiedades' asociadas.
!nsertfProperty: despliega la lista de
propiedades validas para cada control.
Segun el tipo de control, las properties que
tiene asociadas.
Slo en generadores graficos.
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Propiedades
Propiedades
de los
de los
Controles
Controles
El `nombre del control' para
atributosfvariables es el nombre del
atributofvariable.
NOTA: Si una variable es un vector,
debe indicarse un nombre a cada
posicin del vector para diferenciarlas.
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Dilogo
Dilogo
:
:
Select Property
Select Property
Se accede a travs de la opcin
!nsertfProperty cuando se editan:
Rules, Eventos, Subrutinas, etc., en
transacciones, work panels y web panels
No disponibles en reports y procedures
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Dilogo
Dilogo
:
:
Select Property
Select Property
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
EVENTOS EN CONTROLES
EVENTOS EN CONTROLES
!nsertfEvents
Permite asociar Eventos a cada Control.
DblClick
Click
RightButton
!svalid
OnLineActivate
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
EVENTOS EN CONTROLES
EVENTOS EN CONTROLES
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Evento
Evento
OnLineActivate
OnLineActivate
Evento asociado al control subfile"
Se dispara cuando se activa una linea en el subfile:
al clickear una linea con el mouse
moverse a travs de la grilla con el teclado
cuando se hace refresh de la grilla.
Los valores son los de la linea nueva"
Los for each incluidos en este evento se anidan a la
tabla base del work panel.
Disponible en transacciones y work panels.
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
METODOS
METODOS
Se aplican a los controles.
Sintaxis:
Nombre del Control.Nethod([<Parms>|)
Segun el tipo de control (edit, check box, etc)
son los mtodos que se pueden asociar.
Se accede a travs de la opcin
InsertJMethods cuando se editan: Rules,
Eventos, Subrutinas en transacciones, work
panels y web panels.
Slo en generadores graficos.
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
MENU BAR Y TOOL BAR
MENU BAR Y TOOL BAR
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Tipo
Tipo
de
de
objeto
objeto
Menu Bar
Menu Bar
Para definicin de Nenu Bar y Tool Bar
ObjectfNew ObjectfNenu Bar
Add y Delete de Items
Botn derechof!nsert y botn derechofDelete
Subitems
Personalizacin del item HelpfAbout
Slo en generadores graficos.
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Tipo
Tipo
de
de
objeto
objeto
Menu Bar
Menu Bar
Definicin de Eventos
Cada item sin subitems puede tener asociado un evento.
Nombre del evento: Event Menubar.nombre del item
Son generales No se permiten atributos.
En transacciones, work panels y web panels:
Property Nenubar : *Default, *None, Nenu Bar existente
Pueden programarse eventos para los items de la Nenu Bar.
Son particulares Se permiten atributos.
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Propiedades de los tems en
Propiedades de los tems en
ejecucin
ejecucin
A partir de la versin 7.5 se pueden programar
en ejecucin las siguientes propiedades de los
items:
Caption
Checked
Enabled
visible
Sintaxis
NenuBar.<nombre item>.<propiedad> = <valor>
Ejemplo: NenuBar.!D_Clientes.enabled = 0
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
OBJETOS MAIN
OBJETOS MAIN
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Objetos Main
Objetos Main
GeneXus genera ejecutables por cada objeto Nain.
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Llamadas a objetos Main
Llamadas a objetos Main
Cuando desde un objeto se llama a
otro objeto que es Nain:
GeneXus genera un call a un ejecutable
(en lugar de un call comun)
Son compilables
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Qu ocurre si un objeto que
Qu ocurre si un objeto que
no es Main pasa a serlo?
no es Main pasa a serlo?
Ejemplo:
Trn A Wpanel B
Call(P!mpClis) Call(P!mpClis)
P!mpClis no es main: GeneXus gener entonces en los
programas asociados a la Trn A y Wpanel B un call al
programa P!mpClis
El Proc !mpClis pasa a ser Nain:
En los programas asociados a la Trn A y Wpanel B GeneXus
deberia cambiar el call al programa P!mpClis por un call a un
ejecutable !mpClis", con lo que deberiamos regenerar estos
objetos.
Para evitar la regeneracin de todos los objetos
llamadores: GeneXus usa un concepto llamado STUBS
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
STUBS
STUBS
Cuando el objeto !mpClis pasa a ser Nain, GeneXus
realiza lo siguiente:
Genera el programa PimpClis" que slo contiene el Call al
Ejecutable correspondiente
Genera otro programa que es el que contiene la lgica del objeto
!mpClis y sera el principal del ejecutable.
Esto permite no tener que regenerar todos los objetos
que llaman al objeto !mpClis.
Al programa que contiene slo el llamado al ejecutable se
le denomina STUB.
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
STUBS
STUBS
Para la denominacin del programa STUB se siguen las
convenciones de siempre (P=Procs, W=Work Panels etc.)
Para la denominacin del programa que sera el principal del
ejecutable (el que contiene realmente el cdigo) se usan las
siguientes convenciones:
Transaccin N
Work Panel U
Report O
Procedure A
Nenu L
Web Panel H
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
DATA VIEWS
DATA VIEWS
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
DataViews
DataViews
-
-
Archivos
Archivos
Externos
Externos
Los Data views de GeneXus permiten manejar
Archivos Externos como si fueran Archivos
pertenecientes a la Base de Conocimiento.
Propiedades
Definicin Global
Uniformizacin de la nomenclatura
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
DataViews
DataViews
-
-
Archivos
Archivos
Externos
Externos
Para trabajar con Archivos Externos en
GeneXus tenemos dos posibilidades:
DATA v!EWS:
- Sin tabla Asociada
- Con tabla Asociada
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Data Views
Data Views
EXTERNAL
FILE
INTERNAL
TABLE
EXTERNAL
FILE
GENEXUS
DATABASE
DATA VIEW
DEFINITION
EXTERNAL
ENVIRONMENT
S!N TABLA
ASOC!ADA
CON TABLA
ASOC!ADA
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Definicin
Definicin
de un Data View
de un Data View
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Composition
Composition
Ejemplo:
Dados los siguientes Archivos Externos:
CLIENTES PRODUCTO
Codigo* Codigo*
CliNom ProDsc
CliDir ProPre
Composition Composition
CliCod 'Codigo' ProCod 'Codigo'
CliNom ProDsc
CliDir ProPre
Se uniformiza la nomenclatura
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Indices
Indices
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Platform Specific
Platform Specific
Information
Information
{Add)
{Add)
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Platform Specific
Platform Specific
Information
Information
{
{
Edit
Edit
)
)
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Dabla View con
Dabla View con
Tabla
Tabla
Asociada
Asociada
GENEXUS
MODEL
INTERNAL
TABLE
EXTERNAL
FILE
DATA VIEW
DEFINITION
EXTERNAL
ENVIRONMENT
GENEXUS
DEVELOPMENT
ENVIRONMENT
INTERNAL
INDEX
EXTERNAL
INDEX
- - - - -
- - - - -
- - - - - -
- - - - -
- - - - -
- - - - -
- - - - -
- - -
- - - -
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
INTERNAL
TABLE
EXTERNAL
FILE
- - - - - - -
- - - - - - -
- - -
Tabla Interna = Tabla Externa
Dabla View con
Dabla View con
Tabla
Tabla
Asociada
Asociada
DATA VIEW
DEFINITION
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Tabla Interna < Tabla Externa
Dabla View con
Dabla View con
Tabla
Tabla
Asociada
Asociada
EXTERNAL
FILE
Not Accessed
INTERNAL
TABLE
- - - - -
- - - - - - - - - - - - - - -
- - - - - - - - - - - - - - -
DATA VIEW
DEFINITION
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
DATA VIEW
DEFINITION
EXTERNAL
ENVIRONMENT
GENEXUS
DATABASE
EXTERNAL
FILE
NOT ALLOWED
- - - - -
- - - -
- - - -
INTERNAL
FILE
Tabla Interna > Tabla Externa
Dabla View con
Dabla View con
Tabla
Tabla
Asociada
Asociada
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
DATA VIEW
DEFINITION
EXTERNAL
ENVIRONMENT
GENEXUS
DATABASE
INTERNAL
TABLE A
EXTERNAL
FILE
Subtype
ALLOWED
- - - -
- - - -
- - -
USO DE SUBTIPOS
CliCod*
CliNom
INTERNAL
TABLE B
CliCodSub*
CliNom
CliDir
CliEMail
Codigo
Nombre
Tabla Interna > Tabla Externa
Dabla View con
Dabla View con
Tabla
Tabla
Asociada
Asociada
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Asociacin
Asociacin
Dinmica
Dinmica
Es cuando las definiciones del Archivo
Externo coinciden con las definiciones
de la Tabla !nterna (tanto en nombres
como en la composicin).
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Un Data Store es una fuente de datos que
contiene informacin referente a una conexin
(DBNS, Data Source, etc.)
En todo modelo de Prototipo o Produccin,
siempre existe un Data Store Principal" (default)
A su vez, pueden definirse N Data Stores
Secundarios" dentro de una KB GeneXus
Cada Data Store apunta a una fuente de datos
diferente
Data Store
Data Store
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Data Stores =
Data Stores =
DBNS Default
O
D
B
C
J
D
B
C
E
m
b
S
Q
L
Otro
DBNS
Otro
DBNS
DATA VIEW
DATA VIEW
DBMS + Tecnologa de Acceso DBMS + Tecnologa de Acceso
APL!CAC!ON GeneXus
JAVA VB - VFP C/SQL
Data Store Default
Otro Data Store
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Se define cada Datastore
File/ Edit Model/Data Stores
Unica propiedad: Nombre
Modelo de Diseo GX
Data Store
Data Store
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Modelo de Prototipo J Produccin
Data Store
Data Store
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
Utilizacin
Los Data Stores son para asociarlos a Data views
para indicar que la tabla debe ser accedida a travs
de la conexin del Data Store y no mediante la
conexin principal que es el comportamiento por
omisin.
Las tablas del modelo pertenecen al Data Store
principal.
Data Store
Data Store
Entregado a Vctor Gomez
Sedalib Trujillo 01/2004
REORGANIZACIONES
REORGANIZACIONES
-
-
DATA
DATA
VIEWS
VIEWS
EX!STE TABLA ASOC!ADA
Si cambia la estructura de la tabla asociada, el
cambio es detectado en el Analisis de !mpacto.
No se generan programas de reorganizacin.
NO EX!STE TABLA ASOC!ADA
No aparece en el Analisis de !mpacto.

Você também pode gostar