Ingenieria Del Software I - Genexus
Ingenieria Del Software I - Genexus
Ingenieria Del Software I - Genexus
GENEXUS Para iniciar un Proyecto en Genexus 9.0 primero crearemos una base de datos con SQL Server 2005 o superior.
Luego seguimos los siguientes pasos para activar la seguridad sa de SQL Server. Vamos a CONECTAR.
Escogemos seguridades
Desactivamos a continuacin las casillas: Exigir directivas de contrasea, Exigir caducidad de contrasea, y la casilla El Usuario debe cambiar la contrasea en el siguiente inicio de sesin; adems, ponemos en Contrasea y Confirmar Contrasea la palabra clave: sa.
Luego de haber hecho esto, debemos ir a Propiedades del servidor que est activado para el SQL Server, en este caso el servidor es AMSCOM, damos clic derecho para desplegar las propiedades y escogemos Seguridad.
Luego escogemos Procesadores y activamos la opcin Aumentar la prioridad de SQL Server. Y Aceptamos.
De ser necesario reactivar el Agente SQL Server, lo podemos hacer, haciendo clic derecho sobre l y aceptando en Iniciar.
Ahora que ya tenemos configurada SQL Server, crearemos una base de datos en blanco.
Acto seguido vamos al Disco C:\ y creamos una nueva carpeta donde estar nuestro proyecto de Genexus.
Yo la llame Clase2.
GENEXUS 9.0
Primero debemos instalar Genexus 9.0, en nuestro PC, para lo cual seguimos los siguientes pasos: INSTALAR GENEXUS 9.0 1. ABRIR EL ARCHIVO INDEX CON INTERNET EXPLORER IR A THIRD PARTY TOOLS o INSTALAR .NET FRAMEWORK 1.1 o INSTALAR JSHARP FRAMEWORK 1.1 2. REGRESAR AL HOME 3. ABRIR GENEXUS TOOLS INSTALAR GENEXUS PROTECTION SERVER 4.0 4. IR AL HOME 5. INSTALAR GENEXUS 9.0 ACEPTAR EN ESPAOL ACEPTAR TODOS LOS PROGRAMAS QUE MUESTRA COMO NET, FOX, COBOL. RPG 6. COPIAR LA CARPETA LICENCIAS APARTE (ESCRITORIO, POR SI SE BORRAR LOS ARCHIVOS) 7. EJECUTAR LICENCIAS EN EL ORDEN: DEVELOPMENT (DE), JAVA Y .NET A TODO PONER OK 8. INGRESAMOS A GENEXUS, ELEGIMOS DEL MENU GENEXUS 9.0 TOOLS Y ACEPTAMOS EN LICENSE MANAGER 9. MARCAMOS UNO A UNO: DEVELOPMENT (DE), JAVA Y .NET, EN CADA UNO DAMOS CLIC EN TRANSFER, MARCAMOS TRANFER IN, BUSCAMOS LAS LICENCIAS EN EL ESCRITORIO Y DAMOS OK EN EL ORDEN DEVELOPMENT (DE), JAVA y . NET 10. ABRIMOS LA CARPETA DE PARCHES Y EJECUTAMOS UNO A UNO: DEVELOPMENT (DE), JAVA Y .NET 11. EJECUTAMOS EL ARCHIVO LLAMADO registrofram.bat 12. REINICIAR LA PC. Todos los pasos se siguen usando el software de Genexus 9.0, una vez instalado iniciamos la creacin de nuestra Base de Conocimientos, y todo cuanto hagamos lo direccionaremos a la carpeta Clase2 que creamos en C:\ Abajo vemos la pantalla de Genexus 9.0
10
Nos aparece la pantalla, donde debemos poner el nombre de la Base de Conocimientos, direccionndola a la carpeta que antes creamos en C:\
11
12
Vamos al men grfico y aceptamos en New Object, para de esta manera definir el nuevo objeto de la base de conocimientos Clase2
Le ponemos un nombre, en este caso Plantilla y marcamos Style Object (Estilo del objeto) y Ok
13
Nos aparece una nueva ventana con la plantilla que hemos creado, a esta plantilla le podemos hacer los cambios que deseemos para personalizarla.
Podemos borrar los botones con solo marcarlos y aplastar Insert (borrado botn Help)
14
Ahora vamos a poner iconos en vez de los botones que por defecto nos despliega Genexus 9.0, para esto buscamos los botones en la web, los ponemos dentro de una carpeta y esa carpeta la ponemos dentro de la Clase2 que est en el C:\
Para cambiar los iconos damos sobre clic sobre los botones por ejemplo el botn Enter. Nos aparece la ventana Button Properties.
Damos Clic en Bitmap para elegir el botn Nuevo de la carpeta botones que pusimos en la carpeta Clase2 anteriormente. Elegimos el botn Nuevo1,
15
Ahora damos clic en Auto Rezise, para ajustar el tamao del botn automticamente, y OK
Aparece el botn en la plantilla, ahora solo nos resta hacer lo mismo con los otros botones.
16
Aca vemos los botones cambiados, los botones son fotografas .jpg
Marcamos los botones y en la parte inferior vemos las alineaciones que nos permite Genexus, elegimos una y veremos una alineacin instantnea.
17
Para cambiar el color del formulario (Plantilla) damos doble clic sobre una parte vaca y aparece las propiedades del formulario (Form Properties)
El color de fondo del formulario ha cambiado de color, guardamos todo con Save.
18
Le ponemos un nombre en este caso Cliente, seleccionamos el Estilo (Style) en esta caso la Plantilla que hemos creado. Y damos Ok
Nos aparece la ventana de Transaction Cliente: Cliente*, donde insertamos los campos que necesitemos
19
Ponemos un campo, este ser el campo que contenga la clave primaria (Primary Key)
Para insertar otro campo damos clic derecho sobre la tabla Cliente y seleccionamos Add Atribute, o podemos al final del ingreso del campo dar ENTER.
Para cambiar el Tipo de datos damos doble clic sobre el tipo de datos y seleccionamos el que deseemos.
20
Una vez ingresados los campos nos quedar as, luego damos Guardar. Save.
Luego hacemos clic en Form, y veremos cmo nos queda el formulario que hemos estado diseando. Tomar los atributos de botones y colores de la Plantilla. Damos Grabar (SAVE)
21
Aparece una ventana de Genexus que nos pregunta si deseamos crea un nuevo modelo, hacemos OK
Aparace la ventana GX Wizar Step 1 of 6, aqu seleccionamos en Interca de uso (User Interface) a Win. Y damos siguiente. Next
En la ventana siguiente ponemos el nombre de la Base de datos (BDdatos02) que hemos creado en SQL Server y el servidor (AMSCOM)
22
Nos queda:
Damos Next. Y en la siguiente ventana elegimos en User trusted conection (no) pues por defecto est (yes) adems seleccionamos la Versin del servidor SQL (2005 o superior) y colocamos sa en el User y el User password, si estamos usando alguna clave en SQL Server 2005; de no ser as pues lo dejamos en YES y solo cambiamos la versin del servidor SQL.
23
Esta ventana que se abre (Paso 5) debe contener en su direccionamiento la versin y apuntar hacia csc.exe, para que funcione normalmente. Verificamos esto y damos Next
De no se as, buscamos la versin correcta (pudiendo ser C:\Windows\Microsoft.net\framework\v3.5\csc.exe \v2.0.50727\csc.exe). Y damos Next.
la
24
Y en la ltima ventana OK
Acto seguido se puede ver la ventana Database Creation Report, donde elegimos Reorganize.
Aparece una ventana que nos pregunta si ejecutamos la Reorganizacin, hacemos clic en SI.
25
Aparece una ventana que nos avisa que la reorganizacin se ha ejecutado. Clic en Close.
26
Una vez editado el Modelos Clase2. Escogemos Objects, y veremos que se ha creado la tabla Cliente.
27
28
Y escogemos Enter, Tab, Shift Tab, para que el, curso salte automticamente de un sitio a otro en orden.
Luego en Transaction Configuration, vemos los botones antes configurados y sus respectivas acciones. Damos Aceptar.
29
Si hacemos clic en DBMS Options.. Veremos cmo est configurada la conexin de la DB y aqu podemos hacer modificaciones si es necesario, (en especial cuando cambiamos de servidor), cerramos todo haciendo Aceptar.
30
En esta ventana hacemos clic en Force generation y Specify & Generate, luego OK.
31
Compile.
Close.
32
Execute&Compile
Compile&Execute. Una vez hecho esto aparece la ventana Genexus Developer Menu
33
Aqu ya podemos ingresar datos en el formulario, datos que ser ingresado automticamente en la Base de datos BDdatos02 de SQL server, donde se ha generado automticamente por Genexus la tabla Cliente
Ingresemos datos para verificar si son recibidos en la base de datos BDdatos02. Una vez ingresados damos Insert.
34
Ingresamos ms datos para verificar si los dems botones (Borrar, Salir y Seleccionar funcionan, as como las flechas de navegacin). El botn Seleccionar despliega los datos de todo lo ingresado, al dar doble clic sobre un registro se seleccionan eso datos.
Datos seleccionados.
Al querer borrar un registro, ante de hacerlo consulta si desea borrar el registro, al aceptar el registro se borra. (Registro borrado Pepito Prez)
35
Todo funciona perfecto. Ahora aremos un nuevo formulario, para esto regresamos a DESING (Diseo)
Haremos una tabla donde ingresemos el estado civil de cada uno de los registros anteriormente ingresados a la base de datos. Hacemos un nuevo objeto. (New Object)
36
Hacemos clic en Form y vemos como quedo nuestro formulario, hora grabamos (Save)
37
Seleccionado Prototipo en la ventana que aparece damos OK, y en seguida aparece la tabla que hemos creado.
Damos clic en Reorganize y nos pregunta si deseamos ejecutar la reorganizacin, decimos que SI.
En la siguiente
38
39
Doy CTRL+A
En Object, marco la tabla con la cual voy a relacionar en este caso Ecivil
40
Los atributos seleccionados han sido incorporados a la tabla cliente. Grabamos (Save)
Vamos a ver en el formulario que los dos atributos han sido tambin incorporados al mismo.
41
42
Nos va a dar un error es porque la clave de la tabla ecivil no acepta valores NULL
Regresamos a DESIGN
43
Regresamos a PROTOTIPO y ejecutamos los mismos pasos anteriores, veremos que no sale el error
44
45
Aceptamos en Execute.
46
Aparece la ventana Genexus Developer Menu, al hacer clic en Transactions se muestran las tablas que hemos creados (cliente y ecivil)
47
En SQL Server podemos ver los datos que hemos ingresado en la tabla ecivil.
Ingresaremos datos
Para seleccionar el estado civil, ponemos el cursor en la caja de texto de cdigo civil y digitamos F4, se desplegar todas las posibilidades de estado civil que hayamos ingresado.
48
Damos ENTER y aparece automticamente el estado civil seleccionado. En la casilla estado civil.
Ponemos Insert y agregamos los datos a la base de datos BDdatos02. La relacin guarda los datos relacionados y cuando consultemos los podremos observar como los hayamos ingresado.
49
Creamos nuestra Base de Conocimientos (Facturas) y la direccionamos a la carpeta CLASE3 que hicimos antes.
Diseamos un New Object al cual llamaremos Cliente, lo haremos si usar una plantilla, como en el ejercicio anterior.
50
Hacemos el formulario Producto, cuyo cdigo ser incremental, veamos cmo se hace esto. Primero ponemos el atributo codigoprod, damos clic derecho sobre el y aceptamos propiedades.
51
Ponemos los atributos restantes en la tabla producto, cabe indicar que para poner decimales, solo debemos determinarlo en la parte decimal del atributo (numeric), y guardamos,
52
Ponemos el nmero de Factura, la fecha (pero a la fecha le asignaremos un estilo) esto lo hacemos marcando el atributo fecha y yendo a propiedades.
En propiedades verificamos el Date Type que sea Date y en Date Format elegimos como deseamos que aparezca la fecha (formato)
Hasta ahora hemos trabajado en el PRIMER NIVEL , y en este nivel pondremos los siguiente campos cdula, apellidos, nombres.
53
Ahora vamos a crear un SEGUNDO NIVEL donde pondremos todo lo referente al detalle de la factura, para crear un SEGUNDO NIVEL, debemos tener aplastado CRTL y digitar la flecha derecha (->). Para esto damos enter y una vez que aparece el cuadro de ingreso de atributo hacemos CRTL+->.
Hacemos CTRL+A para que aparezcan los atributos que deseamos ingresar en el formulario factura, dentro del nivel detalle.
54
Vemos que factotalinea es el ltimo atributo, a este le pondremos una frmula para calcular el total de la factura que sera la multiplicacin de la factcanti y factprecio. Grabamos.
55
Regresamos al nivel anterior con CTRL+<-, ponemos un atributo vaco y digitamos CTRL + <-
Ingresamos el atributo factsubtotal, para saber el subtotal de la factura. Aqu tambin ponemos una frmula sum(factotalinea).
56
Ponemos otro campo al cual llamaremos factiva y de igual manera le ingresaremos una formula factsubtotal * 0.12.
Ingresaremos un nuevo campo para el total de la factura facturatotal al cual de ingresaremos una frmula que sume factsubtotal+ factiva.
Cambiamos el typo de atributo a 6.2 en todos los atributos desde factotalinea hasta facturatotal.
57
Ordenamos los atributos que ingresamos al ltimo a la derecha del formulario factura.
Damos doble clic sobre el GRID y de la ventana Grid Properties vamos a colum ac vemos el nombre de las columnas, una a una les cambiaremos el nombre para mejorar la presentacin.
58
Para cambiar los cuadros de texto que sealan el subtotal, el iva y el total general, damos doble clic sobre cada uno y cambiamos el nombre.
59
En DESIGN vamos a tables en el formulario facturas y vemos que se han creado 4 entidades
Podemos cambiar el nombre de las entidades antes de grabar clara, pero si ya grabamos no lo hacemos, para cambiar el nombre damos clic derecho y en propiedades
60
1 paso. Next
Paso 2. Next
61
Paso 3. Next
Paso 4. Next
Paso 5. Next
62
63
Elegimos propiedades.
Elegimos Client Server Information y en Reorganize server tables cambiamos el YES por NO, as no podrn manipular nuestras tablas.
64
Execute.
65
Close.
Execute.
66
67
Formulario Factura:
Ingresamos Datos.
68
BASE DE CONOCIMIENTOS ALUMNOS Crearemos Una base de conocimientos llamada Acadmico dentro de una carpeta en la raz C:\ llamada acadmico.
69
La tabla Perodo:
La Tabla Parcial
70
71
Ponemos un ComboBox.
Tabla Nivel:
72
Tabla Alumno:
Tabla Nota:
73
Como vemos en la tabla Nota, tenemos varias claves Forneas (IdPeriodo, IdParcial, IdMateria, IdAlumno), por lo que se hace necesario generar una clave compuesta y lo hacemos as: En cada Clave Fornea damos clic derecho y seleccionamos Toggle Key, automticamente se crea la FK.
74
Vamos a PROTOTIPO Y conectamos la Base de Conocimientos Acadmico con la base de datos BdAcademico.
75
Al terminar vemos que hemos creado las tablas en la base de datos BdAcedemico.
76
Damos Si
Al final ponemos Close. Y las tablas han sido creadas en la base de datos.
77
78
Tabla Anio
79
Tabla Materia
Tabla Parcial
Tabla Periodo
Tabla Nota
80
Para que se inicie primero el Work Panel Aperturas debemos ir a Events de Aperturas, en Event seleccionamos Start. Debemos programar as:
81
Event Start for each where EstAnio = 'A' endfor EndEvent // Start Luego insertamos una variable IdAnio que es la clave primaria de la tabla Anio. Para esto ponemos Crtl+W. Aparace la ventana Select Variable, damos clic en Add. Para insertar la variable.
82
De esta manera en la ventana que se abre al seleccionar ADD, ponemos en Name el nombre de la variable (Clave principal de la tabla Anio) , damos clic en Aceptar y luego en OK.
As se inserta una variable que est basada en un atributa de una tabla preestablecida. Ahora la variable que hemos insertado le asignaremos el valor de la tabla del mismo atributo (PK).
Nos queda: Event Start for each where EstAnio = 'A' &IdAnio = IdAnio endfor EndEvent // Start
83
Ponemos un texto: y asi todos los textos que necesitemos para que nos quede como deseemos:
84
Pondremos las cajas de texto, donde debemos poner los atributos (&).
Creamos la variable AuxNivel con Crtl+W. debe ser numrica, lengh=1 y decimals=0.
85
En descriptons from ponemos el atributo que contiene la descripcin del periodo (DescriPeriodo).
86
Ahora cambiamos la caja de texto IdParcial, procedemos como antes y en Description from y Values from ponemos IdParcial y en Conditions ponemos: IdPeriodo = &IdPeriodo .AND.EstaParcial = 'A';
87
88
Ahora con la caja de texto Materia (&IdMateria), Ponemos un Dynamic Combo Box
Pondremos las siguientes variables en: Description from: DescriMateria, en Values From: IdMateria.
En Conditions: Nivel=&AuxNivel
89
90
Pondremos los campos que necesitemos en este caso: Cedula, Apellidos y Nombres, pero primero debemos cear las variables que necesitemos: &Cedula, &Apellidos y &Nombres con Crtl+W.
Insertamos una a una las variables antes mencionadas, las cuales seleccionaremos para el GRID.
91
Insertamos el GRID y ponemos las variables con Add, el Type y object debe ser *ALL.
La programacin de Events: Event Start FOR EACH WHERE EstAnio ='A' &IdAnio = IdAnio ENDFOR EndEvent // Start Event Load FOR EACH Apellidos //ORDENA POR APELLIDOS WHERE estado = 'A' 92
WHERE SUBSTR(Paralelo,2,1)= &AuxParalelo WHERE VAL(SUBSTR(Paralelo,1,1))=&AuxNivel &Cedula=Cedula &Apellidos=Apellidos &Nombres=Nombres LOAD ENDFOR EndEvent // Load Pondremos un botn Refresh, para actualizar el formulario en unin con la DB.
Para continuar con el proceso, vamos ahora a ir a SQL Server para relacionar todas las tablas.
93
94
95
Luego Cancelar
Quedamos en Source del PROCEDIMIENTO APERTURA nos queda: Necesitamos una bandera &sw. Como vemos lo primero que pondremos es una bandera &sw.
96
&sw=0 FOR EACH WHERE estado ='A' WHERE SUBSTR(Paralelo,2,1)=&AuxParalelo WHERE VAL(SUBSTR(Paralelo,1,1))=&AuxNivel &IdAlumno=IdAlumno &sw=1 NEW IdAnio=&IdAnio //IdPeriodo = &Idperiodo IdParcial=&IdParcial IdMateria=&IdMateria IdAlumno=&IdAlumno ValNota=0 EstNota='A' ENDNEW ENDFOR Programamos la Rules:
PARM(&IdAnio, &IdPeriodo, &IdParcial, &AuxNivel, &IdMateria,&AuxParalelo,&sw); Ahora programamos el botn APERTURA. En Events del design (Work Panel). Para llamar al procedimiento e ingresarlo en la programacin debemos pulsar CRTL+B y as seleccionamos el Procedimiento Apertura (PApertura) Event 'APERTURA' call(PApertura, &IdAnio, &IdPeriodo, &IdParcial, &AuxNivel, &IdMateria, &AuxParalelo, &sw) if &sw=1 msg('APERTURA GENERADA.....!') else msg('NO SE HA GENERADO NINGUNA APERTURA.....!') 97
Para continuar damos clic en Especify Selected y una vez corrido damos Generate.
98
Como vemos ahora podemos generar por la lista de alumnos cada materia, es decir cada alumno con sus materias especficas. Ya hemos generado de Educacin Fsica (EEFF01) y geografa (GEO001) ahora seleccionamos la nueva materia que es INGLES y damos clic en el botn Apertura.
Damos Aceptar y ahora al verificar el SQL Server si ya est generada la nueva materia para todos los alumnos veremos que s. Lo hacemos para todas las materias.
99
Digitaremos en el source del Procedimiento AperturaNivel: FOR EACH WHERE EstaParcial='A' &IdParcial=IdParcial DO 'LEERMATERIA' ENDFOR SUB 'LEERMATERIA' FOR EACH WHERE Nivel=&AuxNivel &IdMateria=IdMateria DO 'LEERALUMNO' ENDFOR ENDSUB SUB 'LEERALUMNO' &sw=0 100
FOR EACH WHERE estado='A' WHERE SUBSTR(Paralelo,2,1)=&AuxParalelo WHERE VAL(SUBSTR(Paralelo,1,1))=&AuxNivel &IdAlumno=IdAlumno &sw=1 NEW IdAnio=&IdAnio //Idperiodo=&Idperiodo IdParcial=&IdParcial IdMateria=&IdMateria IdAlumno=&IdAlumno ValNota=0 EstNota='A' ENDNEW ENDFOR ENDSUB
Ahora programaremos el RULES del Procedimiento AperturaNivel: PARM(&IdAnio, &AuxNivel, &AuxParalelo, &sw);
101
En el Work Panel, programaremos el botn Apertura Nivel: Recordemos que para introducir el Procedimiento (AperturaNivel) en la programacin debemos digitar CRTL+B y seleccionamos el procedimiento deseado. Event 'Apertura Nivel' CALL(PAperturaNivel, &IdAnio, &AuxNivel, &AuxParalelo, &sw) IF &sw=1 MSG('APERTURA GENERADA....') ELSE MSG('APERTURA NO GENERADA....') ENDIF EndEvent // 'Apertura Nivel'
NOTA: Podemos ayudarnos en SQL Server 2005, usando las consultas de SQL para determinar el resultado que deseamos ver en determinado momento.
102
FOR EACH WHERE IdAnio = &IdAnio WHERE IdAparcial = &IdAparcial WHERE IdMateria = &IdMateria WHERE IdAlumno = &IdAlumno ValNota = &ValNota ENDFOR
103
Arriba nos damos cuenta que la variable valnota no existe por esa razn debemos crearla con CRTL+W
104
En el Work Panel, programamos el botn GRABAR. Necesitamos una nueva bandera a la cual llamaremos Visto. (CRTL+W)
Ahora pondremos un nombre al grid que antes insertamos, se llamara GRID1, nos servir para los ingresos de los datos desde la lnea del grid. (Grabar desde el Grid)
105
La programacin del botn Grabar es: Event 'Grabar' FOR EACH line in GRID1 //Nueva bandera llamada Visto IF &Visto=1 CALL(PCrearNota, &IdAnio, &IdParcial, &IdMateria, &IdAlumno, &ValNota) &Visto=0 ENDIF ENDFOR EndEvent // 'Grabar' Pero ante de correr el programas debemos hacer unos cambios en el GRID1, aumentaremos las columnas: Visto, IdAlumno, ValNota. Damos doble clic en el GRID e insertamos las variables anotadas:
Ha cambiado el GRID:
106
Ordenamos el Grid:
Ahora vamos a poner un Check Box (Para cuando tengamos el programa ejecutado activemos la celda o celdas que deseemos y as grabemos o no) Seleccionamos Visto, de propiedades del GRID
107
Para lo que hemos hecho debemos cambiar el Event LOAD del Work Panel. As: Event Load FOR EACH Apellidos //ORDENA POR APELLIDOS WHERE estado = 'A' WHERE SUBSTR(Paralelo,2,1)= &AuxParalelo // WHERE VAL(SUBSTR(Paralelo,1,1))=&AuxNivel WHERE IdMateria=&IdMateria WHERE IdParcial=&IdParcial &ValNota=ValNota &Visto=1 &Cedula=Cedula &IdAlumno=IdAlumno &Apellidos=Apellidos &Nombres=Nombres LOAD ENDFOR EndEvent // Load 108
Para ver si graba vamos a cambiar los valores de las notas de Arcos (2), Falcn (12) y Mena (5), los nmeros entre () son el ID de cada alumno que verificaremos cuando cambiemos las notas.
Con los datos cambiados damos Grabar. Y en el SQL Server se crea el cambio.
109
NOTA: Cuando estamos trabajando en Work Panel y Procedimientos, primero debemos programar primero el Source (Donde usamos el FOR EACH, las Sub rutinas SUB, el WHERE, el NEW, etc.) y despus el Rules (PARM) del procedimiento; luego pasamos al Work Panel donde programamos (Botones que se relacionan con el procedimiento sea grabar, eliminar, modificar, etc.) y para concatenar con el Procedimiento usamos CALL (nombre del procedimiento, variable1, variable2, variabl3, . variable n) las cuales deben coincidir con las variables del PARM .
110
111