Está en la página 1de 13

Inmoadmin

Flavia Vernica Yabes Proyecto de Pre grado IUA Funes 2012

Pautas de Programacin

Inmoadmin Gua de Programacin

Tabla de Contenidos
1. 1.1 1.2 1.3 1.4 1.5 2. Introduccin......................................................................................................................3 Propsito....................................................................................................................3 Alcance......................................................................................................................3 Definiciones, Acrnimos y Abreviaciones.................................................................3 Referencias................................................................................................................3 Visin General...........................................................................................................3

Organizacin de Cdigo y Estilo......................................................................................3 2.1. Estilo de Programacin Global .......................................................................................4 Estilo de Programacin Interno.....................................................................................................4 Comentarios ......................................................................................................................5 Nomenclatura....................................................................................................................5 Declaraciones....................................................................................................................7 Expresiones y Sentencias..................................................................................................7 Manejo de Memoria..........................................................................................................8 Manejo de Errores y Excepciones.....................................................................................9 Portabilidad.....................................................................................................................11

3. 4. 5. 6. 7. 8. 9.

Informacin de archivos ejecutables.................................................................................12


10. 11. Reuso..................................................................................................................................13 Aspectos de Compilacin...................................................................................................13

Pgina 2 de 13

Inmoadmin Gua de Programacin

Pautas de Programacin
1. 1.1 Introduccin Propsito

El propsito de este documento es definir resumidamente y detallar la gua de programacin que se utiliz para desarrollar Inmoadmin. Tambin se pretende mostrar las pautas a seguir para la implementacin del sistema.

1.2

Alcance

El alcance de este documento abarca hasta la forma de organizacin y estilo de programacin y detalles acerca de la capa de aplicacin e implementacin.

1.3

Definiciones, Acrnimos y Abreviaciones

SQL. structured query language Comando: es una orden que se le da a FoxPro quien acta como intrprete del mismo, para as realizar una tarea especfica

1.4

Referencias

REF1 Especificaciones de Inmoadmin REF2 Manual de Usuario Vfp Visual FoxPro

1.5

Visin General

El documento realiza un recorrido completo por la organizacin de cdigo y el estilo de codificacin, los comentarios, la nomenclatura interna, las declaraciones, expresiones y sentencias, manejo de memoria y de errores y excepciones. Por ltimo desarrolla los temas de portabilidad, reuso y aspectos de la compilacin. 2. Organizacin de Cdigo y Estilo

Pgina 3 de 13

Inmoadmin Gua de Programacin

2.1.

Estilo de Programacin Global

Esta versin de Inmoadmin se comprende de una base de datos que agrupa a 9 tablas, las que cuentan con campos caractersticos a cada tabla. Adems para que cada instancia sea identificada unvocamente se insertar en las tablas principales un nmero de identificacin, el cual sirve para relacionar las tablas y sus instancias. Cada tabla tiene un campo principal, para realizar un determinado orden. En esta primera versin se crearon vistas locales a partir de las tablas existentes, para poder mostrar la relaciones entre las instancias de los objetos e imprimirlas, por ejemplo, una de las vista sirve para emitir un informe sobre cada contrato y los pagos que se han realizado sobre el mismo. El manejo del sistema se realiza a travs de los formularios, estos son 20, incluyen consultas, bsquedas, ingreso y modificacin de datos, y validacin de usuarios, entre otros usos. Los formularios de ingreso y modificacin de datos poseen dos mtodos personalizados para que se ejecuten con la clase botn, estos mtodos son estadoespera y estadoedicion. Los formularios que manejan fechas incluyen el mtodo popwindow, que se ejecuta con la clase calendar y vfpcalendar. Su aplicacin se explica con detalle en REF2 Controles de Registro y Botones extras. Solo en la ventana principal aparece un men, el cual da acceso a todos los formularios y funcionalidades del sistema. El detalle para su utilizacin se encuentra en la REF2. Estilo de Programacin Interno En el administrador de proyectos, el apartado cdigo se cre un cdigo principal en cual contiene reglas generales y define trminos especficos, por ejemplo: set defa to "C:\inmoadmin\" &&define la carpeta por defecto set date to dmy &&formato de fecha Tambin aqu defino variables pblicas, se utilizan en varios formularios, por ejemplo: PUBLIC nidpropi &&para buscar una propiedad y ponerla en el contrato nidpropi=0 y comportamientos o apariencias, por ejemplo: _screen.visible=.F. _screen.WindowState= 2 _screen.Movable= .F. _SCREEN.Caption="INMOADMIN"

