Upload
hihy77
View
209
Download
0
Embed Size (px)
Citation preview
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 1/115
UNIVERSIDAD DEL BÍO-BÍO VICE-RECTORIA DE ASUNTOS ECONÓMICOS
DIRECCIÓN DE INFORMÁTICA
Plataforma integrada de Sistemas de GestiónUniversitaria
ACUARIO
NORMAS INTERNAS DE DESARROLLO
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 2/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
INDICE
Pág
DESARROLLO DE SISTEMAS
Introducción ............................. 3
Metodología a Utilizar ............................. 3
ETAPAS DE DESARROLLO
Modelo Conceptual de Procesos .......................... 4
Modelo Conceptual de Datos ............................. 9
Construcción de Sistemas ............................... 14
Programación Power Builder ............................ 17
Lenguaje SQL ............................ 78
ANEXOS
Cálculo de Puntos de Función
Estándares de Construcción
28/12/2004
Página 2 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 3/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
DESARROLLO DE SISTEMAS
INTRODUCCIÓN
Este documento contiene normas internas para diseño, mantención ydesarrollo de software del Departamento de Desarrollo de Sistemasde la Universidad del Bío Bío.
Se compone de una revisión de procesos de conceptualización yconstrucción de sistemas.
Dentro del modelo conceptual se identifican productos de:Requerimientos de usuarios, Modelo de Datos, Modelo Conceptual deProcesos y Diccionario de Datos. Para la Construcción de Sistemasse identifican productos de Manual de Sistemas, Manual de Usuario,
librerías fuente, ejecutables y Base de datos, Modelo de DatosFísico, procedimientos almacenados en la Base de Datos y reglas deIntegridad (trigger).
Entre las técnicas y herramientas utilizadas se pueden mencionarDiagrama de Flujo de Datos contenidos en la herramientaProcessAnalyst, Modelo de Datos Entidad Relación contenidos en laherramienta Data Architect, para la construcción de aplicacionesse utiliza herramienta Power Builder, para generar y administrarla Base de Datos SQL Server.
METODOLOGÍA A UTILIZAR
La metodología utilizada incluye :
• Reuniones de trabajo para evaluar e identificar requerimientos ygenerar diseño lógico de procesos y datos.
• Nociones de administración y diseño de proyectos, introducciónde utilización de métrica Puntos de Función.
• Herramienta Case Power Designer
• Herramienta Power Builder
• Herramienta SQL Server
28/12/2004
Página 3 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 4/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
MODELO CONCEPTUAL
Modelo de Procesos:
Históricamente han surgido varios enfoques que buscan abordar demanera sistémica el análisis de los procesos de negocios en laempresa. Los Diagramas de Flujo de Datos o DFD se encuentran entreestas técnicas, y es el método más conocido y usado entre losAnalistas en Sistemas de Información de todo el mundo.
El objetivo fundamental de esta técnica es la de descomponer unproblema complejo en otros más sencillos y manejables, facilitandola modularidad del sistema, así como aprovechar la comunicabilidada través de modelos gráficos.
La técnica que abordaremos es conocida con el nombre de Diagramasde Flujo de Datos (DFD), propuesta por Yourdon y Tom DeMarco afinales de los años setenta, para la construcción de modelosconceptuales. Comenzaremos con la discusión de algunos conceptosbásicos.
Los DFD constan de cuatro clases de elementos (símbolos), queluego son utilizados en la construcción del modelo. Estos semencionan a continuación:
PROCESO:
Es el lugar donde se transforma o descompone lainformación de un(os) flujo(s) de datos de entraday se obtiene un(os) flujo(s) de datos de salidacomo resultado del proceso.
0
SISTEMA DE
ARRIENDO DE
PELICULAS
ENTIDADES EXTERNAS
Son aquellas organizaciones, departamentos,personas, sistemas de información que nopertenecen al proceso de negocios modelado, sinembargo, interactúan con él a través de flujosde información de entrada y salida.
CLIENTE
28/12/2004
Página 4 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 5/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
ALMACEN
CLIENTE
FLUJO DE
DATOS
Son aquellos buzones de datos donde se almacenade forma estática la información dentro delsistema.
Antecedentes del Cliente
Son los flujos que contienen la información de entrada o salida enlos cuales fluye la información entre los diferentes procesos y/oalmacenamientos del sistema.
La estrategia de construcción de un DFD, comienza por definirprimero un solo proceso que representa todo el sistema ydescomponerlo en un sinnúmero de procesos, ubicados a distintosniveles, pero con un origen común. La utilidad de esto es ladescomposición, por niveles, de un problema complejo en otros mássencillos y manejables, facilitando la comprensión del sistema,así como también, aprovechar el modelo conceptual generado, por laexplosión de un proceso, o sub-proceso, en sus sub-procesos, comouna herramienta de comunicación y diálogo, entre los integrantesdel equipo de analistas de sistemas que tienen por misión modelarel proceso de negocio en cuestión.
El primer DFD o nivel 0 se denomina Diagrama de Contexto, el nivel1 de descomposición se denomina Diagrama Superior y los diagramas
de subprocesos se denominan diagramas detallados.
REGLAS DE UN MODELAMIENTO DFD
Con el fin de evitar algunos problemas en cuanto a laaplicabilidad del método propuesto, es recomendable tener presentealgunas directrices simples y sencillas las cuales pueden ayudar amantener el modelo dentro de un estándar. Estas son las siguientes
• Los niveles son numerados de 0 a n.
• El nivel 0 debe reflejarse en una sola burbuja.
• El nivel 0 no representa almacenamientos.• En el nivel 1 o Diagrama de Nivel Superior no pueden haber
burbujas aisladas.
• No puede haber flujos entre almacenamientos.
• No puede haber flujos entre entidades.
• El nivel 1 o Diagrama de Nivel Superior no debe haber más de 5 a7 procesos de descomposición.
28/12/2004
Página 5 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 6/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Herramienta POWERDESIGNER: ProcessAnalyst
La herramienta PowerDesigner es una herramienta CASE (Computer-
Aided Systems Engineering)la cual supone la automatización deldesarrollo del software, contribuyendo a mejorar la calidad y laproductividad en el desarrollo de sistemas de información. Paramejorar la calidad y la productividad de los sistemas deinformación a la hora de construir software se plantean lossiguientes objetivos:
• Permitir la aplicación práctica de metodologíasestructuradas, las cuales al ser realizadas con unaherramienta conseguimos agilizar el trabajo.
• Facilitar la realización de prototipos y el desarrolloconjunto de aplicaciones.
• Simplificar el mantenimiento de los programas.• Mejorar y estandarizar la documentación.
• Aumentar la portabilidad de las aplicaciones.
• Facilitar la reutilización de componentes software.
• Permitir un desarrollo y un refinamiento visual de lasaplicaciones, mediante la utilización de gráficos que permitemodelar procesos a través de su herramienta ProcessAnalyst, velando que los Diagramas de Flujo de Datos cumplan lasreglas definidas por los mismos. La técnica más comúnmenteusada es la postulada por Yourdon/DeMarco.
A continuación se muestra un ejemplo de descomposición del Proceso
de Control de Correspondencia diseñado por la Herramienta CASE. Sedescompondrá un proceso a elección hasta su DFD detallado.
Diagrama de Contexto:
Solicitud de Tarifas
Antecedentes de Tarifas
Devolución de Correspondencia
Correspondencia Oficializada
Correspondencia Recepcionada
Antecedentes de Correspondencia
0
Sistema de Correo
EMISOR
RECEPTOR
EMPRESA DE
CORREOS
28/12/2004
Página 6 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 7/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Diagrama de Nivel Superior:
Correspondencia Externa Recepcionada
Antecedentes Correspondencia Externa
Correspondencia Interna Oficializada
Devolucion de Correspondencia Interna
Antecedentes de Tarifas
Solicitud de T
Datos Centros
Datos Personal
Datos Personal
Datos Contratos
Datos OficializacionDatos Oficializacion
Datos Contratos
Datos CentrosDevolucion de Correspondencia Externa
Correspondencia Externa Ofic
Correspondencia Interna Recepcionada
Antecedentes Correspondencia Interna
Datos CorrespondenciaDatos Correspondencia
1
Administrar Doctos
Internos
2
Administrar Doctos
Externos
EMISOR
REC
EMPRESA DE
CORREOS
CORRESPONDENCIA
CENTROS DE
COSTOS
OFICIALIZACION
CONTRATOS
PERSONAL
EMISOR
RECEPTOR
28/12/2004
Página 7 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 8/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Diagrama Detallado Nivel 1:
Informes y Estadísticas
Antecedentes de Consulta
Datos Despacho
Correspondencia Interna Recepcionada
Devolucion de Correspondencia Interna
Correspondencia Interna Oficializada
Antecedentes Correspondencia Interna
Datos Correspondencia
Datos Devolucion
Datos DevolucionDatos Despacho
Datos Correspondencia
Datos Oficializacion
Datos Correspondencia
Datos OficializacionDatos Oficializacion
Datos Correspondencia
Datos de Centros
Datos PersonalDatos Contrato
Datos Correspondencia
1
Registrar Dctos
Internos
2
Oficializar
Doctos
Internos
3
Despachar
Correspondencia
4
Devolución
Docto Interno
5
Consultar
Docto Interno
CORRESPONDENCIA
: 1
OFICIALIZACION
CENTROS DE
COSTOS
PERSONAL
CONTRATOS
DESPACHO
DEVOLUCION
CORRESPONDENCIA : 2
CORRESPONDE
EMISOR
RECEPTOR
EMISOR
28/12/2004
Página 8 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 9/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Modelo de Datos:
El modelo Entidad-Relación (ER) es uno de los modelos de datos máspopulares. Se basa en una representación del mundo real en que los
datos se describen como entidades, relaciones y atributos. Estemodelo se desarrollo para facilitar el diseño de las bases dedatos relacionales y fue presentado por Chen en 1976.
El principal concepto del modelo ER es la entidad , que es una"cosa" en el mundo real con existencia independiente. Una entidadpuede ser un objeto físico (una persona, un auto, una casa o unempleado) o un objeto conceptual (una compañía, un puesto detrabajo o un cargo). Dado el ejemplo anterior del Sistema deCorrespondencia es posible identificar dos entidades:correspondencia y despacho.
Cada entidad tiene propiedades específicas, llamadas atributos,que la describen. En nuestro ejemplo, la entidad "correspondencia"posee los atributos nº docto, fecha docto, remitente, entre otros.Una entidad particular tiene un valor para cada uno de susatributos.
Cada uno de los atributos de una entidad posee un dominio, el quecorresponde al tipo del atributo. Por ejemplo, "nº docto" tienecomo dominio al conjunto de los enteros positivos y "remitente"tiene como dominio al conjunto de caracteres.
Para todo conjunto de valores de una entidad, debe existir unatributo o combinación de atributos, que identifique a cadaentidad en forma única. Este atributo o combinación de atributosse denomina clave primaria Por ejemplo, el nº docto es una buenaclave primaria para la entidad correspondencia, no así elremitente, porque pueden existir dos remitentes con el mismonombre.
Una relación se puede definir como una asociación entre entidades.Por ejemplo, la entidad "correspondencia" puede estar relacionadacon la entidad "despacho" por medio de la relación "tiene un”.
Según el número de entidades relacionadas (o razón de
cardinalidad ), se pueden definir tres tipos de relaciones:
1. Relaciones Uno a Uno (1:1). Una entidad A está asociada a lomás con una entidad B, y una entidad B a lo más con unaentidad A.
28/12/2004
Página 9 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 10/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
2. Relaciones Uno a Muchos (1:n). Una entidad A está asociadacon una o varias entidades B. Una entidad B, sin embargo,puede estar a lo más asociada con una entidad A.
3. Relaciones Muchos a Muchos (n:m). Una entidad A está asociada
con una o varias entidades B, y una entidad B está asociadacon una o varias entidades A.
Los atributos compuestos se pueden dividir en sub-partes máspequeñas, que representan atributos más básicos con significadospropios. Por ejemplo, una "dirección" puede sub-dividirse en:calle, comuna, ciudad, región.
Los atributos no sub-dividibles se llaman atómicos o simples. Sino hay necesidad de referirse a los elementos individuales de unadirección, entonces la dirección completa puede considerarse unatributo simple.
Atributos de valor simple son los que tienen un sólo valor parauna entidad particular. Por ejemplo: edad.
Atributos multivalorados pueden tener un conjunto de valores parauna misma entidad. Por ejemplo: "títulos profesionales" (unapersona puede no tener ninguno, uno, dos o más).
En algunos casos una entidad particular puede no tener valoresaplicables para un atributo. Ejemplo: "depto". Para estassituaciones tenemos un valor especial llamado nulo. También, si nose conoce el valor.
Un tipo de entidad define un conjunto de entidades con los mismosatributos.
En los diagramas E-R, un tipo de entidad se representa como unacaja rectangular.
Un tipo de atributo usualmente tiene un atributo cuyos valores sondistintos para cada entidad individual (atributo clave o llave) ysus valores se usan para identificar cada entidad unívocamente.Para una entidad tipo PERSONA, un atributo clave típico es el RUT.Algunas veces, varios atributos juntos forman una clave (lacombinación debe ser distinta). Estos atributos clave aparecen
subrayados en los diagramas.
Cada atributo simple tiene un conjunto de valores o dominio asociado, que especifica el conjunto de valores que puedeasignarse a cada entidad individual. Por ejemplo, si las edades delos empleados pueden variar entre 16 y 70, entonces el dominio deEdad es {x Î N / 16 <= x <= 70}. Los dominios no se muestran enlos diagramas.
28/12/2004
Página 10 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 11/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Los Modelos de Datos constan de los siguientes elementos(símbolos), que son utilizados en la construcción del modelo.Estos se mencionan a continuación:
ENTIDAD
Permite definir una entidad, susatributos, sus tipos de datos ysu obligatoriedad. Además sedebe indicar la clave primariade identificación.
ALUMNO
ALU_RUT N9
A
AL
LU_DV CHAR1
U_APELLIDO_PATERNO VA15
U_APELLIDO_MATERNO VA15
LU_NOMBRES VA15
A LU_FECHA_NACTO DT
U_SEXO I
AL
A
AL
RELACION
Cero a Muchos
Uno a Muchos
Uno a Uno
Cero a Cero
Herramienta POWERDESIGNER : DataArchitect
POWERDESIGNER y su herramienta DataArchitect posee todas lasventajas y utilidades de una herramienta CASE (Computer-AidedSystems Engineering) mencionadas anteriormente.
Entre las funcionalidades particulares de la herramienta se debedestacar la posibilidad de diagramar un modelo de datos conceptualdefiniendo entidades, relaciones, cardinalidades, atributos,tipos de datos y obligatoriedad de los mismos, lo que posibilitala generación de el modelo de datos físico, es decir, aquel modeloque se implementará en el motor de base de datos.
28/12/2004
Página 11 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 12/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
A continuación se muestra un ejemplo de Modelo de Datos Conceptualdel Control de Correspondencia diseñado por la Herramienta CASE.
TIPO_TRAMITE_CORRESPONDENCIATTC_CODIGO ITTC_DESCRIPCION VA15
TIPO_DOCTO_CORRESPONDENCIA
TDC_CODIGO ITDC_DESCRIPCION VA15
MATERIA_CORRESPONDENCIA
MAC_CODIGO IMAC_DESCRIPCION VA15
CORRESPONDENCIA
COR_NUM ICOR_ANO ICOR_FECHA_RECEPCION DTCOR_FECHA_REGISTRO DT
COR_RUT_RESPONSABLE N9COR_DIRECCION VA50COR_OBSERVACION VA50COR_FONO VA20
PERSONAL
PER_RUT N9PER_APELLIDO_PATERNO VA20PER_APELLIDO_MATERNO VA20PER_NOMBRES VA20PER_FECHA_NACT O DTPER_SEXO I
DESPACHO_CORRESPONDENCIA
DCO_FECHA_DESPACHO DT
DCO_RUT_RESPONSABLE N9DCO_OBSERVACION VA
OFICIALIZACIÓN_CORRESPONDENC
OFC_NUM_OFICIAL OFC_FECHA_OFICIAL OFC_RUT _RESPONSABLE
CONTRATOSCNT_NUMERO ICNT_FECHA_INICIO DTCNT_FECHA_TERMINO DTCNT_DESCRIPCION VA20
CENTRO_RESPONSABILIDAD
CER_CODIGO ICER_DESCRIPCION VA70
28/12/2004
Página 12 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 13/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Finalmente se muestra un ejemplo de Modelo de Datos Físico delControl de Correspondencia diseñado por la Herramienta CASE.
[0,n]PER_RUT = PER_RUT
[0,n]COR_NUM = COR_NUMCOR_ANO = COR_ANO
[0,n]
COR_NUM = COR_NUMCOR_ANO = COR_ANO
[0,n]
CER_CODIGO = CER_CODIGO
[0,n]
PER_RUT = PER_RUT
CNT_NUMERO = CNT_NUMERO
[0,n]
MAC_CODIGO = MAC_CODIGO
[0,n]
TDC_CODIGO = TDC_CODIGO
[0,n]
TTC_CODIGO = TTC_CODIGO
CLASIFICACION_CORRESPONDENCIA
TTC_CODIGO int not nullTTC_DESCRIPCION varchar(15) null
TIPO_DOCTO_CORRESPONDENCIA
TDC_CODIGO int not nullTDC_DESCRIPCION varchar(15) null
MATERIA_CORRESPONDENCIA
MAC_CODIGO int not MAC_DESCRIPCION varchar(15) null
CORRESPONDENCIA
COR_NUM int not nullCOR_ANO int not nullTTC_CODIGO int not nullTDC_CODIGO int not nullMAC_CODIGO int not nullPER_RUT numeric(9) nullCNT_NUMERO int nul lCER_CODIGO int nul lCOR_FECHA_RECEPCION datetime nullCOR_FECHA_REGISTRO datetime nul l
COR_RUT_RESPONSABLE numeric(9) nullCOR_DIRECCION varchar(50) nul lCOR_OBSERVACION varchar(50) nul lCOR_FONO varchar(20) nul l
PERSONAL
PER_RUT numeric(9) not nullPER_APELLIDO_PATERNO varchar(20) nullPER_APELLIDO_MATERNO varchar(20) nullPER_NOMBRES va rchar(20 ) nul lPER_FECHA_NACTO datet ime nul lPER_SEXO int nul l
DESPACHO_CORRESPONDENCIA
COR_NUM int not nullCOR_ANO int not nullDCO_FECHA_DESPACHO datetime not nullDCO_RUT_RESPONSABLE numeric(9) nullDCO_OBSERVACION varchar(50) null
OFICIALIZACION_CORRESPONDENCIA
COR_NUM int not nullCOR_ANO int not nullOFC_NUM_OFICIAL int not nullOFC_FECHA_OFICIAL datet ime not nul lOFC_RUT_RESPONSABLE numeric(9) null
CONTRATOS
PER_RUT numeric(9) not null
CNT_NUMERO int not nullCNT_FECHA_INICIO datet ime nul lCNT_FECHA_TERMINO datetime nullCNT_DESCRIPCION varchar(20) null
CENTRO_RESPONSABILIDAD
CER_CODIGO int not nullCER_DESCRIPCION varchar(70) null
28/12/2004
Página 13 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 14/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
CONSTRUCCIÓN DE SISTEMAS
La construcción de sistemas se basa en la arquitectura
Cliente/Servidor en el Modelo conceptual de sistema obtenido.Para iniciar el proceso de construcción se debe considerar ydefinir estándares a utilizar que tienden a obtener mejores ymayores resultados, se adjunta ANEXO Estandares de Construcción deSistemas. También permite realizar una mantención sin dependenciade profesionales responsables de la construcción del sistema.
Para el proceso de construcción se requiere considerar:
Descomposición Modelo Conceptual de procesos: A partir del últimonivel de descomposición de procesos se debe construir el últimonivel de descomposición considerando lo siguiente:
• Si los flujos de salida no requieren los mismos datos de entradasepare en subprocesos
• Si los flujos de salida no ocurren en el mismo instante separeen subprocesos
• Si los flujos de salida y los datos de entrada se requieren porroles distintos separe en subprocesos
Descomposición modelo conceptual entidad relación: A partir delmodelo conceptual de Datos se debe construir el DER normalizado enlo posible 3ª forma, se debe considerar que:
• Cada repetición de un atributo en una entidad da origen a otraentidad relacionada con la primera a través de la clave primaria
• Cada relación de muchos-a-muchos se debe resolver con unaentidad asociativa
• En una entidad no debe existir atributos excluyentes, cadaexclusión corresponde a otra entidad, los datos comunes de dosentidades con atributos excluyentes dan origen a otra entidad.
• Cada dato elemental está en una sola entidad ej: Nombre_Alumno
• Todas las entidades tiene identificadas sus claves primarias
Modelo de datos: Con el DER normalizado se deben constituir lasestructuras del modelo físico de datos, se definen las estructurasy sus relaciones entre ellas de acuerdo al DER. Los nombres deestructuras de datos deben estar relacionados con la naturalezade la información que contiene la estructura (tabla). Losatributos se nombrarán con un nombre al cual se le antepone unprefijo de tres letras que corresponde a la identificación de latabla, con lo cual se identifica rápidamente la ubicación de losatributos, ejemplo estructura: ALUMNO su atributo rut alumno sedenomina alu_rut.
28/12/2004
Página 14 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 15/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
28/12/2004
Página 15 de 115
Reglas de Integridad: Se deben definir las reglas de integridaddel modelo de datos de acuerdo a las relaciones entre lasestructuras de datos para las acciones de eliminar, insertar yactualizar parte o toda la información de una estructura.
Servicios: Los servicios definidos deben considerar los tiempos derespuestas que el usuario necesita en la activación del proceso.También se relaciona
Interfaces: En general se propone construir interfaces limpias,con pocos objetos, que consideren resolución gráfica 800 x 600para evitar problemas generales de visualización en las estacionesde trabajo de usuarios.Los formularios se deben desplegar en el centro de la pantalla oen toda la pantalla, su despliegue es modal y no configurable.En general el Título tiene relación con el nombre del menú
mediante el cual se activa el formulario o pantalla.Los botones de control tal como Guardar, Buscar, Imprimir, Cerrar,etc, se ubican en el extremo superior derecho, excepcionalmente enla parte inferior o lateral derecho.Los Botones de Control deben tener el nombre de la acción arealizar y en general se les incorpora un objeto o imagen querefleja la acción en Windows y cada vez que se activan se debeenviar un mensaje de advertencia para notificar su acción.El color de los formularios debe ser en tonos sobrios y claros,estos no cansan a los usuarios.
El tener formularios estándares para todas los sistemas, facilitala capacitación de nuevas funcionalidades, ya que transforman eninterfaces conocidas e internalizadas en la Institución.
Se deben establecer algunos tipos de formularios para accionesespecíficas, por ejemplo:
• Formulario de Mantención: Orientado a registrar, actualizar,eliminar conjuntos de datos en general de una o más estructuradentro de la base de datos. En general debe tener botones de :1. Nuevo: Habilita el formulario limpiando todos sus objetos
para registrar nuevos datos por el usuario (teclado)2. Guardar : Guarda en la base de datos como un nuevo registro,
la información de la pantalla ingresada por el usuario
3. Actualizar: Actualiza la información desplegada en elformulario desde la base de datos con la informaciónmodificada por el usuario en el formulario.
4. Eliminar: Elimina de la base de datos la informaciónseleccionada en el formulario
5. Cerrar: Cierra el formulario
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 16/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
• Formulario de Búsqueda: Orientados a buscar información en labase de datos a partir de uno o varios criterios de búsqueda. Engeneral no actualizan información.
• Son utilizados para consultar o para activar un proceso a partirde una o toda la información seleccionada. En general contiene
los siguientes botones:1. Buscar: Selecciona en la base de datos la información que
cumple con los criterios de búsqueda y los despliega en elformulario
2. Cerrar: Cierra el formulario y retorna al formularioanterior.
• Formulario de Informes: Orientados a entregar información a laimpresora.1. Imprimir: Envía la información de la pantalla a una
impresora
28/12/2004
Página 16 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 17/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
PROGRAMACIÓN POWER BUILDER Y SQL SERVER
PowerBuilder
Definición. PowerBuilder es un entorno gráfico de programación que
está compuesto de diferentes herramientas que permiten el
desarrollo rápido de aplicaciones. Con estas herramientas se
pueden desarrollar aplicaciones Cliente / Servidor a través de
ODBC (Open DataBase Connectivity) o Drivers Nativos para la Base
de Datos.
Una apliación Cliente / Servidor pone en comunicación una estación
de trabajo con un Servidor de Base de Datos Central. Este modelo
consiste en utilizar una Base de Datos que reside en una máquina
separada denominada Servidor. El Software de gestión de Base de
Datos se ubica en las estaciones de trabajo remotas (Clientes).
Las aplicaciones que se ejecutan en las estaciones cliente,
acceden a los datos que se encuentran en el servidor.
Estacion
(Cliente Servidor
(Base de Datos)
28/12/2004
Página 17 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 18/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
28/12/2004
Página 18 de 115
Crear una nueva Librería (Proyecto)
1. Pulse sobre el icono New del PowerBar1
2. En la ventana de dialogo New, seleccionar la ficha Start
Wizards y dentro de esta seleccionar Application, luego
pulsar el botón OK
3. Seguidamente se activará una ventana en donde se tendrá
que ingresar el nombre de la Librería y Aplicación con
que se desea crear.
Luego pulsar el botón Finish.
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 19/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Nombre de la Aplicación
Nombre de la Librería
4. Al terminar se activará la una pantalla en donde se
comenzará a trabajar y crear nuestro proyecto.
Crear una nueva ventana (Formulario)
1. Pulse sobre el icono New del PowerBar1.
2. En la ventana de diálogo New, seleccionar la ficha
Objects y dentro de esta seleccionar Window, luego
pulsar el botón OK.
28/12/2004
Página 19 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 20/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
3. Luego se activará la siguiente venta de diseño.
Ventana de
Propiedades
Ventana creada.
Ventana donde se creará el código
28/12/2004
Página 20 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 21/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
4. Para grabar la ventana, pulse sobre el icono de Diskette
, luego ingrese el nombre de la ventana con que
desea grabar y seleccione OK.
28/12/2004
Página 21 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 22/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
USO DE CONTROLES
Los controles son objetos que se ubican dentro de una ventana.
Loas controles muestran datos, aceptan datos o validan datos. Los
controles responden a una acción del usuario como por ejemplo un
clic de ratón.
Los controles como cualquier otro objeto tiene sus propios
atributos y eventos, alguno controles son objetos Estándar
Windows, otros son particulares de PowerBuilder .
Para activar e insertar un control, realizar un clic en la flecha
.
Cuadro de Texto Estático. Se utiliza para
mostrar títulos y mensajes, este control muestra un texto que
el usuario solo podrá seleccionar mas no modificar.
Propieades.
Aligment. Especifica el alineamiento del texto en el control.
Los valores que puede seleccionar son: Left!, Center! Y Right!.
BackColor. Especifica un valor numérico correspondiente al color
de fondo.
Text. Especifica el texto que se desea mostrar en el control.
Editar Línea Simple. Es una caja detexto, que el usuario puede utilizar para ingresar una línea
de texto o en todo caso para visualizar el contenido de un
campo de una tabla de datos.
Propiedades.
28/12/2004
Página 22 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 23/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Name. Especifica el nombre que se le desea dar a este control.
BackColor. Especifica un valor numérico correspondiente al color
de fondo.
Border. Especifica si el control tiene un borde. Los valores
son: True (Tiene borde) o False (No tiene borde)
BorderStyle. Especifica el estilo del borde del control, los
valores son: StyleBox! (Cuadro), StyleLowerred! (Cuadro 3d),
StyleRaised! (3d con Sombra) Y StyleShadowBox (Cuadro con
sombra).
DisplayOnly. Especifica si el texto del control es solo delectura y no permite realizar cambios por parte del usuario. Los
valores son: True (El usuario no podrá realizar cambios) y False
(El usuario podrá realizar cambios).
Enabled. Especifica si el control está habilitado (Activado).Los
valores son: True (El control está habilitado) y False (El
control está dehabilitado).
Limit. Especifica el máximo numero de caracteres (0 a 32,767)
que se pueden ingresar en el control (0 es sin límite)
Text. Especifica el texto que contiene el control
Password. Permite ocultar con una mascara los caracteres
digitados.
TextCase. Especifica el formato de ingreso de datos en el cuadro
de texto. Los valores pueden ser: AnyCase! (Cualquier formato),Lower! (Letras minúsculas) y Upper! (Letras mayúsculas)
. Muestra una imagen de mapa de bits.
Propiedades.
28/12/2004
Página 23 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 24/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Name. Especifica el nombre que se le desea dar a este control.
Border. Especifica si el control tiene un borde. Los valores
son: True (Si tiene borde) o False (no tiene borde)
PictureName. Especifica el nombre del archivo que contenga el
gráfico.
Ejemplo:
Desarrollar una aplicación que permita el ingreso del nombre de
usuario y su respectiva clave de acceso.
1. Crear una nueva aplicación dando un clic en el icono New
del PowerBar1.
2. En la ventana de diálogo New, seleccionar la ficha Objects y
dentro de esta seleccionar Window, luego pulsar el botón OK.
3. Ubicar en la ventana los siguientes controles y cambiar las
propiedades respectivas.
Tres Controles StaticText.
Dos Controles SingleLineEdit
Un Control Picture.
Cambiar las propiedades siguientes.
Control Propiedad Valor
Window Title Seguridad de Sistema
P_1 Name P_llave
28/12/2004
Página 24 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 25/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
PictureName (buscar una imagen)
St_1 Text Ingrese su Nombre yContraseña
Font 12, Bold
St_2 Text &Usuario
St_3 Text &Contraseña
Sle_1 Name Sle_Usuario
Text “”
Sle_2 Name Sle_Clave
Text “”
Limit 5
Password (Activado)
Al final el diseño tendrá que ser el siguiente.
Para ejecutar la ventana ingresar a File de la barra de
menú y seleccione Run Preview, en la ventana de dialogo
Run/Preview, seleccione el nombre de la ventana que desea
ejecutar y seleccione el botón OK.
28/12/2004
Página 25 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 26/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
28/12/2004
Página 26 de 115
Si desea salir de la ventana realice un clic sobre el
icono
USO DEL LENGUAJE
Una Aplicación PowerBuilder es una aplicación dirigida por
eventos. El usuario controla la aplicación que se ejecuta
provocando eventos. Por ejemplo: Cada acción que realiza el
usuario como abrir una aplicación provoca un evento. El lenguaje
utilizado para escribir procedimientos se denomina PowerScript,
que es un lenguaje simple y fácil de aprender.
Uso de Comentarios. Si desea poner comentarios en el codigo de una
aplicación utilizar cualquiera de los dos siguientes símbolos.
/* Indica el inicio de un comentario y */ indica el final de un
comentario.
// Indica comentario al final de una línea.
Tipos de Datos. Los identificadores en PowerScript, identifican
objetos tales como variables, etiquetas, funciones, ventanas,
controles y menús. Un identificador debe comenzar con una letra y
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 27/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
utilizar como máximo cuarenta caracteres, también debe tenerse en
cuenta lo siguiente.
No debe contener espacios en blanco.
Puede incluir algunos caracteres no alfabéticos como:
Subrayado _
Signo de Dólar $
Signo de Número #
Signo de tanto por ciento %
Los identificadores no diferencian las mayúsculas ni minúsculas,
el identificador Lib_nombre es igual a lib_nombre.
Tipos de Datos Estandar. Cierto tipo de datos son intrínsicos al
lenguaje PowerScript, pero la mayoría son tipos de datos que son
reconocidos en otros lenguajes de programación.
La siguiente tabla muestra los tipos de datos estándar.
Tipo de Dato. Descripción.
Blob (Binary Large Object) Datos sin formato, Por ejemplo una
imagen o un párrafo.
Boolean True o False
Char o Character Un único carácter.
Date Fecha
DateTime Combinación de una fecha y una hora.
28/12/2004
Página 27 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 28/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Decimal Números decimales con signo hasta una
longitud de 18 dígitos, el punto
decimal no se cuenta como dígito.
Double Números en como flotante, tiene hasta
15 dígitos de precisión y su rango va
desde 2.2253-308 a 1.7976-308
Integer, Int Son enteros con signo de 16 bits.
Long Son enteros con signo de 32 bits, el
rango va desde –2,147,483,648 a
+2,147,483,647
Real Números en coma flotante con una
precisión de hasta 6 dígitos. Rango
desde 1.1754-38 a 3.4028+38
String Contiene desde 0 hasta 60000 caracteres
ASCII
Time Hora-
Declaración de Variables. Para declarar una variable se requiere
solamente de dos partes: El tipo de dato y El nombre de la
variable.
Inicialización de Variables
Literales. Se puede dar el valor inicial a la variable al
declararla, por ejemplo:
Int GranTotal=3, SubTotal=0
String Metodo=”A34”
28/12/2004
Página 28 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 29/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Date Hoy=1998-11-15
Cada uno de los valores utilizados en la expresión
anterior para inicializar una variable literal.
Matrices. Un Array es una colección de elementos indexados de
tipos de datos simples. Un Array puede tener uno o mas
dimensiones, es una serie de valores con un único nombre. Se
especifica su tamaño al declararla. Por ejemplo.
Int A[5]={1,2,3,4,5}
A los valores contenidos en la matriz se accede por medio
del índice.
Matrices Multi-dimensionales. Las matrices pueden tener
múltiples dimensiones.
. Es utilizado para ejecutar una acción
cuando el usuario de un clic sobre el.
Propieades.
Text. Especifica el texto que se desea mostrar en este botón.
Name. Especifica el nombre que se le desea dar a este control.
Cancel. Especifica si el control es el botón Cancelar (El botón
Cancelar dispara el evento Clicked, si el usuario pulsa la tecla
ESC). Los valores son: True (El botón es el botón Cancelar) y
False (El botón no es el botón cancelar)
Ejemplo.
Desarrollar una aplicación que permita mostrar el nombre del
usuario y su respectiva clave de acceso. La clave de acceso
28/12/2004
Página 29 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 30/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
tendrá una longitud de 5 caracteres, se debe mostrar asteriscos
(*) cuando el usuario ingrese la clave de acceso.
Abra una nueva ventana e inserte los siguientes controles.
Tres Controles StaticText.
Dos Controles SingleLineEdit
Un Control Picture.
Dos Botones de comando
28/12/2004
Página 30 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 31/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Cambiar las propiedades siguientes.
Control Propiedad Valor
Window Title Seguridad de Sistema
P_1 Name P_llave
PictureName (buscar una imagen)
St_1 Text Ingrese su Nombre y Contraseña
Font 12, Bold
St_2 Text &Usuario
St_3 Text &Contraseña
Sle_1 Name Sle_Usuario
Text “”
Sle_2 Name Sle_Clave
Text “”
Limit 5
Password (Activado)
Cb_1 Name cb_Aceptar
Text Aceptar
Cb_2 Name cb_Cancelar
28/12/2004
Página 31 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 32/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Text Cancelar
Al final el diseño tendrá que ser el siguiente.
Codigo de la ventana
Cb_Aceptar / Clicked
MessageBox("Sistema de Seguridad","Gracias por su visita")
Close(w_ventana_01)
Cb_Cancelar / Clicked
Close(w_ventana_01)
Ejemplo
Crear una apliación que calcule el los descuentos de ley deun trabajador y el sueldo neto.
El diseño tendrá que quedar de la siguiente manera.
28/12/2004
Página 32 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 33/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Los Controles
sle_Haber, sle_Cts,
sle_Afp, sle_Totd y
sle_Neto tendrán que
estar desactivados.
Codigo del formulario
Cb_calcular / Clicked
Real Haber,Cts,Essalud,Afp,Totd,Neto
Haber=Real(sle_haber.Text)
Essalud=Haber * 0.03
Cts=haber * 0.06
Afp=haber * 0.06
Totd=Essalud + Cts + Afp
sle_Afp.text=String(Afp)
sle_Cts.text=String(Cts)
sle_Essalud.text=String(Essalud)
sle_Totd.Text=String(totd)
sle_neto.Text=String(Neto)
28/12/2004
Página 33 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 34/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Cb_Otro / Clicked
sle_haber.Text="0"
sle_Afp.text="0"
sle_Cts.text="0"
sle_Essalud.text="0"
sle_Totd.Text="0"
sle_neto.Text="0"
Controladores de flujo de programa
Las siguientes sentencias influyen en el flujo de control de un
procedimiento que se está ejecutando. Estos son las sentencias que
pueden controlar el orden de ejecución de las sentencias de un
procedimiento.
IF … THEN ELSE.
Una estructura de control utilizada en el Script, que ejecuta una
acción si la condición lógica es verdadera.
Sintaxis 1
If condición Then
Bloque de instrucciones
Else
Bloque de instrucciones
28/12/2004
Página 34 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 35/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Endif
En está sintaxis, primero se evalúa la condición lógica, y si
el resultado de la condición es verdadera, se ejecutarán las
instrucciones que se encuentren entre If y Else, y si el
resultado es falso, se ejecutarán las instrucciones que se
encuentren entre Else y Endif.
Sintaxis 2
If condición Then
Bloque de instrucciones
Endif
En está sintaxis, primero se evalúa la condición lógica, y si
el resultado de la condición es verdadera, se ejecutarán las
instrucciones que se encuentren entre If y Endif.
CHOOSE CASE.
La estructura de control Cose Case, utiliza el valor de una
expresión o de una variable para decidir entre una serie de
opciones. El valor de la expresión determina que opción
seleccionar.
Sintaxis:
CHOOSE CASE Expresión.
CASE opción1
Bloque de Instrucciones.
CASE opción2
Bloque de Instrucciones.
28/12/2004
Página 35 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 36/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
CASE opciónn
Bloque de Instrucciones.
CASE ELSE
Bloque de
Instrucciones.
END CHOSE.
DO … LOOP.
Ejecuta un bloque de instrucciones hasta que se produzca una
condición de finalización.
Sitaxis:
1. Hacer Mientras la condición sea verdadera.
DO WHILE condición
Instrucciones.
LOOP
2. Hacer hasta que la condición llegue a ser verdadera.
DO UNTIL condicion
Instrucciones.
LOOP
3. Repetir mientras la condición sea verdadera.
DO
Instrucciones.
28/12/2004
Página 36 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 37/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
LOOP WHILE condición
4. Repetir hasta que la condición llegue a ser
verdadera.
DO
Instrucciones.
LOOP UNTIL condicion.
FOR … NEXT.
La sentencia FOR … NEXT ejecuta un bloque de sentencias en un
determinado numero de veces, los argumentos que se especifican en
la sentencia determina el numero de veces que se ejecuta el bloque
Sintaxis:
FOR nom_var=Inicial TO final STEP (Incremento)
Bloque de Instrucciones
NEXT.
28/12/2004
Página 37 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 38/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Permite crear un grupo de opciones en donde
solo se podrá seleccionar una opción del grupo.
Propiedades
Checked. Retorna un valor lógico el cual especifica si elcontrol se encuentra seleccionado o no. Si el valor devuelto es:
Trae: significa que está seleccionado.
False: significa que no está seleccionado.
Enabled. Especifica un valor lógico, el cual indica si el
control está activado o desactivado.
Trae: Control Activado
False: Control Desactivado
EjemploDesarrolle una aplicación que permita calcular el haber básico
de un trabajador de acuerdo a la categoría seleccionada y
calcular los descuentos respectivos.
Inserte los siguientes controles.
Control Propiedad Valor
sle_1 Name sle_empleadoText en blanco
sle_2 Name sle_haberText en blanco
sle_3 Name sle_ctsText en blanco
sle_4 Name sle_afpText en blanco
sle_5 Name sle_essaludText en blanco
sle_3 Name sle_totaldText en blanco
sle_3 Name sle_netoText en blanco
rb_1 Name rb_generenteCaption Gerente 2500
rb_2 Name rb_administradoeCaption Administrador 2000
rb_3 Name rb_secretariaCaption Secretaria 1500
Cb_1 Name cb_aceptarCaption Aceptar
Cb_1 Name cb_otroCaption Otro
28/12/2004
Página 38 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 39/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Cb_1 Name cb_cerrarCaption Cerrar
El diseño del formulario tendrá que quedar de la siguiente
manera:
Código de la aplicación
Controles desactivados
Cb_aceptar / Clicked
Realhaber,cts,afp,essalud,totd,netoIf rb_gerente.checked=true then
haber=2500
end ifIfrb_administrador.checked=truethen
haber=2000end ifIf rb_secretaria.checked=truethen
haber=1500end ifcts=haber * 0.03afp=haber * 0.06essalud=haber * 0.06totd=cts+afp+essaludneto=haber - totdsle_haber.text=string(haber)sle_afp.text=string(afp)sle_cts.text=string(cts)sle_essalud.text=string(essalud)sle_totald.text=string(totd)
cb_otro / Clicked
sle_empleado.text=""sle_haber.text="0"sle_cts.text="0"sle_afp.text="0"
sle_essalud.text="0"sle_totald.text="0"sle_neto.text="0"
28/12/2004
Página 39 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 40/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
sle_neto.text=string(neto)
Grabe la ventana con w_opciones y luego ejecute .
(Casilla de verificación). Permite crear un
grupo de opciones las cuales podrán ser activadas o
desactivadas.
Propiedades
Checked. Retorna un valor lógico el cual especifica si el
control se encuentra seleccionado o no. Si el valor devuelto es:
Trae: significa que está seleccionado.
False: significa que no está seleccionado.
Enabled. Especifica un valor lógico, el cual indica si el
control está activado o desactivado.
Trae: Control Activado
False: Control Desactivado
Ejemplo
Desarrolle una aplicación que permita calcular el haber básico
de un trabajador de acuerdo a la categoría seleccionada y
calcular los descuentos respectivos (solo de los que se
especifique).
Nota : Para dar los nombres de los controles fíjese el código de
la aplicación y de acuerdo a eso ponga los nombres respectivos.
Los nombres de los controles son los mismos que el ejemploanterior y de los que se agregaron son:Control Propiedad Valor
cbx_1 name cbx_ctscaption CTS 3%
cbx_1 name cbx_afpcaption AFP 6%
cbx_1 name cbx_essaludcaption ESSALUD 3%
28/12/2004
Página 40 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 41/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
El diseño del formulario tendrá que quedar de la siguiente
manera
Código del formulario
cb_aceptar / clicked
Real haber,cts,afp,essalud,totd,netoIf rb_gerente.checked=true then haber=2500If rb_administrador.checked=true thenhaber=2000If rb_secretaria.checked=true thenhaber=1500if cbx_cts.checked=true then
cts=haber * 0.03
elsects=0
end ifif cbx_afp.checked=true then
afp=haber * 0.03else
afp=0end ifif cbx_essalud.checked=true then
essalud=haber * 0.03else
essalud=0
end iftotd=cts+afp+essaludneto=haber - totdsle_haber.text=string(haber)sle_afp.text=string(afp)sle_cts.text=string(cts)sle_essalud.text=string(essalud)sle_totald.text=string(totd)
Cb_otro / Clicked
sle_empleado.text=""sle_haber.text="0"sle_cts.text="0"sle_afp.text="0"sle_essalud.text="0"sle_totald.text="0"sle_neto.text="0"cbx_cts.checked=false
cbx_afp.checked=falsecbx_essalud.checked=false
28/12/2004
Página 41 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 42/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
sle_neto.text=string(neto)
Cumple la misma función que el control
SingleLineEdit, con la diferencia de que a este control se le
puede definir mascaras de entrada y salida de datos.
Propiedades.
DisplaOnly. Especifica si el contenido del control podrá ser
modificado por el usuario.
Mask. Permite especificar la mascara que se desea usar para el
control.
Numeros : #
String : @
Date :
Character MeaningExample
d Day number with no leading zero 9dd Day number with leading zero ifappropriate 09ddd Day name abbreviation Mondddd Day name
Mondaym Month number with no leading zero 6mm Month number with leading zero if
appropriate 06mmm Month name abbreviation Junmmmm Month name Juneyy Two-digit year 97yyyy Four-digit year 1997
Time :
Character Meaning
h Hour with no leading zero (for example,1)
hh Hour with leading zero if appropriate(for example, 01)
m Minute with no leading zero (mustfollow h or hh)mm Minute with leading zero if appropriate
(must follow h or hh)s Second with no leading zero (must
follow m or mm)ss Second with leading zero (must follow m
or mm)
28/12/2004
Página 42 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 43/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
ffffff Microseconds with no leading zeros. Youcan enter one to six f's; each frepresents a fraction of a second (mustfollow s or ss)
AM/PM Two-character, upper-case abbreviation
(AM or PM as appropriate)am/pm Two-character, lower-case abbreviation(am or pm as appropriate)
A/P One-character, upper-case abbreviation(A or P as appropriate)
a/p One-character, lower-case abbreviation(a or p as appropriate)
MaskDataType. Especifica el tipo de dato para el control, los
valores pueden ser:
DateMask!, DateTimeMask!, DecimalMask!, NumericMask!,
StringMask!, TimeMask!
Min. Especifica el valor mínimo que se podrá ingresar en el
control.
Max. Especifica el valor máximo que se podrá ingresar en el
control.
Spin. Especifica si se desea mostrar un scroll de tipo spinner
en el control.
EjemploRealice una aplicación en donde se ingrese los datos de los
alumnos mas las notas respectivas del curso. Al momento de
ingresar las notas, solo deberá de aceptar números.
Además deberá calcular el promedio y la condición.
El diseño deberá de quedar de la siguiente manera.
28/12/2004
Página 43 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 44/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Código del Formulario.
Controles EditMaskControl em_nota1 y em_nota2
Propiedad (ficha mask)Mask = ##
MaskDataType: numerickask
Spin = Activado
Min = 0
Max = 20
Incremente = 1
Cb_calcular / clicker
Real Nota1,Nota2,PromedioNota1=real(em_nota1.text)Nota2=real(em_nota2.text)promedio=(nota1+nota2)/2if promedio>=11 then
sle_condicion.text="Aprobado"else
sle_condicion.text="Desaprobado"end ifem_promedio.text=string(promedio)
cb_otro / Clickedsle_alumno.text=""sle_curso.text=""em_nota1.text="0"em_nota2.text="0"em_promedio.text="0"
Grabe la ventana con w_editmask
Ejecute la ventana, ingrese los datos respectivos y pulsecalcular.
28/12/2004
Página 44 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 45/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
y Se utilizan con
la finalidad de insertar un cuadro de lista o una lista
desplegable, en donde el usuario podrá seleccionar uno o mas
elementos de la lista.
Funciones
Additem . Permite añadir un nuevo elemento dentro de un cuadro de
lista o una lista desplegable.
DeleteItem . Permite eliminar el elemento indicado de un cuadro
de lista o una lista desplegableReset. Borra todo los elementos de una lista o una lista
desplegable.
SelectedIndex. Retorna el número del elemento seleccionado de
una lista.
SelectedItem . Retorna el texto del elemento seleccionado.
SelectItem . Retorna el elemento del número de elemento indicado.
Text. Retorna el texto del elemento seleccionado.
Ejemplo : Desarrolle una aplicación en donde se agreguen nuevoselementos a una lista.
El diseño del formulario tendrá que quedar de la siguiente
manera.
28/12/2004
Página 45 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 46/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Código del formulario.
cb_agregar / Clicked.lb_elementos.additem(sle_nuevo.text)sle_nuevo.text=""
Control Propiedad ValorSle_1 Name sle_nuevo
Text en blanco
Lb_1 Name lb_elementos
cb_eliminar / clickedlb_elementos.DeleteItem(lb_elementos.SelectedIndex())
cb_borrar / clickedlb_elementos.reset()
Ejemplo
Desarrolle una aplicación en donde se registren nuevos
productos, se ingresen la cantidad y el precio, se calcule el
subtotal y el total a pagar y esos se agreguen a unas listas.
El diseño del formulario tendrá que quedar de la siguiente
manera.
Control Propiedad valor
sle_1 name sle_nuevopddlb_1 name ddlb_productossle_2 name sle_productosem_1 name em_cantidadem_2 name em_preciolb_1 name lb_productoslb_2 name lb_cantidadeslb_3 name lb_precioslb_4 name lb_subtotalessle_3 name sle_totalcsle_4 name sle_totalp
28/12/2004
Página 46 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 47/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
sle_5 name sle_totalssle_6 name sle_totalpagar
LA PROPIEDAD SORTED DE LOS LISTBOX, TENDRÁN QUE ESTAR
DESACTIVADOS, PARA QUE LOS ELEMENTOS NO SE ORDENEN AL MOMENTO DE AGREFGAR
Nota : Los textos de color oscuro tendrán
que estar desactivados
Codigo del formulario
cb_agregar / clickedddlb_productos.additem(sle_nuevop.text)sle_nuevop.text=""
cb_aceptar / clickedsle_productos.text=ddlb_productos.text
cb_agregar2 / clicked
Real Cantidad,Precio,SubTotal,TotalCantidad=Real(em_cantidad.text)Precio=Real(em_precio.text)
SubTotal=Cantidad * PrecioTotal=Real(sle_totalpagar.Text)Total=Total + SubTotallb_productos.AddItem(sle_productos.Text)lb_cantidades.AddItem(em_cantidad.Text)lb_precios.AddItem(em_precio.Text)lb_subtotales.AddItem(String(SubTotal))sle_totalpagar.Text=String(Total)
28/12/2004
Página 47 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 48/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
sle_totalc.text=String(real(sle_totalc.text)+Cantidad)sle_totalp.text=String(real(sle_totalp.text)+Precio)sle_totals.text=String(real(sle_totals.text)+SubTotal)
cb_eliminar / Clicked
Integer IndiceReal Cantidad,Precio,SubTotal,TotalIndice=lb_productos.SelectedIndex()Cantidad=Real(lb_cantidades.text(Indice))Precio=Real(lb_precios.text(Indice))SubTotal=Real(lb_subtotales.text(Indice))sle_totalc.text=String(real(sle_totalc.text) - Cantidad)sle_totalp.text=String(real(sle_totalp.text) - Precio)sle_totals.text=String(real(sle_totals.text) - SubTotal)sle_totalpagar.Text=sle_totals.textlb_productos.DeleteItem(Indice)lb_cantidades.DeleteItem(Indice)
lb_precios.DeleteItem(Indice)lb_subtotales.DeleteItem(Indice)
cb_limpiar / Clicked
lb_productos.Reset()lb_cantidades.Reset()lb_precios.Reset()lb_subtotales.Reset()ddlb_productos.Reset()sle_productos.Text=""em_cantidad.Text="0"em_precio.Text="0"sle_totalc.Text="0"sle_totalp.Text="0"sle_totals.Text="0"sle_totalpagar.Text="0"
Como trabajo práctico desarrolle la siguiente aplicación.
Agregar. Permite agregar nuevos empleados a la lista Aceptar. Muestra el empleado seleccionado de la lista en
do Seleccionado.EmpleaOtro. Limpia todo los controles.
Nota: Cada vez que se seleccione una categoría deberá de
calcular el haber básico, los descuentos y el sueldo neto.Cada vez que se active uno de los check (Descuentos), deberá devolver a calcular todo.
28/12/2004
Página 48 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 49/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Este otro ejemplo es similar al anterior, con la diferencia de
que tendrá que ir agregando en las listas e ir sumando los
totales en la parte inferior.
28/12/2004
Página 49 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 50/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
FUNCIONES DENTRO DE POWERBUILDER
PowerBuilder posee una gran variedad de funciones que permiten al
programador desarrollar sus aplicaciones de una manera fácil.
1. Funciones de Cadena
Asc. Obtiene el código ASCCII correspondiente al primer
carácter de una cadena.
Ejemplo : Asc ("A")
Char. Retorna el carácter correspondiente al código
ASCII.
Ejemplo : Char (42)
Fill. Retorna una cadena con una longitud determinada
del carácter especificado.
Ejemplo : Fill ("*",20)
Left. Retorna un número especificado de caracteres
comenzando por la izquierda.
Ejemplo : Left ("Henry Salcedo",4)
LeftTrim. Retorna la misma cadena de caracteres sin los
espacios en blanco del lado izquierdo de la cadena
Ejemplo : LeftTrim (" Henry Salcedo")
Len. Retorna la longitud de la cadena.
Ejemplo :
Longs_nombre
s_nombre=Len(sle_Nombres.text)
Lower. Retorna una copia de una cadena convertida a
minúsculas.
Ejemplo : Lower("HENRY SALCEDO")
Mid. Retorna una cadena que contiene un número
especificado de caracteres, comenzando de una posición
indicada.
Ejemplo : Mid("HENRY SALCEDO",5,5)
Pos. Retorna la posición donde se encuentra una cadena
dentro de otra cadena
Ejemplo : Pos("HENRY SALCEDO","SA")
28/12/2004
Página 50 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 51/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Reverse. Cambia el orden de los caracteres de una
cadena.
Ejemplo : Reverse ("HENRY SALCEDO")
Right. Retorna un número especificado de caracteres,
comenzando del lado derecho..
Ejemplo : Right ("HENRY SALCEDO",3)
RightTrim. Retorna la misma cadena de caracteres sin los
espacios en blanco del lado derecho de la cadena
Ejemplo : RightTrim ("Henry Salcedo ")
Space. Retorna una cadena de longitud determinada,
conteniendo espacios en blanco.
Ejemplo : Name = Space (10)
Trim. Retorna la misma cadena de caracteres sin los
espacios en blanco del lado izquierdo y derecho de la
cadena
Ejemplo : Trim (" Henry Salcedo ")
Upper. Retorna la misma cadena de caracteres convertidas
a letras mayúsculas.
Ejemplo : Upper (" Henry Salcedo")
2. Funciones de Fecha
Day. Retorna el día del mes de una fecha indicada.
Ejemplo : Day (1994-01-31)
DayName. Retorna el nombre del día de la semana
Ejemplo :
string dayn
Date fecha
fecha=Date(em_1.text)
dayn=dayName(Fecha)
DayNumber. Retorna un número que representa el día de la
semana.
Ejemplo :
Integer dayn
Date fecha
28/12/2004
Página 51 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 52/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
fecha=Date(em_1.text)
dayn=dayNumber(Fecha)
DaysAfter. Retorna el número de días de una fecha
después de la actual.
Ejemplo :
Integer dayn
Date fecha
fecha=Date(em_1.text)
dayn=daysAfter(2001-02-19,Fecha)
Hour. Retorna un entero que corresponde al número de
horas de una fecha dada.
Ejemplo :
Integer Hora
Hora=Hour(Now())
MessageBox("Hora",Hora)
Minute. Retorna un entero que corresponde a los minutos
de una hora dada.
Ejemplo :
Integer Hora
Hora=Minute(Now())
Now. Retorna la hora del sistema.
Ejemplo :
Time Hora
Hora=Now()
Second. Retorna el numero de segundos de una hora dada.
Ejemplo :
integer Hora
Hora=Second(Now())
Today. Retorna la fecha actual del sistema
Ejemplo :
Date Fecha
Fecha=Today()
Year. Retorna el año de una fecha dada
28/12/2004
Página 52 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 53/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Ejemplo :
Integer Año
Año=Year(Today())
3. FUNCIONES NUMERICAS
Abs. Obtiene el valor absoluto de un numero
Ejemplo:
i = 4
num = Abs(i)
num = Abs (4)
num = Abs (+4)
num = Abs (-4)
Abs (-4.2)
Esta sentencia retorna 4.2.
Ceiling. Obtiene el menor número entero que es menor o igual
al número especificado.
Ejemplo:
Dec = 4.8
Num = Ceiling (dec)
Decimal num
Num = ceiling (-4.2)
Num = ceiling (-4.8)
Esta sentencia retorna -4.
Cos. Obtiene el coseno del ángulo debe estar en readianes.
Ejemplo: Cos (0)
Cos(1)
Esta sentencia retorna -1.
Cos(pi(1))
Esta sentencia retorna -1.
Int. Obtiene el menor número entero que es menor o igual al
número especificado.
28/12/2004
Página 53 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 54/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Ejemplo: Int(3.2)
Int(3.8)
Int(-3.2)
Int(-3.8)
La siguiente sentencia retorna -4.0.
Max. Retorna el mayor de dos números.
Ejemplo: Max (4,7)
Max (-4,-7)
Esta expresión retorna -4.
Min. Retorna el menor de dos números.
Ejemplo: Min (4,7)
Min (-4,-7)
Esta expresión retorna -7.
Mod. Obtiene el modulo de dos números (el resultado obtenido
de la división del primer expresión con el segundo).
Ejemplo:
Integer Residuo
Residuo=Mod(20,6)
Pi. Obtiene el valor de Pi
Ejemplo: Pi( ) => 3.14159265358979323
Round. Obtiene un número redondeado a un número decimal
elegido
Ejemplo:
Round (9.625,2) => 9.63
Round (9.6,3) => 9.600
Sign. Obtiene un número (-1, 0, o 1) indicando el signo de
una expresión
Ejemplo:
Sign (0) => Retorna 0 por que 0 no tiene signo
Sign (9) => Retorna 1
Sign (-9) => Retorna -1
Sqrt. Obtiene la raíz cuadrada de un número dado.
Ejemplo:
28/12/2004
Página 54 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 55/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Sqrt (4) => Retorna 2
Sign (3) => Retorna 1.7320
Truncate. Obtiene un número truncado a una determinada
expresión decimal.
Ejemplo:
Truncate (9.22,1) => Retorna 9.2
Truncate (9.9,0) => Retorna 9
4. Funciones de Conversión
Dec. Convierte el contenido de una cadena a un número
decimal.
Ejemplo :
Real Numero
Numero=Dec("14.25")
Double. Convierte el contenido de una cadena a un número
doble
Ejemplo :
Real Numero
Numero=Double("14.25")
Integer. Convierte el contenido de una cadena a un número
entero
Ejemplo :
Integer Numero
Numero=Integer("14")
Real. Convierte el contenido de una cadena a un número real
Ejemplo :
Real Numero
Numero=real("14.25")
String. Convierte un número a un cadena de caracteres.
Ejemplo :
String Cadena
Cadena=String(14.25)
28/12/2004
Página 55 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 56/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Date. Convierte una cadena a una fecha
Ejemplo :
Date Fecha
Fecha=Date(10-05-2001)
Ejemplo de una aplicación
Desarrolle una aplicación que permita el ingreso de los
datos personales de los alumnos. Se debe de ingresar los
nombres, apellido paterno, apellido materno, dirección,
especialidad, semestre, turno, sexo y fecha de registro.
El código deberá de ser autogenerado de la siguiente manera:
Tomar el primer carácter del apellido paterno mas un número
consecutivo que tendrá que ir generándose.El diseño del formulario deberá de ser de la siguiente manera.
Grabe la ventana con el nombre de : w_funciones
CÓDIGO DEL FORMULARIO.
Window / open
Limpiar_Controles();
Control Edit Mask
Tipo Fecha
Propiedad Item deCmbSexo: Masculino
FemeninoEspecialidad:
Computación e Inform
Secretariado Ejecutivo
Enfermería Técnica
Semestre : del 1 al 6
Turno: Mañana
Tarde
Noche
28/12/2004
Página 56 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 57/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
em_fecha.text=String(today())
cb_aceptar / Clicked
Integer Nregs
String CodigoNregs=Lb_Alumnos.TotalItems()+1Codigo=Left(sle_apepat.text,1)+Left(sle_apemat.text,1)+Trim(string(Nregs))Codigo=Right("000"+trim(Codigo),3)Lb_Alumnos.AddItem(Sle_Apepat.text + " " + sle_apemat.text +", " + sle_nombres.text)lb_codigos.AddItem(Codigo)sle_codigo.Text=Código
cb_nuevo / Clicked
Realícelo ud.
Ejecute su ventana, ingrese los datos respectivos
Pulse el botón Aceptar para generar el código y agregar a lalista los datos.
28/12/2004
Página 57 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 58/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
El código ha sido generado con la primera letra del apellido
paterno + la primera letra del apellido materno + un
número correlativo.
28/12/2004
Página 58 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 59/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
FUNCIONES DEFINIDAS POR EL USUARIO
El lenguaje PowerScript tiene una gran variedad de funciones. Pero
si en el proceso de desarrollo se necesita codificar u proceso que
se repita mas de una vez entonces es necesario crear una función
definida por el usuario.
Una función definida por el usuario es una colección de sentencias
que realizan algún proceso. Para construirla se realiza en el
Function Painter, una vez construida se graba la función para su
posterior uso.
Tipos de Función.
Funciones Globales. Las cuales no están asociadas a ningún objeto
de la aplicación y son accesibles desde cualquier punto de la
aplicación.
Funciones de nivel objeto. Estas funciones están definidas por un
tipo particular de ventana, menú o objeto de usuario
Nota : Las nombres de las funciones pueden tener hasta una
longitud de 40 caracteres
Crear una función que permita limpiar los controles del ejemplo
anterior.
Abra la ventana anterior (w_funciones)
Abra el la ventana de script de la ventana
Abra la lista de controles de la ventana de códigos y
seleccione (Functions)
28/12/2004
Página 59 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 60/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Seguidamente se activará la siguiente ventana en donde se
tendrá que ingresar el nombre de la función que se desea crear
y especificar si se desea que la función retorne un valor.
Alcance de la función Indica si la función retornará Nombre de la función a crear
Ventana en donde se escribirá el código de la función
Luego de crear la función escriba el código siguiente.
sle_nombres.Text=""sle_apepat.Text=""sle_apemat.Text=""sle_direccion.Text=""ddlb_sexo.SelectItem(0)ddlb_especialidad.SelectItem(0)ddlb_semestre.SelectItem(0)ddlb_turno.SelectItem(0)
Grabe la función grabando la ventana y cierre la ventana de
la función.
Agregue la siguiente línea de código a los siguientes eventos
de controles.
Window / openLimpiar_Controles();em_fecha.text=String(today())
Cb_Aceptar / ClickedInteger NregsString CodigoNregs=Lb_Alumnos.TotalItems()+1Codigo=Left(sle_apepat.text,1)+Left(sle_apemat.text,1)+Trim(string(Nregs))Codigo=Right("000"+trim(Codigo),3)Lb_Alumnos.AddItem(Sle_Apepat.text + " " + sle_apemat.text +", " + sle_nombres.text)lb_codigos.AddItem(Codigo)sle_codigo.Text=CodigoLimpiar_Controles();
Cb_nuevo / ClickedLimpiar_Controles();
28/12/2004
Página 60 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 61/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Ejecute la ventana llene los datos respectivos y pulse el
botón Cancelar, deberá de limpiar los controles.
Como trabajo práctico cree una función que permita
Desactivar los controles: (f_desactivar)
sle_codigo, em_fecha, sle_nombres, sle_apepat, sle_apemat,
sle_direccion, ddlb_sexo, ddlb_especialidad, ddlb_semestre,
ddlb_turno y cb_aceptar
Activar los controles: (f_activar)
sle_codigo, em_fecha, sle_nombres, sle_apepat, sle_apemat,
sle_direccion, ddlb_sexo, ddlb_especialidad, ddlb_semestre,
ddlb_turno y cb_aceptar
Los controles tendrán que estar activados al momento de
ejecutar la ventana, y cuando se pulse el botón nuevo tendrán
que activarse con los controles en blanco.
Cuando se pulse aceptar los controles tendrán que
desactivarse nuevamente.
28/12/2004
Página 61 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 62/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Otro Ejemplo
Realice una aplicación que permita calcular el sueldo neto de un
trabajador y ademas los descuentos respectivos.
Los descuentos y el sueldo neto se tendrán que ir calculando
cada vez que se cambie la categoría o algún descuento (para
calcular los descuentos y sueldo neto crear una función)
El diseño del formulario es el siguiente:
Para dar nombre a los controles como práctica tendrá que fijarse
el código de la aplicación y de acuerdo a eso poner los nombres
respectivos.
Código de la aplicación.
Crear una función con el nombre de Calcular
Para crear la función, seleccione la opción Insert de la barra
de menú, y dentro de esta seleccione Function.
Aquí se escribe elcódi o de la función Seleccione (None) Nombre de la función
Nombre de la función
28/12/2004
Página 62 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 63/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
El código de la función es elsiguiente:REALhaber,cts,afp,essalud,totald,netohaber=REAL(sle_haber.Text)IF cbx_cts.CHECKED=TRUE then
cts=haber*0.03ELSE
cts=0end ifif cbx_afp.checked=true then
afp=haber*0.06elseafp=0
end ifif cbx_essalud.checked=true then
essalud=haber*0.06else
essalud=0end iftotald=cts+afp+essaludneto=haber - totaldem_cts.Text=String(cts)em_afp.Text=String(afp)em_essalud.Text=String(essalud)em_totald.Text=String(totald)em_neto.Text=String(neto)return
Cb_agregar / Clickedddlb_empleados.Additem(sle_nuevoe.Text)sle_nuevoe.Text=""
cb_aceptar / Clickedsle_empleado.Text=ddlb_empleados
.Text
rb_gerente / Clickedsle_haber.text="2500"Calcular();
rb_administrador / Clickedsle_haber.text="2000"Calcular();
rb_secretaria / Clickedsle_haber.text="1000"Calcular();
cb_otro / clickedsle_empleado.Text=""sle_haber.Text="0"em_cts.Text="0"em_afp.Text="0"em_essalud.Text="0"em_totald.Text="0"em_neto.Text="0"cbx_cts.checked=Falsecbx_afp.checked=Falsecbx_essalud.checked=False
cbx_cts – cbx_afp – cbx_essalud / Clicked (en los tres poner el mismo código)
Calcular();
Ejecute la aplicación e ingrese los datos para poder calcular.
28/12/2004
Página 63 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 64/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Este control contiene una serie de páginas
donde cada página podrá contener a su vez controles
Propiedades.
Aligment. Especifica la alineación del texto en la etiqueta de
cada página: Los valores son : Left!, Center!, Right!.
BackColor. Especifica un valor numérico correspondiente al color
del fondo.
Enabled. Activa o Desactiva el control.
Perpendicular Text. Especifica si el titulo de cada página sealineará en forma vertical.
SelectedTab. Especifica cual de las paginas se encuentra
seleccionada.
Para insertar mas páginas dentro de este control, ubique el
puntero del mouse en la parte superior de este control, realice
un click con el botón contrario y seleccione la opción
InsertTabPage.
28/12/2004
Página 64 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 65/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Para eliminar una página, realice un click contrario sobre la
página que desee eliminar y seleccione la opción Delete. (no seolvide que tendrá que realizar click contrario dentro de la
página)
28/12/2004
Página 65 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 66/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Ejemplo:
Desarrollar una aplicación que permita ingresar los datos de los
trabajadores. Usar un control Tab con dos páginas.
En la primera página se debe ingresar los datos generales del
trabajador.
En la segunda página se debe seleccionar la condición del
trabajador (Contratado o Nombrado). Si es Contratado, su
haber básico será 1500 y si es nombrado 2000.
Si es Nombrado realizar los descuentos de ley, de lo
contrario es descuento será 0.
Nota: Para cambiar el nombre de la página dentro de un tab,
realice un clic contrario dentro de la página que quiere
cambiar el nombre, luego en la ventana de propiedades
seleccione la propiedad name y ponga el nombre que desee.
El diseño del formulario tendrá que quedar de esta manera:
(grabe con w_tabpage).
Diseño de la primera página
Control Propiedad Valor
Tab_1 Name Tab_Trabajador
tabpage_1 Name Tabpg_datos
Caption Datos del Trabaj
tabpage_2 Name Tabpg_sueldo
Caption Sueldo del traba
Dentro de Tabpg_datos va:
Sle_1 Name sle_codigo
Sle_2 Name sle_nombres
Sle_3 Name sle_apellidos
Sle_4 Name sle_direccion
Sle_5 Name sle_dni
em_1 Name em_fecha
cb_1 Name cb_aceptarCaption Aceptar
Dentro de tab_pg_sueldo va:
rb_1 Name rb_contratado
Caption Contratado
rb_2 Name rb_nombrado
Caption Nombrado
Sle_6 Name sle_haber
Sle_7 Name sle_afp
Sle_8 Name sle_cts
Sle_9 Name sle_essalud
Sle_10 Name sle_totald
Diseño de la segunda página
28/12/2004
Página 66 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 67/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Crear una función con el nombre : CalcularCódigo de la función.Real haber,afp,cts,essalud,neto,totdhaber=real(tab_trabajador.tabpg_sueldo.sle_haber.text)cts=haber*0.03afp=haber*0.06essalud=haber*0.06totd=cts+afp+essaludneto=haber - totdtab_trabajador.tabpg_sueldo.sle_afp.text=string(afp)tab_trabajador.tabpg_sueldo.sle_cts.text=string(cts)tab_trabajador.tabpg_sueldo.sle_essalud.text=string(essalud)
tab_trabajador.tabpg_sueldo.sle_totald.text=string(totd)tab_trabajador.tabpg_sueldo.sle_neto.text=string(neto)
Código del formulario
w_tabpage / OpenTab_Trabajador.Tabpg_sueldo.Enabled=FalseTab_Trabajador.tabpg_datos.Sle_codigo.Setfocus()
cb_aceptar / Clickedtab_trabajador.tabpg_datos.enabled=Falsetab_trabajador.tabpg_sueldo.enabled=truetab_trabajador.SelectedTab=2
rb_contratado / Clickedztab_trabajador.tabpg_sueldo.sle_haber.text="1500"Calcular();
rb_nombrado / Clickedtab_trabajador.tabpg_sueldo.sle_haber.text="2000"Calcular();
28/12/2004
Página 67 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 68/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Ejecute el formulario, ingrese los datos del trabajador,luego pulse el botón Aceptar para pasar a la siguiente páginay seleccione la condición del trabajador
28/12/2004
Página 68 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 69/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
DISEÑO DE MENUS
MENUS. Para añadir un menú, primero es preciso crearlo y después
asociarlo a la ventana en que va a aparecer. Esta asociación se
realiza desde el Window Painter.
Ejemplo
Diseñar un menú con las siguientes características.
Alumnos
Registro de nuevos alumnos Alt + RMatricula de alumnos Alt + MConsulta por sección Alt + C
Cursos
Registro de nuevos cursosActualización Alt + A
ProfesoresRegistro de nuevos profesores Alt + PActualización de datos
SalirSalir de la Aplicación
Solución
Seleccione el icono New del PowerBar1.
Dentro de la ventana New seleccionar la ficha Objects y
dentro esta seleccionar el objeto Menu
Seguidamente se activará la siguiente ventana.
28/12/2004
Página 69 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 70/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
WYSIWYG Menu View
(Presentación preliminar del menú) Tree Menu View
(Estructura del menú)
Propiedades
Ventana de Código
Seleccione untitled0 del TREE VIEW, realice un click con el
botón contrario y seleccione la opción Insert Sibmenu Item
Luego ingrese el título para la primera opción (en este caso
escriba &Alumnos)
28/12/2004
Página 70 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 71/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Seleccione la opción &Alumnos y realice un click con el botón
contrario, en la ventana que se despliega seleccione la opción
Insert Submenu Item .
Escriba el título para el nuevo submenú (Escriba:
&Registro de nuevos alumnos).
Para activar el acceso con Alt + R a la opción Registro
de nuevos alumnos , en la ventana de propiedades busque laopción Shortcut Key y dentro de esta seleccione la letra R , y
active el check de Shortcut Alt
Para crear el siguiente elemento de Alumnos. Seleccione
&Alumnos del Tree View, realice un click con el botón
contrario, en la ventana que se despliega seleccione la opción
Insert Submenu Item .
Escriba el título para el nuevo item. (&Matricula de alumnos).
28/12/2004
Página 71 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 72/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Para activar el acceso con Alt + M a la opción Matricula
de alumnos , en la ventana de propiedades busque la opción
Shortcut Key y dentro de esta seleccione la letra M , y active
el check de Shortcut Alt
Para crear la opción Consulta por sección, siga elmismo procedimiento que utilizó para crear : Matricula de
alumnos.
Para crear la opción &Cursos, seleccione untitled0 de la
ventana de TREE VIEW.
Realice un click con el botón contrario y seleccione la
opción Insert Submenu Item.
Escriba el título para la nueva opción (en este caso :
&Cursos)
28/12/2004
Página 72 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 73/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Para crear los sub menus de Cursos, siga los mismos
procedimientos realizados para los sub menús anteriores.
Al final el diseño del menú tendrá que quedar de la siguiente
manera.
Grabe el menú con el nombre : m_principal.
ENLAZAR UN MENÚ A UNA VENTANA
Abra una nueva ventana (Window).
En la ventana de propiedades seleccione la opción
MenuName, Realice un click sobre el botón
.
En la ventana que se activa seleccione el menú que desea
asociar a la ventana (En este caso seleccione m_principal).
Grabe la ventana con el nombre w_principal y cierre,
ejecute la ventana.
28/12/2004
Página 73 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 74/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
ESCRIBIR EL CODIGO DE UN MENU
Abra el menú que se ha creado anteriormente ( m_principal).
Seleccione la opción dentro del menú al cual desea asociar el
código.
Realice un click con el botón secundario y seleccione la
opción Script.
En la venta de código escriba la ventana o acción que
desee que realice el menú. (en este caso escriba Open
(Nombre_Ventana)
El código de la opción cerrar es: Close(w_principal)
De la misma manera escriba los códigos de las demás
opciones de menú.
Grabe el menú y cierre. Ejecute la ventana w_principal.
CREAR UNA BARRA DE HERRAMIENTAS
Para crear una barra de herramientas, es necesario que la ventana
en donde se va a insertar la barra de herramientas sea del tipo
MDI ( Multiple Document Interface)
Para nuestro ejemplo utilizaremos el menú que se ha creado
anteriormente.
Abra el objeto menú que se ha creado anteriormente
( m_principal)
28/12/2004
Página 74 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 75/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Seleccione el elemento de menú al cual desea asociar un icono
de la barra de herramientas (en este caso seleccione Registro
de nuevos alumnos).
En la ventan de propiedades seleccione active la ficha
Toolbar, y en la opción ToolbarItemText (Texto del elemento
de la barra de herramientas), escriba el texto que se desea
mostrar al momento de ubicar el mouse sobre dicho icono ( en
este caso escriba : Registro de nuevos alumnos) En la opción ToolbarItemName, seleccione el icono que desea
mostrar en la barra de barra de herramientas.
En la opción ToolbarItemDownName (es opcional), seleccione el
icono que desea mostrar cuando se pulsa sobre este en la barra
de herramientas.
28/12/2004
Página 75 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 76/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
El diseño tendrá que quedar de la siguiente manera.
Nota: No es necesario crear el código para la barra de
herramientas, esto se debe a que se los iconos de la barra de
herramientas, se encentran enlazados a las opciones de menú.
Para crear los otros iconos de la barra de herramientas, siga
los mismos procedimientos anteriores.
Para cambiar el tipo de ventana a mdi, realice lo siguiente:
Barra de Herramientas que se
ha creado
Abra la ventana que desea modificar.
En la ventana de propiedades, busque la opción Window Type, y
seleccione la opción Mdi!
Ejecute la ventana para ver el resultado.
28/12/2004
Página 76 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 77/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Si desea que todas la ventanas que se abran desde la barra de menú, se activen dentro de la ventana principal, tendrá que
cambiar la propiedad WindowType, de las otras ventanas a Child!.
Este es un ejemplo de una ventana tipo child!.
La ventana que se activa, solo podrá moverse dentro de la
ventana principal.
28/12/2004
Página 77 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 78/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Lenguaje SQL (Structured Query Language)
Qué es SQL
Structured Query Language, lenguaje estándar de comunicación conbases de datos. Hablamos por tanto de un lenguaje normalizado quenos permite trabajar con cualquier tipo de lenguaje (ASP o PHP) encombinación con cualquier tipo de base de datos (MS Access, SQLServer, MySQL...).
El hecho de que sea estándar no quiere decir que sea idéntico paracada base de datos. En efecto, determinadas bases de datosimplementan funciones específicas que no tienen necesariamente quefuncionar en otras.
Aparte de esta universalidad, el SQL posee otras dos
características muy apreciadas. Por una parte, presenta unapotencia y versatilidad notables que contrasta, por otra, con suaccesibilidad de aprendizaje.
28/12/2004
Página 78 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 79/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Tipos de campo
Como sabemos una base de datos esta compuesta de tablas dondealmacenamos registros catalogados en función de distintos campos(características).
Un aspecto previo a considerar es la naturaleza de los valores queintroducimos en esos campos. Dado que una base de datos trabajacon todo tipo de informaciones, es importante especificarle quétipo de valor le estamos introduciendo de manera a, por un lado,facilitar la búsqueda posteriormente y por otro, optimizar losrecursos de memoria.
Cada base de datos introduce tipos de valores de campo que nonecesariamente están presentes en otras. Sin embargo, existe unconjunto de tipos que están representados en la totalidad de estasbases. Estos tipos comunes son los siguientes:
AlfanuméricosContienen cifras y letras. Presentan unalongitud limitada (255 caracteres)
NuméricosExisten de varios tipos, principalmente, enteros(sin decimales) y reales (con decimales).
Booleanos Poseen dos formas: Verdadero y falso (Sí o No)
Fechas
Almacenan fechas facilitando posteriormente suexplotación. Almacenar fechas de esta formaposibilita ordenar los registros por fechas ocalcular los días entre una fecha y otra...
Memos
Son campos alfanuméricos de longitud ilimitada.
Presentan el inconveniente de no poder serindexados (veremos más adelante lo que estoquiere decir).
Autoincrementables
Son campos numéricos enteros que incrementan enuna unidad su valor para cada registroincorporado. Su utilidad resulta más queevidente: Servir de identificador ya queresultan exclusivos de un registro.
28/12/2004
Página 79 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 80/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Añadir un nuevo registro
Los registros pueden ser introducidos a partir de sentencias queemplean la instrucción Insert.
La sintaxis utilizada es la siguiente:
Insert Into nombre_tabla (nombre_campo1, nombre_campo2,...)Values (valor_campo1, valor_campo2...).
Un ejemplo sencillo a partir de nuestra tabla modelo es laintroducción de un nuevo cliente lo cual se haría con unainstrucción de este tipo:
Insert Into clientes (nombre, apellidos, direccion, poblacion,codigopostal, email, pedidos)Values ('Perico', 'Palotes', 'Percebe n°13', 'Lepe', '123456','[email protected]', 33)
Como puede verse, los campos no numéricos o booleanos vandelimitados por apóstrofes: '. También resulta interesante ver queel código postal lo hemos guardado como un campo no numérico. Estoes debido a que en determinados paises (Inglaterra,como no) loscódigos postales contienen también letras.
Nota: Si deseamos practicar con una base de datos que estávacía primero debemos crear las tablas que vamos a llenar. Lastablas también se crean con sentencias SQL
Por supuesto, no es imprescindible rellenar todos los campos del
registro. Eso sí, puede ser que determinados campos seannecesarios. Estos campos necesarios pueden ser definidos cuandoconstruimos nuestra tabla mediante la base de datos.
Nota: Si no insertamos uno de los campos en la base de datos seinicializará con el valor por defecto que hayamos definido a lahora de crear la tabla. Si no hay valor por defecto,probablemente se inicialice como NULL (vacío), en caso de queeste campo permita valores nulos. Si ese campo no permitevalores nulos (eso se define también al crear la tabla) lo másseguro es que la ejecución de la sentencia SQL nos de un error.
Resulta muy interesante, ya veremos más adelante el por qué, elintroducir durante la creación de nuestra tabla un campoautoincrementable que nos permita asignar un único número a cadauno de los registros. De este modo, nuestra tabla clientespresentaría para cada registro un número exclusivo del cliente elcual nos será muy útil cuando consultemos varias tablassimultáneamente.
28/12/2004
Página 80 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 81/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Borrar un registro
Para borrar un registro nos servimos de la instrucción Delete. Eneste caso debemos especificar cual o cuales son los registros quequeremos borrar. Es por ello necesario establecer una selecciónque se llevara a cabo mediante la cláusula Where.
La forma de seleccionar se verá detalladamente en capítulosposteriores. Por ahora nos contentaremos de mostrar cuál es eltipo de sintaxis utilizado para efectuar estas supresiones:
Delete From nombre_tablaWhere condiciones_de_selección
Nota: Si deseamos practicar con una base de datos que estávacía primero debemos crear las tablas que vamos a llenar. Lastablas también se crean con sentencias SQL.
Si queremos por ejemplo borrar todos los registros de los clientesque se llamen Perico lo haríamos del siguiente modo:
Delete From clientes Where nombre='Perico'
Hay que tener cuidado con esta instrucción ya que si noespecificamos una condición con Where, lo que estamos haciendo es
borrar toda la tabla:
Delete From clientes
28/12/2004
Página 81 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 82/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Actualizar un registro
Update es la instrucción que nos sirve para modificar nuestrosregistros. Como para el caso de Delete, necesitamos especificarpor medio de Where cuáles son los registros en los que queremoshacer efectivas nuestras modificaciones. Además, obviamente,
tendremos que especificar cuáles son los nuevos valores de loscampos que deseamos actualizar. La sintaxis es de este tipo:
Update nombre_tabla Set nombre_campo1 = valor_campo1,nombre_campo2 = valor_campo2,... Where condiciones_de_selección
Un ejemplo aplicado:
Update clientes Set nombre='José' Where nombre='Pepe'
Mediante esta sentencia cambiamos el nombre Pepe por el de José entodos los registros cuyo nombre sea Pepe.
Aquí también hay que ser cuidadoso de no olvidarse de usar Where,de lo contrario, modificaríamos todos los registros de nuestratabla.
28/12/2004
Página 82 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 83/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Selección de tablas
La selección total o parcial de una tabla se lleva a cabo mediantela instrucción Select. En dicha selección hay que especificar:
-Los campos que queremos seleccionar
-La tabla en la que hacemos la selección
En nuestra tabla modelo de clientes podríamos hacer por ejemplouna selección del nombre y dirección de los clientes con unainstrucción de este tipo:
Select nombre, dirección From clientes
Si quisiéramos seleccionar todos los campos, es decir, toda latabla, podríamos utilizar el comodín * del siguiente modo:
Select * From clientes
Resulta también muy útil el filtrar los registros mediantecondiciones que vienen expresadas después de la cláusula Where. Siquisiésemos mostrar los clientes de una determinada ciudadusaríamos una expresión como esta:
Select * From clientes Where poblacion Like 'Madrid'
Además, podríamos ordenar los resultados en función de uno ovarios de sus campos. Para este ultimo ejemplo los podríamosordenar por nombre así:
Select * From clientes Where poblacion Like 'Madrid' Order Bynombre
Teniendo en cuenta que puede haber más de un cliente con el mismonombre, podríamos dar un segundo criterio que podría ser elapellido:
Select * From clientes Where poblacion Like 'Madrid' Order Bynombre, apellido
Si invirtiésemos el orden « nombre,apellido » por « apellido,nombre », el resultado sería distinto. Tendríamos los clientes
ordenados por apellido y aquellos que tuviesen apellidos idénticosse subclasificarían por el nombre.
Es posible también clasificar por orden inverso. Si por ejemploquisiésemos ver nuestros clientes por orden de pedidos realizadosteniendo a los mayores en primer lugar escribiríamos algo así:
Select * From clientes Order By pedidos Desc
28/12/2004
Página 83 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 84/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Una opción interesante es la de efectuar selecciones sincoincidencia. Si por ejemplo buscásemos el saber en qué ciudadesse encuentran nuestros clientes sin necesidad de que para elloaparezca varias veces la misma ciudad usaríamos una sentencia deesta clase:
Select Distinct poblacion From clientes Order By poblacion
Así evitaríamos ver repetido Madrid tantas veces como clientestengamos en esa población.
Hemos querido compilar a modo de tabla ciertos operadores quepueden resultar útiles en determinados casos. Estos operadoresserán utilizados después de la cláusula Where y pueden sercombinados hábilmente mediante paréntesis para optimizar nuestraselección a muy altos niveles.
Operadores matemáticos:> Mayor que< Menor que>= Mayor o igual que<= Menor o igual que<> Distinto= Igual
Operadores lógicosAndOrNot
Otros operadores
LikeSelecciona los registros cuyo valor de campo se asemeje,no teniendo en cuenta mayúsculas y minúsculas.
In y Not InDa un conjunto de valores para un campo para los cualesla condición de selección es (o no) valida
Is Null yIs Not Null
Selecciona aquellos registros donde el campoespecificado esta (o no) vacío.
Between...And
Selecciona los registros comprendidos en un intervalo
Distinct Selecciona los registros no coincidentesDesc Clasifica los registros por orden inverso
Comodines* Sustituye a todos los campos% Sustituye a cualquier cosa o nada dentro de una cadena
_ Sustituye un solo carácter dentro de una cadena
Veamos a continuación aplicaciones practicas de estos operadores.
28/12/2004
Página 84 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 85/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
En esta sentencia seleccionamos todos los clientes de Madrid cuyonombre no es Pepe. Como puede verse, empleamos Like en lugar de = simplemente para evitar inconvenientes debido al empleo o no demayúsculas.
Select * From clientes Where poblacion Like 'madrid' And Not nombre Like 'Pepe'
Si quisiéramos recoger en una selección a los clientes de nuestratabla cuyo apellido comienza por A y cuyo número de pedidos estacomprendido entre 20 y 40:
Select * From clientes Where apellidos like 'A%' And pedidosBetween 20 And 40
El operador In, lo veremos más adelante, es muy práctico para
consultas en varias tablas. Para casos en una sola tabla esempleado del siguiente modo:
Select * From clientes Where poblacion In('Madrid','Barcelona','Valencia')
De esta forma seleccionamos aquellos clientes que vivan en esastres ciudades.
Una base de datos puede ser considerada como un conjunto detablas. Estas tablas en muchos casos están relacionadas entreellas y se complementan unas con otras.
Refiriéndonos a nuestro clásico ejemplo de una base de datos parauna aplicación comercial, la tabla clientes de la que hemos estadohablando puede estar perfectamente coordinada con una tabla dondealmacenamos los pedidos realizados por cada cliente. Esta tabla depedidos puede a su vez estar conectada con una tabla dondealmacenamos los datos correspondientes a cada artículo delinventario.
De este modo podríamos fácilmente obtener informaciones contenidasen esas tres tablas como puede ser la designación del artículo máspopular en una determinada región donde la designación delartículo sería obtenida de la tabla de artículos, la popularidad
(cantidad de veces que ese artículo ha sido vendido) vendría de latabla de pedidos y la región estaría comprendida obviamente en latabla clientes.
Este tipo de organización basada en múltiples tablas conectadasnos permite trabajar con tablas mucho más manejables a la vez quenos evita copiar el mismo campo en varios sitios ya que podemos
28/12/2004
Página 85 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 86/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
acceder a él a partir de una simple llamada a la tabla que locontiene.
En este capítulo veremos como, sirviéndonos de lo aprendido hastaahora, podemos realizar fácilmente selecciones sobre varias
tablas. Definamos antes de nada las diferentes tablas y campos quevamos a utilizar en nuestros ejemplos:
Tabla de clientes Nombre campo Tipo campoid_cliente Numérico enteronombre Textoapellidos Textodireccion Textopoblacion Textocodigopostal Textotelefono Numérico entero
email Texto
Tabla de pedidos Nombre campo Tipo campoid_pedido Numérico enteroid_cliente Numérico enteroid_articulo Numérico enterofecha Fechacantidad Numérico entero
Tabla de artículos Nombre campo Tipo campoid_articulo Numérico enterotitulo Alfanuméricoautor Alfanuméricoeditorial Alfanuméricoprecio Numérico real
Estas tablas pueden ser utilizadas simultáneamente para extraerinformaciones de todo tipo. Supongamos que queremos enviar unmailing a todos aquellos que hayan realizado un pedido ese mismo
día. Podríamos escribir algo así:
Select clientes.apellidos, clientes.email From clientes,pedidos Where pedidos.fecha like '25/02/00' And pedidos.id_cliente=clientes.id_cliente
Como puede verse esta vez, después de la cláusula From,introducimos el nombre de las dos tablas de donde sacamos las
28/12/2004
Página 86 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 87/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
informaciones. Además, el nombre de cada campo va precedido de latabla de provenencia separados ambos por un punto. En los camposque poseen un nombre que solo aparece en una de las tablas, no esnecesario especificar su origen aunque a la hora de leer lasentencia puede resultar más claro el precisarlo. En este caso el
campo fecha podría haber sido designado como "fecha" en lugar de"pedidos.fecha".
Veamos otro ejemplo más para consolidar estos nuevos conceptos.Esta vez queremos ver el título del libro correspondiente a cadauno de los pedidos realizados:
Select pedidos.id_pedido, articulos.titulo From pedidos, articulos Where pedidos.id_articulo=articulos.id_articulo
En realidad la filosofía continua siendo la misma que para laconsulta de una única tabla.
Además de los criterios hasta ahora explicados para realizar lasconsultas en tablas, SQL permite también aplicar un conjunto defunciones predefinidas. Estas funciones, aunque básicas, puedenayudarnos en algunos momentos a expresar nuestra selección de unamanera más simple sin tener que recurrir a operaciones adicionalespor parte del script que estemos ejecutando.
Algunas de estas funciones son representadas en la tablasiguiente:
Función Descripción
Sum(campo) Calcula la suma de los registros del campo especificadoAvg(Campo) Calcula la media de los registros del campo especificado
Count(*)Nos proporciona el valor del numero de registros que hansido seleccionados
Max(Campo) Nos indica cual es el valor máximo del campoMin(Campo) Nos indica cual es el valor mínimo del campo
Dado que el campo de la función no existe en la base de datos,sino que lo estamos generando virtualmente, esto puede crearinconvenientes cuando estamos trabajando con nuestros scripts a lahora de tratar su valor y su nombre de campo. Es por ello que el
valor de la función ha de ser recuperada a partir de un alias quenosotros especificaremos en la sentencia SQL a partir de lainstrucción AS. La cosa podría quedar así:
Select Sum(total) As suma_pedidos From pedidos
A partir de esta sentencia calculamos la suma de los valores detodos los pedidos realizados y almacenamos ese valor en un campo
28/12/2004
Página 87 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 88/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
virtual llamado suma_pedidos que podrá ser utilizado comocualquier otro campo por nuestras paginas dinámicas.
Por supuesto, todo lo visto hasta ahora puede ser aplicado en estetipo de funciones de modo que, por ejemplo, podemos establecer
condiciones con la cláusula Where construyendo sentencias comoesta:
Select Sum(cantidad) as suma_articulosFrom pedidos
Where id_articulo=6
Esto nos proporcionaría la cantidad de ejemplares de undeterminado libro que han sido vendidos.
Otra propiedad interesante de estas funciones es que permitenrealizar operaciones con varios campos dentro de un mismo
paréntesis:
Select Avg(total/cantidad)From pedidos
Esta sentencia da como resultado el precio medio al que se estánvendiendo los libros. Este resultado no tiene por qué coincidircon el del precio medio de los libros presentes en el inventario,ya que, puede ser que la gente tenga tendencia a comprar loslibros caros o los baratos:
Select Avg(precio) as precio_ventaFrom articulos
Una cláusula interesante en el uso de funciones es Group By. Estacláusula nos permite agrupar registros a los cuales vamos aaplicar la función. Podemos por ejemplo calcular el dinero gastado
por cada cliente:
Select id_cliente, Sum(total) as suma_pedidosFrom pedidosGroup By id_cliente
O saber el numero de pedidos que han realizado:
Select id_cliente, Count(*) as numero_pedidosFrom pedidosGroup By id_cliente
Las posibilidades como vemos son numerosas y pueden resultarprácticas. Todo queda ahora a disposición de nuestras ocurrenciase imaginación.
28/12/2004
Página 88 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 89/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Optimizar prestaciones
Las bases de datos (BD) cuanto más extensas requieren una mayoratención a la hora de organizar sus contenidos. Cuando se trabajacon tablas de miles o decenas de miles de registros la búsqueda deun determinado dato puede resultar un proceso largo que ralentiza
enormemente la creación de nuestra página.
Es por ello importante tener en cuenta una serie de aspectosindispensables para el mejor funcionamiento de la base.
Gestión y elección de los índices
Los índices son campos elegidos arbitrariamente por el constructorde la BD que permiten la búsqueda a partir de dicho campo a unavelocidad notablemente superior. Sin embargo, esta ventaja se vecontrarrestada por el hecho de ocupar mucha más memoria (el doblemás o menos) y de requerir para su inserción y actualización un
tiempo de proceso superior.
Evidentemente, no podemos indexar todos los campos de una tablaextensa ya que doblamos el tamaño de la BD. Igualmente, tampocosirve de mucho el indexar todos los campos en una tabla pequeña yaque las selecciones pueden efectuarse rápidamente de todos modos.
Un caso en el que los índices pueden resultar muy útiles es cuandorealizamos peticiones simultáneas sobre varias tablas. En estecaso, el proceso de selección puede acelerarse sensiblemente siindexamos los campos que sirven de nexo entre las dos tablas. Enel ejemplo de nuestra librería virtual estos campos serían
id_cliente e id_articulo.
Los índices pueden resultar contraproducentes si los introducimossobre campos triviales a partir de los cuales no se realiza ningúntipo de petición ya que, además del problema de memoria yamencionado, estamos ralentizando otras tareas de la base de datoscomo son la edición, inserción y borrado. Es por ello que vale lapena pensar dos veces antes de indexar un campo que no sirve decriterio para búsquedas y que es usado con muy poca frecuencia porrazones de mantenimiento.
Gestión de los nexos entre tablas
El enlace entre tablas es uno de los puntos más peliagudos y quepuede llevar a la absoluta ralentización de la base de datos acausa "pequeños" detalles que resultan ser fatales.
Imaginemos que trabajamos con una pequeña BD constituida por dostablas de 1000 registros cada una. Imaginemos ahora una selecciónsimultánea en la que imponemos la condición de que el valor un
28/12/2004
Página 89 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 90/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
campo de la primera sea igual a de una segunda, algo que serealiza con mucha frecuencia. En este tipo de casos, la BD leerá ycomparará cada valor de campo de una con cada valor de campo de laotra. Esto representaría un millón de lecturas. Este hecho podríaagravarse si consultamos una tercera tabla al mismo tiempo y
podría llegar a ser catastrófico si tenemos en cuenta que la BDesta siendo consultada por varios usuarios al mismo tiempo.
Para evitar situaciones de colapso, es necesario indexar cada unode los campos que sirven de enlace entre esas tablas. En elejemplo de nuestra librería virtual, ya lo hemos dicho, estoscampos serían id_cliente e id_articulo. Además, resulta también devital importancia el definir esos campos de una formaestrictamente idéntica en cada una de las tablas, es decir, elcampo ha de ser de la misma naturaleza y características. No valedefinirlo como real en una tabla y entero en otra o cambiar lalongitud máxima para los alfanuméricos o que en una tabla sea de
longitud constante y en otra variable...
28/12/2004
Página 90 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 91/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Algunos trucos prácticos
Eliminar palabras cortas y repeticiones
En situaciones en la que nuestra base de datos tiene que almacenarcampos de texto extremadamente largos y dichos campos son
requeridos para realizar selecciones del tipo LIKE '%algo%', losrecursos de la BD pueden verse sensiblemente mermados. Una formade ayudar a gestionar este tipo búsquedas es incluyendo un campoadicional.
Este campo adicional puede ser creado automáticamente por medio descripts y en él incluiríamos el texto original, del cual habremoseliminado palabras triviales como artículos, preposiciones oposesivos. Nos encargaremos además de eliminar las palabras queestén repetidas. De esta forma podremos disminuir sensiblemente eltamaño del campo que va a ser realmente consultado.
Hemos comentado en otros capítulos que los campos texto de mas de255 caracteres denominados memo no pueden ser indexados. Si aúndespués de esta primera filtración nuestro campo continua siendodemasiado largo para ser indexado, lo que se puede hacer escortarlo en trozos de 255 caracteres de manera a que loalmacenemos en distintos campos que podrán ser indexados y portanto consultados con mayor rapidez.
28/12/2004
Página 91 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 92/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Creación de tablas
En general, la mayoría de las bases de datos poseen potenteseditores de bases que permiten la creación rápida y sencilla decualquier tipo de tabla con cualquier tipo de formato.
Sin embargo, una vez la base de datos está alojada en el servidor,puede darse el caso de que queramos introducir una nueva tabla yasea con carácter temporal o bien permanente por necesidadesconcretas de nuestra aplicación.
Este tipo de sentencias son especialmente útiles para bases dedatos como Mysql, las cuales trabajan directamente con comandosSQL y no por medio de editores.
Para crear una tabla debemos especificar diversos datos: El nombreque le queremos asignar, los nombres de los campos y suscaracterísticas. Además, puede ser necesario especificar cuáles de
estos campos van a ser índices y de qué tipo van a serlo.
La sintaxis de creación puede variar ligeramente de una base dedatos a otra ya que los tipos de campo aceptados no estáncompletamente estandarizados.
A continuación os explicamos someramente la sintaxis de estasentencia y os proponemos una serie de ejemplos prácticos:
Sintaxis
Create Table nombre_tabla
(nombre_campo_1 tipo_1,nombre_campo_2 tipo_2,nombre_campo_n tipo_n,Key(campo_x,...))
Pongamos ahora como ejemplo la creación de la tabla pedidos quehemos empleado:
Create Table pedidos(
id_pedido INT(4) NOT NULL AUTO_INCREMENT,id_cliente INT(4) NOT NULL,id_articulo INT(4)NOT NULL,fecha DATE,cantidad INT(4),total INT(4), KEY(id_pedido,id_cliente,id_articulo))
28/12/2004
Página 92 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 93/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
En este caso creamos los campos id los cuales son considerados detipo entero de una longitud especificada por el número entreparéntesis. Para id_pedido requerimos que dicho campo seincremente automáticamente (AUTO_INCREMENT) de una unidad a cadaintroducción de un nuevo registro para, de esta forma, automatizar
su creación. Por otra parte, para evitar un mensaje de error, esnecesario requerir que los campos que van a ser definidos comoíndices no puedan ser nulos (NOT NULL).
El campo fecha es almacenado con formato de fecha (DATE) parapermitir su correcta explotación a partir de las funcionesprevistas a tal efecto.
Finalmente, definimos los índices enumerándolos entre paréntesisprecedidos de la palabra KEY o INDEX.Del mismo modo podríamos crear la tabla de artículos con unasentencia como ésta:
Create Table articulos(id_articulo INT(4) NOT NULL AUTO_INCREMENT,titulo VARCHAR(50),autor VARCHAR(25),editorial VARCHAR(25),precio REAL,KEY(id_articulo))
En este caso puede verse que los campos alfanuméricos sonintroducidos de la misma forma que los numéricos. Volvemos arecordar que en tablas que tienen campos comunes es de vitalimportancia definir estos campos de la misma forma para el buenfuncionamiento de la base.
Muchas son las opciones que se ofrecen al generar tablas. No vamosa tratarlas detalladamente pues sale de lo estrictamente práctico.Tan sólo mostraremos algunos de los tipos de campos que pueden serempleados en la creación de tablas con sus características:
Tipo Bytes Descripción
INT o INTEGER 4Números enteros. Existen otros tipos demayor o menor longitud específicos de
cada base de datos.
DOUBLE o REAL 8Números reales (grandes y con decimales).Permiten almacenar todo tipo de número noentero.
CHAR 1/caracterAlfanuméricos de longitud fijapredefinido
VARCHAR 1/caracter+1 Alfanuméricos de longitud variableDATE 3 Fechas, existen multiples formatos
28/12/2004
Página 93 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 94/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
específicos de cada base de datosBLOB 1/caracter+2 Grandes textos no indexables
BIT o BOOLEAN 1Almacenan un bit de información(verdadero o falso)
28/12/2004
Página 94 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 95/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Funciones para búsquedas con fechas
Función DateDiff()
Al final, la respuesta que propusimos pasó por utilizar la funciónDateDiff, que sirve para obtener la diferencia entre dos fechas.Por ejemplo:
DateDiff("y", #06/10/2004#, Now())
Nos dice los días que han pasado desde el seis de octubre de 2004.
Nosotros podemos utilizarla como condición en un where de unasentencia SQL. Por ejemplo, para una sentencia como esta:
DateDiff("y",A,B)
• Si son iguales, la función devolverá cero.
• Si A es una fecha anterior a B, entonces la función devolveráun número de días que será mayor que cero.
• Si A es una fecha posterior a B, entonces devolverá un númerode días que será menor que cero.
Tenemos que comparar el día de hoy con las fechas desde y hasta.Hoy tiene que ser mayor que desde y menor que hasta. Nos quedacomo resultado esta sentencia.
SELECT * FROM vuelos WHEREDateDiff('y',fechadesde,now())>=0and DateDiff('y',fechahasta,nom())<=0
Nota: Hay que tener cuidado con el idioma de las fechas, puesen castellano se escriben de manera distinta que en inglés.
Función DatePart
Sirve para extraer parte de una fecha. Recibe dos parámetros, elprimero indica mediante un string la parte a obtener. El otroparámetro es la fecha con la que se desea trabajar.
DatePart("m",fecha)
En este caso se está indicando que se desea obtener el mes delaño. Otro valor posible para el primer parámetro es, por ejemplo"yyyy", que se utiliza para obtener el año con cuatro dígitos. Unejemplo de sentencia SQL que utiliza esta función puede ser lasiguiente:
SELECT DatePart("yyyy",validezdesde) FROM vuelos
28/12/2004
Página 95 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 96/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Función DateAdd
Esta última función que vamos a ver en el presente artículo sirvepara añadir a la fecha, algo como días, meses o años. Para ello la
función recibe tres parámetros, el primero corresponde con unstring para indicar las unidades de lo que deseamos añadir, porejemplo, días, meses o años. El segundo parámetro es el número dedías meses o años a adicionar y el tercer parámetro es la fecha ala que sumar esos valores. Vemos un ejemplo de su sintaxis:
DateAdd("yyyy",10,validezdesde)
En este ejemplo la función DateAdd devolvería una fecha diez añosposterior a validezdesde. Otros valores para el string del primerparámetro son "d", para añadir días, o "m", para añadir meses.
Un ejemplo del funcionamiento de esta función en una sentencia SQLes el siguiente:
SELECT DateAdd("yyyy",10,validezdesde) FROM vuelos
28/12/2004
Página 96 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 97/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
UNIVERSIDAD DEL BÍO-BÍO VICE-RECTORIA DE ASUNTOS ECONÓMICOS
DIRECCIÓN DE INFORMÁTICA
Plataforma integrada de Sistemas de GestiónUniversitaria
ANEXO
CÁLCULO PUNTOS DE FUNCIÓN
28/12/2004
Página 97 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 98/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
CÁLCULO PUNTOS DE FUNCIÓN
ENTRADAS / CONSULTAS
Cantidad de Datos de EntradasElementosde Estructura de
Datos0-5 5-15 más de 15
0-1 S S M2 S M C
Más de 3 M C C
SALIDAS
Cantidad de Datos en SalidaElementosde Estructura de
Datos0-5 5-19 más de 20
0-1 S S M2-3 S M C
Más de 4 M C C
INTERFACES/ESTRUCTURAS
Cantidad de Datos en SalidaCantidad deOcurrencias Lógicas 0-5 5-19 más de 20
0-1 S S M2-5 S M C
Más de 6 M C C
28/12/2004
Página 98 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 99/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
PUNTOS DE FUNCIÓN NO AJUSTADOS
ComplejidadÍtemsSimple Mediano Complejo
Entradas 3 4 6Salidas 4 5 7Consulta 3 4 6Interfaces 5 7 10Estructuras 7 10 15
PUNTOS DE FUNCIÓN CORREGIDOS
Grados de Influencia
Grados deInfluencia
Presencia del Factor
0 No Presente 0%1 Muy Poco Presente 1% a 20%2 Presencia Moderada 21% a 40%3 Presencia Significativa 41% a 60%4 Presencia Alta 61% a 80%
5 Presencia Muy Alta 81% a 100%
Factores determinantes de los grados de Influencia:
1. Comunicaciones2. Funciones Distribuidas3. Rendimiento4. Uso de Equipos5. Tasa de Transacciones6. Entradas en Línea7. Interfaz de Usuario
8. Actualización en Línea9. Complejidad del Proceso10. Reusabilidad11. Facilidad de Instalación12. Facilidad de Operación13. Múltiples Sitios14. Adaptabilidad
28/12/2004
Página 99 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 100/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
la suma del valor de cada uno de los grados se le denominará GI, y luego se calcula el Factor de Ajuste(FA) como se muestra a continuación:
FA = 1 + (GI – 35)/100
Finalmente se obtienen los puntos de Función Ajustados (PFA) de acuerdo a:
PFA = PFNA * FA
OTROS FACTORES
Productividad Horas DíaAlta 0,6 6
Media 0,4 4
FORMATO PARA RESUMIR LOS PUNTOS
Función Proceso Subprocesos E C S I E Ptos.
Total
28/12/2004
Página 100 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 101/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
UNIVERSIDAD DEL BÍO-BÍO VICE-RECTORIA DE ASUNTOS ECONÓMICOS
DIRECCIÓN DE INFORMÁTICA
Plataforma integrada de Sistemas de GestiónUniversitaria
ANEXO
ESTÁNDARES DE CONSTRUCCIÓN
28/12/2004
Página 101 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 102/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
MODELO DE DATOS
MODELO DE DATOS
El Modelo de Datos se realizará en el power designer, y cada equipo deberá confeccionarlo, y luegodiscutirlo con el equipo corporativo. El nombre de las tablas debe ser en MAYUSCULAS, y losatributos deben tener un prefijo que identifique a la tabla a ala cual pertenece. Los prefijos de lastablas deberán ser consultados a la persona encargada del equipo corporativo.
Los atributos indicadores, deben considerar el siguiente formato:
xxx_ind_glosa_para_valor_verdadero.
Ejemplo:
mae_ind_jubilado
En Este caso, el atributo pertenece a la tabla MAEPER, puesto que MAE es el prefijo de ella. Además es un indicador (dos valores 1/0), y será verdadero (asume valor 1), cuando esjubilado, y será falso, es decir (0), cuando no lo es.
Las tablas en la Base de Datos, serán creadas sólo por el administrador de la Base, y el resto de losobjetos, una vez chequeados por el equipo que lo este desarrollando, debe ser incorporado comoobjeto a la base, es decir, se le debe comunicar al administrador que es un objeto válido, de locontrario, cuando existan entregas a los usuarios, todos estos objetos serán eliminados, de la base.
Objetos como procedimientos almacenados, trigger, vistas deben considerar como mínimo lasiguiente documentación:
Autor:Descripción:Descripción de los argumentos que recibe.Descripción de las salidas que genera.Fecha Creación:
28/12/2004
Página 102 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 103/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
PROGRAMACIÓN POWER BUILDER 7.0
ORGANIZACIÓN DE LIBRERÍAS (PBL)
1. La librería principal debe llevar el nombre del Sistema a realizar, esto es, si se realiza el Sistema
de Cobranzas de Alumnos, la librería principal se deberá llamar Cobra.pbl
2. Se deben crear librerías de acuerdo a las funcionalidades de cada sistema, las cuales deben ser
determinadas por los componentes del equipo.
3. Los nombres de las librerías deben ser representativos de las funciones que se diseñen.
4. Debería existir una librería global para todos los sistemas, en cual sólo existirán funciones
genéricas (paramétricas), útiles a todos los sistemas a desarrollar. Ejemplos de estas son:
Obtener el dígito verificador del Rut, Calcular días entre fechas, etc. Cualquier modificación o
incorporación de funciones deberá ser realizada por la persona encargada del equipo corporativo.
5. Se deben crear librerías globales al sistema, a medida que se requieran, con el mismo nombre de
la librería principal, las cuales contendrán la agrupación de objetos que se utilicen en más de una
librería (globales). Esto es, para el caso del Sistema de Cobranzas de Alumnos lo siguiente:
Librería Tipo agrupado
Cobra_w Ventanas
Cobra_f Funciones
Cobra_m Menús
Cobra_st EstructurasCobra_uo Objetos de Usuario
Cobra_d Data Window
28/12/2004
Página 103 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 104/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
OBJETOS
1. Todos los objetos creados, dentro del ambiente de programación, deben anteponer al comenzar
su nombre, el prefijo del objeto a crear, esto es:
Objectos Nombre
Ventanas w_ingreso
Menu m_ayudantia
Funciones f_buscar
Estructuras str_empresa
Objetos de Usuario uo_asignacion
Data Window d_banco
CommandButton cb_1
PictureButton pb_1
CheckBox cbx_1RadioButton rb_1
StaticText st_1
Picture p_1
GroupBox gb_1
Line ln_1
Oval oval_1
Rectangle r_1
Round Rectangle rr_1
SingleLineEdit sle_1
EditMack em_1
MultiLineEdit mle_1RichTextEdit rte_1
VScrollBar hsb_1
VScrollBar vsb_1
DropDownListBox ddlb_1
DropDownPictureListBox ddplb_1
ListBox lb_1
PictureListBox plb_1
ListView lv_1
TreeView tv_1
TabPage tabpage_1
DataWindow dw_1
Graph gr_1
OleControl ole_1
28/12/2004
Página 104 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 105/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
VARIABLES
1. Dependiendo del alcance de variable que se definan, todas deben comenzar con los siguientes
prefijos:
Variables (alcance) Nombre
Global g_nom_variableShared s_ nom_variable
Instancia i_ nom_variable
Scrip s_ nom_variable
2. Dependiendo del tipo de variable que se definan, todas deben comenzar con los siguientes
prefijos:
Variables (tipo) Nombre
String s_ nom_variable
Integer i_ nom_variable
Char c_nom_variable
Real r_ nom_variableDecimal de_ nom_variable
Time t_ nom_variable
Datetime dt_ nom_variable
Date d_ nom_variable
Transaction tr_ nom_variable
Long l_ nom_variableBoolean b_ nom_variable
Double db_ nom_variable
Unsignedlong ul_ unsignedlong
Unsignedinteger ui_ unsignedlong
28/12/2004
Página 105 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 106/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
3. Al definir una variable, entonces, se debe combinar el alcance y el tipo de la variable a definir,
utilizando los cuadros anteriores. Ejemplos:
Variable Tipo NombreGlobal Integer gi_nom_variableShared Date sd_ nom_variableInstance Decimal id_ nom_variableScrip Datetime sdt_ nom_variable
4. Se pueden definir constantes utilizando los prefijos ya mencionados, de la misma forma que las
variables, pero se les debe anteponer el prefijo c al prefijo que le corresponde ya descrito,
ejemplo:
Constante Tipo Nombre
Global Integer cgi_nom_constante
Shared Date Csd_nom_constante
Instance Decimal cid_nom_constante
Scrip Datetime Csdt_nom_constante
ARCHIVO INI
1. Se debe crear un archivo con el nombre del Sistema para la obtención de los parámetros
ServerName, BaseDatos. (nombre del servidor y nombre de Base de datos). Esto es,
ACUARIO.INI.
28/12/2004
Página 106 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 107/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
MATRIZ DE DATOS
1. Para todas los objetos DataWindow definidos como globales, es necesario controlar a que objeto
Window esta relacionado, con el fin de identificar claramente en algún instante que se quieramodificar, que implicaría esta acción. Una forma de organizarlo seria la siguiente:
Ventana DataWindow 1 DataWindow n
dw_usuario_perfil ........
W_ingreso X
W_consultar X
W_modificar x
W_cambiar_perfil x
.........
.........
MANEJO MENSAJES DE ERROR
1. Se deben definir las siguientes Constantes globales, para ser utilizadas en el control de errores en
la instrucción messagebox:
messagebox (Titulo del mensaje, Descripción del mensaje)
Constantes Titulo Mensaje Significadocgs_Informacion Información
Cgs_confirmacion Confirmación
cgs_ Mensaje Mensaje
Cgs_error_base Error en la Base de Datos
cgs_Atencion Atención
28/12/2004
Página 107 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 108/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
2. Para utilizar los mensajes de error con Bases de Datos, se debe seleccionar una constante para él
titulo del mensaje y se debe asociar el número de error (SQLCA.SQLDbCode) y la descripción
del error (SQLCA.SQLErrText) de la variable de transacción SQLCA. Ejemplo:
messageBox(cgs_Error_Base, "Error Nº " + String(SQLCA.SQLDbCode) + "~n" + "Origen :[w_mantener_contrato, cb_grabar, clicked()] " + "~n~n" + SQLCA.SQLErrText + "~n~n",
Exclamation!)
Donde:
cgs_Error_Base = Constante global de titulo
SQLCA.SQLDbCode= Número de error
Origen = ventana, botón, evento donde ocurre el error.
(objetivo indicar donde y porque ocurre el error)
SQLCA.SQLErrText = Descripción del error
Exclamation! = Signo de exclamación, que se debe utilizar en errores
de Bases de Datos.
28/12/2004
Página 108 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 109/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
BMP
1. Los objetos PictureButton, deben tener asociados los siguientes archivos con extensión BMP:
Accion Enabled DisabledAceptar C:\BMP\SELEC_ENABLED.
BMPc:\bmp\selec_disabled.bmp
Actualizar c:\bmp\modificar.bmp c:\bmp\modificar_disabled.bmp
Aplicar c:\bmp\aplicar.bmp
Aprobar c:\bmp\aprobar_enabled.bmp
c:\bmp\aprobar_disabled.bmp
Autorizar c:\bmp\autorizar.bmp
Buscar c:\bmp\buscar.bmp
Cancelar/Cerrar c:\bmp\cancelar_enabled.
bmp
C:\BMP\CANCELAR_DISABLED.BMP
Enviar c:\bmp\enviar_enabled.b
mp
c:\bmp\enviar_disabled.bmp
Guardar C:\BMP\GUARDAR.BMP c:\bmp\guardar_disabled.bmp
Horario c:\bmp\horario_enabled.b
mp
c:\bmp\horario_disabled.bmp
Imprimir c:\bmp\imprimir_enabled.bmp
c:\bmp\imprimir_disabled.bmp
Logo UBB c:\bmp\logoubb.bmp
Logo Word c:\bmp\logo_word.bmp
Nuevo c:\bmp\nuevo_enabled.bm
p
c:\bmp\nuevo_disabled.bmp
Rechazar c:\bmp\rechazar_enabled.
bmp
c:\bmp\rechazar_disabled.bmp
Salir c:\bmp\salir_sistema.bmp
28/12/2004
Página 109 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 110/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
COMENTARIOS
1. Se debe detallar lo más posible, los comentarios que permite el Power Builder 6.5 en los
diferentes objetos, esto servirá, en una posible modificación, por otra persona, la que nonecesariamente debe conocer lo que realiza el objeto.
CONEXIONES
1. Solo debe existir una conexión hacia la Base de Datos. Cuando sea necesario acceder a otras
bases, sólo debe anteponerse el nombre de la base seguido por dos puntos (..). Si la base se
encuentra en otro servidor, entonces se referencia la ruta desde el servidor, luego un punto, y
luego el nombre de la base. Por ejemplo:
Select * From MERCURIO.FCREDITO2..ALUMNOS
MENÚ
1. En la etapa de desarrollo, se debe crear un menú simple desplegable, con las opciones del
sistema a crear. Una vez implentada toda la funcionalidad se reorganizara la aplicación para
obtener un menú de botones.
FONTS DE LOS OBJETOS
1. El Tipo de letra de los objetos debe ser ARIAL regular de tamaño 8.
2. En general, las ventanas deberían llevar título, para el cual se debe utilizar el tipo de letra
GARAMONT Bold Italic de tamaño 18. Este título se puede omitir cuando la ventana es
pequeña, y su funcionalidad es complemento de otro formulario.
28/12/2004
Página 110 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 111/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
VENTANAS
1. Todas las ventanas deben ser creadas con la propiedad Window Color en BUTTON FACE.
2. El tipo de la ventana, debería ser tipo child, esto permite que cubra toda la ventana sin permitirver la ventana anterior.
3. Ventanas Tipo Son:
Mantenedor de Parámetros:
Para los parámetros simples, el código debería ser generado internamente, y no visible alusuario. Botones tipo son:Nuevo: Que habilita la lista para introducir un nuevo valor.
Actualizar (Cambiar a Grabar): Inserta Registro en la Base de datos, sólo debe habilitarse al
activar el botón Nuevo. No modifica (update) un valor.
Eliminar: Elimina el registro de la base de datos, previa validación con el usuario.
Cerrar: Cierra la Ventana.
28/12/2004
Página 111 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 112/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Consultas /Buscadores
Lo ideal es combinar y presentar la mayor cantidad de filtros posibles y que faciliten labúsqueda al usuario, y ubicarlos un mismo formulario. El usuario deberá construir su
consulta, y está será tan acotada como él lo desee.
Luego estos buscadores, pueden ser reutilizados, así también se optimiza la creación deformularios, y además se logra una mayor familiarización de estos objetos.
En el ejemplo se muestra el formulario para buscar contratos, en este se reunen diversoscriterios de búsqueda. Además el resultado se despliega en un datawuindows, que muestralos registros filtrados. Este formulario es utilizado para ubicar contratos, ya sea paramodificar, crear nueva versión, finiquitar un contrato, actualizar estructuras de rentas, etc.
28/12/2004
Página 112 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 113/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Reportes:
Los formularios de reportes, en lo posible se deberían reunir en un formulario, siempre y cuando
los conceptos se encuentren relacionados.
Además deben permitir la recuperación de la información por rangos de fechas, campus, y
repartición, en caso que corresponda.
Debe incluir un recuadro con la imagen preliminar, del reporte y los siguientes botones:
Desplegar: Recupera la información y la muestra en el reporte
Setup: Permite cambiar la impresora.
Imprimir: Interfaz de impresión que permite seleccionar el numero de hojas a imprimir,
cambiar la orientación, número de copias, etc. Esta función deberá ser incluida en la librería
acuario, como funciones generales.
28/12/2004
Página 113 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 114/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
ESPECIFICACIÓN DE FORMULARIOS
Nombre:W_Nombre del formulario
Imagen del Formulario:La persona que especifique el formulario, debe diseñar el formulario en PowerBuilder, de manerade orientar al programador el formato general que debería tener la ventana. Esto no significa que elprogramador no pueda realizar modificaciones en ella, como optimizar espacios, o re ubicar algúncampo de texto. Lo importante es no perder la visión original.
Objetivo:
En este bloque se debe resumir el (los) objetivo(s) del formulario, es decir, se especifica el “que ”hace, y “ para que ”.
28/12/2004
Página 114 de 115
5/16/2018 Normas Internas Desarrollo.pdf - slidepdf.com
http://slidepdf.com/reader/full/normas-internas-desarrollopdf 115/115
Dirección de Informática
Departamento de Desarrollo Computacional
Documento: Normas Internas desarrollo
Descripción:
Luego de dejar claro que y para que es el formulario, se debe explicar cómo se hará. Es en estebloque donde se especifica la funcionalidad de cada uno de los objetos ubicados en la ventana, y el
porqué se encuentran ahí. Como deben ser utilizados, secuencia en que serán utilizados, y excepciones vinculadas a ellos.
Cuando se ubica un recuadro para un datawindows, es necesario detallar cada una de las columnasque se quiere incluir en el, y junto a esta descripción el almacenamiento desde donde se rescataránlos datos asociados.
Indicar además los datos que serán exigidos como ingreso para el resultado de alguna operación,aquellos que no deben ser editables, y en aquellos casos que harán deshabilitar una opción. Ademásespecificar datos que deben ser recuperados y la instancia en que lo serán.
Luego describir claramente el o los procesos involucrados en el formulario. Qué es lo obligatorio,como se inicia el proceso, que arroja el proceso, etc.
Especificar otros formularios asociados, que resulten de alguna llamada.
Botones
Resumir, a nivel de botones la funcionalidad que representan, esta ya debería estar descrita en elbloque anterior, aquí lo que se busca en un resumen del boton.
Restricciones
Enumerar las restricciones que afectan al formulario para su ejecución.
Tablas asociadas
Dar a conocer las tablas asociadas al formulario, identificando siempre el o los atributos clave conun asterisco, y aquellos que se ven involucrados en la ejecución del formulario. Es necesarioindicar todas las tablas participantes, y las claves de ellas, no así los atributos que posea, estos seincluirán solo en casos que tengan participación en el formulario.
Cada Tabla debe ser descrita con la siguiente estructura:
Nombre Tabla
Atributo Tipo de dato Descripción
Nombre Atributo,acompañar por un (*)cuando corresponda a laclave primaria
Tipo de Dato del Atributo Breve descripción del dato quese almacena. En caso de ser unIndicador, especificar los valoresque puede tomar y los casos.
28/12/2004
Página 115 de 115