115
 UNIVERSIDAD DEL BÍO-BÍO VICE-RECTORIA DE ASUNTOS ECONÓMICOS DIRECCIÓN DE INFORMÁTICA  Plataforma integrada de Sistemas de Gestión Universitaria  ACUARIO NORMAS INTERNAS DE DESARROLLO

Normas Internas Desarrollo.pdf

  • Upload
    hihy77

  • View
    209

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Normas Internas Desarrollo.pdf

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 

Page 2: Normas Internas Desarrollo.pdf

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

Page 3: Normas Internas Desarrollo.pdf

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

Page 4: Normas Internas Desarrollo.pdf

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

Page 5: Normas Internas Desarrollo.pdf

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

Page 6: Normas Internas Desarrollo.pdf

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

Page 7: Normas Internas Desarrollo.pdf

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

Page 8: Normas Internas Desarrollo.pdf

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

Page 9: Normas Internas Desarrollo.pdf

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

Page 10: Normas Internas Desarrollo.pdf

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

Page 11: Normas Internas Desarrollo.pdf

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

Page 12: Normas Internas Desarrollo.pdf

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

Page 13: Normas Internas Desarrollo.pdf

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

Page 14: Normas Internas Desarrollo.pdf

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

Page 15: Normas Internas Desarrollo.pdf

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

Page 16: Normas Internas Desarrollo.pdf

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

Page 17: Normas Internas Desarrollo.pdf

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

Page 18: Normas Internas Desarrollo.pdf

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.

Page 19: Normas Internas Desarrollo.pdf

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

Page 20: Normas Internas Desarrollo.pdf

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

Page 21: Normas Internas Desarrollo.pdf

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

Page 22: Normas Internas Desarrollo.pdf

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

Page 23: Normas Internas Desarrollo.pdf

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

Page 24: Normas Internas Desarrollo.pdf

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

Page 25: Normas Internas Desarrollo.pdf

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

Page 26: Normas Internas Desarrollo.pdf

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

Page 27: Normas Internas Desarrollo.pdf

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

Page 28: Normas Internas Desarrollo.pdf

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

Page 29: Normas Internas Desarrollo.pdf

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

Page 30: Normas Internas Desarrollo.pdf

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

Page 31: Normas Internas Desarrollo.pdf

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

Page 32: Normas Internas Desarrollo.pdf

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

Page 33: Normas Internas Desarrollo.pdf

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

Page 34: Normas Internas Desarrollo.pdf

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

Page 35: Normas Internas Desarrollo.pdf

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

Page 36: Normas Internas Desarrollo.pdf

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

Page 37: Normas Internas Desarrollo.pdf

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

Page 38: Normas Internas Desarrollo.pdf

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

Page 39: Normas Internas Desarrollo.pdf

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

Page 40: Normas Internas Desarrollo.pdf

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

Page 41: Normas Internas Desarrollo.pdf

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

Page 42: Normas Internas Desarrollo.pdf

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

Page 43: Normas Internas Desarrollo.pdf

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

Page 44: Normas Internas Desarrollo.pdf

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

Page 45: Normas Internas Desarrollo.pdf

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

Page 46: Normas Internas Desarrollo.pdf

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

Page 47: Normas Internas Desarrollo.pdf

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

Page 48: Normas Internas Desarrollo.pdf

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

Page 49: Normas Internas Desarrollo.pdf

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

Page 50: Normas Internas Desarrollo.pdf

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

Page 51: Normas Internas Desarrollo.pdf

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

Page 52: Normas Internas Desarrollo.pdf

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

Page 53: Normas Internas Desarrollo.pdf

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

Page 54: Normas Internas Desarrollo.pdf

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

Page 55: Normas Internas Desarrollo.pdf

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

Page 56: Normas Internas Desarrollo.pdf

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

Page 57: Normas Internas Desarrollo.pdf

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

Page 58: Normas Internas Desarrollo.pdf

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

Page 59: Normas Internas Desarrollo.pdf

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

Page 60: Normas Internas Desarrollo.pdf

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

Page 61: Normas Internas Desarrollo.pdf

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

Page 62: Normas Internas Desarrollo.pdf

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

Page 63: Normas Internas Desarrollo.pdf

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

Page 64: Normas Internas Desarrollo.pdf

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

Page 65: Normas Internas Desarrollo.pdf

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

Page 66: Normas Internas Desarrollo.pdf

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

Page 67: Normas Internas Desarrollo.pdf

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

Page 68: Normas Internas Desarrollo.pdf

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

Page 69: Normas Internas Desarrollo.pdf

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

Page 70: Normas Internas Desarrollo.pdf

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

Page 71: Normas Internas Desarrollo.pdf

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

Page 72: Normas Internas Desarrollo.pdf

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

Page 73: Normas Internas Desarrollo.pdf

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

Page 74: Normas Internas Desarrollo.pdf

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

Page 75: Normas Internas Desarrollo.pdf

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

Page 76: Normas Internas Desarrollo.pdf

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

Page 77: Normas Internas Desarrollo.pdf

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

Page 78: Normas Internas Desarrollo.pdf

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

Page 79: Normas Internas Desarrollo.pdf

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

Page 80: Normas Internas Desarrollo.pdf

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

Page 81: Normas Internas Desarrollo.pdf

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

Page 82: Normas Internas Desarrollo.pdf

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

Page 83: Normas Internas Desarrollo.pdf

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

Page 84: Normas Internas Desarrollo.pdf

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

Page 85: Normas Internas Desarrollo.pdf

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

Page 86: Normas Internas Desarrollo.pdf

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

Page 87: Normas Internas Desarrollo.pdf

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

Page 88: Normas Internas Desarrollo.pdf

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

Page 89: Normas Internas Desarrollo.pdf

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

Page 90: Normas Internas Desarrollo.pdf

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

Page 91: Normas Internas Desarrollo.pdf

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

Page 92: Normas Internas Desarrollo.pdf

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

Page 93: Normas Internas Desarrollo.pdf

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

Page 94: Normas Internas Desarrollo.pdf

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

Page 95: Normas Internas Desarrollo.pdf

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

Page 96: Normas Internas Desarrollo.pdf

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

Page 97: Normas Internas Desarrollo.pdf

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

Page 98: Normas Internas Desarrollo.pdf

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

Page 99: Normas Internas Desarrollo.pdf

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

Page 100: Normas Internas Desarrollo.pdf

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

Page 101: Normas Internas Desarrollo.pdf

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

Page 102: Normas Internas Desarrollo.pdf

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

Page 103: Normas Internas Desarrollo.pdf

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

Page 104: Normas Internas Desarrollo.pdf

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

Page 105: Normas Internas Desarrollo.pdf

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

Page 106: Normas Internas Desarrollo.pdf

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

Page 107: Normas Internas Desarrollo.pdf

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

Page 108: Normas Internas Desarrollo.pdf

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

Page 109: Normas Internas Desarrollo.pdf

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

Page 110: Normas Internas Desarrollo.pdf

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

Page 111: Normas Internas Desarrollo.pdf

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

Page 112: Normas Internas Desarrollo.pdf

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

Page 113: Normas Internas Desarrollo.pdf

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

Page 114: Normas Internas Desarrollo.pdf

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

Page 115: Normas Internas Desarrollo.pdf

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