Pgina 4 de 13

Inmoadmin Gua de Programacin

3. Estas

Comentarios anotaciones o comentarios son potencialmente significativos para los

programadores, e ignorados por los compiladores e intrpretes, de gran ayuda a la hora de la reutilizacin de cdigo o de la correccin del mismo. En el caso de Inmoadmin los comentarios son un tanto escasos dada la simplicidad de la programacin utilizada y la nomenclatura sencilla que hace clara referencia a determinados objetos. Los comentarios son mayormente utilizados al definir variables y definir el uso que se le dar a una bandera, por ejemplo: PUBLIC tdireccion as Character &&para mostrar el domicilio completo nidlocador=0 &&para confeccionar contrato contrato = 1 &&para buscar pagos

4.

Nomenclatura

La nomenclatura utilizada en Visual FoxPro es la siguiente: Prefijo acd chk cbo cmd cmg cnt ctl <definido usuario> edt frm frs grd grc grh EditBox Formulario FormSet Cuadrcula Columna Header por Objeto ActiveDoc CheckBox ComboBox CommandButton CommandGroup Contenedor Control el Custom

Pgina 5 de 13

Inmoadmin Gua de Programacin

hpl img lbl lin lst olb ole opt opg pag pgf prj sep shp spn txt tmr tbr

HyperLink Imagen Etiqueta Line ListBox OLEBoundControl OLE OptionButton OptionGroup Pgina PageFrame ProjectHook Separator Shape Spinner TextBox Timer ToolBar

Los prefijos no son necesarios, pero son recomendables como buen hbito de programacin. El uso de un prefijo no fija el contenido de una variable de objeto; en Visual FoxPro, los prefijos slo se utilizan como convencin de nomenclatura. Por ejemplo, cuando agrega el prefijo cbo, no se asegura que el objeto al que hace referencia una variable sea un cuadro combinado, pero le ayuda a recordar que la variable hace referencia a ese tipo de objeto. Para el caso particular de Inmoadmin, no siempre respet la nomenclatura y en reiteradas ocasiones utilic nombres de objetos que a mi parecer, dejaban claro la funcin que los mismos desempean y los contenidos. Y en el caso de que otro programador precisara comprender el cdigo agregu comentarios. Ejemplo:

Pgina 6 de 13

Inmoadmin Gua de Programacin

nidpersona= thisform.pageframe1.page1.txtidlocador.Value nidpersona es el nmero de identificacin nico de la tabla. pageframe1 es un conjunto de solapas. page1 es la primera solapa de ese conjunto. txtidlocador es el cuadro de texto que contiene la identificacin del locador, aunque se encuentra oculto en este caso.

5. Tipo a c y d t b f l n o

Declaraciones Descripcin Matriz Character Currency Fecha Datetime Double Flotante Lgicas Numrico Objeto

Ejemplo de declaracin de variable: PUBLIC apellidoynombre as string Las variables pblicas, tambin conocido como variables globales son variables que se pueden utilizar y modificadas por cualquier programa de FoxPro y cualquiera de sus subprogramas para la duracin de la sesin de FoxPro o hasta que se borra la variable de la memoria. Variables privadas se declaran en programas o los procedimientos y pueden ser utilizadas y manipuladas dentro de ese programa o un procedimiento y cualquiera de sus sub-programs. Local oWindow, uRetValue

6.

Expresiones y Sentencias

Una sentencia que utilic reiteradas veces es la de seleccin, la que result muy til para ocultar o mostrar objetos segn sea necesario, por ejemplo:

Pgina 7 de 13

Inmoadmin Gua de Programacin

IF access == 1 thisform.borrar.Visible= .t. thisform.modificar.Visible= .t. ELSE thisform.borrar.Visible= .f. thisform.modificar.Visible= .f. ENDIF Tambin utilic esta sentencia para el manejo de errores, lo que se detallar ms adelante, en el apartado 8. IF thisform.text1.Value>thisform.text2.Value MESSAGEBOX("La primer fecha debe ser menor a la segunda",0,"Aviso") thisform.text1.Value="" thisform.text2.Value="" else Select contrato set filter to ((fecha_inicio>=thisform.Text1.value) .and. (fecha_fin<=thisform.Text2.value)) GO TOP Thisform.Grid1.Refresh Utilic esta sentencia para asegurar que el cliente sea mayor de edad.

