Gupta incluye SQL Windows Herramienta de desarrollo Team object Manager Manejo de Versiones de Cdigo, Repositorio de Objetos, Manejo de Documentacin. CDK Permite escribir cdigo sobre libreras de clases, Simplifica Tareas de Desarrollo repetitivas, Crea propios libreras usando C++ Object Nationalizer Para Internacionalizar la aplicacin Report Builder Reporteador, trabaja directamente sobre la BD. WEB Developer Para despliegue de Aplicaciones Web Ruteador Nativo hacia Base de Datos La conexin hacia la BD no es mediante ODBC, ya que es una capa superior menos eficiente para obtencin de datos. El ruteador nativo es mucho ms eficiente que un ODBC porque trabaja directamente con los dlls de los motores de Base de Datos.
SQL Window Ambiente de Desarrollo Es un lenguaje de 4ta generacin (SAL) Orientado a Objetos Sofisticado para Reporteria Despliegue Flexible en Windows y Web Conexiona BD Nativas Conexin a Monitores Transaccionales
Conectividad Ruteo Nativo a: Oracle, SQL Server, Sybase, Informix, SQLBase, DB2 ODBC a todos los dems
Iniciando el Desarrollo
Estructura de la Aplicacin
Internal Functions. Es en donde se ubican todas las funciones que sern programadas. Estn categorizadas como globales, es decir se puede acceder desde cualquier formulario.
Se recomienda usar la nomenclatura o estndar propia manejada por el IDE Dlg Dialog Mdi MDI Window Tbl Table Window (Formulario en Forma de tabla) Frm Form Window En la pestaa layout se visualiza el componente
Un formulario es similar a una funcin, es decir puede envirsele parmetros de los tipos de datos q se necesite. Un formulario est estructurado de la siguiente manera:
Controls
Inspector de Atributos (ALT + 3). Obtiene o setea las propiedades de los objetos
Los objetos que pueden contener datos en forma de diseo son: Picture File Name: Muestra la ruta de donde debe tomar la imagen. File Storage: Muestra el modo en q se guardara la imagen En caso de ser external, la imagen podr ser cambiada sin necesidad de compilacin En caso de ser internal la imagen se compilara internamente con la aplicacin
Programa Bsico
Empezando a Programar Para comentar se usa el signo de admiracin (!) Con la tecla INSERT se abre una lnea para iniciar la programacin. Team Developer usa la identacion para identificar los procesos y subprocesos. ALT+ Flecha Arriba: Permite mover bloque de cdigo hacia arriba ALT+ Flecha Izquierda: Permite mover bloque de cdigo hacia la izquierda. ALT+ Flecha Derecha: Permite mover bloque de cdigo hacia la derecha. SHIFT + Clic Izquierdo Mouse sobre el objeto, permite editar la propiedad caption del mismo.
Como Interactuar con los Objetos: Para interactuar con los objetos, se los realiza a travs de la programacin. Todos los objetos se manejan a travs de mensajes. Hay q saber diferenciar entre evento y accin: Evento: Un evento genera una accin Accin: Dentro de la accin le indico que quiero q haga mi objeto.
SQL Window posee alrededor de 800 funciones SAL que podemos utilizarlas segn nuestras necesidades. Mensajes Para crear un mensaje que sea reconocido por todos los objetos de la aplicacin, este primero debe ser declarado de la siguiente manera:
Posteriormente en el evento del componente que se desea q envi el mensaje a los dems componentes se ubica la siguiente lnea de cdigo
Window Handle: hWndForm, representar el contenedor o forma activa. Estas lneas de cdigo indican que al ejecutarse el evento clic del botn limpiar, se enva el mensaje PAM_Limpiar a todos los hijos del handle window (formulario activo), adems puede enviarse dos parmetros, que posteriormente pueden ser capturadas en la implementacin del mensaje en cada hijo. El primer parmetro se setea en la Variable del sistema: wParam El segundo parmetro se setea en la variable: lParam
Para que el formulario no se invoque automticamente cuando se ejecuta la aplicacin se setea la propiedad Automatically Create en NO
Ejemplo 2. Reutilizacin de Cdigo Para reutilizar cdigo CENTURA permite crear libreras, para lo cual se crean como un nuevo proyecto, y se lo guarda con extensin .apl
Una librera tiene la misma estructura de una aplicacin pero la diferencia es q esta tiene una extensin *.apl y por tanto puede ser invocada desde una aplicacin principal. Cuando se inserta la librera dentro del proyecto, automticamente se incluye el cdigo de la misma dentro del proyecto
Programacin Orientada a Objetos Clase: Es un concepto de agrupamiento. Categoriza un conjunto de objetos con las mismas caractersticas (atributos) y comportamiento (mtodos). Abstraccin de nuestra realidad a un agrupamiento, para poder mantener ordenados nuestros objetos. Persona Id Nombre Fecha Nacimiento Caminar Leer Escribir Objeto: Es una instancia de la clase. Instanciar significa que los atributos toman valores.
Persona Id Nombre
Team Developer permite implementar herencia, herencia mltiple, polimorfismo, encapsulamiento, variables de clase, etc
Implementacin de POO en Team Developer Team Developer tiene predefinidas clases base de las cuales podemos heredar
Para implementar la herencia, se usa el bloque de Derived From, en donde se indica la Clase de la cual va a heredar nuestra Clase.
Toda clase heredada puede sobrecargar el mtodo de su clase padre con su propio comportamiento. Esto lo hace redefiniendo el mtodo con su propia programacin. Si se desea que la clase heredada tome el comportamiento de su padre, no se debe implementar el mtodo, o en su defecto si se implementa debe codificarse la siguiente lnea de cdigo Call SalSendClassMessage(MetodoSobrecargado) Si solo se encuentra esta lnea quiere decir que se le est enviando un mensaje a la clase hija para que tome el comportamiento de su padre, o bien puede estar posterior o antes a la programacin del comportamiento que se desee q tenga la clase hija.
Conexin a Base de Datos Para este propsito TEAM DEVELOPER maneja variables del sistema en donde en primer lugar se deben setear los valores necesarios para q la aplicacin pueda tener acceso a la BD SqlDataBase SqlUser SqlPassword Para indicar la configuracin de donde se encuentra el servidor de base de datos, TEAM DEVELOPER maneja un archivo.ini sql.ini
Posteriormente es necesario tener una variable que apunte a memoria, en donde vamos a trabajar con nuestros datos, esta variable es SqlHandle.
Practica El lugar en donde se setean las variables es el AppStarApp Set SqlDataBase = ISLAND Set SqlUser = sysadm Set SqlPassword = sysadm Nombre BD Usuario Administrador de la BD Password de la Cuenta
Dentro del bloque de Variables de la Aplicacin se setea el manejador de la BD. Esta variable es la que internamente manejara el conjunto de resultados de los querys enviados a la BD SqlHandle : sqlHConexion
Para ejecutar la conexin se usa la funcin SqlConnect(sqlHConexion), esta nos devuelve un tipo de dato boolean (TRUE, FALSE). True cuando la conexin fue exitosa, FALSE cuando la conexin fallo.
Para mejorar el performance de la aplicacin es necesario tomar en cuenta que debe realizarse la conexin siempre y cuando el usuario necesite interactuar con la BD. Para acceder a la informacin de la variable manejador de la BD se usan las siguientes funciones:
SqlFetchPrevious Se usa para que el apuntador recorra al registro anterior al q actualmente est ubicado. SqlFetchNext Se usa para que el apuntador recorra al registro siguiente al q actualmente est ubicado. Configuracion de la Base de Datos
En este aplicativo deben listarse todos los ruteadores nativos a los motores de BD, cualquier configuracin realizada se reflejara en el archivo sql.ini En el caso de que no se encuentren Para configurar manualmente abrimos el archivo .ini y realizamos los siguientes cambios: En la seccin [win32client.dll], descomentamos la seccin comdll=sqlodb32 En la seccin [odbcrtr], aadimos la siguiente lnea: remotedbname = ISLAND, DRIVER = {SQL Server}; SERVER= ECUIO012VS4; DATABASENAME = BDS Dentro del aplicativo existen mensajes que no son visibles al desarrollador, por lo que manualmente debemos programarlos para q sean visibles dentro del grupo de constantes de la aplicacin
Sintaxis
Select Case variable Case 1 ---------Break Case 2 ---------Break Default Break -----------
MDI FORM
Manejo de la Grilla Call SalTblDoInserts( hWndForm, sqlHConexion, TRUE) Almacena en la BD todos los registros que estn marcados para grabar, TRUE indica que los flags deben desmarcarse. Creacin de Reportes Un reporte tiene 5 secciones Cabecera del reporte Cabecera de Pagina Bloque de Detalle Pie de Pagina Pie del Reporte
Para invocar la informacin del reporte desde el aplicativo, usamos los siguientes mtodos: SalReportView -> Esta funcin instancia un reporte .qrp Parametro 1: hWndForm Parametro 2: hWndNull Parametro 3: Demo.qrp Nombre del Archivo
Parametro 4:df1, tblLibros.coldescripcion Lista de variables en un solo string, separado por comas
Receive
Number,
indica
si
SAM_ReportStart SAM_ReportFetchNext
Cuando queremos generar un reporte a partir de un SQL, el query debe programarse en el mensaje SAM_ReportStart de la forma SAM_ReportStart Call sqlPrepare(sqlHConexion, SELECT * FROM AUTOR where au_id = df_au_id into :n_id,: n_nombre) Se asigna a Variables que deben ser creadas previamente, y despues pasadas en el mensaje SalReportView SAM_FetchInit