Académique Documents
Professionnel Documents
Culture Documents
Escola dEnginyeria
Sabadell, Setembre de 2010
GESTOR COMERCIAL
GESTOR COMERCIAL
CERTIFICA:
firma
present
seva
la
memria
direcci
present.
GESTOR COMERCIAL
GESTOR COMERCIAL
GESTOR COMERCIAL
Resumen
Este se basa en una aplicacin de escritorio que permita a un vendedor tomar nota de
los pedidos que resulten de sus visitas comerciales y su posterior envo. Para ello se han
desarrollado una serie de herramientas y opciones que hagan esta tarea sea mucho ms
rpida y fiable.
Pese a haberse podido enfocar esta solucin de maneras muy diferentes se ha tratado
de construir una estructura sobre la que se puedan ir desarrollando nuevas mejoras en
caso de necesidad.
Es por ello que se tratar de explicar en este documento todos estos aspectos as como
otros factores considerados de mencin especial.
GESTOR COMERCIAL
NDICE
1. Introduccin
1.1 Presentacin
1.2 Objetivos
1.3 Estado del arte
1.3.1 Contexto de aplicacin del software
1.4 Motivaciones
1.5 Estructura de la memoria
10
10
11
12
13
13
2. Estudio de viabilidad
15
2.1 Introduccin
2.2 Descripcin y objetivos
2.3 Estado del arte
2.4 Especificaciones
2.4.1 Especificaciones funcionales
2.4.2 Especificaciones no funcionales
2.4.3 Especificaciones tcnicas
2.5 Planificacin
2.6 Valoracin
2.7 Evaluacin de los riesgos
2.8 Conclusiones
15
15
17
17
17
20
21
23
24
25
26
3. Fundamentos tericos
27
27
27
28
29
33
36
36
37
37
GESTOR COMERCIAL
4. Anlisis
40
41
43
43
5. Implementacin
46
46
49
53
6. Pruebas
55
6.1
6.2
6.3
6.4
55
55
57
57
Control de errores
Capacidad de la base de datos
Envo de datos
Explotacin de los datos
58
8. Conclusiones
59
8.1 Desviaciones
59
9. Bibliografa
61
62
75
77
80
GESTOR COMERCIAL
1. Introduccin
El proyecto de final de carrera supone la culminacin en forma de prctica de los
conocimientos adquiridos durante los aos de formacin acadmica y laboral.
Con el objetivo de reflejar significativamente una parte de tales conocimientos se ha
decidido utilizar una aplicacin de gestin comercial como escenario de fondo, la cual nos
permitir desarrollar diferentes aspectos como la programacin orientada a objetos, la
gestin de bases de datos, comunicacin con servidores de datos y la interactuacin con
ellos.
A medida que se iba realizando el proyecto surgan nuevas ideas en cada uno de estos
apartados, pero que pese no haberse llevado a cabo para no extender excesivamente el
marco de trabajo establecido por el director de proyecto, se mencionarn brevemente.
Las impresiones al trmino de la realizacin del proyecto han sido muy satisfactorias a
la vez que han despertado la motivacin para profundizar, en un futuro no muy lejano, en
aspectos relacionados con el proyecto.
GESTOR COMERCIAL
Presentacin
El proyecto pretende ofrecer una herramienta completa para la gestin de los pedidos
de un representante comercial.
Esta gestin abarcar diferentes aspectos, como la toma de pedidos, almacenamiento
de los mismos, posibles modificaciones posteriores y su envo a la empresa de destino.
Tambin se proveer al usuario de herramientas de anlisis estadsticos para la explotacin
de la informacin.
En el ejemplo del proyecto se presupondr un agente de ventas multicartera, es decir,
un vendedor que pueda representar a ms de una empresa, hasta un mximo de tres. Esta
caracterstica del programa condiciona el hecho de que la estructura de la informacin
debe ser la misma para las empresas de la aplicacin. Paralelamente se aplicarn reglas
internas de tratamiento de pedidos comunes a todas las empresas. Dichas reglas se
detallarn ms adelante.
Otra caracterstica importante de la aplicacin es que es tambin multiusuario, lo cual
permite que varios usuarios puedan utilizar el mismo software para las mismas empresas.
De todos modos es significativo que los beneficios de esta opcin se reducen a casos muy
concretos.
Los datos de la aplicacin tales como la tarifa, clientes, etc., podrn ser actualizados
utilizando una base de datos secundaria. Esta base de datos deber ser modificada por la
empresa principal y enviada al representante comercial mediante cualquier solucin
existente (servidor de ficheros, servidor web, correo electrnico).
Para el desarrollo de la aplicacin se ha utilizado Delphi 2010, de Embarcadero
Technologies y se ataca a una base de datos de Ms Access 2007. Sobre el entorno de
desarrollo de Delphi se han instalado paquetes de componentes que no se distribuyen con
el estndar y que dotarn a nuestra aplicacin de potencia, versatilidad y velocidad. Los
ms importantes son los componentes VCL del fabricante DevExpress, los componentes de
exportacin de datos de FlExCel y los componentes de distribucin gratuita RXLib 2.7.5
entre otros.
1.2
Objetivos
10
GESTOR COMERCIAL
Esta estructura se disear para poder desarrollar unos procesos bsicos bien
determinados:
Seleccin y consulta de clientes
Seleccin y consulta de artculos
Creacin, modificacin, eliminacin y consulta de pedidos
Protocolos de comunicacin para el envo y recepcin de informacin
Herramientas de configuracin de la propia aplicacin
Sistemas de explotacin de datos para anlisis estadsticos
A nivel de seguridad ser la propia aplicacin la que regule las diferentes transacciones
sobre la base de datos. El acceso a la base de datos ser transparente al usuario y estar
dotada de medidas de seguridad como la encriptacin de datos. La aplicacin est diseada
para que el usuario no pueda acceder ni modificar aquello para lo cual no est autorizado.
Las diferentes vistas de la aplicacin deben ser amigables e intuitivas para facilitar un
uso cmodo y rpido del software. Diferentes elementos de ayuda estarn disponibles as
como completos sistemas de control de errores.
11
GESTOR COMERCIAL
12
GESTOR COMERCIAL
Por otro lado, toda la informacin que la empresa enva al comercial (recibos, listados,
informes, etc.) se hace en papel y mediante sistemas de mensajera convencional. No hace
falta decir que este sistema es lento y costoso.
1.4 Motivaciones
Este proyecto nace de la idea de desarrollar ciertos conocimientos adquiridos en un
entorno laboral en combinacin con el aprendizaje obtenido durante los aos de formacin
acadmica.
Hace ya bastantes aos realic un cursillo de Delphi en la EUIS el cual me despert
mucho inters. Con el transcurso de los aos me dediqu, a nivel personal y laboral a
desarrollar pequeas aplicaciones que me permitieran enriquecer mis conocimientos de
este lenguaje que, hoy por hoy sigue siendo injustamente discriminado en algunos
mbitos del mundo del desarrollo de software.
Ahora, aos ms tarde, me produce una gran satisfaccin poder usar este gran
lenguaje de programacin para la creacin del proyecto de fin de carrera, y con el que
pretendo demostrar que las aplicaciones de escritorio an siguen vivas en una era donde
todo parece ser controlado desde un navegador.
13
GESTOR COMERCIAL
y encuadradas en un
14
GESTOR COMERCIAL
2. Estudio de viabilidad
En esta parte del documento se detallan los diferentes aspectos de la viabilidad del
proyecto.
2.1 Introduccin
El marco de este estudio abarca desde la fase inicial de requerimientos del proyecto
hasta su puesta en marcha, analizando en cada etapa sus posibles implicaciones en la
resolucin de su viabilidad a nivel econmico, tcnico, legal y operativo.
15
GESTOR COMERCIAL
Tipo de clasificacin
Objetivos
Crticos
A, C, D, E, M, L
Prioritarios
B, F, J
Secundarios
G,H, I
16
GESTOR COMERCIAL
Una de las principales caractersticas del proyecto que la diferencia del resto de
competidores que se encuentran en el mercado es su estructura funcional y de datos: una
parte importante de las opciones y funcionalidades del programa son configurables, ya sea
por el usuario o por un administrador con permisos de acceso a la base de datos.
Se ha partido de la idea que crear un pequeo diccionario de datos. Es decir,
informacin sobre la informacin. El diseo de los mens y los scripts de transacciones
sobre la informacin se almacenan en la misma base de datos, permitiendo que, con
pequeas modificaciones, la aplicacin funcione sobre cualquier base de datos.
Esta manera de enfocar el diseo de la aplicacin ha sido motivada por la idea de que
el proyecto presentado debera ofrecer un alto grado de personalizacin para poder as
ajustarse al mayor nmero posible de clientes potenciales.
Asimismo, en su diseo estndar se ha tratado de hacer nfasis en la facilidad de uso y
velocidad de acceso a los diferentes elementos que la forman, intentando evitar problemas
que, a juicio del autor, plantean otras soluciones.
2.4
Especificaciones
En este apartado se explicar con sumo detalle aquellas especificaciones que cumple el
proyecto. Se dividirn en tres apartados: especificaciones funcionales, especificaciones no
funcionales y especificaciones tcnicas. Como apreciar el lector, en esta seccin
encontrar numerosas sugerencias y referencias.
En esta pantalla se mostrarn en un grid todos los datos disponibles del cliente. Estos
datos no se podrn modificar ya que ser la empresa que los proporciona quien enve un
17
GESTOR COMERCIAL
fichero para poder actualizarlos. Si algn dato del cliente debe ser cambiado, se notificar a
la empresa utilizando las opciones del programa disponibles para tal fin.
Se dispone de un cdigo especial para aquellos clientes nuevos. Si seleccionamos un el
cdigo para el cliente nuevo se har visible un botn donde podremos informar de todos
los datos disponibles del cliente. Estos datos se enviarn en un fichero adjunto junto al
pedido que se enva. La informacin, puede ser cifrada, en caso de ser necesario.
Una vez seleccionado el cliente se mostrar una pantalla con todos los datos necesarios
para poder tomar nota del pedido. Para ello podremos buscar el artculo por cdigo,
descripcin o simplemente haciendo clic en el grid sobre el artculo deseado. Para las
bsquedas por descripcin se podrn filtrar los resultados del grid de artculos para que
slo muestre aquellos artculos que contengan el texto buscado en su descripcin.
Una vez seleccionado el artculo se podr cambiar la cantidad a pedir, que por defecto
ser la unidad de caja. Tambin se podr cambiar la descripcin y aplicar descuentos en
caso que el artculo lo permita y hasta un mximo permitido. El cambio de descripcin no
se registrar en el listado de artculos y slo afectar a la lnea del pedido en concreto.
Para cada una de las lneas de pedido se podr especificar el tipo de venta: sin cargo,
abono, obsequio, etc., sin posibilidad de crear lneas del mismo tipo repetidas.
Respecto a la cabecera del pedido, y una vez seleccionado el cliente de nuestra visita,
nicamente podremos cambiar el nmero de pedido (en caso de no haber seleccionado
ningn artculo) y la forma de pago, que por defecto ser la forma predeterminada de
nuestro cliente informada en el sistema informtico de la empresa. La fecha del pedido se
obtendr del sistema y no podr ser modificada.
Al ser un programa multiempresa, se podr seleccionar, en una misma visita, la
empresa de la cual queremos hacer una venta. Los datos de los artculos sern propios de
cada empresa, a diferencia de los datos de clientes, que sern comunes a las empresas
configuradas. Para una misma visita, podremos vender artculos de cualquier empresa
simultneamente.
Tambin tendremos la posibilidad de realizar la venta de un artculo que no se tenga en
tarifa mediante un cdigo destinado a tal efecto. Deberemos introducir la descripcin del
mismo y la cantidad solicitada. El precio no se podr modificar ya que ser en la empresa
donde se marcar dicho precio al ser un artculo fuera de tarifa.
18
GESTOR COMERCIAL
Esto es til en casos en los que, por ejemplo, un artculo comporta la inclusin
de otro artculo accesorio obligatorio o un cargo adicional codificado en forma de
artculo.
El formato del fichero a enviar con la informacin del pedido podra ser
parametrizado segn las necesidades de cada empresa. En el anexo 3 se informan de
los formatos utilizados en el proyecto.
Junto al pedido se puede adjuntar un report de las visitas que hemos hecho a los
clientes. Este report se podr generar simplemente indicando una empresa, la fecha de
inicio de nuestras visitas y la fecha final.
En el proceso de envo se generar un archivo de texto por cada pedido y se enviar a
su empresa de destino por separado.
19
GESTOR COMERCIAL
20
GESTOR COMERCIAL
Con el mismo fin los archivos de bases de datos estn protegidos mediante contrasea,
pese a que existen en la red numerosas utilidades para recuperar contraseas de bases de
datos olvidadas.
de
bases
de
datos
Ms
Access
21
GESTOR COMERCIAL
22
GESTOR COMERCIAL
PLANIFICACIN
23
GESTOR COMERCIAL
VALORACION
Este proyecto no representa una solucin comercial real, pero para poder ofrecer una
estimacin econmica aproximada se han tenido en cuenta las siguientes valoraciones
sobre los recursos utilizados en un escenario simulado:
Los recursos humanos estarn formados por el coordinador de proyecto y un analista
programador. El primero ser el encargado de supervisar la evolucin del desarrollo del
proyecto y la aprobacin de la memoria, mientras que el segundo realizar las tareas
propias del anlisis, programacin y pruebas del proyecto.
Los recursos propios de software, tales como las licencias del entorno de desarrollo,
licencias de software destinado a pruebas del proyecto y hardware utilizado.
Valoracin de recursos
Recursos humanos
Coordinador de proyectos
Analista programador
Horas
Precio/hora
Total
48
293
100
50
4800
14650
19450
Recursos propios
Coste
Uso/amortizacin
(meses)
Total
Software de desarrollo
Software de pruebas
Hardware
2000
780
850
3/36
3/36
3/36
167
65
71
303
Total
19753
24
GESTOR COMERCIAL
Fig2. Uso y costo de los recursos humanos segn etapa del proyecto
2.7
Tras analizar los riesgos, estos se clasifican segn su impacto. En cada caso se
propondr un plan de contingencia.
Riesgos con impacto crtico
Determinacin de los requisitos funcionales y no funcionales: Debido a que el
principal motivo de la eleccin del proyecto es la voluntad de tener una herramienta
totalmente a medida es de vital importancia que el proyecto se ajuste a las
25
GESTOR COMERCIAL
2.8
CONCLUSIONES
26
GESTOR COMERCIAL
3. FUNDAMENTOS TERICOS
En el presente captulo se presentan ciertos conocimientos tcnicos que han sido
considerados necesarios para la realizacin del Proyecto de Fin de Carrera. No se pretende
en ningn modo realizar un desarrollo exhaustivo de todos estos conocimientos, sino
ofrecer una introduccin necesaria para la comprensin de las herramientas y estructura
utilizadas en el proyecto.
3.1
3.2
Delphi 2010
27
GESTOR COMERCIAL
3.2.1 Introduccin
Delphi naci de la mano de Borland en la primavera de 1995. Basado en Object-Pascal,
daba soporte a formularios, estaba provisto de un compilador nativo muy rpido y
soportaba acceso a numerosas bases de datos.
Con el tiempo se fueron distribuyendo nuevas versiones de Delphi mejoradas: Delphi
versin 2, 3, 4, 5, 6, 7, 8, 2005 y 2006, propiedad de Borland (Inprise durante algunos
aos), 2007 propiedad de Codegear y las versiones 2009 y 2010 de Embarcadero
Technologies. A fecha de este escrito, la versin 2010 es la ltima distribucin disponible.
De las versiones con ms xito destacan la versin 7, por su gran robustez y estabilidad y
la versin 2010, que segn los entendidos es la mejor versin de Delphi que se ha
distribuido hasta el momento desde Delphi 7.
En 2001 se cre Kylix, una versin de Delphi para entornos Linux, aunque la falta de
programadores que lo utilizaran provoc que tras la versin 3 se dejara de dar soporte.
Existe tambin una versin gratuita de una herramienta alternativa a Delphi con
compilador Free-Pascal, se trata de Lazarus.
28
GESTOR COMERCIAL
3.2.2 Componentes
Se ha llegado a decir de Delphi que es un lenguaje orientado a componente. Un
componente es un objeto, visual o no, que tiene una serie de propiedades, mtodos y
eventos, como puede ser un botn, una casilla de validacin o un grid de datos.
29
GESTOR COMERCIAL
En Junio de 2002 RxLib se une a JVCL en lo que supuso una de sus ms importantes
distribuciones.
TMS FlexCel Studio. Es una suite de componentes para las versiones de Delphi 6 hasta
Delphi 2010 y Lazarus (tambin soportado en C++ Builder). Permite crear ficheros nativos
en formato Ms Excel (97-2003-XP) sin la necesidad de libreras o DLLs. No es gratuito, el
coste de una licencia para un nico desarrollador es de 75 euros.
30
GESTOR COMERCIAL
Dev Express VCL. Developers Express Inc. es un prestigioso fabricante de todo tipo de
componentes, plug-ins, libreras y controles para mltiples plataformas de desarrollo como
SilverLight, Visual Studio 2010, Delphi 2010/ C++ Builder o ASP .NET, entre otros.
Por lo que respecta a los componentes creados para Delphi destaca su coleccin
llamada VCL Subscription, que es la ms completa. Ofrece componentes para usos tan
variados como paneles de navegacin, grids y editores de datos, barras de herramientas y
mens, control OLAP Data Mining, inspector de objetos, gestor de distribucin de
componentes, skins, visores Master-Detail, tree-views o distribucin de flujo. Destacan
entre ellos el componente Quantum Grid, un grid con el que se puede hacer prcticamente
de todo y Pivot Grid, con el que podremos combinar y operar con datos de una consulta
simplemente con soltar y arrastrar.
31
GESTOR COMERCIAL
32
GESTOR COMERCIAL
33
GESTOR COMERCIAL
34
GESTOR COMERCIAL
almacena en la carpeta Windows\WinSxS mltiples versiones de las DLLs y las carga bajo
demanda, reduciendo as los conocidos problemas de dependencia de estas libreras.
Las BPLs son tambin bibliotecas de enlace dinmico, pero diseadas exclusivamente
para su uso con aplicaciones generadas con Delphi. Igual que con las DLLs, el uso de BPLs
nos permite colocar porciones de nuestra aplicacin en mdulos separados que pueden ser
compartidos entre varias aplicaciones.
Otra diferencia fundamental es que las BPLs pueden contener Units con cdigo,
componentes y formularios e incluso Clases, lo que nos permite escribir cdigo orientado a
objeto. Lo que las BPLs permiten, a diferencia de las DLLs, es guardar en ellas todos los
componentes que necesita nuestra aplicacin.
Tanto las DLLs como las BPLs desempean un papel importante en la reduccin de
cdigo. Como se ha comentado, la principal razn para el uso de estas libreras es la
reduccin del tamao de nuestras aplicaciones. Pese a ello debemos tener cuidado con
ello, ya que podemos caer en el error de necesitar grandes libreras para nuestros
programas. Por ejemplo el principal paquete de componentes visuales, vcl140.bpl, ya
ocupa ms de 2MB. Sin embargo, si se distribuyen aplicaciones que tengan cdigo en
comn, puede ser recomendable guardar este cdigo en paquetes. De este modo, en caso
de necesitar pequeas modificaciones, slo debern hacerse sobre los mdulos afectados.
Pero tambin existen problemas con las versiones en el uso de BPLs. Si se actualiza un
paquete y se compila con una versin diferente de Delphi, tambin deberemos modificar el
ejecutable que usa estos paquetes.
Cualquier paquete suministrado para su uso por una aplicacin debe ser
compilado usando la misma versin de Delphi usada para compilar el ejecutable.
35
GESTOR COMERCIAL
Ms Access
3.3.1 Introduccin
Ms Access, que vio la luz en 1992, es el gestor de base de datos de Microsoft
comnmente utilizado para pequeos proyectos que no necesitan las prestaciones que
puedan requerir otro software como ERPs, CRMs, etc.
Con anterioridad, el mercado de los gestores de bases de datos estaba dominado por
Paradox y dBase (Borland) y FoxPro (Fox Technologies). Este ltimo fue adquirido por
Microsoft en 1992.
Hasta el lanzamiento del Service Pack 8 para el Jet Database Engine (que es como
propiamente se denomina al motor sobre el cual se construye Ms Access y otros programas
de Microsoft), este gestor de bases de datos no gozaba de buena reputacin entre los
programadores y usuarios debido a los eventuales problemas de corrupcin de datos y
prdida de informacin. Pero a partir del punto en el que Ms Access ha ganado en
fiabilidad lo ha hecho paralelamente en tamao de datos y aplicaciones que lo usan, hasta
el punto en que es una base de datos utilizada en pequeas aplicaciones en servidores
web.
Ms Access 2000 , como gestor de bases de datos relacional, nos permite realizar todas
las operaciones propias de estas, sobradamente conocidas: crear tablas con mltiples tipos
de datos, crear ndices de bsqueda, relaciones, consultas, modificaciones de tablas y
datos, es decir, todas aquellas sentencias DML (Data Manipulation Language), DDL (Data
Definition Language) propias de cualquier SGBD. Pero tambin nos permite crear
formularios e informes, utilizar asistentes para consultas, importar y exportar datos,
programar macros o vincular bases de datos externas.
Con la llegada de la versin 2010 de MsAccess, se ha potenciado el uso de plantillas
para realizar cualquier tarea de una manera prcticamente profesional. Se ha facilitado la
creacin de macros , la creacin de expresiones (gracias a Intellisense) y se ofrecen nuevas
herramientas para la publicacin nuestros datos en Internet como la integracin con los
servicios de SharePoint.
36
GESTOR COMERCIAL
3.3.2 Caractersticas
Pese a que ya se dispone en el mercado de versiones ms modernas de Ms Access, la
versin 2000 ofrece todo lo imprescindible para el buen funcionamiento del proyecto
presentado. Pero aparte de las funcionalidades utilizadas dispone de otras mejoras
respecto a versiones anteriores que se comentan a continuacin:
Integracin con la Web: Ms Access le permitir generar pginas HTML con la
informacin que necesite. Tambin podr integrar elementos Web de Microsoft
como componentes de hoja de clculo, componentes de grficos dinmicos o
componentes de tablas dinmicas.
Interoperabilidad con SQL Server: Ms Access es capaz de conectarse a Ms SQL
Server mediante el estndar OLE DB, para poder as utilizar la aplicacin como
interfaz para la base de datos SQL Server. Incluso permite realizar ciertas tareas
administrativas como replicaciones, copias de seguridad o restauracin de datos.
Mejoras de uso: De entre el gran surtido de mejoras destacan las que afectan a su
manejo. Se dispone de una rediseada ventana de datos y nuevas capacidades de
poder arrastrar objetos para exportar datos o crear accesos directos, autocorregir los
nombres de objetos de una manera automtica, imprimir diagramas de relaciones
mediante asistentes, reagrupar los
controles para poder manipularlos
simultneamente o asistentes para la creacin de tablas y consultas SQL. Tambin
podr convertir versiones de bases de datos anteriores.
Capacidades de programacin: Se dispone de soporte Unicode para la
internacionalizacin de aplicaciones. Adems incluye una potente versin de Ms
Visual Basic para el desarrollo de las mismas.
37
GESTOR COMERCIAL
38
GESTOR COMERCIAL
39
GESTOR COMERCIAL
4. Anlisis
En el anlisis del proyecto se ha estudiado detalladamente la idea global del programa y
se ha ido seccionando en mdulos menores independientes con una funcionalidad bien
determinada.
El anlisis est centrado en la idea de la visita comercial y todas las acciones que
pueden requerir. Las ms importantes son:
Iniciar nueva visita
Modificar el pedido en curso
Abrir un pedido ya grabado
Eliminar pedidos seleccionados
Enviar pedidos
En cada una de ellas deberemos tener en cuenta en qu situacin estamos y actuar en
consecuencia. Por ejemplo, en el caso de abrir un pedido ya grabado de una empresa
debemos comprobar si el usuario tiene un pedido en curso y si es as, debemos preguntar
si desea grabarlo o no antes de abrir el pedido seleccionado.
Dentro de cada una de ellas continuaremos con la divisin de tareas para facilitar la
modularizacin del software de manera que al final obtengamos una coleccin de
funciones que realicen tareas bien concretas. Por ejemplo, para poder grabar un pedido
necesitamos obtener un nuevo nmero de pedido y , a su vez, comprobar que ese nmero
de pedido no existe en la base de datos, si es as deberemos obtener uno libre. Toda esta
casustica debe quedar bien clara en el momento del anlisis, ya que, cuanto ms
detallados estn los casos de uso ms fcil se nos presentar el desarrollo de la aplicacin.
Cierto es que, dependiendo de la prctica del desarrollador, existen algunas
funcionalidades cuya realizacin se decide segn las necesidades que vayan apareciendo
una vez se ha iniciado la programacin. Esto nos servir como experiencia para afrontar
nuevos proyectos futuros.
Tambin se deben tener en cuenta otros requisitos durante el anlisis. Estos pueden
afectar a la aplicacin de diferentes tipos de seguridad, protocolos, usuarios, formatos, etc.
40
GESTOR COMERCIAL
41
GESTOR COMERCIAL
Los permisos de los diferentes usuarios o grupos creados se asignan a los diferentes
tipos de objetos. Como ejemplo mostrado en la imagen 4.2, los permisos sobre las tablas
afectan a la lectura y modificacin de su diseo, la lectura, actualizacin, insercin o
eliminacin de sus datos y a su administracin.
42
GESTOR COMERCIAL
necesario, el administrador podr cambiar la clave a la base de datos que contiene las
actualizaciones, pero del mismo modo deber hacer el cambio respectivo en el fichero de
configuracin.
4.2 LOPD
Otro factor a tener en cuenta es que debemos asegurar que la gestin de los datos
personales cumpla con la legalidad vigente, en este caso con la ya famosa LOPD (Ley
Orgnica de Proteccin de Datos).
Segn esta ley los datos personales que se utilizan deben ser protegidos mediante
una serie de medidas de carcter tcnico y organizativo que garanticen su seguridad. En el
caso del los datos manejados por el proyecto se deben aplicar medidas de seguridad de
nivel bsico ya que es una informacin facilitada por el mismo interesado para legitimar las
relaciones comerciales, como el nombre, direccin, telfono, etc.
Estas medidas de seguridad bsicas afectan a la proteccin de datos mediante claves.
Tal y como se detall en la lista de requerimientos, la base de datos deber ser protegida
mediante una contrasea. Ser deber del administrador facilitar los mecanismos
necesarios para poder establecer unas reglas de modificacin de claves. La estructura de la
aplicacin permitir que esto sea posible.
43
GESTOR COMERCIAL
El formulario principal, que es siempre visible, est formado por 3 partes bien
diferenciadas: men, formulario hijo y barra de estado.
En el men (ver imagen 4.3.1) se muestran los diferentes apartados de la aplicacin en
pestaas. Estas pestaas, que son configurables desde la base de datos, muestran los
diferentes iconos de las opciones que contienen.
44
GESTOR COMERCIAL
El formulario hijo (MDI child) (ver imagen 4.3.2) ocupa el resto de la ventana a
excepcin de la parte inferior dedicada a la barra de estado. El tamao del formulario hijo
vendr condicionado por la resolucin con la que estemos trabajando. La resolucin
recomendada es de 800x600.
45
GESTOR COMERCIAL
5. Diseo e implementacin
En este tema se documentan todas las decisiones tcnicas que se han llevado a cabo
para el diseo del proyecto y su implementacin con las herramientas comentadas.
Podemos realizar su clasificacin en dos apartados principales: las bases de datos
utilizadas y los mdulos de la aplicacin. Para facilitar su explicacin se comentarn
algunos fragmentos del cdigo utilizado.
El proyecto utiliza dos bases de datos. Una de ellas est diseada especficamente para
almacenar toda la informacin que podamos necesitar para el correcto funcionamiento del
programa como pueden ser los datos de pedidos, clientes o artculos y adems aquella
informacin del propio software, como configuracin de mens, consultas, etc. La segunda
base de datos contiene una estructura muy similar a la principal, pero su cometido es
completamente diferente. En la segunda base de datos disponemos de la informacin
necesaria para poder actualizar los datos que se encuentran en la primera base de datos.
Cmo se realiza esta actualizacin? La idea es sencilla. En la segunda base de datos se
encuentran vinculadas las tablas de la base de datos principal susceptibles de ser
modificadas, tanto en su estructura como su informacin. Es decir, con una conexin a la
base de datos secundaria podemos acceder tambin a los datos de la base de datos
principal. De esta manera, cuando tengamos que actualizar, por ejemplo, los datos de
artculos o de clientes, el programa se conectar a la segunda base de datos, y ejecutar las
transacciones pertinentes para llevar a cabo los cambios requeridos. Esta base de datos,
que en realidad es un nico fichero, ser recibida peridicamente por el usuario con los
cambios que su empresa haya realizado.
Las tablas que nos encontramos en las bases de datos son las siguientes:
46
GESTOR COMERCIAL
47
GESTOR COMERCIAL
48
GESTOR COMERCIAL
49
GESTOR COMERCIAL
Estructura de la clase TPedido, que nos permitir saber con qu pedido estamos
trabajando y en qu estado se encuentra
type
TPedidos = class (Tobject)
pempresa:string[2];
pempresa_desc:string[25];
pempresa_num:integer;
pnumdoc:integer;
pfecha:tdate;
pusuario:string[2];
pestado:integer;
pcliente:string[5];
pfpago:integer;
pimporte:real;
plineas:integer;
pobs1:string[80];
pobs2:string[80];
pobs3:string[80];
pobs4:string[80];
end
50
GESTOR COMERCIAL
function comprueba_actualizaciones(sender:tobject):boolean;
function envia_pedidos_ftp(sender:tobject; ftp1:Tidftp; archivos:Tstrings)
:boolean;
function conecta_ftp (sender:tobject;ftp1:Tidftp):boolean;
function get_fecha_fichero (sender:tobject; ftp1:Tidftp; nombrefi:string)
:tdatetime;
function descarga_fichero(sender:tobject; ftp1:Tidftp; nombrefi:string
):boolean;
function enviaEmail (servidor : string; usuarioy : string; pwdy : string;
asunto:string; mensaje:tstrings; conAutenticacion:boolean; email_origen :
string; nombre_origen : string; email_destino : string; cclist : string;
attachlist:tstrings) : boolean;
vpl_medida:=obtener_valor_bd(sender,34,parametros,'xmedida',true);
vpl_articulo:=dset_lineas_pedido.fieldbyname('xdescripcion').AsString;
vpl_precio:=formatfloat('0.0000',dset_lineas_pedido.fieldbyname('xprec_ven
ta').Asfloat);
if vpl_precio='0.0000' then vpl_precio:='';
vpl_dto:=dset_lineas_pedido.fieldbyname('xdto_lin').AsString;
vpl_subtotal:=formatfloat('0.0000',dset_lineas_pedido.fieldbyname('ximport
e').asfloat);
51
GESTOR COMERCIAL
Mantenimiento de la base de datos. No hay que olvidar que al trabajar con una base
de datos se debe asegurar su integridad, por ejemplo con funciones para su
compactacin y reparacin. En el caso de MS Access debemos usar las libreras
especiales como ADO_TLB, ADODB_TLB, JRO_TLB y ADO_DB.
Pese al tiempo destinado al anlisis, es habitual que en la fase del diseo, y sobre todo
en la fase de implementacin, nos encontremos en situaciones que no habamos previsto.
En estos casos se debe volver a analizar el proceso o rutina tantas veces como sea
necesario para que su implementacin sea lo ms eficiente posible.
Es importante conocer tambin las fuentes de informacin de las que disponemos a la
hora de afrontarnos a un problema. Muchas de las situaciones conflictivas que nos
aparecen durante el proceso de anlisis e implementacin seguramente tienen una base
documentada por otros programadores y podremos encontrar solucin en algn rincn de
Internet.
52
GESTOR COMERCIAL
Por esto ltimo, hay que ser conscientes de nuestros conocimientos y de las habilidades
sobre las herramientas de las que disponemos. Puede que durante el anlisis enfoquemos
una solucin que, sobre el papel nos parece fcil de implementar, pero que a la hora de la
verdad nos conlleva mucho ms tiempo del que habamos planificado. Para situaciones
conflictivas es recomendable siempre disponer de un plan alternativo.
5.3
Control de datos
Para poder asegurar una coherencia de toda la informacin con la que se trabaja se han
implementado diversos sistemas de control de datos en funcin del componente o
situacin donde se est tratando.
Ciertos componentes permiten la parametrizacin de la informacin segn mscaras lo
cual nos permite ya en tiempo de diseo decidir cules son los tipos de datos que van a ser
aceptados o no.
53
GESTOR COMERCIAL
if
frm_detalle_cli_nuevo.Components[a]
is
(frm_detalle_cli_nuevo.Components[a] as tedit).Clear;
tedit
then
Las conversiones entre tipos de datos son habituales para asegurar que no existirn
problemas con la informacin que tratemos.
Formatos de fecha:
pact.pedido.pfecha:=strtodate(fecha);
then
showmessage('Error en la
En caso de que la entrada de datos no sea la adecuada se impide continuar hasta que el
dato introducido es incorrecto.
if length(ed_cliente_buscado.Text)=5 then
begin
dbgrid1.DataSource.DataSet.Locate('xcliente_id', ed_cliente_buscado.Text,
[]);
if ( ed_cliente_buscado.text <> dset_busca_cli.FieldByName( 'xcliente_id'
).asstring ) then
begin
lb_cliente_no_encontrado.Visible:=true;
bbtn_aceptar.Enabled:=false;
end
else
begin
lb_cliente_no_encontrado.Visible:=false;
bbtn_aceptar.Enabled:=true;
end;
end;
54
GESTOR COMERCIAL
6. Pruebas
Durante el desarrollo de la aplicacin se ha
ido verificando el buen funcionamiento
de sus funciones a medida que se iba desarrollando.
55
GESTOR COMERCIAL
En este programa, tal y como indica la Imagen 6.2.1, aparecen los datos de clientes y
artculos disponibles en una de las 3 empresas posibles.
Se debe informar tambin del nmero de artculos mximo que contendr nuestro
pedido. Este se generar aleatoriamente entre 1 y el mximo seleccionado. El cliente del
pedido tambin se seleccionar al azar. Como mucho se permitirn 500 lneas por pedido.
En la simulacin se supondr que la cantidad que se ha solicitado de cada artculo es igual a
la unidad de la caja (ver imagen 4)
Finalmente el programa generar con estos datos tantos pedidos como se haya
indicado para cada uno de los das entre Fecha desde y Fecha hasta.
Durante los tests no se ha producido ningn problema. En una de las pruebas se han
llegado a insertar ms de medio milln de lneas y la base de datos ha respondido
perfectamente a semejante cantidad de informacin introducida.
Las pruebas se han realizado en dos ordenadores diferentes. Uno de ellos es un Asus
EeePc T101Mt con procesador Atom 450 y 1GB de RAM, el otro es un PC de sobremesa con
procesador Intel Quad Core Q6600 con 4GB de RAM. En el primero el test ha durado casi 6
minutos, mientras que en el segundo no ha alcanzado los 3 minutos. Esto nos hace
reflexionar sobre la posibilidad de que la incorporacin masiva de de datos externos sea un
problema en mquinas lentas si no se optimiza su programacin.
56
GESTOR COMERCIAL
Una vez realizados los tests ya disponemos de informacin aleatoria para poder
continuar con las pruebas de envo de pedidos, generacin de informes, generacin de
grficos y clculo de acumulados.
57
GESTOR COMERCIAL
Una vez finalizado un proyecto, posiblemente se puede quedar uno con la sensacin
de que, con lo que ha aprendido, retomara el proyecto introduciendo ciertos cambios. Eso
es exactamente lo que me ha sucedido a m.
Los cambios que realizara y los que se me ocurren como alternativa vlida a lo que he
hecho son:
Implementacin de libreras ms optimizadas segn su uso. Uso de BPLs en vez de
Units. Almacenamiento de los formularios en BPLs para el ahorro de memoria.
Uso de la programacin mediante hilos para procesos que pueden ejecutarse en
background y aumentar as la velocidad del programa.
Mayor bsqueda de pequeas aplicaciones externas que pudieran ser llamadas
desde la aplicacin.
Mayor configuracin del programa almacenada en la base de datos.
Conexin con bases de datos remotas para el envo y recepcin de informacin.
Incorporacin del tratamiento de ficheros con formato XML.
Posibilidad de tener una aplicacin multiidioma
Potenciar la generacin de informes.
Realizacin de pruebas para la exportacin de datos a software del paquete Open
Office.
58
GESTOR COMERCIAL
8 Conclusiones
Tras terminar el Proyecto de Fin de Carrera y pensar en las horas que ha necesitado
para llevarse a cabo, uno se plantea lo importantes que son cada una de las fases que lo
componen: desde la primera reunin con el tutor del proyecto hasta la preparacin para
presentarlo ante el tribunal.
Normalmente, si se ha trabajado en algn sector de la informtica, no se suele afrontar
un proyecto en todas sus fases tal y como se ha hecho. Aqu radica, a mi parecer, el
principal beneficio del Proyecto de Fin de Carrera.
En mi caso, propona un proyecto del cual conoca el lenguaje a usar y el planteamiento
principal para empezar a desarrollarlo, pudindome extender en detalles de mayor
complejidad, que no haba tenido la ocasin de conocer con anterioridad.
Sin duda alguna puedo decir que, al trmino de este trabajo, me siento orgulloso y a la
vez contento de todo lo que el proyecto, con el que he pasado algunos momentos duros,
me ha permitido aprender.
8.1 Desviaciones
Durante el transcurso del proyecto, han habido fases donde el desarrollo del mismo ha
sufrido ciertas variaciones. Pese a haber realizado una planificacin de manera
relativamente minuciosa, las desviaciones ms importantes han surgido a la hora de
disear el proyecto y su posterior programacin.
Esto ha sido debido a que durante la programacin se han valorado pequeos cambios
sobre el diseo del software que aportaran ciertas mejoras y que no se haban tenido en
cuenta durante la fase de planificacin.
Tambin durante la fase de pruebas se ha decidido crear una pequea aplicacin para
poder dar de alta pedidos en el programa, de manera aleatoria.
Esto ha facilitado el poder disponer de informacin que se ha utilizado para los tests
que se han ido aplicando al proyecto, aunque el tiempo dedicado a las pruebas se ha
incrementado notablemente.
En la tabla que se muestra a continuacin se detallan las alteraciones que ha sufrido el
proyecto en su desarrollo respecto a la planificacin que se haba propuesto inicialmente.
59
GESTOR COMERCIAL
Horas planificadas
Horas reales
Planificacin
Anlisis
Diseo
Desarrollo
Pruebas
Implantacin
Documentacin
8
22
56
174
23
18
40
16
22
64
174
31
18
40
Total
341
367
60
GESTOR COMERCIAL
9 Bibliografa
Han sido numerosas las pginas web visitadas para obtener informacin durante la
realizacin de este proyecto. Por suerte o por desgracia debo decir que no he consultado ni
libros ni revistas especializadas, todas las fuentes consultadas se han encontrado en
Internet.
Las ms importantes han sido:
www.clubdelphi.com
www.delphibasics.co.uk
Delphi Basics
www.marcocantu.com
delphi.about.com
: Delphi Programming
www.torry.net
www.devexpress.com
es.wikipedia.org
www.experts-exchange.com
61
GESTOR COMERCIAL
Una vez nos hayamos identificado se nos mostrar la lista de nuestros clientes. En ella
podremos buscarlos o por cdigo o descripcin. Para facilitar su escritura en pantallas
tctiles se ha incluido un sencillo teclado en pantalla.
En caso de visitar a un cliente nuevo se utilizar el cdigo 99999. Posteriormente se
podrn informar los datos sobre el cliente.
62
GESTOR COMERCIAL
63
GESTOR COMERCIAL
En la parte superior de la pantalla, se pueden ver los diferentes apartados de los que
consta la aplicacin: la gestin de pedidos, estadsticas y envos. Justo debajo aparecen
aquellas opciones de las que dispone.
El formulario contiene dos pestaas fijas: una para la confeccin del pedido (Entrada de
pedidos) y otra donde se pueden ver las lneas del pedido que vamos creando. Existe una
tercera que se activa en caso de que el artculo disponga de alguna imagen. El nmero que
hay en la pestaa de entrada de pedidos indica el nmero de referencias de nuestra tarifa.
En la primera, se muestra el grid donde aparecern todos los artculos disponibles para
su venta. Los artculos pueden ser de cuatro colores diferentes: negro, azul, rojo o verde.
Cada uno tendr el significado que le queramos dar.
Podemos ordenar los artculos por cualquiera de los campos que se ven en el grid,
simplemente haciendo clic en en nombre de la columna.
Existen tres columnas cuya visibilidad es opcional: Pgina, estadsticas, y descuento
mximo. La primera indica el nmero de pgina del catlogo donde aparece el artculo, la
segunda columna muestra un * en aquellos artculos que han sido comprados con
64
GESTOR COMERCIAL
anterioridad por el cliente del pedido en curso, y la tercera muestra la informacin sobre el
valor del descuento mximo que se le permite hacer al artculo.
Tambin podremos ver el cdigo de cliente seleccionado y su nombre. Justo a su
izquierda hay un icono de un sobre sobre el que, haciendo clic, nos informar del mail del
cliente. Si el cliente es nuevo se visualiza un botn Detalle que da acceso al formulario
donde introduciremos los datos del cliente nuevo. Esta informacin se guardar y se
adjuntar automticamente al pedido enviado como un fichero de texto.
65
GESTOR COMERCIAL
66
GESTOR COMERCIAL
67
GESTOR COMERCIAL
Si el sentido del gesto tctil que se haga sobre la imagen es vertical, se alternar
entre mostrar la imagen en su tamao real o al mximo que de el formulario que la
contiene. Esta opcin se ha implementado para conocer un poco el funcionamiento del
sistema Touch para pantallas tctiles.
En las opciones de la parte superior veremos los botones que permiten grabar el
pedido, introducir observaciones, ver o abrir pedidos, cambiar de empresa o realziar una
nueva visita.
Por defecto cada tres lneas aadidas el pedido se guarda automticamente y si
salimos del pedido, aunque no hayamos hecho clic en Grabar el pedido quedar grabado.
Si no lo deseamos, deberemos borrarlo.
Para las observaciones disponemos de tres lneas de 80 caracteres cada una y una
lnea reservada para el programa dnde se incluir la informacin sobre el mail. Asimismo
se ofrece de nuevo un teclado y opciones de borrado rpido de lneas.
68
GESTOR COMERCIAL
69
GESTOR COMERCIAL
As conseguiremos primero agrupar por empresa luego por Cliente, luego por
Fecha y como acumulado usaremos el campo Importe.
70
GESTOR COMERCIAL
Si deseamos enviar los pedidos debemos ir a la parte de Envos. En este mdulo, tal y
como ilustra la Imagen A13, podemos enviar cualquier pedido que queramos.
Para ello disponemos de un calendario, para seleccionar la fecha de los pedidos. Por
defecto no se permite enviar pedidos de diferentes das.
En el grid correspondiente aparece la informacin requerida sobre los pedidos a enviar.
Tambin podremos saber si el pedido ya ha sido enviado o no.
En la parte baja de la pantalla nos encontramos con los controles habituales para enviar
un mail. Los datos de estos controles se rellenarn automticamente.
Estos son:
El origen (De), es decir, el usuario. Aparece el nombre del usuario. Se puede cambiar,
pero los cambios no se quedan registrados.
El destinatario (Para). Segn la Empresa que seleccionemos figurar un mail u otro.
Tambin se puede cambiar pero sin la posibilidad de guardar los cambios de manera
permanente.
71
GESTOR COMERCIAL
72
GESTOR COMERCIAL
73
GESTOR COMERCIAL
Los pedidos pueden ser enviados tambin por el servicio de transferencia de ficheros
FTP. Incluso se pueden combinar los dos sistemas de envo.
En este ltimo se mostrar una barra de progreso del porcentaje de envo de pedido
realizado.
74
GESTOR COMERCIAL
75
GESTOR COMERCIAL
76
GESTOR COMERCIAL
Anexo 3- Formatos
77
GESTOR COMERCIAL
FAMMRR.EXT
F: Letra F. Indica que es factura.
A: ltima cifra del ao. 0 para el caso de 2010
MM: Mes de la factura
RR: Identificador del representante comercial.
EXT: Extensin propia del archivo de factura (.PDF, .TXT, .DOC, ect.)
78
GESTOR COMERCIAL
79
GESTOR COMERCIAL
Diccionario de trminos
CRM: Customer Relationship Management. Software diseado para gestionar todos los
aspectos necesarios en la relacin comercial con el cliente.
DCOM: Distributed Component Object Model. Sistema de componentes de software de
Microsoft para comunicarse con ordenadores en lnea.
DLL: Dynamic-Link Library. Librera de enlace dinmico con cdigo ejecutable y que
puede ser llamado desde una aplicacin principal.
DNS: Domain Name System. Sistema de nombres de dominio que establece la
asociacin entre direcciones IP y el dominio al cual est vinculado.
ERP: Enterprise Resource Planning. Software para empresas que integra la
informatizacin de todos los procesos que intervienen.
FTP: File Transfer Protocol. Protocolo para la transferencia de ficheros.
Grid: Cuadrcula orddenada en filas y columnas donde se disponen los datos a mostrar.
HTML: HyperText Markup Language. Lenguage bsico bsado en etiquetas utilizado
para mostrar pginas Web.
HTTP: HyperText Transfer Protocol. Protocolo usado en cada transaccin de la WWW.
HTTPS: Hypertext Transfer Protocol Secure. HTTP con sistemas de seguridad.
IDE: Integrated Development Environment. Entorno de desarrollo integrado que
ofrecen determinados lenguages de programacin.
LOPD: Ley Orgnica de Proteccin de Datos.
MFC: Microsoft Foundation Classes. Libreras del API de Windows.
MDI: Multiple Document Interface. Caracterstica de aplicaciones donde sus ventanas
residen bajo una ventana padre.
PDA: Personal Digital Assistant. Pequeo ordenador de mano originalmente diseado
como agenda electrnica.
RAD: Rapid Application Development. Desarrollo rpido de aplicaciones.
Script. Archivo de rdenes de procesamiento por lotes.
SmartPhone: Telfono Inteligente. Dispositivo que funciona como un telfono mvil
que incorpora caractersticas propias de un ordenador personal.
SQL: Structured Query Language. Lenguaje de consultas sobre bases de datos.
Escola Universitria dInformtica de Sistemes
80
GESTOR COMERCIAL
81
GESTOR COMERCIAL
82