7.

Manejo de Memoria

Las variables que se declaran al inicio del programa son aquellas que se utilizarn durante una sesin normal de Inmoadmin. En el caso de las variables con menor frecuencia de utilizacin se declaran e inician al momento que se va a usar. Otro aspecto importante en el uso de la memoria es la apertura y cierre de las tablas, stas se abren al momento de ser utilizadas; luego al terminar su utilizacin se cierran. Las imgenes que se utilizan para ilustrar botones o para indicar la funcin de un formulario se encuentran en formato jpg.

Pgina 8 de 13

Inmoadmin Gua de Programacin

8.

Manejo de Errores y Excepciones

En las reglas de negocio se aclara que los clientes deben ser mayores de 18 aos (ver REF 2, Reglas de negocio). Esta cuestin se soluciona en el formulario de gestin clientes con el siguiente cdigo: PUBLIC nacio as Date PUBLIC dias PUBLIC edad nacio = thisform.pageframe1.page1.txtFecha_nac.Value dias = DATE()-nacio edad = int(dias/365) if (edad < 18) messagebox("La feha de nacimiento no es vlida, intente nuevamente",0,"Aviso") thisform.pageframe1.page1.txtFecha_nac.Value="" thisform.pageframe1.page1.txtFecha_nac.SetFocus() ELSE thisform.pageframe1.page1.txtNum_doc.SetFocus() thisform.pageframe1.page1.txtTipo_doc.value = "DNI" thisform.pageframe1.page1.txtestado_civ.value = "SOLTERO/A" ENDIF Como se puede observar se enva un mensaje de error al comprobar que la persona tiene menos de 18 aos. En el caso de que la fecha de nacimiento sea vlida completa dos textbox con datos por defecto para continuar completando en formulario. Para el nmero de DNI, LE, LC o Pasaporte de la persona el campo posee un cdigo para que no se ingresen puntos, ni letras, ni menos de 7 nmeros, ni ms de 8 nmeros y adems que el nmero que se ingrese no se repita con otros del mismo campo que ya han sido ingresados a la tabla. Al encontrar algn error enva un mensaje y luego pone el campo en blanco y se posiciona sobre l. Una cuestin importante son los campos obligatorios que deben completarse. El usuario del sistema debe tener los campos obligatorios completos para poder almacenar el registro en la base de datos, y con el objeto de no almacenar registros incompletos desarroll una sentencia IF anidada, de forma tal que avise al usuario cual es el campo especfico que no ha completado y que deber hacerlo para guardar su nuevo registro o

Pgina 9 de 13

Inmoadmin Gua de Programacin

modificar uno existente. Por ejemplo en el formulario de gestin de personas (REF 1) escrib este cdigo: a= thisform.pageframe1.page1.txtNombre.Text IF ISBLANK(a) THEN messagebox("Debe ingresar un nombre",0,"Aviso") thisform.pageframe1.page1.txtNombre.SetFocus() RETURN .F. ELSE b= thisform.pageframe1.page1.txtApellido.Text IF ISBLANK(b) THEN messagebox("Debe ingresar un Apellido",0,"Aviso") thisform.pageframe1.page1.txtApellido.SetFocus() RETURN .F. ELSE c= thisform.pageframe1.page1.txtfecha_nac.Value IF ISBLANK(c) THEN messagebox("Debe ingresar una Fecha vlida",0,"Aviso") thisform.pageframe1.page1.txtfecha_nac.SetFocus() RETURN .F. ELSE d= thisform.pageframe1.page1.txtnum_doc.Value IF ISBLANK(d).or. d==0 THEN messagebox("Debe ingresar una nmero de documento",0,"Aviso") thisform.pageframe1.page1.txtnum_doc.SetFocus() RETURN .F. ELSE f= thisform.pageframe1.page1.txttelefono.Value IF ISBLANK(f).or. f==0 THEN messagebox("Debe ingresar un nmero de telfono vlido",0,"Aviso") thisform.pageframe1.page1.txttelefono.SetFocus() RETURN .F. ELSE g= thisform.pageframe1.page1.txtcelular.Value IF ISBLANK(g).or. g==0 THEN
Pgina 10 de 13

Inmoadmin Gua de Programacin

messagebox("Debe ingresar un nmero de celular vlido",0,"Aviso") thisform.pageframe1.page1.txtcelular.SetFocus() RETURN .F. ELSE e=thisform.pageframe1.page1.txtiddomicilio.Text IF e=="" messagebox("Debe seleccionar un domicilio existente, o bien ingresar uno nuevo",0,"Aviso") RETURN .F. ELSE *this.Visible= .F. thisform.guardar.Click() RETURN .t. endif *aca *RETURN .T. ENDIF RETURN .T. ENDIF RETURN .T. ENDIF RETURN .T. ENDIF RETURN .T. ENDIF RETURN .T. ENDIF RETURN .T. Tambin se puede observar cmo se crean las variables a medida que se van precisando (ver en este documento 7- Manejo de memoria) 9. Portabilidad

Visual FoxPro (VFP) es un entorno de desarrollo visual para los sistemas de gestin de base de datos relacional, que actualmente se est fabricado por Microsoft Corporation. La
Pgina 11 de 13

Inmoadmin Gua de Programacin

ltima versin es la 9.0, y es la que utilic para desarrollar Inmoadmin. Se ejecuta en cualquier versin de Windows, comenzando con Windows 98. Visual FoxPro se enfoca en trabajar con datos orientado a objetos y el lenguaje utilizado en este paquete ofrece una herramienta til que permite crear aplicaciones basadas en la base de datos para uso personal, para trabajar en entornos cliente-servidor, as como en Internet. Tambin se incluye un paquete de servicios web XML que puede utilizarse como fuentes de datos de todas las plataformas de cliente en entorno de desarrollo Visual Studio. NET 2003, incluyendo una plataforma ASP.NET. Versiones con Soporte Windows Versin VFP 9.0 Windows 3.x No Windows NT 4.0 No Windows 95 No Windows 98 Slo ejecutable Windows Me Slo ejecutable Windows 2000 Si Windows XP Si Windows Server 2003 Si Windows Vista Si Windows 7 Si

Informacin de archivos ejecutables Versin VFP 9 SP2 con Revisiones VERSION() devuelve EXE Size EXE Date Visual FoxPro 09.00.0000.7423 Windows Visual 09.00.0000.5721 Windows Visual VFP 9 09.00.0000.2412 Windows DLL Size DLL Name

para 5,648 kb 3 de abril, 2009 4,624 kb VFP9R.DLL FoxPro 21 2007 FoxPro for 5,620 kb 13 de 4,600 kb VFP9R.DLL de 4,624 kb VFP9R.DLL

VFP 9 SP2

para 5,648 kb Septiembre,

Diciembre, 2004

Pgina 12 de 13

Inmoadmin Gua de Programacin

10.

Reuso

Considerando el sistema completo es altamente reutilizable en otra inmobiliaria que no sea Berrini, ya que si bien el desarrollo del proyecto en s se enfoc siempre en esta organizacin (REF 2, Etapa N 1), existen muchos parmetros y pautas de trabajo que son comunes a todas las inmobiliarias. Por ello se puede considerar la reutilizacin casi completa con pequeas modificaciones, dependiendo la organizacin en la que se quiera implementar el sistema. La ventaja que ofrece el cdigo de Inmoadmin es que tambin es posible reutilizar el cdigo por partes. Por ejemplo el cdigo de validacin de usuario, la validacin de la fecha de nacimiento, los filtros para bsquedas y consultas.

11.

Aspectos de Compilacin

FoxPro contiene compilador propio que traduce el programa al lenguaje de mquina. El comando COMPILE est habilitado en el tiempo de ejecucin para que las aplicaciones puedan generar y compilar un archivo de programa (.prg). Adems para que el programa funcione en equipos que no tengan instalado el vfp, debo de adjuntar al proyecto tambin los "runtimes" o archivos de soporte.

En el caso de mi vfp sp2 los runtimes que debo incluir en el directorio de aplicacin son: vfp9t.dll vfp9r.dll vfp9resn.dll vfp9renu.dll

Pgina 13 de 13

También podría gustarte