Vous êtes sur la page 1sur 247

PLANEACIN JERRQUICA DE LA PRODUCCIN CORTO PLAZO

HIERARCHICAL PRODUCTION PLANNING SCHEDULING

HPP S

HERRAMIENTA INFORMTICA EN HOJA ELECTRNICA PARA LA PLANEACIN A CORTO PLAZO DE LA PRODUCCIN EN AMBIENTES DE PLANIFICACIN JERRQUICA, PARA PYMES CON SISTEMA DE PRODUCCIN POR LOTES O SERIES CORTAS. HPP S

JESS EDUARDO SCARPETTA A. ELIANA CELLAR BERNAL

UNIVERSIDAD DEL VALLE FACULTAD DE INGENIERAS ESCUELA DE INGENIERA INDUSTRIAL Y ESTADSTICA SANTIAGO DE CALI Agosto de 2002

HERRAMIENTA INFORMTICA EN HOJA ELECTRNICA PARA LA PLANEACIN A CORTO PLAZO DE LA PRODUCCIN EN AMBIENTES DE PLANIFICACIN JERRQUICA, PARA PYMES CON SISTEMA DE PRODUCCIN POR LOTES O SERIES CORTAS. HPP S

JESS EDUARDO SCARPETTA A. ELIANA CELLAR BERNAL

Proyecto de Grado para optar por el ttulo de Ingeniero Industrial Director

GERARDO MOTOA G. Ph. D.

UNIVERSIDAD DEL VALLE FACULTAD DE INGENIERAS ESCUELA DE INGENIERA INDUSTRIAL Y ESTADSTICA SANTIAGO DE CALI Agosto de 2002 iii

UNIVERSIDAD DEL VALLE FACULTAD DE INGENIERAS ESCUELA DE INGENIERA INDUSTRIAL Y ESTADSTICA

Programa academico INGENIERA INDUSTRIAL

Autores JESS EDUARDO SCARPETTA A. ELIANA CELLAR BERNAL

Titulo HERRAMIENTA INFORMTICA EN HOJA ELECTRNICA PARA LA PLANEACIN A CORTO PLAZO DE LA PRODUCCIN EN AMBIENTES DE PLANIFICACIN JERRQUICA, PARA PYMES CON SISTEMA DE PRODUCCIN POR LOTES O SERIES CORTAS.

Temas Planeacin jerrquica de la produccin, Planeacin a corto plazo, Programacin enfocada a la carga, Programacin (n/1), Reglas de prioridad, Mquinas paralelas, Programacin en mquinas paralelas, Programacin (n/2), Programacin (n/m), Visual Basic, Procedimiento de evento (event procedure), Excel, Access, Modelo entidad relacin.

iv

Nota de aceptacin

Presidente del Jurado

Jurado

Jurado

Ciudad y fecha (da, mes, ao)

Agradezco a: Jess Mara Scarpetta y Mara Oliva Arias mis padres. Jorge Enrique Scarpetta y Clara Ins Scarpetta mis hermanos. Y a Mara del Mar Duque Bastidas la mujer que Amo. A todos ellos por su apoyo, motivacin y herramientas brindadas. Jess Eduardo Scarpetta.

A Dios por ser l todo para m vida A la memoria de m padre, Elas Cellar Lpez, que an est a mi lado. A mi madre, Araminta Bernal Forero, por su amor maternal. A mis hermanos: Giovanny,Katherine,

Vladimir y Jennifer, por su apoyo continuo. Y a Jhon Cuadros por ser el amor de mi vida, que me ha motivado a seguir adelante. Eliana Cellar Bernal.

vi

AGRADECIMIENTOS.

Los autores expresan sus agradecimientos a:

Ingeniero Gerardo Motoa G. Ph. D. Director del presente proyecto, por su comprensiva y valiosa colaboracin en el desarrollo del mismo y durante el transcurso de la formacin acadmica.

Mara del Mar Duque en la revisin del documento y la aplicacin informtica diseada, por sus sugerencias, aportes y comentarios.

A todas aquellas personas que de una u otra manera nos colaboraron en la formacin universitaria, para hacernos profesionales y personas ntegras.

vii

TABLA DE CONTENIDO Pg. INTRODUCCIN ................................................................................................................ 1 1. PRELIMINARES ........................................................................................................... 3 1.1 1.2 1.3 OBJETIVOS........................................................................................................... 3 HIPTESIS DEL TRABAJO ................................................................................ 4 JUSTIFICACIN................................................................................................... 5

2. MARCO DEL PROYECTO .......................................................................................... 8 2.1 2.2 2.2.1 2.2.2 2.2.3 2.2.4 2.3 MARCO DE REFERENCIA.................................................................................. 8 MARCO CONCEPTUAL. ................................................................................... 11 Planeacin jerrquica de la produccin............................................................ 13 Planeacin a corto plazo................................................................................... 18 Programacin enfocada a la carga.................................................................... 26 Modelos de programacin. ............................................................................... 32 PLANTEAMIENTO DEL PROBLEMA............................................................. 47

3. LGICA DE DISEO ................................................................................................. 49 3.1 3.1.1 3.1.2 3.1.3 3.2 3.2.1 3.2.2 3.2.3 3.3 3.3.1 3.3.2 PLATAFORMA DE DESARROLLO. ................................................................ 49 Visual Basic...................................................................................................... 51 Hojas de clculo. .............................................................................................. 55 Bases de datos................................................................................................... 57 ESTRUCTURA DE LA APLICACIN .............................................................. 67 Modelos de datos.............................................................................................. 67 Tablas. .............................................................................................................. 76 Modelo entidad relacin en la aplicacin...................................................... 82 ELEMENTOS OPERACIONALES..................................................................... 88 Aproximacin al Job-Shop ............................................................................... 88 Sistema operacional.......................................................................................... 90

viii

4. LGICA DE LA APLICACIN ................................................................................ 95 4.1 4.2 4.2.1 4.2.2 4.2.3 4.3 CONCEPTOS TERICOS DE LA APLICACIN ............................................ 95 APLICACIN HPP-S ..................................................................................... 111 Preparacin pedido. ........................................................................................ 113 Scheduling. ..................................................................................................... 128 Control............................................................................................................ 143 INFORMACIN ADICIONAL PARA EL USUARIO. ................................... 149

CONCLUSIONES ............................................................................................................ 152 ANEXOS ........................................................................................................................... 156 ANEXO A. MANUAL DEL USUARIO ..................................................................... 156 Instrucciones de manejo rpido ................................................................................... 156 Datos ejemplo general.................................................................................................. 157 Ingreso de datos ejemplos particulares ........................................................................ 159 ANEXO B. CODIGOS................................................................................................. 163 Formularios en Access................................................................................................. 163 Modulo exportar a Excel.............................................................................................. 200 Modulo funciones de utilidad ...................................................................................... 207 Archivos Excel............................................................................................................. 208

ix

TABLA DE FIGURAS Pg. Figura 2-1. Figura 2-2. Figura 2-3. Figura 2-4. Figura 2-5. Figura 2-6. Figura 2-7. Figura 2-8. Figura 2-9. Figura 2-10. Figura 2-11. Figura 2-12. Figura 2-13. Figura 2-14. Figura 2-15. Figura 3-1. Figura 3-2. Figura 3-3. Figura 3-4. Figura 3-5. Figura 3-6. Figura 3-7. Figura 3-8. Figura 3-9. Figura 3-10. Sistema de Fabricacin................................................................................. 12 Sistema de Planeacin Jerrquico................................................................. 15 Configuracin continua. ............................................................................... 20 Configuracin por lotes enfocada al producto flow shop.......................... 22 Configuracin por lotes enfocada al proceso Job Shop............................. 23 Configuracin productiva de bienes. ............................................................ 23 Sistema de planeacin y programacin de operaciones en el corto plazo.... 24 Carga vertical................................................................................................ 29 Carga horizontal ........................................................................................... 30 Caso n/1 ........................................................................................................ 32 Caso n/1 continuo. ........................................................................................ 38 Mquinas paralelas ....................................................................................... 39 Mquinas paralelas continuo ..................................................................... 40 Caso n/2 ........................................................................................................ 43 Caso n/m ....................................................................................................... 44 Propiedades del objeto Botn de comando................................................... 54 Tablas relacionadas ...................................................................................... 59 Partes tabla.................................................................................................... 60 Botones de desplazamiento entre registros................................................... 63 Detalle subformularios ................................................................................. 65 Nivel 0. Planeacin de la produccin. .......................................................... 70 Nivel 1. Sistema de Planeacin Jerrquico................................................... 71 Nivel 2. Planeacin a corto plazo. ................................................................ 72 Nivel 3. Planeacin a Corto Plazo - Preparacin Pedido. ............................ 73 Nivel 3. Planeacin a Corto Plazo - Scheduling........................................... 74 x

Figura 3-11. Figura 3-12. Figura 3-13. Figura 3-14. Figura 3-15. Figura 3-16. Figura 3-17. Figura 3-18. Figura 3-19. Figura 3-20. Figura 3-21. Figura 3-22. Figura 3-23. Figura 3-24. Figura 3-25. Figura 3-26. Figura 4-1. Figura 4-2. Figura 4-3. Figura 4-4. Figura 4-5. Figura 4-6. Figura 4-7. Figura 4-8. Figura 4-9. Figura 4-10. Figura 4-11. Figura 4-12. Figura 4-13. Figura 4-14.

Nivel 3. Planeacin a Corto Plazo - Control. ............................................... 75 Relaciones producto ..................................................................................... 83 Relaciones pedidos ....................................................................................... 83 Relaciones control ........................................................................................ 84 Datos ruta P1 ................................................................................................ 85 Relaciones tiempo de suministro.................................................................. 85 Datos centros de trabajo ............................................................................... 86 Clculo tiempo de suministro....................................................................... 86 Carga por operacin y duracin.................................................................... 88 Barra de Men de la Aplicacin ................................................................... 91 Barra de Herramientas de la Aplicacin....................................................... 91 Barra de Men- Archivo y Edicin. ............................................................. 92 Barra de Men- Registros, Informacin y General. ..................................... 92 Barra de Men- Preparacin Pedido............................................................. 93 Barra de Men- Scheduling.......................................................................... 93 Barra de Men- Ventana y ?......................................................................... 94 Formularios en la aplicacin. ....................................................................... 96 Diagrama de ensamblado para el producto Silla........................................ 97 rbol Estructura del producto Silla. .......................................................... 99 Incidencia de los factores en la obtencin de una unidad........................... 104 rbol de Rutas para del producto Silla. ................................................... 106 Detalle relaciones entre paneles de control. ............................................... 112 Panel principal ............................................................................................ 113 Panel preparacin pedido............................................................................ 113 Formulario clientes..................................................................................... 114 Panel datos producto................................................................................... 115 Formulario productos ................................................................................. 115 Formulario partes/componentes ................................................................. 116 Formulario estructura producto. ................................................................. 117 Panel datos ruta........................................................................................... 118 xi

Figura 4-15. Figura 4-16. Figura 4-17. Figura 4-18. Figura 4-19. Figura 4-20. Figura 4-21. Figura 4-22. Figura 4-23. Figura 4-24. Figura 4-25. Figura 4-26. Figura 4-27. Figura 4-28. Figura 4-29. Figura 4-30. Figura 4-31. Figura 4-32. Figura 4-33. Figura 4-34. Figura 4-35. Figura 4-36. Figura 4-37. Figura 4-38. Figura 4-39. Figura 4-40. Figura 4-41. Figura 4-42. Figura 4-43. Figura 4-44.

Formulario centros de trabajo..................................................................... 118 Formulario detalle centros de trabajo. ........................................................ 119 Formulario mquinas paralelas CT............................................................. 120 Formulario hoja de ruta. ............................................................................. 121 Formulario rutas producto. ......................................................................... 122 Formulario pedidos..................................................................................... 123 Formulario cantidad requerida. .................................................................. 124 Formulario tiempo de entrega..................................................................... 125 Habilitar macros. ........................................................................................ 126 Programacin detallada en Excel. .............................................................. 127 Programacin detallada detalle inicio y fin operaciones. ........................ 127 Panel scheduling......................................................................................... 128 Panel Asignacin. ....................................................................................... 129 Formulario carga pedidos. .......................................................................... 130 Formulario carga operaciones. ................................................................... 131 Formulario control pedidos. ....................................................................... 132 Formulario cargas operaciones iniciadas.................................................... 134 Panel secuenciacin.................................................................................... 135 Formulario reglas de prioridad. .................................................................. 135 Reglas de prioridad en Excel. ..................................................................... 136 Formulario pedidos pendientes a la fecha. ................................................. 138 Formulario mtodo hngaro. ...................................................................... 139 Mtodo hngaro en Excel hoja de clculo asignar. ................................. 140 Mtodo hngaro en Excel hoja de clculo Hoja1.................................... 141 Formulario regla de Johnson. ..................................................................... 141 Johnson en Excel ........................................................................................ 142 Panel control. .............................................................................................. 143 Formulario produccin planeada................................................................ 144 Carga finita en Excel hoja de clculo cg_finita. ................................... 145 Carga finita en Excel hoja de clculo Hoja2......................................... 146 xii

Figura 4-45. Figura 4-46. Figura 4-47. Figura 4-48. Figura A-1. Figura A-2. Figura A-3. Figura A-4. Figura A-5.

Formulario produccin real. ....................................................................... 146 Formulario control input-output. ................................................................ 147 Control in-out en Excel. ............................................................................. 148 Formulario acerca de. ................................................................................. 149 Direccin para descomprimir Aplicacin HPP-S.exe ................................ 158 Instalacin terminada.................................................................................. 158 rbol de Estructura del producto P1........................................................ 160 Operaciones ruta P1. ................................................................................ 161 rbol de rutas del producto P1. ............................................................... 162

xiii

LISTADO DE CDIGOS Pg. Formularios en Access. .................................................................................................... 163 Formulario acerca de ...................................................................................................... 163 Formulario asignacin .................................................................................................... 163 Formulario cargas_operaciones_iniciadas...................................................................... 164 Formulario centro de trabajo .......................................................................................... 165 Formulario clientes ......................................................................................................... 167 Formulario componentes producto................................................................................. 167 Formulario componentes subformulario ........................................................................ 167 Formulario componentes1 subformulario ...................................................................... 169 Formulario componentes2 subformulario ...................................................................... 171 Formulario control input output ..................................................................................... 172 Formulario control operaciones...................................................................................... 173 Formulario control pedidos ............................................................................................ 174 Formulario control produccin....................................................................................... 175 Formulario control detalle pedidos iniciados ................................................................. 176 Formulario control operaciones...................................................................................... 177 Formulario control operaciones iniciadas....................................................................... 177 Formulario control pedidos iniciados ............................................................................. 177 Formulario control ruta................................................................................................... 178 Formulario ct .................................................................................................................. 179 Formulario entrega ......................................................................................................... 179 Formulario in out planificado ......................................................................................... 179 Formulario inicio ............................................................................................................ 180 Formulario johnson......................................................................................................... 181 Formulario lista materiales ............................................................................................. 181 xiv

Formulario lista rutas...................................................................................................... 182 Formulario mquinas...................................................................................................... 183 Formulario mquinas ct .................................................................................................. 184 Formulario operaciones ruta........................................................................................... 184 Formulario pedidos......................................................................................................... 186 Formulario pedidos pendientes....................................................................................... 187 Formulario pendientes a la fecha.................................................................................... 187 Formulario produccin planeada .................................................................................... 188 Formulario produccin real ............................................................................................ 189 Formulario rcomponentes subformulario ....................................................................... 189 Formulario rcomponentes1 subformulario ..................................................................... 191 Formulario rcomponentes2 subformulario ..................................................................... 192 Formulario regla de Johnson .......................................................................................... 193 Formulario reglas prioridad ............................................................................................ 194 Formulario rproductos .................................................................................................... 194 Formulario rutas iniciadas .............................................................................................. 196 Subformulario control detalle pedido ............................................................................. 196 Subformulario control pedidos ....................................................................................... 197 Formulario switchboard.................................................................................................. 197 Formulario tipo ............................................................................................................... 200 Formulario unidades ....................................................................................................... 200 Modulo exportar a Excel.................................................................................................. 200 Function Exportar_Prioridades() .................................................................................... 200 Function Exportar_In_Out() ........................................................................................... 202 Function Exportar_Johnson() ......................................................................................... 203 Function Exportar_Asignacin() .................................................................................... 204 Function Exportar_Programa_Detallado() ..................................................................... 205 Function Exportar_FINITA() ......................................................................................... 206 Modulo funciones de utilidad .......................................................................................... 207 Function estcargado(ByVal txtNombreFormulario As String) As Boolean................. 207 xv

Function Verventanabasededatos()................................................................................. 207 Function salir() ............................................................................................................... 207 Function cerrar() ............................................................................................................. 208 Archivos Excel .................................................................................................................. 208 Prioridades.Xls ............................................................................................................... 208 Asignacin.Xls ............................................................................................................... 208 Johnson.Xls..................................................................................................................... 216 Detallada.Xls .................................................................................................................. 222 Carga_Finita.Xls............................................................................................................. 224 In-out.Xls........................................................................................................................ 227

xvi

INTRODUCCIN

El presente proyecto est direccionado a diversificar herramientas para aumentar la productividad en empresas, especficamente en PYMES, las cuales van abarcando ms y ms los campos econmicos de productividad en nuestra regin, permitiendo el movimiento de la economa nacional.

Es preciso que los nuevos avances tecnolgicos en el campo de la sistematizacin no se restrinjan a grandes empresas, como hasta el momento viene ocurriendo, ya que por los altos costos del software especializado, las pequeas empresas no cuentan con herramientas ms prcticas para controlar de manera mas acertada su productividad.

Nuestro propsito se enfoca en crear una herramienta funcional y econmica que permita una mejor programacin del sistema propio de una PYME en cuanto a controles de productividad se refiere, esto es, teniendo en cuenta que la productividad es un factor que depende mucho de: los tiempos de planeacin, de toma de decisiones, de aprovechamiento de mano de obra y maquinaria, fecha de entrega de pedidos, cumplimiento de contratos, etc., y es en este sentido en el cual contar con herramientas de sistematizacin como la que hemos diseado, se orienta a mejorar el aprovechamiento del tiempo, y a realizar una

programacin ms precisa ejerciendo el control adecuado para una adecuada utilizacin de los recursos.

Fundamentamos la realizacin de este proyecto en el desarrollo de una aplicacin dirigida a manejar de forma integral la planeacin de la produccin en el corto plazo en PYMES del sector de manufactura con el propsito de facilitar la toma de decisiones en tiempo real bajo el sistema de planeacin jerrquica.

Hemos estructurado el proyecto en captulos que permiten dar mayor claridad a cada una de las partes que forma la aplicacin HPP-S desarrollada. En ellos abarcamos los preliminares del proyecto, sus objetivos, justificacin y enmarcamos los temas propios de la planeacin a corto plazo, mencionando los elementos informaticos usados en la lgica de la aplicacin; describimos la razn terico-prctica de la herramienta creada y de forma detallada el funcionamiento, su estructura, finalidad y manejo.

1. PRELIMINARES

CAPTULO 1. ANTEPROYECTO.

1.1

OBJETIVOS

General. Disear una herramienta informtica en hoja electrnica que permita realizar la planeacin a corto plazo en PYMES con fabricacin por lotes o series cortas, en sistemas de planificacin jerrquicos.

Especficos. Proporcionar un programa informtico con el cual se puedan hacer pruebas de sensibilidad sobre la actividad de produccin, para determinar su incidencia en la programacin normal. Disear una herramienta sencilla, fcil de entender, flexible y dinmica para la realizacin de la programacin permitiendo la optimizacin de los recursos utilizados con miras a cumplir las necesidades de produccin. Realizar un programa robusto que permita evaluar para determinadas condiciones de trabajo diferentes opciones en su programacin, ofreciendo as informacin rpida para la toma de decisiones. Reunir informacin precisa y controlada sobre aspectos que comprometen la fabricacin por lotes o series cortas y usar sta informacin bajo criterios de 3

rendimiento y aprovechamiento de los recursos limitados en empresas de manufactura para hacer ms efectiva la terminacin de los pedidos en las fechas ofrecidas al cliente. Crear un programa que permita el control de la informacin generada en la ejecucin de las operaciones para conocer el estado de los centros de trabajo, su eficiencia y utilizacin. Disear un sistema o interfaz de control de las rdenes de produccin que permita tener actualizado por operacin, y periodo de tiempo, la realizacin de las diferentes rdenes de produccin.

1.2

HIPTESIS DEL TRABAJO

Las PYMES manufactureras requieren de una herramienta informtica de planeacin a bajo costo y flexible que integre su sistema productivo permitindoles ser ms competitivas. El poco seguimiento que se hace a las rdenes durante el proceso de manufactura limita a las PYMES para dar una rpida reaccin a los cambios eventuales en las demandas, por la escasa informacin que se tiene al momento de la toma de decisiones.

Sistematizar la planeacin de la produccin ofrece a las PYMES entrar a competir con tiempos de entrega seguros, satisfaccin alta de las necesidades de los clientes, conocimiento interno de las capacidades y nivel de flexibilidad de sus instalaciones.

1.3

JUSTIFICACIN

La importancia que ha tenido para el mundo empresarial el conocimiento adecuado en el tratamiento de la funcin de las operaciones, ha permitido que diversos autores enfoquen sus investigaciones hacia esta disciplina, brindando mtodos e instrumentos para la planeacin de la produccin bajo una serie de condiciones bsicas con el objetivo de optimizar el uso de recursos en la satisfaccin de las necesidades de los clientes.

En la actualidad existen gran variedad de modelos y programas para dar mejores soluciones al problema de la toma de decisiones en la planeacin de la produccin; por tanto pretendemos adecuar estos modelos y programas existentes a una aplicacin informtica que funcione de manera fcil, dinmica y precisa sobre hojas de calculo apoyadas en una base de datos, para ser implementada en una pequea o mediana empresa a fin de aumentar su rendimiento partiendo del principio de que entre mayor informacin se maneje de los procesos a realizar es mayor la oportunidad de optimizarlos.

Dentro del sistema manufacturero nos centramos particularmente en las PYMES. Para el ao 2000 es considerada pequea y mediana empresa la unidad econmica cuyo nivel de activos fiscales a diciembre de 1999 estuviera entre $135 millones y $3335 millones y que ocupen entre 11 y 199 empleados segn la ley 78 de 1998,1 por ser stas las que

Qu es una Pyme?. http://www.ifi.gov.co/htm/crpymeque.htm

contribuyen a dinamizar la economa (generacin del empleo 15%)2, adems representan el 15.75% del total de empresas registradas en la Cmara de Comercio de Cali en 1998.

Dentro de stas seleccionamos las de sistema productivo por lotes o series cortas que representan los mejores beneficios potenciales al aplicar modelos de produccin integrada que por su volumen y variedad mediana requieren de gran flexibilidad.

Como las hojas electrnicas han aumentado su popularidad por su sencilla implementacin3 la herramienta informtica se realizar con una base de datos vinculada a hojas electrnicas por la gran facilidad de aplicacin prctica y adaptabilidad a los escenarios del mercado, generando informacin de apoyo en la toma de decisiones y mejor utilizacin de los recursos productivos.

Los costos de implementacin en hoja electrnica son bajos comparados con las inversiones en software para la planificacin de la produccin, tales como: el programa computacional (MAX) que tiene un costo promedio de US$ 9.500 para un fabricante pequeo o mediano con todos los mdulos de manufactura y contabilidad, pero los requisitos especficos pueden modificar los costos desde US$ 550 hasta US$ 33.200 para

2 3

Registro mercantil. Cmara de comerci de Cali, Separata (Jun. 1999) SIPPER, Daniel y BUFFIN, L. Robert. Planeacin y control de la produccin. Mexico : Mc Graw Hill, 1998. p. 91, 189, 215.

un paquete multiusuario4, o el sistema de SAP R/3, que es una solucin ERP (Planeador de Recursos Empresariales) cuya inversin puede representar entre 2 y 10 millones de dlares.5

Acorde con los objetivos de la produccin se busca dar una herramienta al programador de la produccin para la solucin de situaciones no determinsticas que alteran la realizacin o modifican la secuenciacin de las rdenes de produccin en la planta. Con esto, el programador podr analizar varias alternativas de programacin en poco tiempo para ver su impacto sobre la forma de produccin y el logro de las fechas previamente determinadas y comprometidas con los clientes, permitindole a la empresa ser ms competitiva.

CHASE, Richard B. y AQUILANO, Nicolas J. Direccin y administracin de la produccin y de las operaciones. 6 ed. Mexico : Mc Graw Hill, 1995, p. 725

La revolucin de los ERP. En : Dinero. No. 90 (Ago 13 1999), p. 90

2. MARCO DEL PROYECTO

CAPTULO 2. MARCO DEL PROYECTO.

2.1

MARCO DE REFERENCIA.

En el mercado podemos encontrar varios programas para la planeacin a corto plazo en las empresas, los cuales ofrecen cada uno una estructura y forma de trabajo diferente. Software como: ERP/MRP Systems6, Obvious Professional Services7, pc/MRP8, Solid State Software, Inc. Software for Manufacturing (ERP/MRP) Planning and Control9 y Merlin MRP Software10, entre otros. Programas en su mayora en otro idioma cuya complejidad podra limitar al programador para obtener una mxima utilizacin.

Sin duda, uno de los aspectos ms trascendentales para la mayora de las empresas manufactureras, por su repercusin en los costos de produccin y los plazos de fabricacin, es la gestin de materiales y en especial la programacin y control de las actividades de

6 7 8

ERP/MRP Systems. http://cmit.edi.gatech.edu/cmit/ERPMRP.htm Obvious MRP for Windows. http://www.obviousmrp.com/ Pc/MRP the complete Windows MRP Accounting and Inventory Control Software Package with ISO9000 report. http://www.midwesterngallery.com/pcmrp/index.htm

9 10

Solid State Software : Software for MRP/ERP, Accounting and Distribution. http://www.sssoft.com/ Merlin MRP Manufacturing Software. http://www.merlinsys.co.uk/

produccin, pues estn en juego el nivel de confianza que tengan los clientes con respecto a las fechas ofrecidas, la capacidad de produccin y la calidad de los productos elaborados.

Existen paquetes para programacin de la produccin en abundancia. Esos paquetes van desde software para computadora de dominio pblico hasta aplicaciones hechas a la medida que cuestan millones de dlares. Debe tenerse cuidado al comprar un paquete, ya que las utilidades varan mucho.

Algunos paquetes de software proporcionan al usuario la posibilidad de cambiar o ajustar los programas. Los ms elaborados permiten tomar e insertar operaciones en la misma grfica de Gantt; stos requieren interfaces de usuario (grficas) complejas. Los paquetes menos costosos permiten hacer cambios en los tiempos de inicio y terminacin de los trabajos. De la mano con la evaluacin del programa, los ajustes permiten al usuario hacer un anlisis sencillo de que pasa s.

Los paquetes ms avanzados generan los programas de produccin, pero muchos de ellos no son muy buenos. El paquete puede generar un solo programa, varios programas o el mejor de un subconjunto de programas. Las reglas de despacho simples, como FIFO pueden producir un programa. Al usar varias reglas de despacho se pueden generar varios programas; despus el usuario elige uno o el paquete solo le muestra el mejor. Se pueden usar heursticos ms avanzados para generar un programa. Como la programacin es difcil, el enfoque debe hacerse a la medida del problema que se tiene; un enfoque complejo equivocado puede ser peor que las reglas de despacho sencillas. 9

Para sistemas de produccin complicados (como una planta grande de produccin intermitente), puede ser necesaria una simulacin del programa. Al someter a prueba el programa con simulacin se pueden examinar muchos factores no considerados en las decisiones de programacin. Los paquetes que simulan la planta son costosos, por lo general, superan los 30.000 dlares.11

Tambin existen paquetes educativos de programacin. Morton y Pentico (1993) ofrecen el software, Parsifal con su libro; Parsifal resuelve la mayor parte de los modelos de programacin; puede usar varios heursticos para modelos de una sola mquina, mquinas paralelas, produccin continua y produccin intermitente. Dispone de varios algoritmos generales, incluyendo simulacin de recosido. Su desempeo es bastante bueno para muchos problemas pequeos, y es posible que pueda incorporarse a un sistema de programacin. QS: Quantitative Systems (Chang - 1995) es un software general que realiza programacin de produccin continua e intermitente. Se pueden usar muchos de los heursticos para produccin continua y la mayora de las reglas de despacho se encuentran disponibles.

11

SIPPER y BUFFIN, Op cit., p. 467-469

10

2.2

MARCO CONCEPTUAL.

Los modelos referentes a la planeacin de la produccin que se desarrollarn dentro de este proyecto de estudio se aplicarn en hoja electrnica tomando la informacin desde una base de datos, dado que permiten cambiar muchas variables y crear diferentes combinaciones para determinar los efectos de situaciones particulares.

Con anterioridad se ha venido aplicando la simulacin de la planeacin en hoja electrnica. Los precursores del enfoque de hoja de clculo son los mtodos tabulares y grficos que aparecieron en la literatura alrededor de 1960. Estos han sido utilizados en la industria durante varios aos y cada vez ms toman mayor importancia gracias al desarrollo de los computadores personales y a la adaptabilidad de la hoja electrnica al medio dinmico.12

En la planeacin de la produccin se deben crear alternativas que resuelvan el problema de nivelar la produccin con las demandas fluctuantes. Las alternativas se pueden desarrollar en hoja electrnica de manera sencilla y con fcil implementacin13, de tal modo que se puede o no obtener la solucin ptima, pero si se puede proporcionar soluciones flexibles para ser usadas14.

12 13

HEIZER, Jay y RENDER Arry. Direccin de la produccin. Madrid : Mc Graw Hill, 1997. p. 144-145 NOORI, Hamid y RADFORD Rusell. Administracin de operaciones y produccin. Santaf de Bogot : Mc Graw Hill, 1997. p. 43, 267, 457

14

SIPPER, y BUFFIN. Op cit p. 180-181

11

El proyecto parte de conceptualizar los sistemas de fabricacin y entre ellos, en especial, los de produccin por lotes y series cortas. Esto significa revisar conceptos tales como gerencia de operaciones, sistemas de organizacin de la produccin, etc. Adems de estudiar herramientas para el anlisis y diseo de sistemas en ambientes de fabricacin, las cuales se usan para implementar una aplicacin informtica para la planeacin de la produccin en ambientes MRP.

La manufactura de productos en el mundo industrial moderno requiere de un esfuerzo coordinado y combinado de gente, mquinas y equipos. As, un sistema de fabricacin puede ser definido como una combinacin de mano de obra, maquinaria y equipos, comprometidos en un flujo comn de materiales e informacin.

Figura 2-1.

Sistema de Fabricacin.

Las entradas son la materia prima y la energa. La informacin es tambin una entrada al sistema y lo hace en forma de demanda de los clientes por los productos de dicho sistema. Las salidas podran dividirse en materiales como bienes terminados, desperdicios, e informacin, es decir medidas de rendimiento del sistema. (Ver Figura 2-1)

12

En general, el estudio de los sistemas de fabricacin puede ser conceptualizado como la transformacin de los requerimientos de rendimiento (performance) de un sistema de fabricacin, expresados por valores de ciertas medidas de desempeo, en valores apropiados de variables de decisin, que describan el diseo fsico o la manera de operar del sistema.15

Aunque hay conceptos de uso generalizado en el ambiente de la planeacin de la produccin para las empresas de manufactura, no ocurre lo mismo con los nombres a los cuales se asocian esos conceptos, presentndose as falta de homogeneidad en los trminos usados por los diferentes autores al momento de desarrollar cada uno sus temas. Para hacer claridad en los conceptos y trminos que sern manejados en la realizacin de este proyecto se presentan a continuacin los trminos haciendo referencia al concepto que se le asocia, as como a los otros nombres ms conocidos con los cuales es manejado.

2.2.1

Planeacin jerrquica de la produccin

Como la planeacin de la produccin en las empresas manufactureras, se ha enmarcado dentro de una estructura de largo, mediano y corto plazo. Harlan Meal utiliza el termino planeacin jerrquica de la produccin (Hierarchical Production Planning - HPP) para ajustar la estructura de planeacin a la organizacin.16 Este sistema jerrquico de la

15

MOTOA, T. Gerardo. Algunos apuntes sobre el uso de la simulacin en el diseo de sistemas de fabricacin. Madrid junio 1994. Disam. Universidad Politcnica de Madrid.

16

HARLAN, C Meal, Putting production decisions where they belong Harward Business Review 62, N 2 marzo-abril 1984, pp-102-11.

13

produccin es uno de los enfoques para el anlisis que se basa en los conceptos de desglose que puede adaptarse a muchas empresas con lo que se convierte en una herramienta til para los directivos en sus labores. El enfoque incorpora una filosofa de ajuste de los agregados del producto a los niveles de toma de decisiones de la organizacin.17

Principios de este sistema de planeacin jerrquico son: el desglose que debe seguir las lneas de la organizacin, otro es, proporcionar la informacin al nivel apropiado de agregacin para la decisin. Tambin, es necesario programar slo el tiempo de preparacin que se requiere para las decisiones a tomar; esto significa que pueden hacerse los planes detallados para periodos tan cortos como el tiempo de preparacin en la fabricacin.

En general, existen cuatro elementos que pueden dar origen a construir la jerarqua: tiempo, estado, informacin y criterios de evaluacin.18 Las jerarquas no se construyen respecto a uno solo de tales elementos. En muchos casos, tiempo y estado (de agregacindescomposicin de las actividades y sus atributos) se consideran simultneamente usando por ejemplo, en el nivel superior escalas de tiempo gruesas y estados ms agregados que en el nivel inferior. Adicionalmente, se toman diferentes criterios de evaluacin (dentro del problema de toma de decisiones), optimizando el ms importante en el ms alto. Con

17 VOLLMANN, Thomas E. Sistemas de planificacin y control de la fabricacin. 3 ed. Espaa : Irwin, 1994. p. 643.
18

MOTOA, T. Gerardo. Sistemas de Planificacin Jerrquicos: Aplicaciones a la gestin de produccin y de proyectos. Cali. Escuela de ingeniera industrial y estadstica. Universidad del Valle. p. 12

14

relacin a la informacin, cada nivel posee situaciones y tipos diferentes de informacin en funcin de sus propios requerimientos.

Las decisiones de los diferentes niveles en el proceso de planificacin se toman en diferentes momentos en el tiempo. Cada nivel de la jerarqua tiene asociado un horizonte de tiempo y no hay esquema universalmente aceptado en cuanto a su definicin. El nmero de horizontes puede cambiar dependiendo de la perspectiva o inters de quien los propone y del sistema de produccin que se quiera atender.

Figura 2-2.

Sistema de Planeacin Jerrquico

El proceso despus de la adquisicin de instalaciones y equipo aplica las previsiones de la demanda al sistema (Ver Figura 2-2). Los pronsticos a largo plazo ayudan a los directores a tratar con los problemas de capacidad y estrategia que son responsabilidad de la alta gerencia. La direccin se plantea preguntas relacionadas con la poltica a seguir, como la

15

situacin y expansin de las instalaciones, el desarrollo de nuevos productos, la financiacin de la investigacin y las inversiones de capital durante un periodo de varios aos.

Una vez tomadas las decisiones de capacidad a largo plazo, los directores de operaciones pasan a efectuar la planificacin a medio plazo para alcanzar los objetivos de la empresa. Las decisiones de programacin tctica suponen crear planes mensuales o trimestrales, que resuelvan el problema de emparejar la productividad con las demandas fluctuantes. Todos estos planes necesitan ser consistentes con la estrategia a largo plazo de la alta direccin y trabajar con los recursos asignados por decisiones estratgicas anteriores. El corazn de la planificacin a mediano plazo es el plan de produccin agregada.

En esta fase de la planificacin agregada, se toman decisiones con respecto a la utilizacin de las instalaciones, inventario, la gente y los contratistas externos. Despus el programa maestro descompone el plan agregado y desarrolla un programa completo de los productos.

La planificacin a corto plazo se extiende hasta un ao, pero normalmente es menor de tres meses. Los directores de operaciones hacen estos planes en unin con los jefes de planta quienes desagregan el plan a mediano plazo en programas semanales, diarios y por horas. Los mtodos para efectuar la planeacin a corto plazo traducen las decisiones de capacidad, la planificacin intermedia y los programas maestros en: asignacin, secuenciacin, programacin detallada y control

16

Este enfoque jerrquico permite la coordinacin entre los objetivos, planes y actividades de los distintos niveles largo (estratgico), mediano (tctico) y corto plazo (operativo), cumpliendo cada uno sus propias metas, pero teniendo siempre en cuenta las del nivel superior, de las cuales dependen, y las del nivel inferior, a las que restringe. Sin dicho enfoque seria difcil, cuando no imposible, llegar a la integracin de las funciones.19

En cualquier caso, lo que se pretende es subdividir el problema en niveles de jerarqua de acuerdo con los diferentes grados de agregacin, con la intencin de hacer ms tratable el problema. Resultado de las caractersticas de la planeacin jerarquizada es la relativa independencia de decisiones. Decisiones de alto nivel pueden usualmente ser hechas sin tomar en cuenta futuras decisiones de bajo nivel. Las decisiones agregadas de nivel superior, por ejemplo, con relacin a la carga en mano de obra no dependen de las decisiones detalladas relacionadas con el tamao de los lotes. En sentido contrario, decisiones con relacin al tamao del lote se pueden tomar cuando la informacin sobre requerimientos de materiales est disponible y estarn restringidas por los lmites de horas fijadas en la decisin anterior.

Una de las claves de efectividad de estos procesos es la simplicidad de la toma de decisiones en cada nivel, y la siempre necesaria existencia de un sistema de apoyo para la toma de decisiones (Decision Support Systems - DSS).20

19

MACHUCA DOMNGUEZ, Jos Antonio et al. Direccin de operaciones : Aspectos tcticos y operativos en la produccin y los servicios. Espaa : Mc Graw Hill, 1995. 8 p.

20

MOTOA, Sistemas de Planificacin Jerrquicos , Op cit., p. 8.

17

2.2.2

Planeacin a corto plazo

Una vez obtenido el plan de requerimientos de materiales (MRP) que establece las cantidades o lotes de cada subcomponente, componente y producto final; en cada momento del horizonte de tiempo. Se realiza la ejecucin en las instalaciones productivas, tarea de la planeacin a corto plazo.

El Scheduling o planeacin a corto plazo especfica la carga de trabajo de acuerdo a las rdenes emitidas en el mediano plazo, controlando las operaciones y ajustando la capacidad del sistema para asegurar que se cumplan los requerimientos del programa maestro de produccin.21 Este plan determina el tiempo en que se hace un producto en particular en una mquina especfica; los momentos de comienzo y fin de las actividades de cada centro de trabajo, as como las operaciones de cada orden para la secuencia realizada. Las unidades manejadas en este nivel pueden ser productos especficos y la capacidad estar restringida por las horas disponibles en una mquina dada.

Los planes de requerimientos de materiales MRP- adems establecen los requerimientos de capacidad asociados. Es evidente que van a existir divergencias entre lo planificado y los resultados de la ejecucin; hacindose necesario en el corto plazo controlar los mltiples aspectos de la actividad diaria: unidades realmente obtenidas tras las operaciones, cantidad de defectuosos, la eficiencia y utilizacin de los Centros de Trabajo - CT (bsicos para

21

CHASE, y AQUILANO, Op cit., p. 757.

18

medir la capacidad de cada uno de ellos en horas estndar), las fechas de entrega, los tiempos de suministro, la evolucin de las colas de espera y, con ellas, la adecuacin de las capacidades y cargas planificadas a las reales, etc. Solo as ser posible detectar las divergencias significativas entre los valores planificados y los reales, con base en los cuales se adoptarn las medidas correctoras necesarias, que retroalimentarn a los distintos niveles del sistema.22

Esta planeacin nos permite visualizar la programacin de piezas componentes basada en la estructura del producto, con programacin de componentes para subensambles y a su vez, subensambles que sirven para el ensamble final del producto.

El conjunto de rdenes en curso de fabricacin y las rdenes planificadas, cuyas fechas de emisin estn incluidas en el horizonte de planificacin considerado, sern objeto de la programacin de operaciones. Esta funcin tiende a determinar que operaciones se van a realizar sobre las distintas rdenes, durante cada momento del horizonte planificado, en cada Centro de Trabajo (CT), de tal forma que, con la capacidad disponible en cada uno de ellos, se cumplan las fechas de entrega planificadas, empleando el menor volumen de recursos e inventarios posibles. En cuanto al horizonte de planificacin, ste depender de las caractersticas del proceso productivo y su entorno, pudiendo variar entre unas horas y varias semanas.23

22 23

MACHUCA DOMNGUEZ. Op cit., p. 292. Ibid., p. 295.

19

El desarrollo de la programacin con lleva a variar notablemente en funcin del tipo de configuracin productiva. Dado que existen varias clasificaciones de las configuraciones productivas propuestas por diferentes autores. Nos apoyamos en la clasificacin que realiza Machuca24 en funcin de la continuidad en la obtencin del producto: continua, lotes y proyectos.

Configuracin continua. Cuando se obtiene siempre el mismo producto en la misma instalacin. Cada CT, mquina o equipo est acondicionado para realizar siempre la misma operacin y preparado para aceptar de forma automtica el trabajo que le es suministrado por un CT, mquina o equipo precedente, que esta en igual condicin para alimentar a la mquina que le sigue.

Figura 2-3.

Configuracin continua.

24

MACHUCA DOMNGUEZ, Jos Antonio et al. Direccin de operaciones : Aspectos estratgicos en la produccin y los servicios. Espaa : Mc Graw Hill, 1995. p. 143

20

La configuracin continua hace la programacin ms elemental pues las nicas actividades desarrolladas aqu son las encaminadas a ajustar el ritmo de produccin. Ejemplo es la produccin masiva donde un producto pasa por los mismos centros de trabajo en grandes cantidades, (Ver Figura 2-3)

Configuracin productiva por lotes. El hecho diferenciador que distingue sta configuracin est en que utiliza las mismas instalaciones para la obtencin de mltiples productos, de forma que, una vez obtenida la cantidad deseada para uno de ellos, se procede a ajustar la instalacin y a procesar otro lote de producto, repitindose continuamente esta secuencia. No obstante, en funcin del tamao de los lotes obtenidos, de la variedad y homogeneidad de los productos fabricados y de las caractersticas de los procesos seguidos, nos podemos encontrar dos tipos de configuraciones.25

En esencia cuando se trata de fabricacin de grandes lotes de pocos productos diferentes pero tcnicamente homogneos, que utilizan las mismas instalaciones, se trata de Configuracin en lnea o configuracin por lotes enfocada al producto. Productos cuyo proceso de obtencin en el CT requieren una secuencia similar de operaciones. Procedindose a ajustar los CT o mquinas tras fabricar un lote para elaborar otro distinto.

En la configuracin por lotes enfocada al producto o flow shop hay pocos productos, lotes homogneos de tamao mediano, pasan por los mismos centros de trabajo con diferentes

25

Ibid., p. 143.

21

valores de utilizacin, adecuacin y alistamiento. Programacin que implica secuenciacin de las rdenes para dar respuesta a la pregunta cul hacer primero? (Ver Figura 2-4.)

Figura 2-4.

Configuracin por lotes enfocada al producto flow shop

En la configuracin Job Shop se producen lotes ms o menos pequeos de una amplia variedad de productos de poca o nula estandarizacin (son a medida o con muchas opciones personalizadas), emplendose equipos de escasa especializacin, los cuales suelen agruparse en talleres o centros de trabajo a partir de la funcin que desarrollan; estos equipos suelen ser verstiles y permiten ejecutar operaciones diversas, por lo que puede alcanzarse una amplia variedad de output.26

La configuracin por lotes enfocada al proceso o job shop fabrica bajo pedido para lotes de tamao pequeo, hay gran variedad de productos y componentes. Programacin donde hay asignacin respondiendo a: dnde procesar? y secuenciacin cul hacer primero?. (Ver Figura 2-5.)

26

MACHUCA DOMNGUEZ, Jos Antonio et al. Aspectos estratgicos en la produccin y los servicios,
Op cit., p. 144

22

Figura 2-5.

Configuracin por lotes enfocada al proceso Job Shop

La configuracin por proyectos es la que se emplea para la elaboracin de productos nicos y de cierta complejidad que se obtienen a partir de la coordinacin en el uso de unos inputs que suelen ser de gran tamao. La programacin se da bajo modelos como el PERT / CPM.

Figura 2-6.

Configuracin productiva de bienes. 23

La figura 2-6 muestra la relacin entre las configuraciones productivas y el nmero de productos de una empresa.

Para el tipo de configuracin al cual se enfoca el presente trabajo configuracin por lotes enfocada al producto o flow shop en el corto plazo se tienen en el caso ms complejo las siguientes actividades: asignacin, secuenciacin, programacin detallada y control. (Ver Figura 2-7.)

Figura 2-7.

Sistema de planeacin y programacin de operaciones en el corto plazo.

Asignacin Es el direccionado especfico de rdenes a cada Centro de Trabajo (CT) durante el periodo de planeacin. Cada trabajo debe tener sus especificaciones nicas de productos y, por

24

tanto, su hoja de ruta o trayectoria a travs de los diversos centro de trabajo dentro de las instalaciones. A medida que las nuevas rdenes de trabajo pasan a proceso, se asignan o dirigen entre los CT, establecindose as la parte de la carga que le corresponde a cada uno de stos durante el periodo inmediato de planeacin.

Secuenciacin. Esta etapa establece las prioridades para los trabajos en las colas de espera en los centros de trabajo, la secuencia de prioridad especfica el orden en el cual son procesados los trabajos pendientes.

Programacin detallada. Las fechas especifican cuando hay que efectuar las rdenes de trabajo, emplear los materiales (insumos), as como los trabajos terminados (productos) que deben estar disponibles en cada CT. Los detalles sobre fechas y tiempos en general no se especifican hasta que no se hayan terminado la asignacin y la secuencia.

Al calcular la duracin de los procesos y las fechas establecidas para todos los trabajos, los programadores pueden establecer sus fechas de inicio y de terminacin, y disear as el programa detallado.

Control Es el seguimiento que se realiza al avance de los trabajos por las instalaciones, permite coordinar las acciones especiales requeridas por un trabajo en particular para que ste 25

transite por los CT a tiempo, solucionando las interrupciones generadas en las operaciones de manufactura: fallas de equipos, falta de disponibilidad de los materiales y cambios de ltimo momento en las prioridades, que ocasiona desviaciones en los planes y los programas de produccin.

Control Input Output (Capacidad a corto plazo) Es el seguimiento que se realiza a los centros de trabajo. Los planes y los programas de produccin implican ciertos niveles de capacidad y produccin para un centro de trabajo, pero su utilizacin real puede diferir de lo planeado. El control de la capacidad (informe input-output) pretende gestionar y controlar la capacidad de los CT y reconocer las desviaciones significativas, proporcionando asi la informacin necesaria para tomar las medidas correctoras oportunas y hacer ajustes en la utilizacin para alcanzar los niveles deseados.

2.2.3

Programacin enfocada a la carga

La carga significa la asignacin de tareas a cada Centro de Trabajo (CT) o proceso. Los directores de operaciones asignan trabajo a los centros de trabajo de tal forma que los costos, el tiempo ocioso o los tiempos de terminacin se mantengan en un mnimo.27 En la actualidad hay dos enfoques bsicos que son la carga infinita y la carga finita.

27

HEIZER, y RENDER , Op cit., p. 208.

26

Carga infinita. Una caracterstica que distingue a un sistema de programacin de otro es la manera como se considera la capacidad al determinar el programa. Los sistemas de programacin pueden utilizar una carga infinita o finita.

La carga infinita se presenta cuando la tarea ha sido asignada a un CT sin tener en cuenta su capacidad, la carga que proviene del programa de produccin se distribuye en los centros de trabajo como si su capacidad fuera ilimitada.

Las reglas de secuencia prioritaria (como su nombre lo indica determinan que trabajo debe procesarse a continuacin), no reconocen las capacidades de los centros de trabajo ni otras tareas programadas, por esta razn estas reglas se emplean con tcnicas de planificacin de capacidad basadas en cargas infinitas.28 Otros modelos que usan este enfoque de programacin son: la regla de Johnson y el algoritmo de Kuhn.

Grafica de Gantt. La grfica de Gantt til para la carga o programacin, es una herramienta visual para establecer la secuencia de los trabajos que sern procesados en un centro de trabajo o en una serie de mquinas as como para vigilar su avance a travs de todas ellas. Teniendo como variables los CT o mquinas, y el tiempo de proceso, proporcionando facilidad y claridad en la comunicacin con el taller de trabajo, sealando la necesidad de reasignacin

28

VOLLMANN, Op cit., p. 181.

27

de recursos cuando la carga en cualquier centro de trabajo es demasiado grande para el caso de carga finita.

El propsito de la grfica es desplegar el estado de cada recurso, casi siempre centros de trabajo o tiempo extra, en todo momento. El eje x representa el tiempo y el eje y consiste en una barra horizontal para cada mquina. Las grficas de Gantt tambin se pueden construir colocando trabajos en lugar de mquinas en el eje y.29

Esta permite representar el desarrollo de las diferentes operaciones a realizar de cada lote en cada CT en funcin del tiempo, aprecindose adems, la coordinacin de las secuencias, las colas de espera y los tiempos ociosos.

Tiene como ventajas la facilidad y claridad en la comunicacin con el taller de informacin importante. Sin embargo, tiene algunas limitaciones importantes. Como la grfica es un dispositivo de carcter determinista, no maneja la variabilidad de la duracin: de las actividades, de los equipos (incluyendo fallas), del tiempo que trabajan las personas y averas inesperadas o errores humanos que requieran una repeticin del trabajo, cualquiera de las cuales puede hacer que el clculo de la carga estimada sea impreciso. Tambin la grfica es esttica y debe de actualizarse en forma peridica para que pueda incluir la

29

SIPPER y BUFFIN, Op cit., p. 404

28

llegada de nuevas rdenes de trabajo y los clculos de tiempo que hubieran sido revisados para los trabajos existentes.30

Carga finita. El sistema de carga finita simula el inicio y final de las cargas de trabajo reales para producir un programa detallado de cada orden a cada centro de trabajo; es decir, lo que la carga finita hace, en realidad, es cargar todas las tareas en los centros de trabajo necesarios a lo largo del horizonte de planificacin. El resultado es un conjunto de fechas de inicio y fin para cada operacin en cada centro de trabajo. Este programa se basa en los lmites de capacidad de cada centro de trabajo, estableciendo explcitamente un programa detallado para cada tarea a travs de CT, basndose en sus capacidades y las otras tareas programadas.

Figura 2-8.

Carga vertical

30

EVERETT, E. Adam. Jr, y RONALD, J. Ebert. Administracin de la produccin y las operaciones. 4 ed. Mexico : Prentice Hall, 1994. p. 455.

29

Dos enfoques para asignar la carga del MRP en la planta son: la carga vertical (por centros de trabajo) y la carga horizontal (por pedidos)

La carga vertical consiste en llenar cada CT operacin por operacin donde el recurso crtico que se programa es el CT. (Ver Figura 2-8). Cuando se determina que un centro de trabajo a quedado libre, se selecciona el trabajo siguiente teniendo en cuenta prioridades establecidas para los trabajos a ser realizados a continuacin en el CT. las

De esta forma se puede decidir si empezar otro trabajo ya ejecutable al objeto de no dejar ocioso el CT. Siguiendo as para todos los pedidos en este CT, establecindose el programa de operaciones que va ha desarrollarse durante las horas de cada da. Esta forma de asignacin tambin es conocida como aproximacin vertical.

Figura 2-9.

Carga horizontal

La carga horizontal o por pedidos toma los pedidos completos por orden de prioridad, asignndose la carga de sus operaciones a todos los CT por los que ha de pasar, en su momento correspondiente, despus el siguiente pedido con mayor prioridad, y as sucesivamente. (Ver Figura 2-9.) 30

Este enfoque horizontal puede estar en contra del criterio de usar un CT a su mxima capacidad, la creacin de programas detallados con carga horizontal puede dar como resultado neto huecos de capacidad para un CT. Esto implica que en ocasiones una mquina este inactiva an si esta disponible otra tarea, porque este por llegar otra tarea ms importante.

Ya sea en la carga horizontal o en la carga vertical, existe siempre la decisin de que tarea programar a continuacin para un CT.

Una caracterstica de los sistemas de programacin es si esta se genera hacia adelante o hacia atrs en el tiempo, la ms comn es la programacin hacia adelante.

Programacin hacia adelante (Forward). Programacin hacia adelante (carga a futuro o programacin prospectiva), comienza con la fecha actual y carga de los centros de trabajo hacia futuro. El tiempo de procesamiento se acumula contra cada centro de trabajo, suponiendo una capacidad finita o infinita. En ste caso es posible exceder las fechas de entrega si es necesario. Como se utilizan tiempos de espera promedio en las colas, la fecha de terminacin del pedido resultante es slo una aproximacin de la fecha que se calcular mediante la programacin ms precisa. El propsito de la carga hacia el futuro es determinar la fecha de terminacin aproximada de cada pedido y, en caso de capacidad infinita, la capacidad necesaria en cada periodo.

31

Programacin hacia atrs (Backward). De manera inversa la programacin hacia atrs (o programacin retrospectiva) se inicia, con la fecha de entrega de cada pedido y carga las necesidades de procesamiento contra cada centro de trabajo. La capacidad de los CT puede excederse si es necesario. El propsito de la carga hacia atrs es calcular la capacidad requerida en cada CT para cada periodo de tiempo. Como resultado quizs se tome la decisin de reasignar la capacidad entre los CT o de disponer de mayor capacidad, mediante una planeacin agregada

modificada. Las limitaciones de capacidad encontradas en el corto plazo se retroalimentan al mediano plazo donde se genera una nueva planeacin agregada que desciende en la jerarqua al corto plazo para dar solucin a los problemas de capacidad.

2.2.4

Modelos de programacin.

Programacin en un CT o mquina (n/1).

Figura 2-10. Caso n/1 Es una situacin de programacin esttica que involucra varias tareas u rdenes en un CT o mquina donde son utilizadas en su mayora las reglas de prioridad. La terminologa de programacin en esta clase de problemas se denomina Problemas de n tareas en 1 CT o mquina o simplemente n/1. (Ver Figura 2-10)

32

La dificultad terica de los problemas de programacin se incrementa en la medida en que se consideran ms mquinas y no en la medida en que se deben procesar ms rdenes; en consecuencia, la nica restriccin que hay respecto de n es que ste debe ser un nmero especfico y finito.31

El mtodo ms utilizado en la prctica es el de las reglas de prioridad, tcnica heurstica consistente en el establecimiento de una regla basada en un indicador numrico o criterio de evaluacin, que es el objetivo fundamental a lograr en la secuenciacin. Se puede lograr siempre que el objetivo a lograr sea nico o s, existiendo varios, uno de ellos es prioritario y no existe otro mtodo para contemplarlos simultneamente. Con base en este indicador elegido se selecciona el primer trabajo a realizar en el CT, una vez se aproxime su finalizacin, se determinar el prximo a realizar y as sucesivamente.

Cada pedido tiene asociados tres elementos principales que lo hacen unico: un identificador o cdigo, la carga generada y la fecha de entrega dada. Es de las operaciones matemticas a stos elementos de donde salen los factores que forman los cocientes en los criterios de evaluacin: El tiempo de flujo por pedido es el tiempo de permanencia del pedido en una instalacin

hasta ser trabajado, es igual al acumulado de las cargas de todos los pedidos anteriores en espera ms la carga del mismo pedido analizado.

31

CHASE, y AQUILANO. Op cit., p. 684

33

La suma de los tiempos totales de flujo es la sumatoria de todos los tiempos de flujo por

pedido o trabajo evaluados, su valor depende del orden dada a los trabajos. El tiempo total de procesamiento es la sumatoria de las cargas de los diferentes pedidos

o trabajos evaluados, su valor no cambia con el orden de los trabajos. Los das de retrazo son los valores positivos de la resta por pedido del tiempo de flujo

calculado y su fecha de entrega. El valor negativo representa los das de holgura. Los das totales de retrazo son la sumatoria de los valores positivos obtenidos en los

das de retrazo por pedido.

Como criterios de evaluacin tenemos: Tiempo medio de finalizacin = [suma de los tiempos totales de flujo] / [nmero de trabajos] Utilizacin = [tiempo total de procesamiento] / [suma de los tiempos totales de flujo] Nmero medio de trabajos en el sistema = [suma de los tiempos totales de flujo] / [tiempo total de procesamiento] Retraso medio del trabajo = [das totales de retraso] / [nmero de trabajos]

Reglas de prioridad Definimos algunas de las reglas de prioridad ms utilizadas: FCFS (First Come, First Served) o FIFO (First In, First Out) primero en llegar primero en ser atendido. Las rdenes se ejecutan en el orden en que llegan al CT.

34

SOT (Shortest Operating Time) Tiempo de operacin ms corto: primero se ejecuta la tarea que tenga el tiempo de terminacin ms corto, luego el segundo ms corto y as sucesivamente, ste es igual al tiempo de procesamiento ms corto. De esta forma se hace mximo el nmero de trabajos procesados por perodo en el CT y, por tanto, se ayuda a minimizar los tiempos ociosos. Sin embargo, se ignora la informacin relativa a las fechas de entrega planificadas

EDD (Earliest Due Date): Se realiza en primer lugar aquel pedido cuya fecha de entrega est ms prxima, cualquiera que sea el tiempo de proceso que le reste. Es una aplicacin simple del objetivo de cumplir las fechas de entrega, que deja fuera las consideraciones sobre el logro del menor tiempo total de procesamiento de los pedidos.

LOT(Longest Operation Time) o LIO (Longest Imminent Operation): El prximo trabajo a realizar en un CT ser aquel cuya operacin en dicho centro sea la ms larga. La idea que la preside es que, normalmente, los trabajos ms largos son los ms grandes y ms importantes y, por tanto deben ser los primeros en realizarse. Se supone, adems, que stos sern los trabajos con menor holgura (aunque no siempre ha de ser as, pues esto depender tambin de la fecha de entrega).

Fecha de iniciacin: Fecha de vencimiento menos plazo normal. Ejecutar primero la tarea con la fecha de iniciacin ms temprana.

35

SRT (Shortest Remaining Time) Menor tiempo restante. En sta se ejecuta primero aquel pedido al que le quede menos tiempo hasta su entrega planificada, ejecutando primero el pedido ms urgente para cumplir las fechas de entrega. No obstante, no considera un aspecto fundamental, el tiempo que queda para entregar el trabajo (que es funcin del tiempo de proceso que le falte para ser terminado).

CR (Critical Ratio) Coeficiente Crtico: se calcula como la diferencia entre la fecha de entrega y la fecha actual, dividida por el nmero de das de trabajo restante. Las rdenes que tengan el CR ms pequeo se ejecutan primero. Esta regla intenta corregir el defecto sealado para la anterior, proporcionando una visin comparada del tiempo y la carga que restan para entregar y concluir un trabajo. Su idea bsica es la misma.

STR (Slack Time Remaining) Menor tiempo de holgura restante. Se calcula como la diferencia entre el tiempo restante antes de la fecha de entrega menos el tiempo de procesamiento restante. Los pedidos que tienen el STR ms corto se ejecutan primero. Al igual que el Coeficiente Crtico (CR), pretende dar una idea del tiempo que resta para cumplir con la fecha de entrega planificada en comparacin con el tiempo que falta para acabarlo.

STR/OP (Slack-Time Remaining per Operation) Los pedidos ms cortos son ejecutados primero. Se calcula de la siguiente manera: [tiempo restante antes de la fecha de entrega menos el tiempo de procesamiento restante o tiempo total restante en la planta] / [nmero de operaciones restantes]. Es una variacin de la anterior, en el que la holgura 36

se relaciona adems con el nmero de operaciones que le restan al pedido para ser terminado. En este caso, a la idea de seleccionar antes el trabajo de menor holgura se le aade la consideracin del nmero de operaciones restantes, considerndose que es ms difcil completar aquel con mayor nmero de stas, al tener que ser programado a travs de ms centros de trabajo.

LCFES (Last Come First Served) o LIFO (Last In, First Out) ltimo en llegar, primero en salir: esta norma se presenta con frecuencia por defecto a medida que llegan las rdenes, estas se colocan encima de la fila; el operador ejecuta la primera en la fila.

Diferentes autores como Sipper o Krajewski entre otros, han clasificado las reglas de prioridad para la programacin, en dos categoras: reglas locales (para una sola dimensin o miopes) y reglas globales (para dimensiones mltiples), que se definen a continuacin, resaltando la utilizacin de la primera en el desarrollo de la aplicacin.

Reglas locales: A estas reglas las llamamos reglas para una sola dimensin por que asignan las prioridades tomando como base un solo aspecto del trabajo, como el tiempo de llegada al centro de trabajo, la fecha de vencimiento o el tiempo de procesamiento.32 Reglas globales: las reglas de prioridad, como la CR, S/RO ( o STR/OP), incluyen informacin sobre los dems centros de trabajo en los que deber ser procesado cada

32

KRAJEWSKI Lee, RITZMAN Larry. Administracin de operaciones o produccin: Estrategia y anlisis. Mxico: Pearson educacin, 2000. p.767.

37

trabajo, adems del tiempo de procesamiento en el centro de trabajo actual o la fecha de entrega, que tambin se toman en cuenta en las reglas para una sola dimensin. A estas las llamamos reglas para dimensiones mltiples porque usan ms de un aspecto del trabajo.33

Dentro de las reglas de prioridad mencionadas se ha demostrado matemticamente que la regla SOT produce una solucin optima para el caso n/1 en los criterios de evaluacin tales como el tiempo de espera medio (retraso medio del trabajo) y el tiempo de terminacin medio (tiempo medio de finalizacin). Por tanto se ha denominado esta regla como el concepto ms importante en todo el tema del secuenciamiento.34

Figura 2-11. Caso n/1 continuo. Los modelos de una sola mquina tambin son adecuados para procesos continuos o en serie que se encuentren balanceados porque su programacin se puede tomar de manera agregada como una situacin del caso n/1. (Ver Figura 2-11.)

33 34

Ibid., p. 770. CHASE, y AQUILANO. Op cit., p. 687.

38

Dentro de n/1 se tiene el caso particular de las mquinas paralelas que explicamos a continuacin. Mquinas paralelas

Figura 2-12. Mquinas paralelas Con frecuencia, los problemas de programacin consideran varias mquinas. Las mquinas mltiples pueden estar colocadas en paralelo o en serie. La figura 2-12 describe mquinas paralelas. Cuando se usan mquinas mltiples en paralelo, se supone que cualquier trabajo se puede procesar en cualquiera de las mquinas, y que el tiempo para procesar un trabajo puede ser o no el mismo en cualquiera de ellas, es decir, son o no idnticas. Adems, los trabajos consisten en una sola operacin; una vez que comienza el procesado de un trabajo en una de las mquinas, debe terminarse. La decisin de programacin comprende dos aspectos: qu mquina procesa el trabajo y en qu orden.35

35

SIPPER y BUFFIN, Op cit., p. 439

39

Figura 2-13. Mquinas paralelas continuo Una forma de simplificar problemas de programacin es el contemplar sistemas balanceados de produccin continua como una variacin del caso n/1, como ya se mencion. Ahora para el caso de las mquinas paralelas este esquema tambin es aplicable para cuando existan varias lneas de produccin continua siendo esta la situacin de unir dos esquemas: caso n/1 continuo y mquinas paralelas, para facilitar la programacin de las diferentes rdenes. Obtenindose as otra variacin del caso n/1. (Ver Figura 2-13)

Programacin en mquinas paralelas. Cuando se cuenta con el suficiente tipo correcto de mquinas para comenzar todas las tareas simultneamente, se debe pensar en que la adecuada asignacin de cada tarea a cada mquina dar como resultado el mejor programa global. Para este caso es utilizado el mtodo de asignacin.36 Llamado tambin algoritmo de asignacin de Kuhn o mtodo hngaro.

36

CHASE, y AQUILANO. Op cit., p. 689

40

Para este mtodo la programacin se vuelve matemticamente muy compleja, cuando los valores de n (operaciones) o m (mquinas) son altos, siendo necesario para el anlisis la programacin por computador.37

La asignacin de las operaciones a las mquinas se realiza de forma que cada una de ellas se ejecute en una sola mquina, y viceversa. Partiendo de una matriz formada por los tiempos de proceso de cada operacin en cada mquina detallamos a continuacin los pasos del algoritmo de asignacin de Kuhn o mtodo hngaro.38 Fase1: Obtencin de ceros Se comienza por las columnas de la matriz. En cada una se elige el menor tiempo y se resta a todos los elementos de dicha columna. Repitiendo este proceso con cada columna de la matriz, se obtiene la tabla donde los ceros indican los lugares con los menores tiempos un cada una de ellas. Con la nueva matriz se realiza un procedimiento anlogo, pero en las filas, eligiendo el elemento ms pequeo de cada una de ellas y restndoselo, posteriormente, al resto de los elementos que la integran. Con los clculos realizados se asegura que en cada fila y en cada columna exista al menos, un cero, es decir, un punto de menor tiempo. Fase 2: Bsqueda de la solucin ptima

37 38

Scheduling, http://www.usd.edu/~rlau/schedule.htm MACHUCA DOMNGUEZ, Jos Antonio et al. Aspectos tcticos y operativos en la produccin y los servicios, Op cit., p. 299.

41

Es evidente que si se puede realizar una asignacin biunvoca con los lugares ocupados por los ceros en la matriz inicial que relacionase a cada Oi, con una sola Mj y viceversa, sta sera la solucin ptima. Fase 3: Obtencin de un conjunto mnimo de filas y columnas que contiene todos los ceros para realizar las asignaciones que faltan. Fase 4: Desplazamiento de algunos ceros En este punto se repite la fase 2 y si ello revela que se ha llegado a la solucin ptima, el proceso habr terminado. De lo contrario se continuar iteractivamente hasta conseguirla.

Programacin de centro de trabajo en configuracin continua. El procesado de trabajos de manera secuencial en varios CT o mquinas, recibe el nombre de configuracin continua. Todos los trabajos se procesan en el mismo orden, por lo que se pueden enumerar los CT de manera que el CT1 hace la primera operacin y as sucesivamente, la figura 2-11 caso n/1 continuo, representa un CT en configuracin continua.

Programacin en dos CT (n/2) El caso siguiente en complejidad es el caso n/2, en donde dos o ms rdenes deben procesarse en dos CT o mquinas en una secuencia comn. Como en el caso n/1, existe un enfoque que lleva a una solucin optima de acuerdo con ciertos criterios.

42

Figura 2-14. Caso n/2 El objetivo de este enfoque llamado regla de Johnson por su creador S. M. Johnson, es utilizado para minimizar el tiempo de proceso resultante de secuenciar un grupo de rdenes a travs de dos CT.39 (Ver Figura 2-14)

Mediante este enfoque se minimiza el tiempo de flujo desde el comienzo de la primera tarea hasta la terminacin de la ltima, Partiendo del tiempo de ejecucin de cada pedido en cada mquina, ste mtodo heurstico pretende hacer mnimo el tiempo necesario para concluir todos ellos y, por tanto, el tiempo ocioso de las mquinas. Utilizando al mximo los CT (makespan)

El makespan se define como: CTmax = Max (CT1, CT2, CT3, . . . , CTn ) Es decir, el makespan es equivalente al tiempo de terminacin de la ltima tarea para dejar el sistema. Un makespan mnimo por lo general implica una alta utilizacin de las mquinas.40

39

M. Johnson, Optimal two and three stage production schedule with set up times included, Naval research Logistics Quarterly, 1, No 1 (marzo 1954): c61-68.

40

Sheduling flow shop http://www.informs.org/Conf/no95/talks/ma30.3.html

43

La Regla Johnson consta de los siguientes pasos. 1. Registrar el tiempo de operacin para cada tarea en ambas mquinas. 2. Escoger el tiempo de operacin mas corto. 3. Si el tiempo ms corto es para la primera mquina, hacer la tarea primero; si es para la segunda, hacer la tarea de ltimo. 4. Repetir los pasos 2 y 3 para cada tarea restante hasta completar el programa.

Programacin en ms de dos CT (n/m) El problema de programacin n/m (rdenes/CT) se a resuelto para m = 1,2,3 y para valores arbitrarios de n. No se han desarrollado algoritmos eficientes para m nmero de secuencias posibles.41 (Ver Figura 2-15) 4 debido el gran

Figura 2-15. Caso n/m Si se tienen ms de 2 mquinas, el algoritmo de Johnson no funciona excepto en casos especiales. Un caso especial ocurre cuando la mquina intermedia esta dominada, ya sea por la primera o por la tercera. Una mquina est dominada

41

SCHROEDER, Roger G.

Administracin De Operaciones : toma de decisiones en la funcin de

operaciones. 3 ed. Mexico : Mc Graw Hill, 1992. p. 401

44

Dos enfoques para asignar la carga del MRP en la planta son: la carga vertical (por centros de trabajo) y la carga horizontal (por pedidos), cuando su tiempo de procesado ms largo no es mayor que el tiempo de procesado ms corto de otra mquina, es decir, para la mquina intermedia de tres mquinas,

Entonces se puede formar un problema equivalente de dos mquinas con tiempo de procesado y Al resolver este problema de dos mquinas se obtiene la secuencia de lapso ptimo para el problema dominado por tres mquinas. Un trabajo comienza en una mquina tan pronto como el trabajo anterior en esa mquina termina, o su operacin en la mquina anterior termina. Esto funciona porque en un problema dominado la mquina dos nunca causa un retraso en el programa.

Para problemas de dos mquinas y problemas de tres mquinas con la mquina dos dominada, el programa ptimo es un programa de permutacin. Esto es, la secuencia de trabajos es la misma en todas las mquinas. Un programa de no-permutacin tiene diferentes secuencias de trabajo en al menos dos mquinas. Suponga que el trabajo i est programado antes del trabajo j en la mquina k, pero en la mquina k+1 se procesa j antes de i. El trabajo i pudo haberse procesado en la mquina k+1, mientras j estaba en la mquina k, de manera que hay tiempo ocioso insertado en la mquina k+1. Si el

45

objetivo es el lapso de produccin, se puede demostrar que un programa ptimo es un programa de permutacin para tres mquinas.

Sin embargo, para cuatro o ms mquinas, el programa ptimo puede no ser un programa de permutacin. Para otros objetivos, los problemas de tres mquinas no tienen garanta de programas de permutacin ptimos. Si no hay una mquina dominante en un problema de tres mquinas, o si se tienen ms de tres mquinas, no existe una manera sencilla de obtener una solucin ptima. Debe recurrirse a algoritmos heursticos o enumerativos para resolver estos problemas.

Algoritmos heursticos Un algoritmo heurstico directo es forzar al problema para que se vea como uno de dos mquinas y usar el algoritmo de Johnson. Esta secuencia se convierte en un programa de permutacin para el problema original. Los diferentes enfoques para convertir el problema de m mquinas en un problema de dos mquinas producen programas distintos, entonces se puede elegir el mejor de ellos.

Cambell, Dude y Smith (1970) propusieron un enfoque de conversin, el heurstico CDS.


' Sean Pi1 y Pi '2 los tiempos de procesado para el problema de dos mquinas. Entonces, para

un problema de m mquinas, se tiene

y 46

ellos sugieren comenzar con k = 1 y l = m y generar un programa con el algoritmo de Johnson. Despus se hace k = 2 y l = (m 1) y se repite, continuando hasta que k = (m 1) y l = 2. se usa el mejor de los (m 1) programas generados. Existen otras formas para generar los tiempos de procesado para seudo mquinas.

Gupta (1972) propuso otro algoritmo heurstico. Sea

y defina

se determina una secuencia de permutacin mediante

. Gupta basa esta

regla en el algoritmo de Johnson para una mquina intermedia dominada, porque es exacta para ese caso.42

2.3

PLANTEAMIENTO DEL PROBLEMA.

Las PYMES presentan deficiencias en su sistema productivo, problemas como la ineficiencia en la planeacin de la produccin se evidencian en la inoportuna programacin de las operaciones, que contribuye a que se den respuestas tardas a los cambios en la

42

SIPPER y BUFFIN, Op cit., p. 448

47

demanda, la no-optimizacin de los recursos, entre otros. Esto se da porque su estructura de costos no le permite adquirir herramientas que integran las reas funcionales y sincronicen los niveles de planeacin jerrquica43 en especial el corto plazo, a la vez que la complejidad del software y la falta de adaptacin de las herramientas a los requerimientos de la empresa limitan la flexibilidad44.

La aplicacin HPP-S se ha diseado con el fin de solucionar este problema proporcionando un sistema de apoyo para la planeacin a corto plazo, que permite realizar la programacin de la produccin de una manera integral al manejar pedidos, rutas, operaciones y centros de trabajo en conjunto con las necesidades MRP provenientes del mediano plazo. Sobre la plataforma de un paquete comercial (Office) hacindola asequible y fcil de implementar.

43 44

QUINTERO M, Vctor Manuel. Alternativa empresarial. Cali : Icesi, 1998 p. 257 Planificacin en lnea. En : Dinero. No 79 (Mar 12 1999); p. 90-91.

48

3. LGICA DE DISEO

CAPTULO 3. . LGICA DE DISEO

3.1

PLATAFORMA DE DESARROLLO.

En el desarrollo del presente proyecto, utilizamos principalmente los programas Access y Excel de la versin 2000 del Office, donde el primero se usa para la captura de los datos y el segundo para el anlisis de los mismos. Adicional a estos dos programas nos apoyamos en Visual Basic como lenguaje de programacin para la automatizacin de tareas que se realizan en las macros para Excel y los sucesos de eventos para Access.

Comenzamos el captulo haciendo una referencia al aporte de Visual en el funcionamiento de la aplicacin. Dado que Access es menos conocido o usado que Excel presentamos una aproximacin a ste programa relacionndolo con el concepto de las bases de datos, ya que tiene distinta interpretacin segn la aplicacin, comenzamos con Excel para generalizar su uso en Access y as soportar porque se eligi como recurso vlido en la captura de los datos.

49

Programas usados. Hoy existe un programa para cada actividad profesional, lo que slo ha sido posible gracias a la enorme versatilidad de la informtica. El software ha sabido adaptarse perfectamente a las necesidades de nuestra sociedad, cada vez ms especializada, respondiendo con soluciones prcticas a las demandas concretas de cada sector. En este sentido, los programas profesionales suelen ser muy complejos y no estn al alcance de todo el mundo, pero existen algunos como es el caso de la base de datos Access y la hoja de clculo Excel que tambin pueden ser utilizados por el usuario particular para realizar algunas tareas cotidianas y, muy especialmente, de oficina.45

Access es una base de datos relacional, lo cual significa que es capaz de combinar la informacin registrada en distintas tablas gracias a la presencia de campos clave. Este sistema permite tener almacenados los datos de forma lgica en tablas de tamao pequeo que hacen ms fcil el trabajo y que el computador opere con mayor rapidez.

Si en algn momento desea extraer informacin muy especfica de una base de datos necesitar crear lo que en Access se conoce como consulta. La funcin de este elemento es buscar entre los registros que contienen las tablas aquellos que se ajustan a unas condiciones determinadas.

45

Manual de Informtica Bsica, Barcelona: editorial SOL 90 Ltda.

50

De otro lado, para trabajar ptimamente con operaciones matemticas lo ms adecuado es utilizar una hoja de clculo. Aunque en el mercado existen diversos programas de este tipo, con presencia y funciones similares, Excel la versin de Microsoft incluida en el paquete Office es el de uso ms extendido. Su xito est ligado a la capacidad que tiene de hacer fcil lo difcil, lo cual la convierte en una herramienta fundamental para el trabajo y para la casa.46

Su principal funcin es realizar operaciones matemticas de la misma manera que trabaja la ms potente calculadora, pero tambin la de computar complejas interrelaciones, ordenar y presentar en forma de grfico los resultados obtenidos.

3.1.1

Visual Basic

La creacin de una aplicacin en Windows con Visual Basic es sorprendentemente sencilla. Para crear los elementos de una interfaz, bastar con pulsar los controles de interfaz de usuario en el cuadro de herramientas de Visual Basic y despus dibujar el elemento arrastrando y pulsando con el ratn. Para completar el programa se escribe el cdigo a utilizar en una ventana especial llamada Ventana Cdigo. La escritura del cdigo de programa proporciona mayor control sobre el modo de trabajo del programa. El uso del cdigo de programacin nos permitir expresar de forma completa el modo en que deseamos que se procesen los datos de entrada y salida. El lenguaje de programacin Visual Basic contiene varios cientos de sentencias, funciones y caracteres especiales, pero

46

Ibid., p. 210.

51

la mayora de las tareas de programacin podrn ser gestionadas por unas cuantas docenas de palabras clave muy sencillas de recordar. El lenguaje de Visual Basic no es exclusivo; Microsoft Visual Basic para aplicaciones se incluye dentro del Microsoft Excel, Microsoft Access, Microsoft Project y otras aplicaciones para Windows.47

La aplicacin diseada muestra paneles de control, mens, objetos y cuadros de dilogos en pantalla para guiar al usuario en la manipulacin de los elementos en el orden en que aparecen. Los programas esperan al usuario a que de una respuesta (la entrada) para despus procesarla de forma predecible. En los crculos de programacin, sta metodologa se conoce como Programacin dirigida por eventos. La creacin de un programa se realiza a partir de un grupo de objetos inteligentes que saben como responder cuando el usuario interacta con ellos, y despus procesamos la entrada utilizando procedimientos de eventos asociados con dichos objetos.

Procedimiento de evento (event procedure). Un procedimiento es una unidad de cdigo de Visual Basic que contiene una serie de instrucciones y mtodos que realizan una operacin especfica. Un evento es una accin determinada que se produce en, o con, un objeto particular.

Microsoft Access responde a una variedad de eventos: clic del mouse, cambios en los datos, formularios que se abren o cierran, y muchos otros. Es por eso que apoyados con la

47

HALVORSON, Michael. Microsoft Visual Basic 4 : paso a paso. Colombia : Mc Graw Hill, 1996.

52

programacin en Visual Basic se aprovecha en el desarrollo de la aplicacin esta potente caracterstica.

Los eventos son normalmente el

resultado de una accin del usuario. Si se usa un

procedimiento de evento o una macro se pueden agregar respuestas personalizadas a un evento que se produzca en un formulario, informe o control.

Cuando se crea un procedimiento de evento para un objeto se agrega: una plantilla de evento nombrada para el evento y el objeto al modulo del respectivo. Lo que se necesita hacer es agregar el cdigo que responda de la forma que se desee cuando se produzca el evento al cual esta asociado.

Una sola accin, como puede ser pasar de un control a otro puede desencadenar varios eventos diferentes que suceden de una determinada secuencia. El saber cundo ocurren los eventos y en qu orden lo hacen es importante, porque esto afecta a cmo y cundo se ejecutan los procedimientos de evento. Mover el enfoque a registros, actualizar registros, modificar y/o actualizar datos en un control, eliminar registros, crear nuevos registros, pulsaciones de teclas, son muestra de los variados eventos que pueden ocurrir.

Se puede utilizar adems un procedimiento de evento para validar datos en la mayora de los casos, se puede comprobar la correcta introduccin de los datos en un control de un formulario estableciendo la propiedad regla de validacin (Validation Rule) del control, o estableciendo reglas de validacin del registro o el campo en la tabla base de la que 53

depende el control. Las macros y los procedimientos de evento proporcionan una mayor potencia y flexibilidad para conseguir una validacin ms compleja.

La naturaleza, dirigida por eventos de Visual Basic, significa que la mayora de los clculos realizados en nuestros programas se producirn por procedimientos de eventos. Es decir, bloques de cdigos especficos procesan entradas, calculan nuevos valores, gestionan tareas y muestran la salida.

Figura 3-1.

Propiedades del objeto Botn de comando.

Cada objeto de Visual Basic tiene un conjunto predefinido de eventos a los que puede responder. Estos sucesos se listan para cada uno de los objetos en el cuadro de lista desplegable Proc (procedimiento) de la ventana Cdigo. Access por su lado tiene predeterminadas varias propiedades para cado uno de sus objetos, es as como podremos escribir un procedimiento de suceso para cualquiera de estas propiedades, y, si alguno de estos eventos se produce en el programa, Visual Basic ejecutar el procedimiento de evento asociado con el mismo. Por ejemplo, cuando se pulsa el botn de comando en un programa, 54

el evento (Al hacer clic) ejecuta el procedimiento de evento Command_Clic asociado. (Ver Anexos B Cdigos). La figura 3-1 muestra los eventos predeterminados que Access tiene para el objeto Botn de comando.

3.1.2

Hojas de clculo.

Con la masificacin de los computadores en la industria, el uso de hojas de clculo para la modelacin y toma de decisiones es ampliamente usado en los negocios contemporneos. Las funciones proporcionadas dentro de los paquetes integrados permiten a los usuarios desarrollar modelos muy complicados de las actividades a evaluar o controlar. Desafortunadamente, la mayora de los usuarios de las hojas de clculo no siguen una metodologa determinada cuando construyen bases en hojas de clculo para modelar. Esto conduce alternadamente a la perdida de muchas horas en puestas a punto y reprogramacin que producen modelos que parecen ms complejos de lo que ellos necesitan ser y son adems ms complicados y aburridos de entender y de modificar.48

En el desarrollo de la aplicacin se usar un formato para el modelo que sea fcil de entender, de usar y de modificar, a partir de una clara y correcta discriminacin de la informacin necesaria y relevante al momento de realizar la planeacin a corto plazo.

48

A framework for building spreadsheet based decision models, D Mather, Monash University, Australia, 1997. http://www.stockton-press.co.uk/0160-5682/v50n1/pdf/2600672.pdf

55

Excel En Excel se identifica el concepto de base de datos con el de lista (o tabla). Por lo tanto una base de datos en Excel es un conjunto de filas en las cuales una columna tiene siempre el mismo tipo de informacin. La definicin que da Excel de lista es: Serie rotulada de filas de hojas de clculo que contiene grupos similares de datos, como una base de datos de facturas o un conjunto de nombres y nmeros telefnicos de clientes. Una lista puede usarse como una base de datos, donde las filas son registros y las columnas son campos.

Durante la generacin de la hoja de clculo, no es necesario definir ninguna propiedad especfica para realizar operaciones de base de datos como: introducir, borrar, buscar, ordenar o efectuar el subtotal de los datos, el programa reconoce la lista como una base de datos.

Para crear una base de datos o una lista en Excel se debe introducir una primera fila en la que se describe el contenido de cada columna. A continuacin se introducen en las filas siguientes cada uno de los datos. Estas filas constituyen los registros de la lista. Por ejemplo se crea una lista para contener los datos de carn, nombre, dos apellidos y curso de una serie de alumnos. Dos de las operaciones que Excel permite realizar con dichos datos son: edicin y ordenacin.

Ordenar mediante criterios, realizar un filtro para obtener una nueva sublista o hallar subtotales de los campos que se deseen, son funciones propias de una aplicacin de gestin de bases de datos, sin embargo existe una diferencia fundamental entre Excel y una 56

aplicacin de base de datos: Excel slo puede tener una lista en cada hoja y no puede establecer relaciones entre dichas listas. En la terminologa de las aplicaciones de bases de datos, lo que Excel llama lista o base de datos se denomina tabla. Y el conjunto de todas las tablas con sus relaciones es lo que realmente constituye la base de datos.

3.1.3

Bases de datos

Access, programa comercial de Microsoft Corporation. Se trata de un sistema gestor de bases de datos diseado para ser utilizado en computadoras personales tipo PC. Aunque no est considerado como un sistema serio, lo cierto es que permite realizar las mismas tareas que los tradicionalmente considerados sistemas serios, como puede ser Oracle. A diferencia de ste, Access puede funcionar en sistemas de bajo costo, y es mucho ms asequible. Adems, dispone de un entorno muy amigable (al estilo Windows 98). Por esta razn, cada vez ms empresas apuestan por este sistema; tanto es as que los fabricantes de los sistemas serios, incluido Oracle, tienden a hacer que sus productos se parezcan, en cuanto a interfaz de usuario se refiere, a lo que el usuario pide, que no es otra cosa que el entorno visual. As aparece Developer 2000, un entorno visual para crear aplicaciones para Oracle.49

49

Prcticas de Bases de Datos / Bases de Datos I, Curso 1997-98. Universidad de Huelva. Espaa.

57

Access es un programa para la gestin de informacin. Permite disear las estructuras para almacenar la informacin y los medios para su introduccin y explotacin.50

Una peculiaridad que se debe tener en cuenta al trabajar con programas de gestin de bases de datos, como es el caso de Access, es que no existe la opcin Save (Guardar), referida a los datos de la aplicacin, debido a que los cambios en los datos se van guardando siempre en el dispositivo de almacenamiento permanente. Cuando se presenta la opcin Save, se refiere a guardar los cambios realizados en el diseo de los distintos objetos que componen la base de datos, no a los datos.

Access Una aplicacin de base de datos que almacena y gestiona informacin se denomina un Sistema de Gestin de Bases de Datos SGBD o DBMS (Data Base Management System).

La estructura bsica de esta informacin son tablas, que se corresponden con las listas de Excel. Para una mejor gestin de la informacin y para reducir el nmero de datos, las tablas se relacionan, por ejemplo si se desean tener listas con los pedidos de cada cliente, en vez de incluir el nombre, Nit y otros en la lista de cada pedido, bastar con almacenar el cdigo de cada cliente. El cdigo del cliente en la lista de pedidos sirve para establecer una relacin con los datos de la cada cliente en la tabla clientes, ( Ver Figura 3-2.) Debido a este

50

SARRIEGUI, Jos Mara, SERRANO, Nicols, MURO, Ivn. Aprenda Microsoft Access 97 como si estuviera en primero. San Sebastin, Octubre 1998 Escuela Superior de Ingenieros Industriales, Universidad de Navarra

58

carcter relacional, Access es un sistema de gestin de bases de datos relacional SGBDR o RDBMS (Relational Data Base Management System).

Figura 3-2.

Tablas relacionadas

Es importante mencionar que en Access es posible exportar hojas de datos a pginas HTML estticas o dinmicas del World Wide Web, as como toda una serie de utilidades para trabajar con intranets privadas y con la red pblica Internet. Aunque esta caracterstica no se utilizo en el desarrollo de la aplicacin, s ampla la proyeccin de la herramienta creada al poder ser instalada en un servidor para permitir consultas desde diferentes terminales.

Conceptos generales El ejemplo de la base de datos o lista de Excel nos sirve para exponer los tres conceptos bsicos de bases de datos: tablas, campos y registros. Una tabla es una coleccin de datos con la misma estructura. Si se disponen los datos en una hoja de clculo, una columna siempre tiene el mismo tipo de dato, por ejemplo un nombre, un nmero de telfono etc.

59

Cada tabla es un conjunto de informacin relativa a una categora especfica, consta, de un cierto nmero de campos, en cada uno de los cuales se guarda un dato, que puede ser numrico, alfanumrico, fecha, etc.

Figura 3-3.

Partes tabla.

Un campo es cada una de las columnas de la tabla y el nombre de la columna es el nombre del campo. Un registro es cada una de las filas de la tabla, y est formado por el dato de cada uno de los campos almacenados en una misma operacin.(Ver Figura 3-3.) En el ejemplo anterior, la lista de clientes constituye una tabla en Access. Esta tabla consta de 12 campos: Idcliente, Nombre_cliente, NIT, Persona_contacto, Direccin, Ciudad, Pas, Telfono, Fax, Celular, Descuento y Observaciones.

Una base de datos es un conjunto de tablas que se utilizan para gestionar un determinado tipo de informacin. Son ejemplos de base de datos: la base de datos de la gestin acadmica de una universidad, la base de datos de los pedidos de una empresa o la base de datos de centros de trabajo. Por lo tanto la base de datos est constituida por la estructura de informacin y la informacin en ella contenida. Es frecuente denominar a Access como una 60

base de datos. Para ser exactos Access es una aplicacin de gestin de base de datos. Es la misma diferencia que existe entre un procesador de textos como Word y un documento de Word..

Entre los objetos que forman una base de datos tenemos:

Tablas (Tables): La tabla es el tipo principal de objeto de una base de datos. El concepto de
tabla se ha explicado al ver la relacin de Excel con las bases de datos. Como resumen, una tabla es un conjunto de datos estructurados en columnas (los campos) y filas (los registros). En las tablas de la base de datos es donde se almacena toda la informacin de la base de datos.

Consultas (Queries) Operaciones que pueden realizarse sobre los datos de las tablas:
limitaciones de acceso, seleccin de datos, insercin, modificacin y borrado, clculos entre otras.

Macros y mdulos: segmentos de cdigo en lenguaje de alto nivel (Access Basic, Visual
Basic, lenguaje de macros,...) que permiten realizar operaciones complejas con los datos y objetos de la base de datos.

Formularios: Un formulario es una ventana diseada para la introduccin y edicin de


datos. En Excel, a partir de una lista se puede generar automticamente un formulario para introducir los datos. Access posee herramientas para realizar el diseo de los formularios de una manera mucho ms elaborada utilizando listas desplegables, rejillas, botones de opcin 61

y de seleccin, etc. El formulario permite introducir, modificar, consultar y borrar los registros de la tabla o consulta para la que se ha diseado. La ventaja frente a la presentacin como hoja de datos es que los campos se presentan de manera ms adecuada al usuario, con un diseo que ayuda a su comprensin, utilizando los controles ms adecuados a cada tipo de informacin. En algunos casos la tabla puede ser la mejor manera de presentar los datos y no es necesario recurrir a modos de presentacin ms sofisticados.

Informes (Reports): Si el formulario es la forma idnea de introducir y editar los datos, la


mejor forma de mostrarlos es mediante un informe en una pgina impresa o mediante su representacin en la pantalla.

Una pgina de acceso a datos es muy similar a un formulario, pero puede utilizarse para
acceder a la base de datos desde un navegador web de la misma manera que lo hara desde Access. De hecho, a diferencia de un formulario, que se guarda como parte de una base de datos, las pginas de acceso a datos se almacenan en el disco duro de forma independiente con extensin de archivo HTML.

En general, se puede afirmar que el diseo de la presentacin de los datos es uno de los aspectos clave a la hora de valorar una aplicacin informtica. Un diseo de pantallas adecuado a cada usuario reduce el tiempo de aprendizaje y motiva al usuario, lo que es casi una garanta de xito.

62

Los formularios son la principal interfaz o va de comunicacin entre el usuario y la base de datos. Entre las utilidades ms importantes de los formularios se pueden citar las de mostrar y editar datos de una o varias tablas o consultas, la de controlar el flujo de la aplicacin con botones, la de insercin de datos en la base de datos o la de enviar mensajes al usuario. Dependiendo del tamao y nmero de campos de la tabla o consulta que se va a mostrar en el formulario se decide cul es el tipo de formulario que mejor se adapta a cada situacin.

El tipo de formulario ms sencillo muestra los valores de todos los campos de una tabla o consulta. Es posible avanzar uno a uno a lo largo de todos los registros y moverse al primero o al ltimo de la tabla, para ver sus valores y/o modificarlos. Tambin se puede realizar la insercin de un nuevo registro al final de la tabla.

Figura 3-4.

Botones de desplazamiento entre registros.

Para moverse entre los diferentes registros ingresados a la base o para ingresar uno nuevo debe desplazarse mediante los botones de desplazamiento situados en la parte inferior de la ventana activa (Ver Figura 3-4). Puede utilizar estos botones para desplazarse rpidamente entre los registros.

63

Los formularios en Access son verstiles: permiten realizar tareas que no son posibles en las hojas de datos tabla o consulta. Es posible validar las entradas con base en la informacin contenida en otras tablas distintas a la editada. Se pueden crear formularios que incorporen otros formularios (subformularios). Adems, desde un formulario, es posible realizar clculos y mostrar totales o activar distintas funciones de la aplicacin.

Un formulario puede mostrar los datos de tablas o consultas con una relacin uno a varios mediante un formulario que contenga subformularios, de manera que en el formulario principal aparezcan los datos del lado nico de la relacin y en el subformulario se pueda acceder a cada uno de los datos del lado varios de la relacin.

Un subformulario es un formulario dentro de un formulario. El formulario primario se llama Formulario Principal y el formulario dentro del formulario se llama Subformulario. Una combinacin formulario / subformulario se llama a menudo Formulario Jerrquico, formulario principal / detalle o formulario principal / secundario.

El formulario principal y subformulario de este tipo de formularios estn vinculados para que el subformulario presente slo los registros que estn relacionados con el registro actual del formulario principal. Cuando se utiliza un formulario con un subformulario para introducir nuevos registros, Microsoft Access guarda el registro actual en el formulario principal cuando se introduce el subformulario. Esto asegura que los registros de la tabla varios tengan un registro en la tabla uno con el que relacionarse. Tambin guarda automticamente cada registro conforme lo agregue al subformulario. 64

Figura 3-5.

Detalle subformularios

El ejemplo ms tpico es el formulario correspondiente a un pedido, en el que en la parte superior se muestran los datos propios del pedido y en la inferior los distintos artculos que forman las lneas del mismo. En la aplicacin se manejan formularios jerrquicos anidados, es decir que, un mismo formulario puede ser subformulario (lado varios de la relacin) para una relacin de datos y ser al tiempo formulario principal (lado uno de la relacin) para otra. La figura 3-5 presenta formularios anidados que muestran esta condicin.

Los formularios son la parte de la aplicacin que va a estar a disposicin de los usuarios, constituyendo el ncleo de la interfaz aplicacin-usuario. Por eso es necesario tener un especial cuidado en su diseo y construccin. Los usuarios que manejen los formularios deben encontrarlos sencillos y eficientes. Aunque es posible utilizar las hojas de datos de 65

tablas y consultas para realizar muchas de las funciones de los formularios, stos tienen la ventaja de presentar la informacin de forma clara y ordenada. Un formulario convenientemente diseado acelera la introduccin de datos y minimiza los errores de los usuarios.

Un formulario especial es el panel de control que funciona como un men, esto facilita la realizacin de tareas en una base de datos al permitir direccionar al usuario a los formularios especficos. Frente a cada uno de los elementos que conforman el panel de control hay un botn que al hacer clic en l abre el formulario relacionado.

Controles Los controles son los objetos que forman el formulario para componer su aspecto externo o para editar los contenidos de las tablas o consultas. El control ms habitual es la caja de texto (text box) pero hay otros controles que pueden resultar ms adecuados para determinados tipos de datos. Entre otros tenemos las listas (list), la lista desplegable (combo list), y para datos que slo puede tomar dos valores (verdadero o falso, uno o cero, etc.) el botn de verificacin (Check box). Uno de los controles ms utilizados es el botn de comando (command button) especialmente til para controlar el flujo de la aplicacin, ya que permite que determinada accin no comience hasta que sea requerida por el usuario, entre otras.

66

3.2

ESTRUCTURA DE LA APLICACIN

3.2.1

Modelos de datos.

Para describir la estructura de una base de datos es necesario definir el concepto de moldeo de datos, una coleccin de herramientas conceptuales para describir datos, relaciones entre ellos, semntica asociada a los datos y restricciones de consistencia. Los diversos modelos de datos basados en objetos se dividen en tres grupos: modelos lgicos basados en objetos, modelos lgicos basados en registros y modelos fsicos de datos.51 En este proyecto trabajamos solo con el primero.

Los modelos lgicos basados en objetos se usan para describir datos en los niveles conceptual y de visin. Se caracterizan por el hecho de que proporcionan capacidad de estructuracin bastante flexible y permiten especificar restricciones de datos

explcitamente. Hay muchos modelos diferentes, y es probable que aparezcan ms. Algunos de los ms extensamente conocidos son:

El modelo funcional de datos. El modelo entidad-relacin. El modelo orientado a objetos.

51

KORTH, Henry F y SILBERSCHATZ, Abraham. Fundamentos de bases de datos. 2 ed. Espaa : Mc Graw Hill, 1995. p. 6-7.

67

Modelo funcional. El modelo funcional muestra la forma en que se derivan los valores producidos en un clculo a partir de los valores introducidos. Consta de mltiples diagramas de flujo de datos, que muestran el flujo de valores desde las entradas externas a travs de las operaciones y almacenes internos de datos hasta las salidas externas.

Los diagramas de flujo de datos son una herramienta grfica que se emplea para describir y analizar el movimiento de datos a travs de un sistema, ya sea que ste fuera manual o automatizado, incluyendo procesos, lugares para almacenar datos y retrasos en el sistema. Los diagramas de flujo de datos son la herramienta ms importante y la base sobre la cual se desarrollan otros componentes. La transformacin de datos de entrada en salida por medio de procesos puede describirse en forma lgica e independiente de los componentes fsicos (computadores, archivos) asociados con el sistema.

A menudo el diagrama de alto nivel se denomina diagrama de contexto o nivel cero. Contiene un solo proceso pero juega un papel muy importante en el estudio del sistema en uso. El diagrama de contexto define el sistema que va ha ser estudiado en el sentido que determina las fronteras. Los procesos de bajo nivel son operaciones que se desagregan de acuerdo a los procesos macros, como nivel 1, nivel 2 y as sucesivamente.

Los mtodos para el anlisis de flujo de datos fueron desarrollados y promovidos al mismo tiempo por dos organizaciones (Yourdon Inc., Mc Donnell-Douglas.) En el desarrollo de la

68

aplicacin de utiliza el enfoque de Yourdon el cual utiliza cuatro notaciones sencillas, smbolos especiales o iconos y anotaciones que los asocian con un sistema especifico.52

1. Flujo de datos (flecha): movimiento de datos en determinada direccin desde un origen hacia un destino en forma de documentos, cartas, llamadas telefnicas o virtualmente por cualquier otro medio. El flujo de datos es un paquete de datos.

2. Procesos (circulo): personas, procedimientos o dispositivos que utilizan o producen (transforman) datos. No se identifica el componente fsico.

3. Fuente o destino de los datos (cuadro): fuentes o destinos externos de datos que pueden ser personas, programas, organizaciones u otras entidades que interactan con el sistema pero se encuentran fuera de su frontera.

4. Almacenamiento de datos (lneas paralelas): es el lugar donde se guarda los datos o al que hacen referencia los procesos en el sistema. El almacenamiento de datos puede representar dispositivos tanto computarizados como no computarizados.

52

SENN, James A : Anlisis y diseo de sistemas de informacin. 2 ed. Mxico : Mc Graw Hill, 1992. p 181.

69

Cada componente en un diagrama de flujo de datos tiene una etiqueta con un nombre descriptivo. Los nombres de los procesos tambin reciben un nmero que es utilizado con fines de identificacin.

Diagramas de flujo
polticas y estrategias Direccin y Gestin requerimientos de inversion 0

Finanzas

comportamiento de competencia

Planeacin de la produccin

capital disponible

pronsticos de demanda Mercadeo y Ventas datos de clientes

requerimiento de personal datos de personal Recursos Humanos

orden entrada de materiales

Compras orden de compra

datos de procesos

Ingeniera de procesos

Figura 3-6.

Nivel 0. Planeacin de la produccin.

Los diagramas de flujo que se muestran a continuacin detallan la informacin utilizada para la creacin de la base de datos.

Los diagramas estn estructurados por niveles que representan la jerarqua de la planeacin de la produccin. Se inicia en el nivel 0, superior (Ver Figura 3-6.), y se profundiza hasta el nivel 3 de la planeacin a corto plazo. Mostrando en ellos los procesos, las entidades y los flujos de informacin que los relacionan.

70

objetivos a largo plazo DIRECCIN Y GESTIN presupuesto de produccin Centro de Costos aprobacin de fondos PLANEACIN A LARGO PLAZO polticas y estrategias

nivel de fuerza laboral 1

Personal

personal asignado

ventas reales estimaciones de demanda a largo plazo Ventas datos plan agregado pedidos comprometidos clientes orden de compra de materiales 2 Compras

Pronsticos

Planeacin Agregada

datos familias agregadas

estimaciones de demanda a mp.

PLANEACIN A MEDIANO PLAZO orden de entrada de materiales

mix de productos Mercadeo

Lista de materiales MRP rdenes de pedido planificadas Mtodos de Programacin mtodos requeridos

materiales disponibles

Inventarios requerimientos de materiales

CRP

capacidad detallada 3 datos capacidad planificada

mtodos solicitados

ajustes de capacidad PLANEACIN A CORTO PLAZO (HPP-S) orden produccin programacin de las operaciones control

Planta

datos de produccin diaria

Figura 3-7.

Nivel 1. Sistema de Planeacin Jerrquico.

71

La figura 3-7 presenta y relaciona los tres niveles del sistema de planeacin jerrquica, centrndonos en el tercer proceso planeacin corto plazo que es el origen de la aplicacin HPP-S.
Lista de Materiales MRP datos cliente Clientes

rdenes de pedido planificadas

3.1 PREPARACIN PEDIDO solicitud datos cliente mtodos requeridos Mtodos de Programacin

datos producto solicitud de mtodos 3.2 seleccionar grfico Producto pedidos asignados SCHEDULING

datos pedido pedidos para programar datos del centro de trabajo PLANTA DE PRODUCCIN carga ct pedidos programados orden de produccin Grficos de Gantt

datos de produccin diarios control de la capacidad

3.3

CRP

CONTROL

capacidad planificada

ajustes de capacidad

Figura 3-8.

Nivel 2. Planeacin a corto plazo.

La figura 3-8 desagrega el tercer proceso de la planeacin corto plazo de la figura anterior, en los tres procesos bsicos tomados para el modelo de datos, soporte para el diseo de la aplicacin HPP-S.

72

Producto datos producto componentes productos 3.1.1 Estructura Producto

partes componente producto INGRESAR DATOS PRODUCTO datos productos detalles rutas producto Rutas producto Partes Componente

Hoja de ruta

detalle ruta 3.1.2

datos personales

CLIENTE

INGRESAR RUTAS 3.1.4

Centro de trabajo

detalle CT factor de utilizacin datos producto

INGRESAR DATOS CLIENTE

Producto datos cliente

Tiempo de Entrega

programacin hacia delante

3.1.3

elemento cantidad a emitir

INGRESAR DATOS PEDIDOS detalle pedido

tipo unidad

Cantidad requerida

Pedido

fecha de entrega

duracin en das de operaciones

fecha de emisin

# pedido Programacion detallada carga por operacin al CT

Figura 3-9.

Nivel 3. Planeacin a Corto Plazo - Preparacin Pedido. 73

La figura 3-9 desagrega el subproceso 3.1 preparacin pedido de la figura anterior en las operaciones desarrolladas a este nivel mostrando el flujo de datos generado. Contiene el ingreso de datos para los clientes, producto, rutas y pedido.

Control pedido

rutas producto 3.2.1 detalle pedido Control Produccin Rutas producto rutas iniciadas ASIGNACIN

Carga Pedido

Carga Operaciones

control operaciones

datos del CT cargas por CT N/1CT/Mmaq MTODO HNGARO

3.2.2 datos del CT N/1 CT/1maq REGLAS DE PRIORIDAD datos de las mquinas carga operaciones SECUENCIACIN

N/2CT REGLA DE JOHNSON

datos del CT

rdenes secuenciadas

Planta

Figura 3-10. Nivel 3. Planeacin a Corto Plazo - Scheduling. La figura 3-10 desagrega el subproceso 3.2 scheduling de la figura 3-8 en las operaciones desarrolladas a este nivel mostrando el flujo de datos generado. Contiene la asignacin y secuenciacin.

74

La figura 3-11 desagrega el subproceso 3.3 scheduling de la figura 3-8 en las operaciones desarrolladas a este nivel mostrando el flujo de datos generado. Contiene bsicamente el subproceso de anlisis de la capacidad por periodo.

carga operaciones Produccin Planeada centros trabajo 3.3.1 grficos de Gantt ANLISIS POR PERIODO ajustes de capacidad periodo Produccin Real avance producto

control input/output INPUT/OUTPUT

CRP

Figura 3-11. Nivel 3. Planeacin a Corto Plazo - Control.

Modelo entidad - relacin Es una descripcin del aspecto del mundo real que el diseador intenta capturar en un sistema de informacin, en este modelo, la estructura se describe por un conjunto de entidades u objetos de inters relacionados entre s por interrelaciones que son la relacin que vincula a dos o ms entidades no necesariamente distintas.53 Estas relaciones pueden

53

RUMBAUGH et al. Modelado y diseo orientado a objetos. 4 ed. Mxico : Prentice may, 1995

75

ser: relaciones 1:1 , uno a uno; relaciones 1: varios.

, uno a varios; relaciones

, varios a

En Access la relacin entre tablas se muestra por lneas que las une. Para evitar que se generen errores en las bases de datos permite usar integridad referencial obligatoria para cada una. La integridad referencial es lo que en realidad le da poder a la relacin, ya que se asegura que no exista un registro varios que no coincida con un registro en uno. Adems esta tambin permite habilitar las opciones de: actualizar en cascada los campos relacionados y Eliminar en cascada los registros relacionados.54

La integridad referencial es entonces un sistema de reglas que utiliza Access para garantizar que las relaciones entre los registros de tablas relacionadas son vlidas y que no se eliminan ni modifican accidentalmente datos relacionados.

3.2.2

Tablas.

Las tablas son los almacenes de datos, y su diseo consiste en la definicin de los campos necesarios para almacenar correctamente la informacin en la base de datos.

Detallamos ahora cuales son y como estn definidos los campos para cada una de las 20 tablas que conforman la base de datos de la aplicacin HPP-S sin profundizar en la explicacin de cada campo.

54

NEIBAUER, Alan. Access 2000 para gente ocupada. Mexico : Mc Graw Hill, 2000. p. 183

76

Centro_trabajo Idcentro Nombre_centro cap_d_hr_reales cap_d_hr_estndar Eficiencia Utilizacin t_ medio_preparacin t_medio_de_cola Clientes Idcliente Nombre_cliente Telfono Componentes Idcomp Producto Material Cant Idund Idlistaruta Factor Componentes1 Idcomp1 Idcomp Material Cant Auto numrico Numrico Numrico Numrico 77 Clave principal Auto numrico Numrico Numrico Numrico Numrico Numrico Numrico Clave principal Auto numrico Texto Texto Clave principal Auto numrico Texto Numrico Numrico Numrico Numrico Numrico Numrico Clave principal

Idund Idlistaruta Factor Componentes2 Idcomp2 Idcomp1 Material Cant Idund Idlistaruta Factor Control_operaciones Idcontxopr Idcontrolruta Idoperacin Iniciada Terminada Control_ruta Idcontrolruta Idpedido Idproducto Nombre_ruta Cant_emitir Cant_pend cantidad Iniciada Terminada

Numrico Numrico Numrico

Auto numrico Numrico Numrico Numrico Numrico Numrico Numrico

Clave principal

Auto numrico Numrico Numrico S/No S/No

Clave principal

Auto numrico Numrico Numrico Texto Numrico Numrico Numrico S/No S/No

Clave principal

78

Detalle_pedido Iddetallepedido Idpedido producto cantidad Iniciada Terminada In_out Idin_out Idper Idcentro Hr Input_planeado Input_real output_planeado output_real Lista_materiales Idmaterial material Tipo Lista_rutas Idlistaruta Nombre_ruta Factor Mquinas Idmaq Auto numrico 79 Clave principal Auto numrico Texto Numrico Clave principal Auto numrico Texto Texto Clave principal Auto numrico Numrico Numrico Numrico Numrico Numrico Numrico Numrico Clave principal Auto numrico Numrico Numrico Numrico S/No S/No Clave principal

Idcentro Idoperacin operacin Maq1 Maq2 Maq3 Maq4 Maq5 Maq6 Maq7 Maq8 Maq9 Operaciones Idoperacin Idlistaruta Centro Operacin T_ejec T_medio_desplaz Aprovech Fact Operaciones_CT IdoperxCT Centro Operacion Pedidos Idpedido

Numrico Numrico Texto Numrico Numrico Numrico Numrico Numrico Numrico Numrico Numrico Numrico

Auto numrico Numrico Numrico Texto Numrico Numrico Numrico Numrico

Clave principal

Auto numrico Numrico Texto

Clave principal

Auto numrico

Clave principal

80

Cliente Fecha_emisin Fecha_entrega F_entrega _real Iniciado Periodo Idper Fecha Productos Idproducto Producto Idlistaruta Factor Switchboard Items switchboardID ItemNumber ItemText command Argument Tipo Idtipo tipo Unidad Idund unidad

Numrico Fecha/hora Fecha/hora Fecha/hora S/No

Auto numrico Fecha/hora

Clave principal

Auto numrico Texto Numrico Numrico

Clave principal

Numrico Numrico Texto Numrico Texto

Clave principal

Auto numrico Texto

Clave principal

Auto numrico Texto

Clave principal

81

3.2.3

Modelo entidad relacin en la aplicacin

En general, nunca se debe poner toda la informacin que se tenga en una sola tabla. Por definicin, mientras ms campos e informacin se disponga en una tabla, ms difcil ser trabajar con ella. La mayor parte de las veces se debe dividir la informacin en dos o ms tablas, y luego se le indicar a Access qu relacin tienen las tablas entre s. Se relacionan las tablas unas con otras mediante uno o ms campos para que los registros de cada una coincidan. En una base de datos, se pueden crear varios tipos de relaciones. En una relacin de las que se denominan uno a uno, cada registro de una tabla se relaciona slo con un registro en la otra. As por cada registro con la direccin de un cliente existe un solo registro de crdito. Tambin puede haber relaciones llamadas uno a varios, esto significa que un registro en una tabla puede estar relacionado con uno o ms registros en otra tabla. El registro de un cliente en la tabla clientes, puede estar relacionado con ms de un registro de la tabla pedidos.55

Las relaciones que existen en la base de datos se dividen principalmente en tres bloques que forman la estructura principal:

Las relaciones para identificar el producto, sus componentes y rutas. Figura 3-12. Las relaciones para identificar los pedidos. Figura 3-13. Las relaciones para realizar la carga a planta de los pedidos y su posterior control durante la elaboracin. Figura 3-14.

55

Ibid., p. 17-18.

82

Figura 3-12. Relaciones producto

Figura 3-13. Relaciones pedidos

83

Figura 3-14. Relaciones control Como se mencion la base de datos en Access principalmente tiene la funcin de captura de datos mientras que la hoja de clculo de Excel tiene la funcin de manipulacin de los mismos. Pero hay que controlar lo que se enva a Excel para obtener datos veraces al momento de servir de apoyo en la toma de decisiones. Es por eso que Access tambin hace filtros para la informacin que est guardada en la base de datos por medio del uso de casillas de verificacin, las cuales al estar marcadas o no, permiten controlar la informacin que se presenta en los formularios a medida que se navega por ellos. Es as, como esta condicin de iniciado/terminado, s/no, permite o habilita la aparicin en pantalla de informacin (datos), como en el caso de los pedidos entregados o pendientes, que de calcularse cuando no son necesarios (por ejemplo pedidos entregados) aumentan el tamao en bytes espacio de disco de la base de datos (archivo en Access).

84

Figura 3-15. Datos ruta P1 Como Excel procesa los datos pero Access los guarda, ste ltimo puede tambin generar nuevos datos con los almacenados. Como es el caso del tiempo de entrega o tiempo de suministro y de la carga (ejecucin + preparacin).

Figura 3-16. Relaciones tiempo de suministro El clculo del tiempo de suministro y la carga se realiza siguiendo el ejemplo 5.1 del libro de Machuca56, de donde traemos los datos de la ruta P1 (Ver Figura 3-15). Las relaciones en la aplicacin para este fin se muestran en la figura 3-16. Las ecuaciones se explican a

56

MACHUCA DOMNGUEZ, Jos Antonio et al. Aspectos tcticos y operativos en la produccin y los servicios, Op cit., p. 160

85

continuacin. (Sin tener un tiempo para la confeccin del pedido, la espera final ni la inspeccin.)

Figura 3-17. Datos centros de trabajo Tomando el tiempo de suministro como el intervalo de tiempo que transcurre entre el momento en que se solicita un pedido y el instante de su llegada, entendida sta como el momento en que est disponible para ser utilizado, se desglosa este tiempo en sus distintos componentes, considerando las distintas operaciones necesarias para obtener cada tem, los centros de trabajo en que se realizan, la capacidad diaria disponible en horas reales y en horas estndar. La figura 3-17 muestra los datos de los centros de trabajo para la ruta P1.

Desplazamiento a CT3 1 hr./8,5 (hr. /da) = 0,12 das Cola en CT3 = 4 hr./ 5,45 (he./da) = 0,73 das Preparacin CT3 = 1 he./5,45,(he./da) = 0,18 das Ejecucin O1 = 5,48 min.e x 186 un x 0.9124 = 15.48 he./5,45 (he./da) = 2,84 das Desplazamiento a CT2 1 hr./8,5 (hr. /da) = 0,12 das Cola en CT2 = 4 hr./ 6,5 (he./da) = 0,62 das Preparacin CT3 = 1 he./6,5 (he./da) = 0,15 das Ejecucin O2 = 1,04 min.e x 186 un x 0.9124/60 (min.e/he.) = 2,94 he = 2,94 he./6,5 (he./da) = 0,45 das Desplazamiento a CT3 2 hr./8,5 (hr. /da) = 0,24 das Cola en CT3 = 4 hr./ 5,45 (he./da) = 0,73 das Preparacin CT3 = 1 he./5,45,(he./da) = 0,18 das Ejecucin O3 = 1,53 min.e x 186 un x 0.9124/60 (min.e/he.) = 4,32 he./5,45 (he./da)= 0,79 das

Tiempo de suministro total =

7,15 das

Figura 3-18. Clculo tiempo de suministro.

86

De esta forma, se ve claramente el desarrollo de cada proceso y los tiempos que ello implica; por ejemplo para obtener un lote de 186 unidades de P1 se comienza realizando la primera operacin en el primer centro de trabajo segn la ruta, continuando con la segunda y as sucesivamente. La suma de todos estos tiempos da lugar al tiempo de suministro total. (Ver Figura 3-18).

En la figura anterior el lado izquierdo muestra como se construyo en la aplicacin los clculos del lado derecho provenientes del apndice 5A de Machuca57. La diferencia en los totales en el tiempo de suministro, se debe al uso de ms cifras significativas en la aplicacin creada.

Las ecuaciones para el clculo de la carga se usan los datos de la ruta y los del centro de trabajo por donde pasa. La carga se calcula en horas estndar (h.e) para cada operacin de la ruta tomando en cuenta para cada una los valores propios al centro de trabajo por donde pasa. Carga (h.e) = ejecucin (h.e) + preparacin (h.e) [tiempo medio de preparacin del CT] donde ejecucin (h.e) = unidades lote
x

[ tei (min) / vi ] x factor ruta / 60 (min).

57

Ibid., p. 190

87

En la ruta de P1 los valores para la carga por operacin en cada centro de trabajo son: para la operacin 01 de 16,15 h.e, para la operacin 02 de 3,94 h.e, y para la operacin 03 ltima de 5,33 h.e.

Figura 3-19. Carga por operacin y duracin. Observe en la figura anterior para las 3 operaciones de la ruta P1, el tiempo (duracin) en das necesarios para elaborar el producto, y la carga que se genera por las 186 unidades requeridas.

3.3

ELEMENTOS OPERACIONALES

Tratamos ahora los elementos que se tuvieron en cuenta al momento de construir la aplicacin para un mejor procesamiento de la informacin: una aproximacin al job shop por medio de Johnson. La versin del Office en la que debe ejecutarse la aplicacin, las barras de apoyo para complementar la aplicacin, consideraciones sobre el funcionamiento de algunos formularios y su razn de ser.

3.3.1

Aproximacin al Job-Shop

Aunque la aplicacin se diseo para empresas que tienen configuracin orientada al Flowshop. En el caso de empresas que suelen fabricar bajo pedido (job shop), se da la opcin

88

por medio de Johnson para realizar una programacin de los centros de trabajo que son utilizados en el desarrollo de una o varias operaciones en las rutas de algunos de los componentes.

Para filtrar los datos antes de enviarlos a Johnson en Excel, se tom en cuenta lo siguiente: dada la complejidad para dejar de forma automtica el cargar un centro de trabajo luego que el usuario eligiera uno, por la variedad de opciones que se deberan tener en cuenta, por ejemplo cargar el centro 3 al seleccionar el 2 o el 2 al seleccionar el 1, pues por variedad en la composicin de las rutas algunas pasaran del centro 1 al 3, otras entraran al centro 2 sin pasar por el 1 o las que del centro 2 no pasan al 3 sino que regresan al 1.

Por la complejidad que se toma el tratar de desarrollar un algoritmo para que cubra esas y muchas otras condiciones se deja en manos del usuario, que sea l, quien conociendo los dos centros que desea analizar, seleccione y ordene los centros segn requiera.

Internamente lo que se hizo en la aplicacin fue realizar dos consultas, la segunda vinculada a la primera, donde la primera filtra para el centro de trabajo seleccionado las rutas y cargas de las operaciones iniciadas en el centro; la segunda busca entre las rutas resultado de la primera consulta, cuales pasan por el centro seleccionado en segundo lugar, mostrando el nmero de operacin en el centro 2 y su respectiva carga.

Despus de esto se envan a Excel los datos resultado de las consultas para ser ordenados segn la regla de Johnson, como se mencion en el captulo anterior. 89

3.3.2

Sistema operacional.

La aplicacin desarrollada funciona correctamente bajo el Office 2000 o superior. En prueba realizada al convertir el archivo en Access a una versin anterior y el ejecutarla en un computador con un Office inferior se presentaron problemas por el no-reconocimiento de algunos cdigos o comandos.

Durante el desarrollo de este documento se ha hecho mencin a la integridad de la planeacin y en ese sentido a que deben tenerse unos datos resultado del mediano plazo que son elementos de entrada para ste el corto plazo, as como la informacin proveniente de la propia empresa del conocimiento de sus procesos: informacin del mediano plazo en el MRP y de la empresa en sus productos, rutas y centros de trabajo.

Independientemente de s el sistema de programacin de las operaciones sea manual o automtico, debe ser preciso y apropiado. Esto significa que necesita una base de datos de produccin con archivos de planificacin y control. Existen tres tipos de archivos de planificacin que son: (1) el archivo maestro de artculos, que contiene informacin sobre cada componente que la empresa fabrica o compra; (2) un archivo de rutas, que indica la marcha de cada componente por el centro de trabajo; y (3) un archivo maestro del centro de trabajo, que contiene la informacin sobre el centro de trabajo, como la capacidad y la eficiencia.58

58

HEIZER, y RENDER, Op cit., p. 207-208.

90

Como el objetivo de este proyecto es el de entregar una aplicacin funcionando, se adecuaron los espacios para ingresar la informacin necesaria para que la planeacin a corto plazo se realice. Es por eso que en el interior de la aplicacin se creo un MRP modificado al no contener los tiempos de reposicin, elemento ste que s es importante en la planeacin a mediano plazo.

Barras de men y herramientas. La aplicacin cuenta con una barra de men y una barra de herramientas que ofrecen al usuario rapidez al momento de interactuar con la misma permitindole accesos directos a formularios y funciones.

Figura 3-20. Barra de Men de la Aplicacin

Figura 3-21. Barra de Herramientas de la Aplicacin. Mostramos ahora el despliegue de los nombres que integran la barra de men sin detallar en algunos submen su contenido: Archivo, Edicin, Registros, Informacin, General, Preparacin pedido, Scheduling, Control, Ventana y para terminar la ayuda ? (smbolo interrogante)

91

Figura 3-22. Barra de Men- Archivo y Edicin. En el men Archivo la opcin compactar y reparar base de datos es til para mantener el tamao del archivo en espacio de disco acorde con los datos ingresados y evitar que se explosione por los diferentes clculos que se realizan en su interior.

Figura 3-23. Barra de Men- Registros, Informacin y General. En Datos empresa del men General se encuentra el formulario donde, como su nombre lo indica, se ingresan los datos propios a la empresa: nombre, nit, telfonos, fax, etc.

92

Figura 3-24. Barra de Men- Preparacin Pedido. El men preparacin pedido contiene las divisiones del panel con el mismo nombre, y dentro se han colocado los submen Ingresar datos producto y Ingresar datos ruta que se despliega al ubicarse sobre cada uno. Esto para reunir en un solo men los datos que se deben ingresar a la base.

Figura 3-25. Barra de Men- Scheduling. Los dos ltimos submens de la barra de men, figura 3-26, son los convencionales que vienen en la barra de mens de los programas del office: ventana y ayuda. 93

Figura 3-26. Barra de Men- Ventana y ?. Seleccin en formularios. Se crearon formularios donde se gua al usuario y se le da libertad de elegir o seleccionar los nombres de rutas u operaciones que vaya a iniciar por medio de formularios relacionados que crean formularios de seleccin, debido a la imposibilidad que ofrece Access como base de datos relacional de heredar caractersticas de las tablas padre relacionadas, como s ocurre en las bases de datos orientadas a objetos.

Por eso, como no se logr cargar de forma automtica las operaciones asociadas a una ruta o las rutas a un producto, se dio solucin a est inconveniente ofreciendo al programador la facilidad de que sea el mismo quien controle todo el proceso, decidiendo que se hace y en que momento.

Una ventaja divisada en esta solucin es la posibilidad de indirectamente manejar la aplicacin con los valores o cantidades reales por las existencias en los diferentes inventarios, tenindose as, el no tener que iniciar una ruta desde la operacin inicial si ya se encuentra algn material en proceso o el no tener que cargar todas las rutas para elaborar un producto al tener existencia de alguna.

94

4. LGICA DE LA APLICACIN

CAPTULO 4. LGICA DE LA APLICACIN.

Este captulo inicia aclarando los conceptos tericos que se tuvieron en cuenta para el desarrollo de algunos formularios de la aplicacin. Luego, se describen las partes que componen la aplicacin diseada haciendo un recorrido sobre la misma. Terminando con algunos comentarios dirigidos al usuario sobre las posibilidades que tiene la aplicacin desarrollada al no ser tan rigida.

4.1

CONCEPTOS TERICOS DE LA APLICACIN

El proyecto se basa en la integracin jerrquica de los diferentes niveles de la planeacin. Para el corto plazo se hace referencia a los datos que provienen del nivel anterior segn sean requeridos. Los conceptos tericos se mencionarn segn se aplicaron en la realizacin de los diferentes formularios que se muestran en la herramienta desarrollada. (Ver Figura 4-1)

95

Figura 4-1.

Formularios en la aplicacin.

La figura 4-1 muestra para las tres divisiones principales de la aplicacin: los formularios que tienen conceptos tericos y el orden de aparicin de los mismos. Para explicar mejor el concepto dentro de la estructura de cada formulario utilizamos el producto Silla. (Ver Figura 4-2)

96

Figura 4-2. Partes/componestes.

Diagrama de ensamblado para el producto Silla.

Los componentes y cantidades para una unidad del producto Silla son: 1 2 3 4 5 6 7 8 9 10 11 12 13 F (1) G(1) E(4) A(1) E(4) C(1) B(1) E(4) D(1) RMa RMb RMc RMd = Sub ensamble asiento patas delanteras = Sub ensamble respaldo patas traseras = Remaches = Marco asiento patas delanteras = Remaches = Asiento = Marco respaldo patas traseras = Remaches = Respaldo = Insumo = Insumo = Insumo = Insumo cantidad 1 cantidad 1 cantidad 4 cantidad 1 cantidad 4 cantidad 1 cantidad 1 cantidad 4 cantidad 1

Los nombre de las partes o componentes que son usados en la elaboracin de los diferentes productos ofrecidos por la empresa se ingresan a la base de datos. Tenindose as, una lista

97

nica que centraliza y codifica cada parte o componente que requiere la empresa para su normal funcionamiento, ya sean externos insumos - o internos componentes, subcomponentes, subensambles, etc.-

Estructura del producto. Con el listado de partes/componentes generado se realiza despus el armado de cada producto segn sea su composicin. Aqu se usa el concepto de lista materiales que hace una descripcin clara y precisa de la estructura que caracteriza la obtencin de un determinado producto mostrando claramente: Componentes que lo integran Las cantidades necesarias de cada uno de ellos para formar una unidad del producto La secuencia en que los distintos componentes se combinan para obtener un artculo intermedio o final.

En el formulario estructura producto por los enlaces entre los subformularios anidados que lo conforman, se puede armar el rbol del producto al desagregarse hasta cuatro niveles: producto, componente, subcomponente1 y subcomponente2. Diferenciando niveles de fabricacin y montaje.

La divisin por niveles facilita la explosin de las partes requeridas MRP para un producto terminado particular. La estructura presenta la siguiente lgica:

98

Nivel 0 (Producto): El producto terminado, como resultado del ensamble de varios


componentes; es el nivel ms complejo de la lista.

Nivel 1 (Componentes): Los componentes unidos directamente a un elemento de nivel 0,


identificando su tipo.

Nivel 2 (Componentesub1): Los componentes unidos directamente a un elemento de nivel


1, identificando su tipo

Nivel 3 (Componentesub2): Los componentes unidos directamente a un elemento de nivel


2, identificando su tipo.

Figura 4-3.

rbol Estructura del producto Silla.

La figura muestra el rbol de estructura para el producto Silla La forma como se obtiene el producto a partir de la unin de cada una de sus partes.

99

La aplicacin se diseo para soportar productos que se desagreguen hasta un tercer nivel. Porque al incrementar en la base de datos el nmero de niveles aumenta la complejidad en su diseo, dificultando a su vez, la presentacin completa del formulario en la pantalla debido a su tamao.

La estructura diseada es til para presentar el rbol estructura del producto que se apoya en el concepto de Lista de materiales descrito anteriormente. (Ver Figura 4-3)

Centros de trabajo. Los centro y las operaciones que interviene en la realizacin del producto Sillason: 1. CORTE. 1. Medicin. 2. Corte de pieza. 3. Mecanizado. 2. TROQUELADO. 4. Doblado pieza. 5. Lijado. 3. PERFORADO. 6. Medicin. 7. Perforado. 4. TERMINADO. 8. Pintura. 9. secado. 5. ENSAMBLE. 10. Armado. 11. Remachado.

Detalle centros de trabajo. Los datos de los centros de trabajo para el ejemplo son:

100

id Nombre centro 1 2 3 4 5 CORTE TROQUELADO PERFORADO TERMINADO ENSAMBLE

Capacidad diaria horas reales 8,5 8,5 8,5 8 8

Capacidad diaria horas estndar 8,16 6,50 5,44 6,12 6,62

eficiencia utilizacin 0,98 0,9 0,8 0,9 0,92 0,98 0,85 0,8 0,85 0,9

Tiempo medio Tiempo preparacin medio de (h.e) cola (h.e) 1 1 1 0,15 0,1 3 4 4 0 0

La capacidad para los centros de trabajo se determina en el mediano plazo mediante factores y tiempos. En la aplicacin HPP-S los factores se calculan en las hojas de ruta, y los tiempos por centros de trabajo para el clculo de la capacidad se ingresan en el formulario detalles centro de trabajo. los cuales definidos a continuacin:

La capacidad diaria en horas reales (hr) es igual una jornada normal de trabajo. Utilizacin (Factor de Utilizacin U). Se define como cociente entre el nmero de
horas productivas desarrolladas (Nhp) y el nmero de horas reales (Nhr) de trabajo por periodo. (da)

Eficiencia (Factor de eficiencia E). Cuando una actividad u operacin se repite y es


ejecutada por distintas mquinas u operarios puede desarrollar distintas eficiencias, dando lugar a un nmero diferente de horas productivas en funcin de quien las ejecute. Por tal razn se hace necesario la aplicacin de una medida homognea basada en los valores de hr (horas reales), U (Utilizacin) y de E de referencia, al objeto de poder compararlas. Dicha unidad se denomina hora estndar (he) y supone un valor de 1 para los valores de Eficiencia y Utilizacin.

El tiempo de preparacin es el necesario para ajustar y disponer la maquinaria e


instalaciones bajo las condiciones adecuadas para llevar acabo una nueva operacin

101

tras haber desarrollado otra diferente, y este valor podr variar para una operacin en funcin de la cual sea previamente realizada por lo que se suele emplear el tiempo de

preparacin medio.

El tiempo de cola es el que sufre el pedido en cada uno de los centros de trabajo por los
que ha de pasar hasta que se realicen todas las operaciones que sean necesarias. Como se asume que la empresa tiene un conocimiento del funcionamiento de sus centros de trabajo emplearemos el tiempo de cola medio general para cada uno.

Mquinas paralelas. Aplica el concepto de mquinas paralelas explicado en el captulo dos, y se trabaj bajo la idea de mquinas por ser esta la situacin ms tratada por los diferentes autores consultados. Hemos realizado el montaje de este concepto amplindolo de mquinas hasta las operaciones. Esta definicin se puede implementar para la situacin de operaciones especficas que se realizan en determinado centro. Detallndose para las rutas que pasan por el centro de trabajo las operaciones paralelas que se presentan en ste, y para cada operacin de la ruta los diferentes tiempos de ejecucin que mquina donde se realice. se presentan segn la

Hoja de ruta. Para cada parte/componente del producto, que se elabora en la planta se toma la secuencia de las operaciones, en cada uno de los centros de trabajo por los que pasa, asignndose a cada secuencia un nombre representativo que la hace nica en la base de datos. Adems se registran los tiempos estndar (tiempo de ejecucin), tiempo de desplazamiento, y el factor 102

de aprovechamiento, que se emplean para evaluar los requerimientos de capacidad para cada CT. (En la aplicacin no se incluye en esta hoja los tiempos de espera o cola por trabajar con tiempos medios asociados directamente a los centros de trabajo.)

El tiempo de ejecucin es el tiempo necesario para desarrollar una operacin una vez se
procese en el centro de trabajo correspondiente.

El tiempo de desplazamiento es el que incluye el traslado de los materiales que requiere el


pedido hasta el centro de trabajo.

El aprovechamiento es la proporcin de referencias que cumplen los requisitos de calidad


en cada una de las operaciones y es igual a (1-defectuosos)

Normalmente de cada una de las operaciones, que forman la ruta de un componente o de un producto final, se obtiene una cierta proporcin de elementos que no cumplen los requisitos de calidad. Esta proporcin, expresada en tanto por uno, se denomina Factor de defectuosas (d) y su complementario (1-d), determina el Factor de Aprovechamiento. En el caso de que cualquier operacin tenga un d > 0, habra que corregir el TCjk (tiempo de carga de cada componente o producto final j en un centro de trabajo k), dado que la obtencin de un elemento bueno originara en realidad ms carga que la calculada, es decir habra que incluir las que han generado las piezas defectuosas en cada una de las operaciones.

103

Figura 4-4.

Incidencia de los factores en la obtencin de una unidad

En la figura 4-4, se observa como los diferentes valores de aprovechamiento (ai) por operacin generan que para obtener 1 unidad de P1 se debe emitir una orden por 1,10 unidades. Esto es, en caso de ser requeridas 100 unidades de P1 hay que emitir una orden por 110 unidades.

Para el producto ejemplo se identifican 7 hojas de rutas que son: Silla F G A C B D = Silla = Asiento patas delanteras = Respaldo patas traseras = Marco asiento patas delanteras = Asiento = Marco respaldo patas traseras = Respaldo

En cada hoja de ruta se detallan las siguientes operaciones:


Ruta A A A A A A # oper 1 2 3 4 5 6 Centro de trabajo CORTE CORTE CORTE TROQUELADO TROQUELADO PERFORADO. Operacin Medicin. Corte pieza. Mecanizado. Doblado pieza. Lijado. Medicin. t ejec t desplaz aprovech

104

A A A B B B B B B B B B C C C C C C D D D D D D F F G G

Silla Silla

7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

PERFORADO. TERMINADO. TERMINADO. CORTE CORTE CORTE TROQUELADO TROQUELADO PERFORADO. PERFORADO. TERMINADO. TERMINADO. CORTE CORTE PERFORADO. PERFORADO. TERMINADO. TERMINADO. CORTE CORTE PERFORADO. PERFORADO. TERMINADO. TERMINADO. ENSAMBLE. ENSAMBLE. ENSAMBLE. ENSAMBLE. ENSAMBLE. ENSAMBLE.

Perforado. Pintura. secado. Medicin. Corte pieza. Mecanizado. Doblado pieza. Lijado. Medicin. Perforado. Pintura. Secado. Medicin. Corte pieza. Medicin. Perforado. Pintura. Secado. Medicin. Corte pieza. Medicin. Perforado. Pintura. Secado. Armado. Remachado. Armado. Remachado. Armado. Remachado.

Los datos de tiempos de ejecucin, tiempos desplazamiento y aprovechamiento se dejan a libertad del usuario para ingresar los que valores que desee.

Rutas producto. Cada parte/componente, que no sea insumo, de la estructura de un producto se relaciona con una hoja de ruta especfica. Las hojas de ruta asociadas a partes componentes en cada uno de los diferentes niveles de la estructura forman el rbol de rutas del producto. 105

Este rbol de rutas del producto (Ver Figura 4-5) es la forma en que se expresa en diferentes niveles de fabricacin y montaje las hojas de rutas. La codificacin por niveles facilita la explosin de las necesidades a partir del elemento final y su lgica es la siguiente:

Nivel 0 (producto): Unin de las rutas necesarias para obtener el producto terminado. Esta ruta es esencial en la elaboracin del producto.

Figura 4-5.

rbol de Rutas para del producto Silla.

Nivel 1 (Ruta de ensamble): Los componentes unidos directamente a un elemento de nivel 0, identificados por su nombre.

106

Nivel 2 (Subruta de subensamble): Los componentes unidos directamente a un elemento de nivel 1, identificados por su nombre.

Nivel 3 (Subruta de componente): Los componentes unidos directamente a un elemento de nivel 2, identificados por su nombre.

Pedidos. Los pedidos planificados (pedidos que se entregarn en fechas futuras) pueden ingresarse desde el mismo instante de su solicitud, quedando a opcin del programador el definir el momento de inicio de cada uno. La aplicacin tiene la opcin de mostrar para todos los pedidos ingresados, los das de retraso que tiene cada uno contra la fecha de entrega dada al cliente, esto en las opciones pedidos pendientes hasta hoy y pedidos pendientes a la fecha.

Secuenciacin. El secuenciamiento tiene que ver con el desarrollo de un orden exacto de procesamiento de tareas. En la prctica, los programas de produccin son difciles de mantener, si no imposibles, debido a las condiciones cambiantes; Las mquinas se descomponen, se enferma un operario calificado, los materiales no llegan a tiempo y as sucesivamente.59

Teniendo en cuenta lo anterior se ofrecen al programador de la produccin tres herramientas principales: reglas de prioridades, el mtodo de asignacin y la regla de

59

SCHROEDOER, Op cit., p. 388.

107

Johnson como elementos en los cuales se puede apoyar para dar rpida respuesta a las condiciones dinmicas de una planta de produccin.

Reglas de prioridad. Una regla de prioridad especfica qu trabajo debe seleccionarse para realizarlo despus, entre una cola de trabajos. Cuando se dispone de una mquina o de un trabajo, se aplica la regla de despacho y se selecciona la tarea siguiente. Una regla de despacho resulta, por lo tanto, dinmica por naturaleza y se ajusta constantemente a las condiciones cambiantes. Las reglas de despacho sirven para responder la pregunta inmediata del trabajador qu hago ahora?60

En el desarrollo de esta aplicacin tomamos las siguientes reglas explicadas en el captulo dos: FCFS, EDD, LOT y SOT, para con ellas secuenciar las cargas en cada uno de los diferentes centros de trabajo ingresados en la base de datos.

Mtodo hngaro. Como se mencion en el Captulo dos, para operaciones paralelas la programacin de n tareas en m centros de trabajo o mquinas se vuelve matemticamente muy compleja, por esto cuando el caso lo permite, la utilizacin de los modelos basados en programacin matemtica pueden proporcionar una solucin tericamente ptima al problema. El ms empleado por los diferentes autores es el Algoritmo de Asignacin de kuhn, que parte de

60

Ibid, p. 403.

108

una matriz formada, en nuestro caso, por los tiempos para realizar cada operacin en cada instalacin.

Este es el mtodo que se incluy en el desarrollo de la aplicacin para dar respuesta a ste tipo de programacin. La asignacin mediante el mtodo hngaro se realiza partiendo de una matriz que refleja los tiempos que provocara la asignacin de una determinada operacin Oi, a una mquina Mj.

El planeamiento matemtico de un problema de estas caractersticas es un caso particular de programacin binaria. No obstante, existe un algoritmo especfico que facilita su resolucin, el algoritmo hngaro o de Kuhn, que, partiendo de una matriz de costos, para nosotros de tiempos, escoge un elemento, y slo uno, por fila y por columna, de modo que se minimicen los tiempo totales. El procedimiento que lleva a conseguir una solucin ptima para realizar la asignacin se menciono en el captulo dos, y el algoritmo que realiza la asignacin en Excel como se detalla en Machuca61, se presenta en el anexo B cdigos apartado archivos Excel.

Este mtodo presenta algunos inconvenientes que lo hacen excesivamente rgido. Entre ellos cabria destacar, por una parte, que de los distintos trabajos, slo uno puede ser asignado a cada CT o instalacin. Dado que aquellos tendrn distinta duracin, esto

61

MACHUCA DOMNGUEZ, Jos Antonio et al. Aspectos tcticos y operativos en la produccin y los servicios, Op cit., p. 299.

109

implicar desperdiciar las instalaciones ms eficientes si a stas se asigna un trabajo corto. Por otra parte, no se contempla la posibilidad de que los trabajos se puedan subdividir, puesto que la asignacin es biunvoca.

Regla de Johnson. La programacin de n tareas en dos mquinas mencionada en el Captulo dos, la incluimos en la aplicacin al desarrollar para sta la regla de Johnson, que parte del tiempo de ejecucin de cada pedido en cada mquina, este mtodo heurstico pretende hacer mnimo el tiempo necesario para concluir todos ellos y, por tanto, el tiempo ocioso de las mquinas. El algoritmo creado para realiza la regla de Johnson en Excel, se presenta en el anexo B cdigos apartado archivos Excel.

Produccin planeada. La planeacin se realiza para cada centro de trabajo bajo el concepto de la carga vertical explicado en el Captulo dos, controlando as la capacidad del centro. El control de la capacidad pretende gestionar y controlar la capacidad de los centros de trabajo y reconocer las desviaciones significativas, proporcionando as la informacin necesaria para tomar las medidas correctoras oportunas. Slo as se podrn mantener actualizados los factores de eficiencia y utilizacin y la capacidad disponible, permitiendo desarrollar una planificacin de capacidad confiable. Dada, adems, la influencia que las colas de espera tienen en los tiempos de suministro de las referencias fabricadas, el control de capacidad resulta bsico

110

para su mantenimiento actualizado y, en consecuencia, para una adecuada planificacin y control de la produccin62

Esta planeacin es la que viene del mediano plazo por el CRP. Como la planeacin a corto plazo se realiza por periodos se cre el formulario Produccin Planeada por CT para suplir los datos del nivel anterior.

Produccin planeada por CT. La programacin finita supera las desventajas de los sistemas basados en reglas ofreciendo clculos y grficos interactivos al programador. Este sistema se caracteriza por dar la capacidad al programador de hacer cambios basados en la informacin de ltima hora. Estos programas aparecen normalmente en diagramas de Gantt. El programador tiene flexibilidad para manejar cualquier situacin, incluyendo cambios en los pedidos, trabajos o mquinas.63 Esta flexibilidad se ofrece al usuario en este formulario por medio de los escenarios y el archivo vinculado en Excel.

4.2

APLICACIN HPP-S

Para el diseo de la aplicacin HPP-S se consider lo siguiente:

62 63

Ibid p. 322. HEIZER, y RENDER, Op cit., p. 244.

111

La aplicacin esta diseada para funcionar en una PYME manufacturera, que tenga sus procesos estandarizados.

Como ayuda puntual la mayora de los formularios cuentan con botones de informacin que orientan al usuario en el uso de estos. As como, botones en algunos para avanzar entre los formularios relacionados de forma rpida.

Para el desarrollo de la aplicacin se consider que un pedido es una orden de trabajo sin importar la cantidad de referencias que compongan el pedido.

Figura 4-6.

Detalle relaciones entre paneles de control. 112

La secuencia de pasos o divisiones que contiene la aplicacin segn los paneles de control para acceder a los diferentes formularios que contiene se muestra en la figura 4-6.

Figura 4-7.

Panel principal

La exploracin de la aplicacin se inicia desde el panel principal que contiene los tres procesos macro para funcionamiento de la misma: Preparacin pedido, Scheduling y Control (Ver Figura 4-7.)

4.2.1

Preparacin pedido.

Figura 4-8.

Panel preparacin pedido 113

Al hacer clic en el botn Preparacin pedido en el panel principal se despliega el panel que se muestra en la figura 4-8, que contiene los vnculos a los formularios Clientes y Pedidos como a los paneles Datos productos y Datos ruta.

La relacin entre los productos de la empresa y los pedidos de los clientes, genera el flujo de informacin que se apoya en los registros de la base de datos. Informacin sobre: clientes, productos, rutas y centros de trabajo. Por eso, al iniciar la aplicacin HPP-S se debe ingresar esta informacin.

Clientes.

Figura 4-9.

Formulario clientes

Este formulario Clientes, figura 4-9, aparece despus de oprimir en botn Ingresar clientes en el panel Preparacin pedido, recoge informacin sobre cada uno de los clientes. Lo 114

importante para el desarrollo de la aplicacin es la vinculacin de stos con la empresa por medio de los pedidos.

Figura 4-10. Panel datos producto El panel Datos productos, figura 4-10, contiene los vnculos a los formularios Productos, Partes/componentes y Estructura producto.

Productos

Figura 4-11. Formulario productos

115

El botn Producto del panel anterior activa el formulario de la figura 4-11, en ste se ingresan el nombre y descripcin del producto. Dndose a cada producto un identificador que lo hace nico en la base de datos.

El smbolo que aparece en el extremo izquierdo de cada formulario o subformulario indica la fila o registro que se encuentra activo en el momento.

Partes/componentes.

Figura 4-12. Formulario partes/componentes El botn Partes/componentes del panel Datos producto abre el formulario de la figura 412, en ste se ingresan el nombre y tipo del elemento usado en la elaboracin de los diferentes productos. Dndose a cada elemento un identificador que lo hace nico en la

116

base de datos. La columna tipo es para clasificar el elemento segn sea en: insumo, componente y ensamble, tipos que aparecen en la aplicacin por defecto, los cuales pueden ser modificados o complementados con otros segn la necesidad del usuario.

Estructura producto.

Figura 4-13. Formulario estructura producto. El botn Estructura producto del panel Datos producto abre el formulario de la figura 413, en ste se forma el rbol del producto o estructura del producto al armar el producto con las diferentes partes/componetes ingresadas en el formulario Partes/componentes, teniendo

117

presente los diferentes niveles para su composicin. Indicando las cantidades requeridas y las unidades respectivas.

Figura 4-14. Panel datos ruta. El panel Datos ruta, figura 4-14, contiene los vnculos a los formularios Centros de trabajo, Detalles centros de trabajo, Mquinas paralelas CT, Hoja de ruta y Rutas producto.

Centros de trabajo.

Figura 4-15. Formulario centros de trabajo. 118

El botn Centros de trabajo del panel anterior activa el formulario de la figura 4-15, en ste se ingresan el nombre de cada centro de trabajo. Dndose a cada uno un identificador que lo hace nico en la base de datos.

Detalle centros de trabajo.

Figura 4-16. Formulario detalle centros de trabajo. El botn Detalle centros de trabajo del panel Datos ruta abre el formulario, figura 4-16, en que se ingresan los detalles de los centros de trabajo usados en la planta: horas reales de trabajo (capacidad diaria), la eficiencia, utilizacin y los nombres de las operaciones realizadas en dicho centro de trabajo. Adems del el tiempo medio de preparacin y el tiempo medio de cola, ambos en horas estndar. 119

Mquinas paralelas.

Figura 4-17. Formulario mquinas paralelas CT. El botn Mquinas paralelas CT del panel Datos ruta abre el formulario, figura 4-17, en donde se ingresan los valores en minutos para las operaciones que son paralelas en el centro de trabajo seleccionado. Hay posibilidad de ingresar valores hasta para nueve operaciones paralelas.

Hoja de ruta. El botn Hoja de ruta del panel Datos ruta abre el formulario, figura 4-18, donde se ingresan para cada ruta las operaciones necesarias para su elaboracin, los centros de 120

trabajo por donde pasa y los valores en minutos para el tiempo de ejecucin y el tiempo de desplazamiento.

Figura 4-18. Formulario hoja de ruta. Adems del aprovechamiento por operacin que genera el factor de aprovechamiento de la ruta. Cada ruta ingresada queda identificada con un nmero y nombre que la hacen nica en la base de datos. En el formulario se muestran tambin la cantidad de operaciones de la ruta, la suma de los tiempos de ejecucin y desplazamiento por todas las operaciones ingresadas asociadas a la ruta.

121

Rutas producto. El botn Rutas producto del panel Datos ruta abre el formulario, figura 4-19, donde para un producto ingresado se seleccionan las rutas necesarias para su elaboracin, teniendo en cuenta los diferentes niveles de su estructura. Los elementos que son insumo para el producto terminado en el rbol de rutas del producto quedarn con un factor igual a 1, pues no tiene asociada una ruta por ser de origen externo a la planta.

Figura 4-19. Formulario rutas producto.

122

Pedidos. El botn Ingresar pedidos del panel Preparacin pedido abre el formulario, figura 4-20, donde se relacionan los productos con los clientes en cantidades por ellos suministradas. Aqu se identifica cada pedido con un nmero nico en la base de datos, se detalla la composicin del mismo y se ingresan las fechas respectivas de emisin, entrega programada y entrega real. Desde este formulario se puede averiguar las cantidades necesarias por cada componente para cumplir con el nmero de productos que el cliente requiere. Adems de, conocer la cantidad de das necesarios para la elaboracin del mismo.

Figura 4-20. Formulario pedidos.

123

Cantidad requerida. Al hacer clic en el botn Cantidad requerida de la figura 4-20 aparece el formulario cantidad requerida por pedido, figura 4-21, el cual muestra las cantidades por tipo (partes, componentes e insumos), con sus unidades que son requeridas para elaborar los productos en las cantidades que aparecen en el pedido.

Figura 4-21. Formulario cantidad requerida. Es de aclarar que las cantidades de partes/componentes que aparecen para un producto, puede diferir de las cantidades que estn en el pedido. Esto porque, al tenerse en la base de datos registrado el factor de utilizacin por rutas asociadas a componentes e incluso hasta las rutas de ensamble, las cantidades mostradas, son las que se deben emitir como entrada

124

al proceso para que luego en la salida se obtengan las cantidades requeridas por el cliente. Contando con un margen de error establecido por los imperfectos.

Observe como las cantidades a emitir para los productos, P1 (186) y Silla (26), son mayores a las solicitadas por el cliente en su pedido, P1 (170) y Silla (25).

Tiempo de entrega.

Figura 4-22. Formulario tiempo de entrega. Oprimir el botn Tiempo de entrega de la figura 4-20, muestra el formulario Tiempo de entrega el cual realiza la carga horizontal, es decir, carga todos los tiempos de las operaciones involucradas en la orden de trabajo real para producir su programa de duracin en el tiempo. Lo que se hace, es cargar todas las tareas en los centros de trabajo necesarios

125

a lo largo del horizonte de planificacin, siendo la sumatoria de todas las duraciones, el tiempo total en das para la elaboracin del pedido desde la fecha actual tomada como cero.

Figura 4-23. Habilitar macros. Hacer clic en el botn Programacin detallada del formulario Tiempo de entrega, realiza el envi de la informacin en Access del pedido actual al archivo en Excel donde se procesaran los datos segn corresponda. Como los archivos en Excel tienen todos una programacin vinculada en Visual Basic Macros al iniciar el programa aparece el cuadro de mensaje de la figura 4-23, al cual hay que responder haciendo clic en el botn Habilitar macros.

Programacin detallada. El propsito de la carga hacia el futuro es determinar la fecha de terminacin aproximada de cada trabajo. La figura 4-25, es un detalle de la figura 4-24 donde muestra las fechas de inicio y finales para cada operacin asociada a la ruta que compone. Basndose en los lmites de capacidad de cada centro de trabajo por los cuales pasa.

126

Figura 4-24. Programacin detallada en Excel. La figura 4-24 es la imagen del archivo detallada en Excel que ofrece al programador una grfica de Gantt, que representar el desarrollo de las diferentes operaciones a realizar para el lote en funcin del tiempo.

Figura 4-25. Programacin detallada detalle inicio y fin operaciones. La grfica generada es sin solapamientos, es decir, se trabaja bajo la hiptesis de que no se podr dar comienzo a ninguna actividad hasta que se haya finalizado la operacin anterior sobre todas y cada una de las unidades a fabricar. Esta situacin concuerda con el concepto del flow shop donde hay una secuencia establecida para la elaboracin de los productos En

127

estas condiciones, el grfico de Gantt resultante da lugar a un tiempo total para el tamao del pedido.

Se deja al lector comprobar, que al ingresar una fecha en el campo fecha de entrega real del formulario Pedido al oprimir los botones de comando Cantidad requerida y Tiempo de entrega en los formularios que aparecen no se muestra ningn valor. Esto para evitar que se generen dentro de la base de datos valores que ya no son tiles para qu necesito mantener cantidades requeridas o tiempo de programacin para un pedido que ya entregue?. De esta forma no se cargara la base con informacin innecesaria, conservando rapidez al usar el mnimo espacio de memoria.

4.2.2

Scheduling.

Figura 4-26. Panel scheduling. El panel Scheduling, figura 4-26, contiene los vnculos a los paneles de control Asignacin y Secuenciacin.

Asignacin. El panel Asignacin, figura 4-27, contiene los vnculos a los formularios Carga pedidos, Carga operaciones y Control pedidos. 128

Para el desarrollo del Scheduling, hemos dividido el proceso en dos momentos que son: la asignacin o direccionado de las rdenes de trabajo a cada CT en la planta y el secuenciamiento posterior para determinar el orden de realizacin de cada una.

Figura 4-27. Panel Asignacin. Como diversos centros de trabajo son capaces de procesar los nuevos pedidos de los clientes, cmo determinar cules trabajos deben asignarse a cada centro?. Por medio del programa de produccin podemos manejar los productos con margen de cmo y cundo debern terminarse. Adems, se cuenta con la trayectoria o ruta del proceso de cada elemento, de manera que conocemos cules son los centros que deben intervenir.

Carga pedidos. El botn Carga pedidos del panel Asignacin abre el formulario, figura 4-28, donde la carga de cada pedido se realiza al marcar la casilla de verificacin como iniciado en la tabla Control pedidos, Control detalle pedido y en Control de ruta.

129

Figura 4-28. Formulario carga pedidos. Si se selecciona alguna fila o registro de una tabla y no se marca como iniciada, la aplicacin no generar los valores de la carga respectiva pues est no se reconocer como iniciada.

El programador frente al formulario Carga pedidos, debe iniciar (cargar) los pedidos, los productos que lo componen, y las operaciones que conforman cada uno de las rutas. Es decir, debe descender desde el pedido hasta las rutas para poder calcular en el formulario siguiente los valores de las cargas para los centros de trabajo donde se realizan las operaciones.

130

Carga operaciones.

Figura 4-29. Formulario carga operaciones. El botn Carga operaciones del panel Asignacin abre el formulario, figura 4-29, donde para las rutas marcadas como iniciadas en el formulario anterior se selecciona la operacin marcndo la casilla de verificacin como iniciado o terminada segn sea el caso.

El programador selecciona una ruta de entre las rutas marcadas como iniciadas (tabla Rutas iniciadas) y selecciona en la tabla Control operaciones cual de las operaciones asociadas a la ruta elegida (tabla Operaciones), va a cargar para su manufactura marcando la casilla de iniciada.

Si se selecciona la operacin de una ruta y no se la marca como iniciada la aplicacin no mostrara en los pasos siguientes la carga para el centro de trabajo en el cual se procese.

131

Control pedidos.

Figura 4-30. Formulario control pedidos. El botn Control pedidos del panel Asignacin abre el formulario, figura 4-30, donde aparecen las acciones realizadas en los formularios anteriores, en este punto el programador puede verificar que aparecen iniciadas las operaciones seleccionadas.

Pasamos a aclarar lo anterior. Recuerde que el smbolo que aparece en el extremo izquierdo de cada subformulario indica la fila que se encuentra activa en el momento, as es como en la figura 4-28, formulario carga pedidos, se muestran los detalles para el pedido 2, (que se compone de dos productos Silla y P1), que ambos estn iniciados y que, en el

132

control ruta para el producto Silla aunque tiene seleccionadas varias rutas solo se dan como iniciadas una: asiento con 37 como cantidades a emitir.

El formulario Control pedidos, figura 4-30, muestra en la tabla rutas producto para el pedido 1, producto Silla, y ruta 8 con nombre asiento delantero que de 124 unidades slo quedan pendientes 8 unidades. Cantidad con la cual se calcular la nueva carga para el centro de trabajo que utilice la operacin marcada como iniciada en sta ruta. El formulario Control pedidos permite la actualizacin de las cantidades a realizar por operacin ofrecindole al usuario dinamismo en la realizacin de su trabajo, ya sea para modificar cantidades en el periodo o para actualizar datos en el nuevo periodo a programar.

Dejamos para el usuario, por ejemplo desmarcar el producto P1 del formulario Carga pedidos y observar lo que pasa en los formularios Carga operaciones y Control pedidos, as como el marcar o desmarcar rutas en el mismo formulario Carga Pedidos, y el marcar o desmarcar operaciones en el formulario Carga operaciones. Regresando al formulario Control pedidos para apreciar que efectos tienen estos cambios, con esto, si no se dan por iniciadas adecuadamente las rutas en la secuencia descrita, no se llevar de forma conveniente el sistema de control.

Cargas operaciones iniciadas. Hacer clic en el botn Cargas operaciones iniciadas del formulario Control pedidos. Abre el formulario de la figura 4-31 que muestra para todas las operaciones iniciadas: la cantidad

133

de unidades a elaborar, la carga por operacin, la duracin de cada una, su nombre y pedido al cual esta vinculada, entre otros datos tambin tiles para el programador.

Figura 4-31. Formulario cargas operaciones iniciadas. Observe que para el caso mencionado pedido 1 ruta asiento delantero con 8unidades pendientes solamente se realizar la operacin 39. Compruebe como cambian los valores para la duracin y carga modificando en el formulario Control pedidos figura 4-30, el valor de 8 cantidad de unidades pendientes.

134

Secuenciacin.

Figura 4-32. Panel secuenciacin. El panel Secuenciacin de la figura 4-32, contiene los vnculos a los formularios Reglas de prioridad, Mtodo hngaro y Regla de Johnson.

Prioridades.

Figura 4-33. Formulario reglas de prioridad. El botn Reglas de prioridad del panel Secuenciacin abre el formulario, figura 4-33, donde aparece para el centro de trabajo seleccionado el siguiente detalle de datos: pedidos 135

asignados al CT, nmero de operacin, la fecha de entrega, el nombre de la ruta y la carga por operacin.

Para el caso de la figura el centro seleccionado es Corte. La informacin de la tabla Operaciones cargadas es enviada al archivo Prioridades en Excel luego de oprimir el botn Reglas de prioridad para que sea procesada y mostrada al usuario en la forma como se presenta en la figura 4-34 para el mismo centro de trabajo seleccionado.

Figura 4-34. Reglas de prioridad en Excel. En el desarrollo de esta aplicacin tomamos las siguientes reglas para locales: FCFS, EDD, LOT y SOT, para con ellas secuenciar las cargas en cada uno de los diferentes centros de trabajo ingresados en la base de datos.

136

El archivo en Excel Prioridades, tiene en una hoja de clculo para cada prioridad, otra hoja de clculo reglas (resumen) que se muestra en la figura 4-34, y un grfico que representa las datos contenidos en el hoja reglas.

Detallando la relacin entre las figuras 4-33 y 4-34, se observa que los datos enviados son presentados en diferente orden segn la regla que los evala. Por ejemplo los datos del

pedido 2 operacin 5 ruta 112, bajo la regla FCFS se ubica de primero, en la regla SOT
esta segundo, en la regla EDD est ltimo y en la regla LOT est de tercero.

Las prioridades son un mtodo que el programador puede usar para secuenciar las rdenes de trabajo y definir as su orden en la elaboracin. Adicionales a las reglas nombradas se presentan otras dos opciones: pedidos pendientes hasta hoy y pedidos pendientes a la fecha.

En el submen Prioridades que se encuentra dentro de Secuenciacin en el men Scheduling de la barra de men de la aplicacin, se encuentran las opciones que el programador puede usar para priorizar las rdenes.

137

Figura 4-35. Formulario pedidos pendientes a la fecha. En pedidos pendientes hasta hoy se puede conocer por sus das de retraso hasta el da actual los pedidos. En pedidos pendientes a la fecha se seleccionan los pedidos pendientes de entrega hasta una fecha especfica ingresada por el usuario ofrecindole la posibilidad de buscar los pedidos hasta la fecha que desee sin importar si es anterior o posterior a la fecha actual, mostrndose tambin el nmero de sus das de retraso hasta la fecha ingresada. (Ver Figura 4-35)

138

Mtodo hngaro.

Figura 4-36. Formulario mtodo hngaro. El botn Mtodo hngaro del panel Secuenciacin abre el formulario, figura 4-36, donde aparece para el centro de trabajo seleccionado los diferentes tiempos de ejecucin de la operacin en cada una de las mquinas paralelas. En el caso mostrado el centro de trabajo es 1 Corte.

Est mtodo tiene asociado el concepto de mquinas paralelas descrito anteriormente por el cual se obtienen diferentes valores de carga para una misma operacin segn las mquinas donde se realice.

139

Lo anterior solo aplica para los centros de trabajo en los que se hayan ingresado datos en las operaciones que presentan actividades paralelas. Como es el caso de las operaciones 8 y 5 que se realizan en el centro de trabajo 1 Corte, (Ver Figura 4-17)

Figura 4-37. Mtodo hngaro en Excel hoja de clculo asignar. La informacin de la tabla Matriz de cargas en el formulario Mtodo hngaro, es enviada a Excel al archivo Asignacin luego de oprimir el botn Mtodo hngaro. Los datos se copian en la hoja de clculo llamada asignar,(Ver Figura 4-37). Para ejecutar el mtodo el usuario debe oprimir el botn Ejecutar mtodo hngaro el cual muestra los resultados generados por el algoritmo en la hoja de clculo llamada Hoja 1.

La figura 4-38 muestra al usuario la asignacin resultado del proceso para los datos del centro de trabajo seleccionado en la figura 4-37.

140

Figura 4-38. Mtodo hngaro en Excel hoja de clculo Hoja1.

Figura 4-39. Formulario regla de Johnson.

141

Regla de Johnson. El botn Regla de Johnson del panel Secuenciacin abre el formulario, figura 4-39, que aplica para las rutas que tienen operaciones que deben pasar a travs de dos mquinas o centro de trabajo en el mismo orden. As en el formulario se relacionan las cargas del centro de trabajo 1 y el centro de trabajo 2 para las rutas que cumplen la condicin anterior.

Figura 4-40. Johnson en Excel La informacin de la tabla johnson del formulario Regla de Johnson, es enviada al archivo johnson en Excel luego de oprimir el botn Regla de Johnson. Los datos se copian en la hoja de clculo llamada johnson, y para que se corra el algoritmo, el usuario debe oprimir el botn johnson. Los resultados generados se muestran en la hoja de clculo llamada Hoja 1 (Ver Figura 4-40).

142

La figura 4-40 muestra al usuario el orden -columna A- resultado del proceso para los datos de los centros de trabajo seleccionados en la figura 4-39. En el grfico de la figura anterior se han colocado los nmeros de fila (2,3) de la columna A, sobre los espacios de carga (barras horizontales) para indicar la secuencia de los pedidos en los CT. En el archivo Johnson de Excel, estos nmeros no aparecen dentro de la grfica.

4.2.3

Control.

Figura 4-41. Panel control. El panel Control, figura 4-41, contiene los vnculos a los formularios Produccin planeada, Produccin real e Input-output.

Produccin planeada. El formulario Produccin planeada por CT, figura 4-42, muestra el detalle de cargas actuales asignadas al centro de trabajo seleccionado en el periodo de anlisis. Este formulario ofrece al programador de la produccin la posibilidad de observar como se afectan los prximos cinco periodos a partir del actual con el total de carga pendiente, para realizar una programacin ms real de este centro.

143

Cambiando para el centro deseado el valor de hr (horas reales de trabajo) en la tabla Input, output planificado, se modifican los valores para los escenarios en la tabla Comportamiento del ct a cinco periodos donde para los prximos periodos se suponen condiciones normales de trabajo.

Figura 4-42. Formulario produccin planeada. Como apoyo adicional se ofrecen en Excel otras opciones para ejecutar una programacin ms dinmica y ptima. El botn Grfico de Gantt enva los datos del centro seleccionado en el formulario al archivo carga_finita de Excel. Donde los datos se copian en la hoja de clculo llamada cg_finita, (Ver Figura 4-43), para con estos realizar los clculos y las grficas que se presentan en las hojas de clculo que conforman el archivo.

144

Figura 4-43. Carga finita en Excel hoja de clculo cg_finita. Como la programacin finita supera las desventajas de los sistemas basados en reglas ofreciendo clculos y grficos interactivos al programador. La hoja de clculo mostrada en la figura 4-43. permite al usuario interactuar con ella al modificar los datos de la columna F carga_operacin, mostrando en el grafico de la misma hoja los efectos que estos cambios tienen.

De igual manera se permite interactuar en la hoja de clculo Hoja2, figura 4-44, al cambiar las horas reales normales de trabajo. Observando por cifras y grficamente los efectos que tales cambios tienen en los cinco prximos periodos teniendo estos condiciones normales de trabajo.

145

Figura 4-44. Carga finita en Excel hoja de clculo Hoja2.

Figura 4-45. Formulario produccin real.

146

Produccin real. El botn Produccin real del panel Control abre el formulario, figura 4-45, en el cual se ingresan los datos reales de funcionamiento, terminadas todas las operaciones en los centros de trabajo a los que se les program actividad al inicio del periodo.

Input-output.

Figura 4-46. Formulario control input-output. Para terminar el botn Input Output del panel Control abre el formulario, figura 4-46, que ofrece al programador conocer el funcionamiento del centro de trabajo seleccionado en diferentes periodos. Este informe de control sobre el anlisis de insumos y productos es de utilidad para hacer el seguimiento de los desempeos de cada uno de los centros de trabajo.

Al oprimir el botn Informe input/Output del formulario Control input-output envan los datos en la tabla control Input Output del centro seleccionado al archivo in-out en Excel. Donde los datos se copian en la hoja de clculo activa, figura 4-47, y se procesan para mostrar la informacin importante para el centro seleccionado en las columnas H hasta la P, 147

adems de mostrar grficas que representan lo planeado y la real para ambos casos el input y el output.

Figura 4-47. Control in-out en Excel. Otros. Para finalizar se enumeran algunos elementos de apoyo a la aplicacin. La opcin Productos en el men General, de la barra de men aplicacin, abre la tabla productos desde donde se pueden modificar o borrar los productos o componentes de productos en sus diferentes niveles.

El botn Acerca de en el panel principal, activa la ventana, figura 4-48, donde aparecen: El ttulo del trabajo de grado y los autores. El botn salir del mismo panel cierra la aplicacin y Access.

148

Figura 4-48. Formulario acerca de. 4.3 INFORMACIN ADICIONAL PARA EL USUARIO.

Para los productos as como para los centros de trabajo se ha dispuesto un formulario en el que se pueden ingresar todos los nombres de los productos y centros de trabajo que utiliza la planta. Despus de listados y segn se necesite se puede buscar: el producto o el CT. Detallndose la composicin de una referencia particular o ingresar los valores de funcionamiento para el clculo de su capacidad.

Al realizar el rbol de rutas para un producto es necesario ingresar como mnimo la ruta de ensamble del mismo, ruta de nivel ms alto. De no ser as, la cantidad de elementos componentes del producto necesarios para cumplir con un pedido no se presentan, pues, por los factores de utilizacin de las rutas, las cantidades requeridas son el resultado de multiplicaciones sucesivas entre los factores de las rutas segn los niveles ingresados al producto y la cantidad de partes ingresadas en la estructura del producto. Por eso se debe asociar al producto la ruta de ensamble, siendo esta la unin de las otras rutas que conforman el producto. Al no existir un factor en este nivel la aplicacin asocia un valor de cero a esta posicin dndose as multiplicaciones de datos por cero. 149

El formulario Cargas operaciones iniciadas figura 4-31 permite conocer para todas las operaciones iniciadas: el valor de la carga, el centro de trabajo por el que pasa, la duracin en das de la misma, el nombre de la ruta, el nombre y el identificador de la operacin, el nmero del pedido al que corresponde, la fecha de entrega del mismo, la cantidad a elaborar, y el detalle de los tiempos de: desplazamiento al centro de trabajo, la cola de espera, la preparacin en el centro de trabajo, y la ejecucin de la operacin. Estos datos pueden ser utilizados por el usuario para realizar cualquier otro tipo de ordenamiento de las operaciones en el centro de trabajo analizado.

En las diferentes opciones presentadas para realizar la secuenciacin o la carga de los pedidos a los centros de trabajo se trabaja siempre con los mismos datos, carga por operacin, esto se puede confirmar al comparar los valores de carga por operacin que aparecen en los diferentes formularios presentados en la aplicacin (Ver Figuras 4-33, 4-39, 4-42), contra los valores que aparecen el formulario cargas iniciadas por operacin. (Ver Figura 4-31).

Los formularios Carga operaciones y Control pedido permiten elegir los componentes del producto o elegir las operaciones en la ruta del componente que en realidad se necesitan para elaborarlo. Esto es poder programar actividadas de produccin reflejo real del avance en la elaboracin de las diferentes partes/componentes o produtos de la empresa segn se manufacturan, teniendo en cuenta las presedencias e inventarios existentes. La aplicacin se dise de manera tal que sea el usuario quien controle los momentos de inicio y fin de las 150

operaciones de produccin, sto por medio de las casillas de verificacin, generando un control sobre todas las operaciones realizadas en la planta.

En la Aplicacin HPP-S no presenta la ventana Base de datos cuando se abre la misma para proteger su estructura interna (tablas, consultas, formularios, informes, macros o mdulos), de modificaciones como: cambio en los nombres, eliminacin, alteracin de relaciones, edicin de formularios, de informes, etc., que afectaran el optimo funcionamiento de la aplicacin. Sin embargo, la ventana Base de datos se puede activar al oprimir la tecla F11 permitiendo al usuario trabajar sobre la propia estructura de la base de datos. Recuerde que al trabajar con programas de gestin de bases de datos, como es el caso de Access, no existe la opcin Save (Guardar), referida a los datos de la aplicacin, debido a que los cambios en los datos se van guardando siempre en el dispositivo de almacenamiento permanente.

La aplicacin esta diseada para trabajar ubicada en la carpeta Aplicacin en el disco C del PC (C:\Aplicacin). Instalarla en otra direccin provocara problemas para el envi de la informacin del archivo HPP-Sen Access a los diferentes archivos vinculados en Excel. Por otra parte, los archivos en Excel cuentan con botones para la creacin de los elementos de apoyo en cada uno de ellos, como: grficos y cuadros de texto. Esto para evitar que se afecte su funcionamiento por eliminaciones accidentales de alguno de ellos.

151

CONCLUSIONES

CAPTULO 6. CONCLUSIONES.

La herramienta informtica diseada permite al programador realizar la planeacin de la produccin a corto plazo de una manera rpida y precisa en empresas manufactureras con fabricacin por lotes o series cortas que tengan sus procesos normalizados. Y para las que no, les ayuda a ordenar su informacin sobre productos, rutas, operaciones y centros de trabajo al ofrecer una estructura coherente y de fcil manejo.

La aplicacin ofrece al usuario diferetes opciones para la programacin de la produccin de acuerdo a las condiciones del momento en que esta se realiza. Para nuevas condiciones de programacin, la aplicacin por su flexibilidad permite incluir stas nuevas necesidades produccin en el sistema para gerenerar as, una nueva programacin de la produccin actualizada.

La carga de los trabajos a la planta en la aplicacin se realiza para cada uno de los centros de trabajos, el usuario programador puede entonces identificar cual es el centro con mayor carga, dedicando as, ms tiempo para buscar opciones de programacin en dicho centro.

Los archivos en Excel funcionan independientes a la base de datos. Permitiendo realizar modificaciones en los valores de estos archivos sin que se altere la informacin en el 152

archivo de Access, ofreciendose as una herramienta de apoyo a nivel acadmico para los cursos de produccin.

La aplicacin desarrollada calcula para un CT especfico el valor de la carga asignada al mismo, independiente de los dems CT. Permitendose as, una aproximacin a la programacin en configuraciones por lotes enfocadas al proceso o job shop.

La apliaccin desarrollada aporta aporta a las PYMES manufactureras que no tengan un orden en su informacin: Centralizacin de la informacin. Codificacin de productos, partes/componentes, rutas, operaciones, centros de trabajo. Unificacin de normbres o terminos usados al interior de la empresa, haciendo ms clara la comunicacin de la informacin. La realizacin de catalogos de: productos con sus partes/componentes, rutas, productos con sus rutas. Esto por medio de los impresos que se pueden realizar de la informacin en la base de datos.

Para reclamos por defectos de fabricacin de algn producto o para la trazabilidad de los mismos, en la aplicacin queda el historial de pasos que se siguieron para la realizacin de cada una de las partes que componen un producto ternimado. Historial unico para cada uno de los pedidos manufacturados en la planta.

153

BIBLIOGRAFA

CAPTULO 7. BIBLIOGRAFA.

BRIMELE, Ricardo. EXCEL FCIL!. Mxico : Prentice Hall, 1994. 286 p.

CHASE, Richard B, y AQUILANO, Nicols J. Direccin y administracin de la produccin y de las operaciones. 6 ed. Mexico : Mc Graw Hill, 1995.

CHASE, Richard B, AQUILANO, Nicolas J, y JACOBS, F. Robert. Administracin de la produccin y de las operaciones; manufactura y servicios. 8 ed. Colombia : Mc Graw Hill, mayo 2000. 885 p.

EVERETT, E. Adam. Jr, y RONALD, J. Ebert. Administracin de la produccin y las operaciones. 4 ed. Mexico : Prentice Hall, 1994. 739 p.

HALVORSON, Michael. Microsoft Visual Basic 4 : paso a paso. Colombia : Mc Graw Hill, 1996. 372 p.

HEIZER, Jay y RENDER Arry. Direccin De la Produccin. Madrid : Mc Graw Hill, 1997.

KORTH, Henry F y SILBERSCHATZ, Abraham. Fundamentos de bases de datos. 2 ed. Espaa : Mc Graw Hill, 1995. 739 p.

KRAJEWSKI, Lee y RITZMAN, Larry. Administracin de operaciones o produccin : Estrategia y anlisis. Mxico: Pearson educacin, 2000. p.762.

MACHUCA DOMNGUEZ, Jos Antonio et al. Direccin de operaciones : Aspectos estratgicos en la produccin y los servicios. Espaa : Mc Graw Hill, 1995. p. 143

154

-------- : Aspectos tcticos y operativos en la produccin y los servicios. Espaa : Mc Graw Hill, 1995. p. 267 487.

MOTOA, T. Gerardo Algunos apuntes sobre el uso de la simulacin en el diseo de sistemas de fabricacin. Madrid junio 1994. Universidad Politcnica de Madrid. Disam.

-------- Sistemas de Planificacin Jerrquicos: Aplicaciones a la gestin de produccin y de proyectos. Cali. Escuela de ingeniera industrial y estadstica. Universidad del Valle. 41 P.

NEIBAUER, Alan. Access 2000 para gente ocupada. Mexico : Mc Graw Hill, 2000. 312 p.

NOORI, Hamid y RADFORD Rusell. Administracin De Operaciones y Produccin. Santaf de Bogot : Mc Graw Hill, 1997.

RUMBAUGH, James et al. Modelado y diseo orientado a objetos. 4 ed. Mxico : Prentice may, 1995

SARRIEGUI, Jos Mara, SERRANO, Nicols, MURO, Ivan. Aprenda Microsoft Access 97 como si estuviera en primero. San Sebastin, Octubre 1998 Escuela Superior de Ingenieros Industriales, Universidad De Navarra

SCHROEDER, Roger G. Administracin De Operaciones : toma de decisiones en la funcin de operaciones. 3 ed. Mexico : Mc Graw Hill, 1992. 503 p.

SENN, James A : Anlisis y diseo de sistemas de informacin. 2 ed. Mxico : Mc Graw Hill, 1992. p 181.

SIPPER, Daniel y BUFFIN L., Robert. Planeacin y Control De La Produccin. Mexico : Mc Graw Hill, 1998.

VOLLMANN, Thomas E. Sistemas De Planificacin Y Control De La Fabricacin. 3 ed. Espaa : Irwin, 1994. 155

ANEXOS

ANEXO A. MANUAL DEL USUARIO

Instrucciones de manejo rpido 1. Para el ingreso de nuevos productos haga clic en Productos del men Preparacin pedido, e ingrese las partes/componentes y la estructura en el submen ingresar datos producto del men Preparacin.

2. Para el ingreso de nuevos clientes haga clic ingresar clientes del men Preparacin pedido.

3. Para el ingreso de nuevos pedidos haga clic en ingresar pedidos del men Preparacin pedido.

4. Cargue los pedidos a la planta oprimiendo en carga pedidos del submen Asignacin en el men Scheduling y seleccione el pedido, los productos que lo componen e inicie las rutas necesarias.

156

5. Para determinar que operaciones cargar en las rutas iniciadas en el punto anterior. Oprima carga operaciones del submen Asignacin en el men Scheduling.

6. Verifique las rutas y operaciones iniciadas a los pedidos al hacer clic en control pedido del submen Asignacin en el men Scheduling.

7. Oprima secuenciacin en el men Scheduling y evalu las ordenaciones posibles de las cargas en cada centro de trabajo segn las opciones presentadas.

8. Determine la capacidad de cada centro de trabajo al oprimir produccin planeada del submen control en el men Scheduling.

9. Registre la produccin real al hacer clic en produccin real del submen control en el men Scheduling.

10. Conozca el informe input-output por centro de trabajo presionando control input-output del submen control en el men Scheduling.

Datos ejemplo general Para trabajar con la aplicacin HPP-S debe instalarse en su computador: 1. Descomprima el archivo Aplicacin HPP-S.exe en el disco C de su computador.

2. La aplicacin se debe descomprimir en C:\Aplicacin como se muestra en la figura A-1.

157

Figura A-1.

Direccin para descomprimir Aplicacin HPP-S.exe

En la figura A-1 presione el botn Unzip para iniciar la instalacin. Terminada esta debe aparecer la figura A-2 que confirma la perfecta instalacin de la herramienta en el disco C del computador.

Figura A-2.

Instalacin terminada.

3. En la carpeta Aplicacin Busque el archivo aplicacin.

HPP-S y bralo para entrar a la

4. Navegue a travs de las diferentes ventanas que se presentan en la aplicacin para manejarla segn su necesidad. 5. La aplicacin cuenta con botones de informacin en sus diferentes formularios segn sea necesario para ayudar o guiar al usuario en su manejo.

158

Ingreso de datos ejemplos particulares El ingreso de datos se realizar con casos de productos de estructuras cortas para producto y rutas, con el objeto de mostrar como se ingresan los datos en las estructuras iniciales pues, para los siguientes los pasos, son los mismos. Como apoyo para el usuario en la comprensin de la metodologa usada se ingresar el producto 'P1' que Machuca64 usa en el ejemplo 5.1. Se dar informacin que gue al usuario en lo bsico dejando que est lea la informacin en los botones que contienen los formularios que active.

Ingreso productos. El producto P1 tiene la siguiente estructura


producto Componentes Componentes1 111 P1 112 212 211

1. Ingrese las partes / componentes del producto P1 al oprimir Partes/componentes en el submen ingresar datos producto del men Preparacin.

64

MACHUCA DOMNGUEZ, Jos Antonio et al.

Direccin De Operaciones : Aspectos tcticos y

operativos en la produccin y los servicios. Espaa : Mc Graw Hill, 1995. p. 160

159

2. Ingrese la estructura del producto P1 al oprimir la estructura en el submen ingresar datos producto del men Preparacin. Debe verse al final como se muestra en la figura A-3 rbol de Estructura del producto P1.

Figura A-3.

rbol de Estructura del producto P1.

Si coloca el cursor en la casilla 111 de la tabla componentes, Figura A-3, observe que no aparece nada en la tabla componentes1.

3. En el formulario Detalle centro de Trabajo ingrese los datos por centro de trabajo. [Preparacin pedido/ ingresar datos ruta/ detalles centros de trabajo].

160

4. Rutas. Siguiendo con el producto P1 del ejemplo, los datos de la ruta de ensamble P1 queda como se muestra en la figura A-4. [preparacin pedido/ ingresar datos ruta/ Hoja de ruta].

El producto P1 tiene dos rutas ms P1 y 112.

Figura A-4.

Operaciones ruta P1.

5. Rutas por producto. Con las tres rutas, la estructura de rutas del producto P1 se aprecia en la figura A-4. siendo estas las que tienen un factor diferente de 1. [preparacin pedido/ ingresar datos ruta/ Rutas producto].

161

Figura A-5.

rbol de rutas del producto P1.

Observe en la figura A-5, como solo las rutas tienen un factor diferente de 1

Ingreso pedidos. 6. Active el formulario clientes. [Preparacin pedido/ ingresar clientes] e ingrese los datos.

7. Active el formulario pedidos. [Preparacin pedido/ ingresar pedidos] seleccione el cliente y detalle la composicin del pedido.

162

Elaboracin pedidos. 8. Cargue (asigne) los pedidos, productos, rutas y operaciones a los centros de trabajo en los formularios carga pedidos [Scheduling /Asignacin /carga pedidos] y carga operaciones [Scheduling /Asignacin /carga operaciones].

9. Ordene (secuencie) los pedidos usando las opciones para secuenciacin ofrecidas [Scheduling /secuenciacin ].

Control pedidos. 10. Controle las instalaciones programando y haciendo seguimiento de las actividades de produccin por cada centro de trabajo segn opciones del submen control. [Scheduling /Control]. Salir. 11. Para salir oprima el botn salir del panel principal.

ANEXO B. CODIGOS Formularios en Access. Formulario acerca de


Option Compare Database Private Sub Aceptar_Click() DoCmd.Close End Sub

Formulario asignacin
Option Compare Database Private Sub Comando12_Click() MsgBox "El botn MTODO HNGARO enva al archivo asignacin de excel la " _

163

& "informacin de la tabla MATRZ DE DATOS para que sea presentada segn " _ & "la asignacin del MTODO HNGARO.", vbInformation, "INFORMACIN" End Sub Private Sub Comando9_Click() MsgBox "Al seleccionar el centro en la tabla CENTROS DE TRABAJO el nombre del mismo " _ & "aparece en el campo Centro Seleccionado. "_ & "La tabla MATRZ DE DATOS muestra los diferentes valores de cargas para " _ & "cada una de las mquinas en el centro seleccionado que tiene mquinas.", vbInformation, "INFORMACIN" End Sub Private Sub ASIGNACIN_Click() On Error GoTo Err_ASIGNACIN_Click Dim stDocName As String stDocName = "ASIGNACIN" DoCmd.RunMacro stDocName Exit_ASIGNACIN_Click: Exit Sub Err_ASIGNACIN_Click: MsgBox Err.Description Resume Exit_ASIGNACIN_Click End Sub Private Sub MAQUINA__CT_Click() On Error GoTo Err_MAQUINA__CT_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "MAQUINAS CT" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_MAQUINA__CT_Click: Exit Sub Err_MAQUINA__CT_Click: MsgBox Err.Description Resume Exit_MAQUINA__CT_Click End Sub

Formulario cargas_operaciones_iniciadas
Option Compare Database Private Sub DETALLES_CT_Click() On Error GoTo Err_DETALLES_CT_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "centro_trabajo" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_DETALLES_CT_Click: Exit Sub Err_DETALLES_CT_Click: MsgBox Err.Description

164

Resume Exit_DETALLES_CT_Click End Sub Private Sub Form_Activate() Me.Refresh End Sub Private Sub Comando10_Click() On Error GoTo Err_Comando10_Click Screen.PreviousControl.SetFocus DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70 Exit_Comando10_Click: Exit Sub Err_Comando10_Click: MsgBox Err.Description Resume Exit_Comando10_Click End Sub Private Sub imprimir_cargas_oper_inic_Click() On Error GoTo Err_imprimir_cargas_oper_inic_Click Dim stDocName As String stDocName = "cargas_operaciones_iniciadas" DoCmd.OpenReport stDocName, acPreview Exit_imprimir_cargas_oper_inic_Click: Exit Sub Err_imprimir_cargas_oper_inic_Click: MsgBox Err.Description Resume Exit_imprimir_cargas_oper_inic_Click End Sub

Formulario centro de trabajo


Option Compare Database Private Sub Comando9_Click() MsgBox "En la tabla OPERACIONES REALIZADAS EN EL CENTRO DE TRABAJO ingrese " _ & "los nombres de estas para el centro de trabajo activo en el campo NOMBRE CENTRO del formulario." _ & "Para la utilizacin de MQUINAS dentro del centro de trabajo los datos de los tiempos de ejecucin " _ & "de estas se ingresan para cada operacin en particular en el formulario MQUINAS CT " _ & "por ser estas nicas a la capacidad de la mquina y el producto procesado.", vbInformation, "INFORMACIN" End Sub Private Sub Comando12_Click() MsgBox "Ingrese los datos pedidos en los campos en blanco. " _ & "El campo ' Capacidad diaria horas estndar ' se calcula automtico como resultado de la multiplicacin de " _

165

& "la capacidad diaria horas reales, la eficiencia y la utilizacin.", vbInformation, "INFORMACIN" End Sub Private Sub capacidad_diaria_horas_reales_AfterUpdate() capacidad_diaria_horas_estndar = [capacidad diaria horas reales] * [eficiencia] * [utilizacin] End Sub Private Sub eficiencia_AfterUpdate() capacidad_diaria_horas_estndar = [capacidad diaria horas reales] * [eficiencia] * [utilizacin] End Sub Private Sub Form_Error(DataErr As Integer, Response As Integer) MsgBox "No se permiten nombres de Centros de Trabajo repetidos", vbCritical, "ERROR EN CENTROS DE TRABAJO" On Error GoTo Err_LISTADO_CT_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "CT" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_LISTADO_CT_Click: Exit Sub Err_LISTADO_CT_Click: MsgBox Err.Description Resume Exit_LISTADO_CT_Click End Sub Private Sub Form_Open(Cancel As Integer) DoCmd.GoToRecord , , acNewRec End Sub Private Sub utilizacin_Exit(Cancel As Integer) capacidad_diaria_horas_estndar = [capacidad diaria horas reales] * [eficiencia] * [utilizacin] End Sub Private Sub LISTADO_CT_Click() On Error GoTo Err_LISTADO_CT_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "CT" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_LISTADO_CT_Click: Exit Sub Err_LISTADO_CT_Click: MsgBox Err.Description Resume Exit_LISTADO_CT_Click End Sub

166

Formulario clientes
Option Compare Database Private Sub Form_Error(DataErr As Integer, Response As Integer) MsgBox "No se permiten nombres de clientes repetidos", vbCritical, "ERROR EN NOMBRE CLIENTE" End Sub

Formulario componentes producto


MsgBox "Para BORRAR alguna parte/componente o todo un producto." _ & "Haga clic en productos en el men General de la barra de men aplicacin " _ & "una vez abierta la tabla presione en el signo (+) de la izquierda para descender _ & "en la estructura del producto seleccionado.", vbInformation, "INFORMACIN" End Sub Private Sub Form_Open(Cancel As Integer) DoCmd.GoToRecord , , acLast End Sub Private Sub arbol_Click() On Error GoTo Err_arbol_Click Dim stDocName As String stDocName = "rbol_producto" DoCmd.OpenReport stDocName, acPreview Exit_arbol_Click: Exit Sub Err_arbol_Click: MsgBox Err.Description Resume Exit_arbol_Click End Sub Private Sub INFORMACION_Click() MsgBox "Ingrese el producto o bsquelo por su cdigo o nombre, desplazndose entre los registros u "_ & "oprimiendo el botn Buscar en la barra de herramientas de la aplicacin despus de tocar la casilla " _ & " donde desea realizar la bsqueda Defina la estructura del producto utilizando los. " _ & " niveles componentes, componentes1 o componentes2 segn requiera", vbInformation, "INFORMACIN " End Sub

Formulario componentes subformulario


Option Compare Database Private Sub elemento_DblClick(Cancel As Integer) On Error GoTo Err_elemento_DblClick Dim lngelemento As Long If IsNull(Me![elemento]) Then Me![elemento].Text = ""

167

Else lngelemento = Me![elemento] Me![elemento] = Null End If DoCmd.OpenForm "lista_materiales", , , , , acWindowNormal, NewRecord Me![elemento].Requery If lngelemento <> 0 Then Me![elemento] = lngelemento Exit_elemento_DblClick: Exit Sub Err_elemento_DblClick: MsgBox Err.Description Resume Exit_elemento_DblClick End Sub Private Sub elemento_GotFocus() Me.Refresh End Sub Private Sub elemento_NotInList(NewData As String, Response As Integer) MsgBox "Haga DOBLE clic en este campo para agregar una entrada a la lista." Response = acDataErrContinue End Sub Private Sub Form_Activate() Me.Refresh End Sub Sub Form_Current() Dim ParentDocName As String On Error Resume Next ParentDocName = Me.Parent.Name If Err <> 0 Then GoTo Form_Current_Exit Else On Error GoTo Form_Current_Err Me.Parent![componentes1_Subformulario].Requery End If Form_Current_Exit: Exit Sub Form_Current_Err: MsgBox Error$ Resume Form_Current_Exit End Sub Private Sub unidad_DblClick(Cancel As Integer) On Error GoTo Err_unidad_DblClick Dim lngunidad As Long If IsNull(Me![unidad]) Then Me![unidad].Text = ""

168

Else lngunidad = Me![unidad] Me![unidad] = Null End If DoCmd.OpenForm "unidades", , , , , acWindowNormal, NewRecord Me![unidad].Requery If lngunidad <> 0 Then Me![unidad] = lngunidad Exit_unidad_DblClick: Exit Sub Err_unidad_DblClick: MsgBox Err.Description Resume Exit_unidad_DblClick End Sub Private Sub unidad_GotFocus() Me.Refresh End Sub Private Sub unidad_NotInList(NewData As String, Response As Integer) MsgBox "Haga DOBLE clic en este campo para agregar una entrada a la lista." Response = acDataErrContinue End Sub

Formulario componentes1 subformulario


Option Compare Database Private Sub elemento_DblClick(Cancel As Integer) On Error GoTo Err_elemento_DblClick Dim lngelemento As Long If IsNull(Me![elemento]) Then Me![elemento].Text = "" Else lngelemento = Me![elemento] Me![elemento] = Null End If DoCmd.OpenForm "lista_materiales", , , , , acWindowNormal, NewRecord Me![elemento].Requery If lngelemento <> 0 Then Me![elemento] = lngelemento Exit_elemento_DblClick: Exit Sub Err_elemento_DblClick: MsgBox Err.Description Resume Exit_elemento_DblClick End Sub Private Sub elemento_GotFocus() Me.Refresh End Sub Private Sub elemento_NotInList(NewData As String, Response As Integer)

169

MsgBox "Haga DOBLE clic en este campo para agregar una entrada a la lista." Response = acDataErrContinue End Sub Private Sub Form_Activate() Me.Refresh End Sub Sub Form_Current() Dim ParentDocName As String On Error Resume Next ParentDocName = Me.Parent.Name If Err <> 0 Then GoTo Form_Current_Exit Else On Error GoTo Form_Current_Err Me.Parent![componentes2_Subformulario].Requery End If Form_Current_Exit: Exit Sub Form_Current_Err: MsgBox Error$ Resume Form_Current_Exit End Sub Private Sub unidad_DblClick(Cancel As Integer) On Error GoTo Err_unidad_DblClick Dim lngunidad As Long If IsNull(Me![unidad]) Then Me![unidad].Text = "" Else lngunidad = Me![unidad] Me![unidad] = Null End If DoCmd.OpenForm "unidades", , , , , acWindowNormal, NewRecord Me![unidad].Requery If lngunidad <> 0 Then Me![unidad] = lngunidad Exit_unidad_DblClick: Exit Sub Err_unidad_DblClick: MsgBox Err.Description Resume Exit_unidad_DblClick End Sub Private Sub unidad_GotFocus() Me.Refresh End Sub Private Sub unidad_NotInList(NewData As String, Response As Integer)

170

MsgBox "Haga DOBLE clic en este campo para agregar una entrada a la lista." Response = acDataErrContinue End Sub

Formulario componentes2 subformulario


Option Compare Database Private Sub elemento_DblClick(Cancel As Integer) On Error GoTo Err_elemento_DblClick Dim lngelemento As Long If IsNull(Me![elemento]) Then Me![elemento].Text = "" Else lngelemento = Me![elemento] Me![elemento] = Null End If DoCmd.OpenForm "lista_materiales", , , , , acWindowNormal, NewRecord Me![elemento].Requery If lngelemento <> 0 Then Me![elemento] = lngelemento Exit_elemento_DblClick: Exit Sub Err_elemento_DblClick: MsgBox Err.Description Resume Exit_elemento_DblClick End Sub Private Sub elemento_GotFocus() Me.Refresh End Sub Private Sub elemento_NotInList(NewData As String, Response As Integer) MsgBox "Haga DOBLE clic en este campo para agregar una entrada a la lista." Response = acDataErrContinue End Sub

Private Sub Form_Activate() Me.Refresh End Sub Private Sub unidad_DblClick(Cancel As Integer) On Error GoTo Err_unidad_DblClick Dim lngunidad As Long If IsNull(Me![unidad]) Then Me![unidad].Text = "" Else lngunidad = Me![unidad] Me![unidad] = Null End If DoCmd.OpenForm "unidades", , , , , acWindowNormal, NewRecord

171

Me![unidad].Requery If lngunidad <> 0 Then Me![unidad] = lngunidad Exit_unidad_DblClick: Exit Sub Err_unidad_DblClick: MsgBox Err.Description Resume Exit_unidad_DblClick End Sub Private Sub unidad_GotFocus() Me.Refresh End Sub Private Sub unidad_NotInList(NewData As String, Response As Integer) MsgBox "Haga DOBLE clic en este campo para agregar una entrada a la lista." Response = acDataErrContinue End Sub

Formulario control input output


Option Compare Database Private Sub Comando12_Click() MsgBox "El botn INFORME INPUT/OUTPUT enva al archivo in-out de Excel la " _ & "informacin de la tabla CONTROL INPUT-OUTPUT para que sea presentada segn " _ & "las desviaciones acumuladas y medias para los periodos enviados." _ & "Oprima el botn CONTROL DE PRODUCCIN para actualizar el avance " _ & "de los pedidos segn las operaciones y rutas asociadas.", vbInformation, "INFORMACIN" End Sub Private Sub Comando9_Click() MsgBox "Al seleccionar el centro en la tabla CENTROS DE TRABAJO el nombre del mismo " _ & "aparece en el campo Centro Seleccionado. "_ & "La tabla CONTROL INPUT-OUTPUT muestra el comportamiento del centro seleccionado " _ & "en los periodos ingresados a la base de datos.", vbInformation, "INFORMACIN" End Sub Private Sub IN_OUT_Click() On Error GoTo Err_IN_OUT_Click Dim stDocName As String stDocName = "IN_OUT" DoCmd.RunMacro stDocName Exit_IN_OUT_Click: Exit Sub Err_IN_OUT_Click: MsgBox Err.Description Resume Exit_IN_OUT_Click End Sub Private Sub CONTROL_PRODUCCION_Click() On Error GoTo Err_CONTROL_PRODUCCION_Click

172

Dim stDocName As String Dim stLinkCriteria As String stDocName = "CONTROL PRODUCCIN" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_CONTROL_PRODUCCION_Click: Exit Sub Err_CONTROL_PRODUCCION_Click: MsgBox Err.Description Resume Exit_CONTROL_PRODUCCION_Click End Sub

Formulario control operaciones


Option Compare Database Private Sub Comando12_Click() MsgBox "En la tabla CONTROL OPERACIONES seleccione " _ & "el nmero de identificacin de las operaciones por " _ & "ruta que aparecen en la tabla RUTAS OPERACIONES necesarias." _ & " para elaborar el componente Los campos iniciada y terminada se usan para" _ & " controlar el avance de las operaciones seleccionadas" End Sub Private Sub Comando13_Click() MsgBox "Todas las casillas de control de estado de avance en las diferentes " _ & "tablas deben ser marcadas en iniciado o terminado cuando las operaciones o actividades" _ & " se han empezado o finalizado. Pues de esto depende el cargar o no los " _ & "diferentes centros de trabajo con las operaciones adecuadas." End Sub Private Sub Comando9_Click() MsgBox "La tabla RUTAS INICIADAS, muestra todas las rutas que fueron marcadas " _ & "como iniciadas en la tabla CONTROL RUTA del formulario CONTROL PEDIDOS. " _ & "En la columna 'pend' el usuario puede ingresar las cantidades pendientes, que permiten " _ & "clcular la carga respectiva. " _ & "En la casilla de estado el usuario puede marcar cuando la ruta esta terminada "_ & "La tabla RUTAS OPERACIONES muestra todas las operaciones asociadas a la ruta " _ & "seleccionada en la tabla RUTAS INICIADAS con su nmero nico de identificacin, " _ & "el centro de trabajo por donde pasa y la operacin realizada en el mismo" End Sub Private Sub CONTROL_PEDIDOS_Click() On Error GoTo Err_CONTROL_PEDIDOS_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "CONTROL PEDIDOS" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_CONTROL_PEDIDOS_Click: Exit Sub Err_CONTROL_PEDIDOS_Click:

173

MsgBox Err.Description Resume Exit_CONTROL_PEDIDOS_Click End Sub Private Sub CONTROL_PRODUCCIN_Click() On Error GoTo Err_CONTROL_PRODUCCIN_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "CONTROL PRODUCCIN" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_CONTROL_PRODUCCIN_Click: Exit Sub Err_CONTROL_PRODUCCIN_Click: MsgBox Err.Description Resume Exit_CONTROL_PRODUCCIN_Click End Sub Private Sub Form_Activate() Me.Refresh End Sub

Formulario control pedidos


Option Compare Database Private Sub Comando12_Click() MsgBox "La tabla RUTAS PRODUCTO muestra todas las rutas asociadas al producto seleccionado "_ & "en la tabla CONTROL DETALLE PEDIDO " _ & "En la tabla CONTROL RUTA el usuario selecciona " _ & "las rutas por producto que aparecen en la tabla RUTAS PRODUCTO " _ & "necesarias para elaborar el producto. cargndose automticamente las" _ & " cantidades requeridas por esa ruta para ese producto. " _ & " La casilla iniciado puede ser modificada a voluntad del usuario" End Sub Private Sub Comando13_Click() MsgBox "Todas las casillas de control de estado de avance en las diferentes " _ & "tablas deben ser marcadas en iniciado cuando las operaciones o actividades" _ & " se han empezado. Pues de esto depende que ms adelante aparezcan o no en " _ & "los formularios siguientes dentro de la aplicacin." End Sub Private Sub Comando9_Click() MsgBox "La primera tabla CONTROL PEDIDOS muestra para cada pedido pendiente " _ & "el nmero, la fecha de entrega dada al cliente y el estado del mismo. " _ & "Siendo usado este ltimo campo por el usuario para indicar cuando " _ & "el pedido esta iniciado marcando la casilla. "_ & "En la tabla CONTROL DETALLE PEDIDO se muestra la composicin por productos " _ & "del pedido seleccionado en la tabla CONTROL PEDIDOS y el estado para cada" _ & " uno. Siendo usados estos ltimos campos por el usuario para indicar cuando" _

174

& " el producto esta iniciado y/o terminado marcando la casilla respectiva." End Sub Private Sub Control_Operaciones_Click() On Error GoTo Err_Control_Operaciones_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "CONTROL OPERACIONES" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_Control_Operaciones_Click: Exit Sub Err_Control_Operaciones_Click: MsgBox Err.Description Resume Exit_Control_Operaciones_Click End Sub

Formulario control produccin


Option Compare Database Private Sub Comando12_Click() MsgBox "La tabla RUTAS PRODUCTO muestra la informacin necesaria para las " _ & "rutas iniciadas asociadas al producto seleccionado en la tabla DETALLE PEDIDOS. "_ & "La columna 'Pend' es para ingresar las cantidades pendientes o faltantes del componente " _ & "terminado el periodo. Con este nuevo valor se determina la carga de los centros de trabajo " _ & "para el periodo siguiente. "_ & "La tabla OPERACIONES RUTAS muestra para cada ruta seleccionada en la tabla anterior " _ & "las operaciones iniciadas. El campo TERMINADO en ambas tablas es para indicar la " _ & "terminacin de la ruta o la operacin al marcar la casilla.", , "INFORMACIN 2" End Sub Private Sub Comando13_Click() MsgBox "Todas las casillas de control de estado en las diferentes " _ & "tablas (f_entrega_real o terminado) deben ser llenadas o marcadas segn las operaciones o actividades" _ & "que se realizan, Pues de esto depende la carga en los diferentes centros de trabajo " _ & "dentro de la aplicacin.", , "IMPORTANTE" End Sub Private Sub Comando9_Click() MsgBox "La tabla PEDIDOS muestra para los pedidos iniciados " _ & "el nmero, la fecha de entrega dada al cliente, el estado del mismo y " _ & "el campo FECHA DE ENTREGA REAL. Siendo usado este ltimo por el usuario " _ & "para indicar cuando el pedido es entregado finalmente al cliente. (El formato es DD/MM/AA) "_ & "La tabla DETALLE PEDIDOS muestra la composicin por productos " _ & "del pedido seleccionado en la tabla PEDIDOS. El estado TERMINADO en cada " _ & "producto es usado para indicar cuando la" _ & " realizacin del producto ha terminado.", , "INFORMACIN 1" End Sub

175

Private Sub Control_Operaciones_Click() On Error GoTo Err_Control_Operaciones_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "CONTROL OPERACIONES" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_Control_Operaciones_Click: Exit Sub Err_Control_Operaciones_Click: MsgBox Err.Description Resume Exit_Control_Operaciones_Click End Sub Private Sub Carga_operacione_iniciadas_Click() On Error GoTo Err_Carga_operacione_iniciadas_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "cargas_operaciones_iniciadas" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_Carga_operacione_iniciadas_Click: Exit Sub Err_Carga_operacione_iniciadas_Click: MsgBox Err.Description Resume Exit_Carga_operacione_iniciadas_Click End Sub Private Sub Form_Activate() Me.Refresh End Sub Private Sub IMPRIMIR_CARGA_INIC_Click() On Error GoTo Err_IMPRIMIR_CARGA_INIC_Click Dim stDocName As String stDocName = "cargas_operaciones_iniciadas" DoCmd.OpenReport stDocName, acPreview Exit_IMPRIMIR_CARGA_INIC_Click: Exit Sub Err_IMPRIMIR_CARGA_INIC_Click: MsgBox Err.Description Resume Exit_IMPRIMIR_CARGA_INIC_Click End Sub

Formulario control detalle pedidos iniciados


Option Compare Database Private Sub iniciado_AfterUpdate() Me.Refresh End Sub

176

Private Sub terminado_AfterUpdate() Me.Refresh End Sub

Formulario control operaciones


Option Compare Database Private Sub Form_Activate() Me.Refresh End Sub Private Sub idoperacin_Click() Me.Refresh End Sub Private Sub idoperacin_DblClick(Cancel As Integer) Me.Refresh End Sub Private Sub idoperacin_Enter() Me.Refresh End Sub Private Sub iniciada_AfterUpdate() Me.Refresh End Sub Private Sub terminada_AfterUpdate() Me.Refresh End Sub

Formulario control operaciones iniciadas


Option Compare Database Private Sub iniciada_AfterUpdate() Me.Refresh End Sub Private Sub terminada_AfterUpdate() Me.Refresh End Sub

Formulario control pedidos iniciados


Option Compare Database Private Sub iniciado_AfterUpdate() Me.Refresh End Sub

177

Formulario control ruta


Option Compare Database Private Sub Form_Activate() Me.Refresh End Sub Private Sub iniciado_AfterUpdate() Me.Refresh End Sub Private Sub nombre_ruta_AfterUpdate() Dim dbs As Database Dim qdfTemp As QueryDef Dim rstver As Recordset Dim strSQL As String, p As Integer, n As String Set dbs = CurrentDb strSQL = "SELECT rutas.cant_emitir FROM rutas WHERE (((rutas.idpedido)=[p]) AND ((rutas.nombre_ruta)=[n]));" Set qdfTemp = dbs.CreateQueryDef("", strSQL) qdfTemp.Parameters!p = idpedido qdfTemp.Parameters!n = nombre_ruta Set rstver = qdfTemp.OpenRecordset 'Debug.Print rstver!cant_emitir Me!cant_emitir = rstver!cant_emitir rstver.Close dbs.Close If IsNull(cant_pend) Then cantidad = cant_emitir Else: If cant_pend > 0 And cant_pend < cant_emitir Then cantidad = cant_pend Else cantidad = cant_emitir MsgBox "la cantidad ingresada en la casilla pendiente: cero, negativa o superior a la cantidad a emitir inicial", , "error cantidad" End If End If End Sub Private Sub nombre_ruta_Click() Me.Refresh End Sub Private Sub nombre_ruta_DblClick(Cancel As Integer) Me.Refresh End Sub Private Sub nombre_ruta_Enter() Me.Refresh

178

End Sub Private Sub nombre_ruta_GotFocus() Me.Refresh End Sub Private Sub terminado_AfterUpdate() Me.Refresh End Sub

Formulario ct
Option Compare Database Private Sub DETALLES_CT_Click() On Error GoTo Err_DETALLES_CT_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "centro_trabajo" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_DETALLES_CT_Click: Exit Sub Err_DETALLES_CT_Click: MsgBox Err.Description Resume Exit_DETALLES_CT_Click End Sub

Formulario entrega
Option Compare Database Private Sub Comando9_Click() MsgBox "El botn PROGRAMACIN DETALLADA enva al archivo detallada de Excel la " _ & "informacin de la tabla TIEMPO REQUERIDO para que sea presentada en el grafico de GANTT " _ & "para un secuenciamiento sin solapamientos", vbInformation, "INFORMACIN" End Sub Private Sub PROGRAMACIN_DETALLADA_Click() On Error GoTo Err_PROGRAMACIN_DETALLADA_Click Dim stDocName As String stDocName = "programa_detallado" DoCmd.RunMacro stDocName Exit_PROGRAMACIN_DETALLADA_Click: Exit Sub Err_PROGRAMACIN_DETALLADA_Click: MsgBox Err.Description Resume Exit_PROGRAMACIN_DETALLADA_Click End Sub

Formulario in out planificado


Option Compare Database

179

Private Sub hr_Change() output_planificado = capac End Sub Private Sub idcentro_AfterUpdate() On Error GoTo error_Err Dim txtFiltro As String txtFiltro = "idcentro = " & Me!idcentro Me!hr = DLookup("cap_d_hr_reales", "centro_trabajo", txtFiltro) Me!output_planificado = DLookup("cap_d_hr_estndar", "centro_trabajo", txtFiltro) idcentro_AfterUpdate_Exit: Exit Sub error_Err: If Err.Number = -2147352567 Then Resume Next Else MsgBox Err.Number & "- - " & Err.Description, vbCritical, "ERROR" End If Resume idcentro_AfterUpdate_Exit End Sub Private Sub input_planificado_GotFocus() output_planificado = capac End Sub

Formulario inicio
Option Compare Database 'Usar orden de la base de datos para las comparaciones de cadenas. Option Explicit Private Sub cmdCerrarFormulario_Click() ' Cerrar la pantalla de presentacin. DoCmd.Close End Sub Private Sub cmdCerrarFormulario_Click() ' Cerrar la pantalla de presentacin. DoCmd.Close End Sub Private Sub Form_Activate() ' Ocultar la barra de herramientas incorporada Vista Formulario. DoCmd.ShowToolbar "Vista Formulario", acToolbarNo 'DoCmd.ShowToolbar "BASE DE DATOS", acToolbarNo End Sub Private Sub Form_Open(Cancel As Integer) If EstCargado("Switchboard") Then ' Si est abierto el formulario Switchboard, ' entonces este formulario se abri como un ejemplo

180

' y se debe mostrar el botn Cerrar. cmdCerrarFormulario.Visible = True Else ' Este formulario se abri como el formulario de inicio de la aplicacin, ' entonces se debe ocultar el botn Cerrar y establecer TimerInterval ' para cerrar el formulatio despus de 1.2 segundos. cmdCerrarFormulario.Visible = False Me.TimerInterval = 1200 End If End Sub Private Sub Form_Timer() If Me.TimerInterval <> 0 Then Me.TimerInterval = 0 End If DoCmd.OpenForm "Switchboard", , , , acNormal DoCmd.Close acForm, "Inicio" End Sub

Formulario johnson
Option Compare Database Private Sub Form_Activate() Me.Refresh End Sub

Formulario lista materiales


Option Compare Database Private Sub Comando9_Click() MsgBox "Escriba el nombre del elemento en el espacio correspondiente e identifique el tipo del mismo." _ & " S en la columna ''tipo'' no encuentra un nombre en las opciones presentadas haga doble clic sobre el espacio tipo para agregar un nuevo registro a la lista " _ & " ", vbInformation, " INFORMACIN" End Sub

Formulario lista materiales subformulario


Option Compare Database Private Sub Form_Open(Cancel As Integer) DoCmd.GoToRecord , , acNewRec End Sub Private Sub tipo_DblClick(Cancel As Integer) On Error GoTo Err_tipo_DblClick Dim lngtipo As String If IsNull(Me![tipo]) Then Me![tipo].Text = "" Else lngtipo = Me![tipo] Me![tipo] = Null

181

End If DoCmd.OpenForm "tipo", , , , , acWindowNormal, NewRecord Me![tipo].Requery If lngtipo <> "" Then Me![tipo] = lngtipo Exit_tipo_DblClick: Exit Sub Err_tipo_DblClick: MsgBox Err.Description Resume Exit_tipo_DblClick End Sub Private Sub tipo_NotInList(NewData As String, Response As Integer) MsgBox "Haga DOBLE clic en este campo para agregar una entrada a la lista." Response = acDataErrContinue End Sub

Formulario lista rutas


Option Compare Database Sub Comando18_Click() factor = fact End Sub Private Sub Comando21_Click() MsgBox "El TIEMPO DE EJECUCIN de una operacin no es ms que el necesario para desarrollarla una vez en el CT " _ & "correspondiente y sus unidades son MINUTOS ESTNDAR TIEMPO MEDIO DESPLAZAMIENTO incluye" _ & " el traslado de los materiales que se requieren hasta el CT, y el necesario para mover los inventarios en curso" _ & " dentro del CT y el envo al almacn de elementos finalizados" APROVECHAMIENTO proporcin de" _ & " item que cumplen los requisitos de calidad en cada una de las operaciones" End Sub Private Sub Comando9_Click() MsgBox "PRIMERO asigne a la ruta un nombre de los desplegados en el campo, o coloque uno segn sea el caso." _ & "SEGUNDO detalle las operaciones en orden, coloque los valores requeridos " _ & "en cada uno de los campos y presione la tecla Enter para ingresar los datos a la base. y "_ & "TERCERO oprima el botn FACTOR para calcular el factor de la ruta", vbInformation, "INFORMACIN" End Sub Private Sub Form_Current() nombre_ruta.SetFocus End Sub Private Sub Form_Open(Cancel As Integer) DoCmd.GoToRecord , , acLast

182

End Sub Private Sub nombre_ruta_NotInList(NewData As String, Response As Integer) MsgBox "NO HAY MATERIAL O PRODUCTO con ese nombre en la base de datos. " _ & "Ingrese primero el Nombre en el formulario producto o lista de materiales segn sea el caso. " _ Response = acDataErrContinue End Sub Private Sub operacines_Subformulario_Exit(Cancel As Integer) factor = fact End Sub Private Sub Comando29_Click() On Error GoTo Err_Comando29_Click DoCmd.GoToRecord , , acNext Exit_Comando29_Click: Exit Sub Err_Comando29_Click: MsgBox Err.Description Resume Exit_Comando29_Click End Sub Private Sub Comando30_Click() On Error GoTo Err_Comando30_Click DoCmd.GoToRecord , , acPrevious Exit_Comando30_Click: Exit Sub Err_Comando30_Click: MsgBox Err.Description Resume Exit_Comando30_Click End Sub Private Sub imprimir_ruta_Click() On Error GoTo Err_imprimir_ruta_Click Dim stDocName As String stDocName = "Hoja_de_rutas" DoCmd.OpenReport stDocName, acPreview Exit_imprimir_ruta_Click: Exit Sub Err_imprimir_ruta_Click: MsgBox Err.Description Resume Exit_imprimir_ruta_Click End Sub

Formulario mquinas
Option Compare Database Private Sub idoperacin_Click() Me.Refresh End Sub

183

Private Sub idoperacin_Enter() Me.Refresh End Sub

Formulario mquinas ct
Option Compare Database Private Sub Comando12_Click() MsgBox "En la tabla TIEMPO DE EJECUCIN DE LAS MQUINAS EN EL CENTRO seleccione " _ & "la operacin entre las listadas en la tabla CENTRO OPERACIONES y luego coloque los " _ & "valores para los tiempos de ejecucin en minutos estndar para cada una de las " _ & "mquinas del centro.", vbInformation, "INFORMACIN" End Sub Private Sub Comando9_Click() MsgBox "Al seleccionar el centro en la tabla CENTROS DE TRABAJO el nombre del mismo " _ & "aparece en el campo Centro Seleccionado. "_ & "La tabla CENTRO OPERACIONES muestra la informacin de las operaciones " _ & "que se realizan en el centro seleccionado en los periodos ingresados a " _ & "la base de datos.", vbInformation, "INFORMACIN" End Sub

Formulario operaciones ruta


Option Compare Database Sub factores() fact = aprovech Dim rst As DAO.Recordset, j, n As Integer, i As Single Set rst = Me.Recordset j = rst.RecordCount 'MsgBox j, vbDefaultButton2, "CANTIDAD REGISTROS RUTA" i=1 rst.MoveLast For n = 1 To j If n = 1 Then fact = aprovech i = fact 'MsgBox i, vbQuestion, "valor MovePrevious" rst.MovePrevious Else If n = j Then fact = aprovech fact = i * fact 'MsgBox i Else If n > 1 And n < j Then fact = aprovech fact = i * fact i = fact

184

rst.MovePrevious 'MsgBox i End If End If End If Next n rst.MoveLast End Sub Private Sub fact_Change() factores End Sub Private Sub fact_Click() factores End Sub Private Sub Form_AfterDelConfirm(Status As Integer) factores End Sub Private Sub idcentro_DblClick(Cancel As Integer) On Error GoTo Err_idcentro_DblClick Dim lngidcentro As Long If IsNull(Me![idcentro]) Then Me![idcentro].Text = "" Else lngidcentro = Me![idcentro] Me![idcentro] = Null End If DoCmd.OpenForm "centro_trabajo", , , , , acWindowNormal, NewRecord Me![idcentro].Requery If lngidcentro <> 0 Then Me![idcentro] = lngidcentro Exit_idcentro_DblClick: Exit Sub Err_idcentro_DblClick: MsgBox Err.Description Resume Exit_idcentro_DblClick End Sub Private Sub idcentro_NotInList(NewData As String, Response As Integer) MsgBox "Haga DOBLE clic en este campo para agregar una entrada a la lista." Response = acDataErrContinue End Sub Private Sub Form_Activate() Me.Refresh End Sub

185

Private Sub operacin_Enter() Me.Refresh End Sub

Formulario pedidos
Option Compare Database Private Sub Comando9_Click() MsgBox "El botn CANT REQUERIDA muestra las cantidades necesarias por " _ & " partes / componentes para cumplir con el pedido actual. El botn TIEMPO " _ & " DE ENTREGA bajo una programacin hacia delante indica la cantidad de das " _ & " necesarios para producir el pedido en condiciones normales de trabajo. "_ & "Las cantidades solo se muestran para los pedidos que no tienen fecha de entrega real." End Sub Private Sub fecha_entrega_LostFocus() ' Este procedimiento se utiliza para validar la introduccin de la fecha. Asegurarse ' de que se introduce una fecha vlida y de que FechaEntrega no es anterior a FechaPedido. If IsDate(Me!fecha_entrega) Then If Me!fecha_entrega <= Me!fecha_emisin Then MsgBox "Introduzca una 'Fecha de entrega' que sea posterior a la Fecha de pedido" Me![fecha_entrega] = Null Me!fecha_entrega.SetFocus Exit Sub End If End If If IsNull(Me!fecha_entrega) Then MsgBox "Introduzca una fecha vlida" Exit Sub End If End Sub Private Sub Form_Open(Cancel As Integer) DoCmd.GoToRecord , , acLast End Sub Private Sub cant_requerida_Click() On Error GoTo Err_cant_requerida_Click Dim stDocName As String 'Dim stLinkCriteria As String stDocName = "cant_requerida" DoCmd.OpenForm stDocName Exit_cant_requerida_Click: Exit Sub Err_cant_requerida_Click: MsgBox Err.Description Resume Exit_cant_requerida_Click End Sub

186

Private Sub idcliente_DblClick(Cancel As Integer) On Error GoTo Err_idcliente_DblClick Dim lngtipo As Long DoCmd.OpenForm "clientes", , , , , acDialog, "GotoNew" Me![idcliente].Requery If lngtipo <> 0 Then Me![idcliente] = lngtipo Exit_idcliente_DblClick: Exit Sub Err_idcliente_DblClick: MsgBox Err.Description Resume Exit_idcliente_DblClick End Sub Private Sub idcliente_NotInList(NewData As String, Response As Integer) MsgBox "Haga DOBLE clic en este campo para agregar una entrada a la lista." Response = acDataErrContinue End Sub Private Sub Tiempo_Entrega_Click() On Error GoTo Err_Tiempo_Entrega_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "entrega" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_Tiempo_Entrega_Click: Exit Sub Err_Tiempo_Entrega_Click: MsgBox Err.Description Resume Exit_Tiempo_Entrega_Click End Sub

Formulario pedidos pendientes


Option Compare Database Private Sub Comando9_Click() MsgBox "los pedidos que aparecen en el formulario son todos los pedidos que " _ & "estn pendientes de entregar hasta el da de HOY. Mostrndose los das " _ & " de mora para los pedidos retrasados en positivo y en negativo los das que " _ & " faltan para llegar a la Fecha de entrega dada al cliente." End Sub

Formulario pendientes a la fecha


Option Compare Database Private Sub Comando9_Click() MsgBox "Los pedidos que aparecen en el formulario son todos los pedidos que " _ & "estn pendientes de entregar hasta la fecha ingresada al abrirse el formulario." _ & " Mostrndose el nmero de pedido, la fecha de emisin, la fecha de " _ & " entrega dada al cliente y los das de retrazo del mismo" End Sub

187

Formulario produccin planeada


Option Compare Database Private Sub Comando12_Click() MsgBox "La tabla CENTROS DE TRABAJO muestra el nmero y nombre de todos los centro de trabajo ingresados en la base de datos La tabla COMPORTAMIENTO DEL CT A CINCO PERIODOS muestra como se afecta el CT por la carga vs la capacidad para los prximos cinco periodos.", , "INFORMACIN" End Sub Private Sub Comando13_Click() MsgBox "Cambie el valor de hr (horas reales de trabajo) en la tabla INPUT, OUTPUT PLANIFICADO para el centro deseado y observe en la tabla COMPORTAMIENTO DEL CT A CINCO PERIODOS como se modifican los valores. Para los escenarios se consideran constantes la eficiencia & y utilizacin para los centro de trabajo. Teniendo as como la nica variable a las horas reales del centro de trabajo. El escenario solo aplica para el periodo de " _ programacin. Para los prximos periodos se suponen " condiciones normales de trabajo.", , "ESCENARIOS" End Sub Private Sub Comando76_Click() MsgBox "El botn GRAFICA DE GANTT enva al archivo carga_finita de Excel la " _ & "informacin del CENTRO SELECCIONADO en las tablas INPUT, OUTPUT PLANIFICADO y CARGA OPERACIONES para que sean presentadas grficamente En excel se ofrecen ms posibilidades para el uso de escenarios", vbInformation, "INFORMACIN" End Sub Private Sub Comando9_Click() MsgBox "Use los botones de desplazamiento para ubicarse en un nuevo registro " _ & "para agregar un nuevo periodo y coloque la fecha del mismo en su campo En la tabla INPUT, OUTPUT PLANIFICADO seleccione el centro de trabajo a programar en el periodo. e ingrese el valor de la carga planeada en la casilla input " _. & "La tabla CARGA OPERACIONES muestra el detalle de las operaciones cargadas al centro de " _ & "trabajo activo de entre los seleccionado en la tabla Input, Output Planificado. " _ & "La suma de las cargas por operaciones es la carga total del centro.", , "INFORMACIN" End Sub Private Sub Form_Open(Cancel As Integer) DoCmd.GoToRecord , , acLast End Sub Private Sub GRAFICO_GANTT_Click() On Error GoTo Err_GRAFICO_GANTT_Click Dim stDocName As String stDocName = "FINITA" DoCmd.RunMacro stDocName Exit_GRAFICO_GANTT_Click: Exit Sub Err_GRAFICO_GANTT_Click: MsgBox Err.Description

188

Resume Exit_GRAFICO_GANTT_Click End Sub

Formulario produccin real


Option Compare Database Private Sub Comando12_Click() MsgBox "La tabla CENTROS DE TRABAJO muestra el nmero y nombre de todos los centro de trabajo ingresados " en la base de datos.", , "INFORMACIN" End Sub Private Sub Comando9_Click() MsgBox "Use los botones de desplazamiento para encontrar el periodo requerido. " _ & "En la tabla IN OUT REAL coloque para cada centro de trabajo, el listado, los datos " _ & "o valores reales de carga ingresada y produccin obtenida", , "INFORMACIN" End Sub Private Sub PRODUCCIN_PLANEADA_Click() On Error GoTo Err_PRODUCCIN_PLANEADA_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "PRODUCCIN PLANEADA" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_PRODUCCIN_PLANEADA_Click: Exit Sub Err_PRODUCCIN_PLANEADA_Click: MsgBox Err.Description Resume Exit_PRODUCCIN_PLANEADA_Click End Sub Private Sub Comando11_Click() On Error GoTo Err_Comando11_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "CONTROL PRODUCCIN" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_Comando11_Click: Exit Sub Err_Comando11_Click: MsgBox Err.Description Resume Exit_Comando11_Click End Sub

Formulario rcomponentes subformulario


Option Compare Database Sub Form_Current() Dim ParentDocName As String On Error Resume Next ParentDocName = Me.Parent.Name If Err <> 0 Then

189

GoTo Form_Current_Exit Else On Error GoTo Form_Current_Err Me.Parent![Rcomponentes1_Subformulario].Requery End If Form_Current_Exit: Exit Sub Form_Current_Err: MsgBox Error$ Resume Form_Current_Exit End Sub Private Sub nombre_ruta_AfterUpdate() On Error GoTo Err_nombre_ruta_AfterUpdate Dim txtFiltro As String If nombre_ruta <> "" Then ' Evaluar el filtro antes de pasarlo a la funcion DLookup. txtFiltro = "idlistaruta = " & Me!nombre_ruta ' Buscar el precio por unidad del producto y asignarlo al control PrecioUnidad. Me!factor = DLookup("factor", "lista_rutas", txtFiltro) Else Me!factor = 1 End If Salir_nombre_ruta_AfterUpdate: Exit Sub Err_nombre_ruta_AfterUpdate: MsgBox Err.Description Resume Salir_nombre_ruta_AfterUpdate End Sub Private Sub nombre_ruta_DblClick(Cancel As Integer) On Error GoTo Err_nombre_ruta_DblClick Dim lngnombre_ruta As Long If IsNull(Me![nombre_ruta]) Then Me![nombre_ruta].Text = "" Else lngnombre_ruta = Me![nombre_ruta] Me![nombre_ruta] = Null End If DoCmd.OpenForm "lista_rutas", , , , , acWindowNormal, NewRecord Me![nombre_ruta].Requery If lngnombre_ruta <> 0 Then Me![nombre_ruta] = lngnombre_ruta Exit_nombre_ruta_DblClick: Exit Sub Err_nombre_ruta_DblClick: MsgBox Err.Description Resume Exit_nombre_ruta_DblClick End Sub

190

Private Sub nombre_ruta_NotInList(NewData As String, Response As Integer) MsgBox "Haga DOBLE clic en este campo para agregar una entrada a la lista." Response = acDataErrContinue End Sub

Formulario rcomponentes1 subformulario


Option Compare Database Private Sub Form_Current() Dim ParentDocName As String On Error Resume Next ParentDocName = Me.Parent.Name If Err <> 0 Then GoTo Form_Current_Exit Else On Error GoTo Form_Current_Err Me.Parent![Rcomponentes2_Subformulario].Requery End If Form_Current_Exit: Exit Sub Form_Current_Err: MsgBox Error$ Resume Form_Current_Exit End Sub Private Sub nombre_ruta_AfterUpdate() On Error GoTo Err_nombre_ruta_AfterUpdate Dim txtFiltro As String If nombre_ruta <> "" Then ' Evaluar el filtro antes de pasarlo a la funcion DLookup. txtFiltro = "idlistaruta = " & Me!nombre_ruta ' Buscar el precio por unidad del producto y asignarlo al control PrecioUnidad. Me!factor = DLookup("factor", "lista_rutas", txtFiltro) Else Me!factor = 1 End If Salir_nombre_ruta_AfterUpdate: Exit Sub Err_nombre_ruta_AfterUpdate: MsgBox Err.Description Resume Salir_nombre_ruta_AfterUpdate End Sub Private Sub nombre_ruta_DblClick(Cancel As Integer) On Error GoTo Err_nombre_ruta_DblClick Dim lngnombre_ruta As Long If IsNull(Me![nombre_ruta]) Then Me![nombre_ruta].Text = ""

191

Else lngnombre_ruta = Me![nombre_ruta] Me![nombre_ruta] = Null End If DoCmd.OpenForm "lista_rutas", , , , , acWindowNormal, NewRecord Me![nombre_ruta].Requery If lngnombre_ruta <> 0 Then Me![nombre_ruta] = lngnombre_ruta Exit_nombre_ruta_DblClick: Exit Sub Err_nombre_ruta_DblClick: MsgBox Err.Description Resume Exit_nombre_ruta_DblClick End Sub Private Sub nombre_ruta_NotInList(NewData As String, Response As Integer) MsgBox "Haga DOBLE clic en este campo para agregar una entrada a la lista." Response = acDataErrContinue End Sub

Formulario rcomponentes2 subformulario


Option Compare Database Private Sub nombre_ruta_AfterUpdate() On Error GoTo Err_nombre_ruta_AfterUpdate Dim txtFiltro As String If nombre_ruta <> "" Then ' Evaluar el filtro antes de pasarlo a la funcion DLookup. txtFiltro = "idlistaruta = " & Me!nombre_ruta ' Buscar el precio por unidad del producto y asignarlo al control PrecioUnidad. Me!factor = DLookup("factor", "lista_rutas", txtFiltro) Else Me!factor = 1 End If Salir_nombre_ruta_AfterUpdate: Exit Sub Err_nombre_ruta_AfterUpdate: MsgBox Err.Description Resume Salir_nombre_ruta_AfterUpdate End Sub Private Sub nombre_ruta_DblClick(Cancel As Integer) On Error GoTo Err_nombre_ruta_DblClick Dim lngnombre_ruta As Long If IsNull(Me![nombre_ruta]) Then Me![nombre_ruta].Text = "" Else lngnombre_ruta = Me![nombre_ruta] Me![nombre_ruta] = Null End If DoCmd.OpenForm "lista_rutas", , , , , acWindowNormal, NewRecord

192

Me![nombre_ruta].Requery If lngnombre_ruta <> 0 Then Me![nombre_ruta] = lngnombre_ruta Exit_nombre_ruta_DblClick: Exit Sub Err_nombre_ruta_DblClick: MsgBox Err.Description Resume Exit_nombre_ruta_DblClick End Sub Private Sub nombre_ruta_NotInList(NewData As String, Response As Integer) MsgBox "Haga DOBLE clic en este campo para agregar una entrada a la lista." Response = acDataErrContinue End Sub

Formulario regla de Johnson


Option Compare Database Private Sub Comando11_Click() MsgBox "El botn REGLA DE JOHNSON enva al archivo johnson de Excel la informacin de la tabla JOHNSON para que sea presentada segn la regla para N pedidos y 2 centros de trabajo.", vbInformation, "INFORMACIN" End Sub Private Sub Comando12_Click() MsgBox "La tabla JOHNSON muestra en el campo nombre: el nmero de pedido, el nombre de la ruta, el nmero de operacin iniciada que cargan el centro 1 seleccionado. Adems de el nmero de la operacin siguiente en la ruta para el centro 2 seleccionado. "_ & "El campo CARGA_CT1 muestra el valor de la carga de la operacin en el centro 1, y El campo CARGA_CT2 muestra el valor de la carga de la operacin siguiente en la ruta para el centro 2 seleccionado.", vbInformation, "INFORMACIN 2" End Sub Private Sub Comando9_Click() MsgBox "Al seleccionar el centro en la tabla CENTROS DE TRABAJO 1 el nombre del mismo aparece en el campo Centro 1 Seleccionado. Al seleccionar el centro en la tabla CENTROS DE TRABAJO 2 el nombre del mismo aparece en el campo Centro 2 Seleccionado.", vbInformation, "INFORMACIN 1" End Sub Private Sub Form_Activate() Me.Refresh End Sub Private Sub REGLA_DE_JOHNSON_Click() On Error GoTo Err_REGLA_DE_JOHNSON_Click Dim stDocName As String stDocName = "JOHNSON" DoCmd.RunMacro stDocName Exit_REGLA_DE_JOHNSON_Click: Exit Sub

193

Err_REGLA_DE_JOHNSON_Click: MsgBox Err.Description Resume Exit_REGLA_DE_JOHNSON_Click End Sub

Formulario reglas prioridad


Option Compare Database Private Sub Comando12_Click() MsgBox "El botn REGLAS DE PRIORIDAD enva al archivo prioridades de Excel la informacin de la tabla OPERACIONES CARGADAS para que sea presentada segn los criterios de evaluacin que la aplicacin maneja: EDD, FCFS, LOT, SOT.", vbInformation, "INFORMACIN" End Sub Private Sub Comando9_Click() MsgBox "Al seleccionar el centro en la tabla CENTROS DE TRABAJO el nombre del mismo " _ & "aparece en el campo Centro Seleccionado La tabla OPERACIONES CARGADAS muestra todas las operaciones marcadas como iniciadas que pasan por el centro seleccionado.", vbInformation, "INFORMACIN" End Sub Private Sub Reglas_Prioridad_Click() On Error GoTo Err_Reglas_Prioridad_Click Dim stDocName As String stDocName = "reglas prioridad" DoCmd.RunMacro stDocName Exit_Reglas_Prioridad_Click: Exit Sub Err_Reglas_Prioridad_Click: MsgBox Err.Description Resume Exit_Reglas_Prioridad_Click End Sub

Formulario rproductos
Option Compare Database Private Sub buscar_producto_Click() On Error GoTo Err_buscar_producto_Click Screen.PreviousControl.SetFocus DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70 Exit_buscar_producto_Click: Exit Sub Err_buscar_producto_Click: MsgBox Err.Description Resume Exit_buscar_producto_Click End Sub Private Sub Comando9_Click() MsgBox "Busque el producto al cual va asignar las rutas presionando el botn BUSCAR PRODUCTO. Seguido Ingrese primero la ruta de ensamble en la primera tabla, para ingresar las subrutas del producto use las otras tablas que forman los diferentes subniveles La estructura que se

194

presenta en las diferentes tablas depende de la forma con se ingresaron los datos en el formulario '' Estructura Producto ''" Me!producto.SetFocus End Sub Private Sub Form_Current() Me!producto.SetFocus End Sub Private Sub idlistaruta_AfterUpdate() On Error GoTo Err_idlistaruta_AfterUpdate Dim txtFiltro As String If idlistaruta <> "" Then ' Evaluar el filtro antes de pasarlo a la funcion DLookup. txtFiltro = "idlistaruta = " & Me!idlistaruta ' Buscar el precio por unidad del producto y asignarlo al control PrecioUnidad. Me!factor = DLookup("factor", "lista_rutas", txtFiltro) Else Me!factor = 1 End If Salir_idlistaruta_AfterUpdate: Exit Sub Err_idlistaruta_AfterUpdate: MsgBox Err.Description Resume Salir_idlistaruta_AfterUpdate End Sub Private Sub idlistaruta_DblClick(Cancel As Integer) On Error GoTo Err_idlistaruta_DblClick Dim lnglistaruta As Long If IsNull(Me![idlistaruta]) Then Me![idlistaruta].Text = "" Else lngidlistaruta = Me![idlistaruta] Me![idlistaruta] = Null End If DoCmd.OpenForm "lista_rutas", , , , , acWindowNormal, NewRecord Me![idlistaruta].Requery If lngidlistaruta <> 0 Then Me![idlistaruta] = lngidlistaruta Exit_idlistaruta_DblClick: Exit Sub Err_idlistaruta_DblClick: MsgBox Err.Description Resume Exit_idlistaruta_DblClick End Sub Private Sub idlistaruta_NotInList(NewData As String, Response As Integer) MsgBox "Haga DOBLE clic en este campo para agregar una entrada a la lista." Response = acDataErrContinue

195

End Sub Private Sub IMPRIMIR_RUTAS_Click() On Error GoTo Err_IMPRIMIR_RUTAS_Click Dim stDocName As String stDocName = "rbol_rutas_producto" DoCmd.OpenReport stDocName, acPreview Exit_IMPRIMIR_RUTAS_Click: Exit Sub Err_IMPRIMIR_RUTAS_Click: MsgBox Err.Description Resume Exit_IMPRIMIR_RUTAS_Click End Sub

Formulario rutas iniciadas


Option Compare Database Sub real() If IsNull(cant_pend) Then cantidad = cant_emitir Else: If cant_pend > 0 And cant_pend < cant_emitir Then cantidad = cant_pend Else cantidad = cant_emitir MsgBox "la cantidad ingresada en la casilla pendiente: cero, negativa o superior a la cantidad a emitir inicial", , "error cantidad" End If End If End Sub Private Sub cant_emitir_AfterUpdate() real End Sub Private Sub cant_pend_AfterUpdate() real End Sub Private Sub Form_Load() Me.Refresh End Sub Private Sub rutas_iniciadas2_terminado_AfterUpdate() Me.Refresh End Sub

Subformulario control detalle pedido


Option Compare Database Private Sub Form_Activate()

196

Me.Refresh End Sub Private Sub iniciado_AfterUpdate() Me.Refresh End Sub Private Sub terminado_AfterUpdate() Me.Refresh End Sub

Subformulario control pedidos Option Compare Database Private Sub Form_Activate() Me.Refresh End Sub Private Sub iniciado_AfterUpdate() Me.Refresh End Sub Formulario switchboard
Option Compare Database Private Sub Form_Open(Cancel As Integer) ' Minimize the database window and initialize the form. ' Move to the switchboard page that is marked as the default. Me.Filter = "[ItemNumber] = 0 AND [Argument] = 'Default' " Me.FilterOn = True End Sub Private Sub Form_Current() ' Update the caption and fill in the list of options. Me.Caption = Nz(Me![ItemText], "") FillOptions End Sub Private Sub FillOptions() ' Fill in the options for this switchboard page. The number of buttons on the form. Const conNumButtons = 8 Dim con As Object Dim rs As Object Dim stSql As String Dim intOption As Integer ' Set the focus to the first button on the form, and then hide all of the buttons on the form but the first. You can't hide the field with the focus. Me![Option1].SetFocus For intOption = 2 To conNumButtons Me("Option" & intOption).Visible = False

197

Me("OptionLabel" & intOption).Visible = False Next intOption ' Open the table of Switchboard Items, and find the first item for this Switchboard Page. Set con = Application.CurrentProject.Connection stSql = "SELECT * FROM [Switchboard Items]" stSql = stSql & " WHERE [ItemNumber] > 0 AND [SwitchboardID]=" & Me![SwitchboardID] stSql = stSql & " ORDER BY [ItemNumber];" Set rs = CreateObject("ADODB.Recordset") rs.Open stSql, con, 1 ' 1 = adOpenKeyset ' If there are no options for this Switchboard Page, display a message. Otherwise, fill the page with the items. If (rs.EOF) Then Me![OptionLabel1].Caption = "There are no items for this switchboard page" Else While (Not (rs.EOF)) Me("Option" & rs![ItemNumber]).Visible = True Me("OptionLabel" & rs![ItemNumber]).Visible = True Me("OptionLabel" & rs![ItemNumber]).Caption = rs![ItemText] rs.MoveNext Wend End If ' Close the recordset and the database. rs.Close Set rs = Nothing Set con = Nothing End Sub Private Function HandleButtonClick(intBtn As Integer) ' This function is called when a button is clicked. intBtn indicates which button was clicked. Constants for the commands that can be executed. Const conCmdGotoSwitchboard = 1 Const conCmdOpenFormAdd = 2 Const conCmdOpenFormBrowse = 3 Const conCmdOpenReport = 4 Const conCmdCustomizeSwitchboard = 5 Const conCmdExitApplication = 6 Const conCmdRunMacro = 7 Const conCmdRunCode = 8 Const conCmdOpenPage = 9 ' An error that is special cased. Const conErrDoCmdCancelled = 2501 Dim con As Object Dim rs As Object Dim stSql As String On Error GoTo HandleButtonClick_Err ' Find the item in the Switchboard Items table that corresponds to the button that was clicked. Set con = Application.CurrentProject.Connection Set rs = CreateObject("ADODB.Recordset")

198

stSql = "SELECT * FROM [Switchboard Items] " stSql = stSql & "WHERE [SwitchboardID]=" & Me![SwitchboardID] & " AND [ItemNumber]=" & intBtn rs.Open stSql, con, 1 ' 1 = adOpenKeyset ' If no item matches, report the error and exit the function. If (rs.EOF) Then MsgBox "There was an error reading the Switchboard Items table." rs.Close Set rs = Nothing Set con = Nothing Exit Function End If Select Case rs![Command] ' Go to another switchboard. Case conCmdGotoSwitchboard Me.Filter = "[ItemNumber] = 0 AND [SwitchboardID]=" & rs![Argument] ' Open a form in Add mode. Case conCmdOpenFormAdd DoCmd.OpenForm rs![Argument], , , , acAdd ' Open a form. Case conCmdOpenFormBrowse DoCmd.OpenForm rs![Argument] ' Open a report. Case conCmdOpenReport DoCmd.OpenReport rs![Argument], acPreview ' Customize the Switchboard. Case conCmdCustomizeSwitchboard ' Handle the case where the Switchboard Manager ' is not installed (e.g. Minimal Install). On Error Resume Next Application.Run "ACWZMAIN.sbm_Entry" If (Err <> 0) Then MsgBox "Command not available." On Error GoTo 0 ' Update the form. Me.Filter = "[ItemNumber] = 0 AND [Argument] = 'Default' " Me.Caption = Nz(Me![ItemText], "") FillOptions ' Exit the application. Case conCmdExitApplication CloseCurrentDatabase ' Run a macro. Case conCmdRunMacro DoCmd.RunMacro rs![Argument] ' Run code. Case conCmdRunCode Application.Run rs![Argument] ' Open a Data Access Page Case conCmdOpenPage DoCmd.OpenDataAccessPage rs![Argument]

199

' Any other command is unrecognized. Case Else MsgBox "Unknown option." End Select ' Close the recordset and the database. rs.Close HandleButtonClick_Exit: On Error Resume Next Set rs = Nothing Set con = Nothing Exit Function HandleButtonClick_Err: ' If the action was cancelled by the user for some reason, don't display an error message.Instead, resume on the next line. If (Err = conErrDoCmdCancelled) Then Resume Next Else MsgBox "There was an error executing the command.", vbCritical Resume HandleButtonClick_Exit End If End Function

Formulario tipo
Option Compare Database Private Sub Form_Close() Form_lista_materiales.Refresh End Sub Private Sub Form_Open(Cancel As Integer) DoCmd.GoToRecord , , acNewRec End Sub

Formulario unidades
Option Compare Database Private Sub Form_Open(Cancel As Integer) DoCmd.GoToRecord , , acNewRec End Sub

Modulo exportar a Excel


Option Compare Database '-----------------------------------------------------------' actualizar_tabla_rutas_producto' '------------------------------------------------------------

Function Exportar_Prioridades() 200

On Error GoTo EXPORTAR_prioridades_Err Dim i, c As Integer, m, n As String c=1 Set fs = Application.FileSearch With fs .LookIn = "c:\aplicacin" 'para buscar en los discos c y d pege est comando .LookIn = "c:\;d:\" .SearchSubFolders = True .FileName = "prioridades.xls" m = "c:\aplicacin\prioridades.xls" If .Execute > 0 Then ' MsgBox "There were " & .FoundFiles.Count & _ " file(s) found." For i = 1 To .FoundFiles.Count n = .FoundFiles(i) If n = m Then 'MsgBox "igual" c=0 End If Next i End If End With If c = 0 Then DoCmd.TransferSpreadsheet acExport, 8, "edd", [m], True, "" DoCmd.TransferSpreadsheet acExport, 8, "fcfs", [m], True, "" DoCmd.TransferSpreadsheet acExport, 8, "lot", [m], True, "" DoCmd.TransferSpreadsheet acExport, 8, "sot", [m], True, "" stAppName = "excel.exe C:\aplicacin\prioridades.xls" Call Shell(stAppName, 1) Else MsgBox "No se encontr prioridades.xls en la ruta ( c:\aplicacin ) Copie el archivo ORIGINAL a esta ruta para que la aplicacin funcione correctamente.", vbCritical, "ERROR - ARCHIVO NO ENCONTRADO" End If EXPORTAR_prioridades_Exit: Exit Function EXPORTAR_prioridades_Err: If Err.Number = 3010 Then MsgBox Err.Number & " - Cierre el archivo de Excel ''prioridades.xls'' para realizar correctamente " _ & "el envio de la informacin - " & Err.Description, vbCritical, "Error - EL ARCHIVO DESTINO ESTA ABIERTO" Else MsgBox Err.Number & "- - " & Err.Description, vbCritical, "ERROR" End If

201

Resume EXPORTAR_prioridades_Exit End Function

Function Exportar_In_Out()
On Error GoTo EXPORTAR_IN_OUT_Err Dim i, c As Integer, m, n As String c=1 Set fs = Application.FileSearch With fs .LookIn = "c:\aplicacin" 'para buscar en los discos c y d pege est comando .LookIn = "c:\;d:\" .SearchSubFolders = True .FileName = "in-out.xls" m = "c:\aplicacin\in-out.xls" If .Execute > 0 Then ' MsgBox "There were " & .FoundFiles.Count & _ " file(s) found." For i = 1 To .FoundFiles.Count n = .FoundFiles(i) If n = m Then 'MsgBox "igual" c=0 End If Next i End If End With If c = 0 Then DoCmd.TransferSpreadsheet acExport, 8, "control_input_output", [m], True, "" stAppName = "excel.exe C:\aplicacin\in-out.xls" Call Shell(stAppName, 1) Else MsgBox "No se encontr prioridades.xls en la ruta ( c:\aplicacin ) Copie el archivo ORIGINAL a esta ruta para que la aplicacin funcione correctamente.", vbCritical, "ERROR - ARCHIVO NO ENCONTRADO" End If EXPORTAR_IN_OUT_Exit: Exit Function EXPORTAR_IN_OUT_Err: If Err.Number = 3010 Then MsgBox Err.Number & " - Cierre el archivo de Excel ''in-out.xls'' para realizar correctamente "_ & "el envio de la informacin - " & Err.Description, vbCritical, "Error - EL ARCHIVO DESTINO ESTA ABIERTO" Else MsgBox Err.Number & "- - " & Err.Description, vbCritical, "ERROR"

202

End If Resume EXPORTAR_IN_OUT_Exit End Function

Function Exportar_Johnson()
On Error GoTo EXPORTAR_JOHNSON_Err Dim i, c As Integer, m, n As String c=1 Set fs = Application.FileSearch With fs .LookIn = "c:\aplicacin" 'para buscar en los discos c y d pege est comando .LookIn = "c:\;d:\" .SearchSubFolders = True .FileName = "johnson.xls" m = "c:\aplicacin\johnson.xls" If .Execute > 0 Then ' MsgBox "There were " & .FoundFiles.Count & _ " file(s) found." For i = 1 To .FoundFiles.Count n = .FoundFiles(i) If n = m Then 'MsgBox "igual" c=0 End If Next i End If End With If c = 0 Then DoCmd.TransferSpreadsheet acExport, 8, "johnson", [m], True, "" stAppName = "excel.exe C:\aplicacin\johnson.xls" Call Shell(stAppName, 1) Else MsgBox "No se encontr johnson.xls en la ruta ( c:\aplicacin ) Copie el archivo ORIGINAL a esta ruta para que la aplicacin funcione correctamente.", vbCritical, "ERROR - ARCHIVO NO ENCONTRADO" End If EXPORTAR_JOHNSON_Exit: Exit Function EXPORTAR_JOHNSON_Err: If Err.Number = 3010 Then MsgBox Err.Number & " - Cierre el archivo de Excel ''johnson.xls'' para realizar correctamente " _ & "el envio de la informacin - " & Err.Description, vbCritical, "Error - EL ARCHIVO DESTINO ESTA ABIERTO" Else

203

MsgBox Err.Number & "- - " & Err.Description, vbCritical, "ERROR" End If Resume EXPORTAR_JOHNSON_Exit End Function

Function Exportar_Asignacin()
On Error GoTo EXPORTAR_ASIGNACIN_Err Dim i, c As Integer, m, n As String c=1 Set fs = Application.FileSearch With fs .LookIn = "c:\aplicacin" 'para buscar en los discos c y d pege est comando .LookIn = "c:\;d:\" .SearchSubFolders = True .FileName = "asignacin.xls" m = "c:\aplicacin\asignacin.xls" If .Execute > 0 Then ' MsgBox "There were " & .FoundFiles.Count & _ " file(s) found." For i = 1 To .FoundFiles.Count n = .FoundFiles(i) If n = m Then 'MsgBox "igual" c=0 End If Next i End If End With If c = 0 Then DoCmd.TransferSpreadsheet acExport, 8, "asignar", [m], True, ""

stAppName = "excel.exe C:\aplicacin\asignacin.xls" Call Shell(stAppName, 1) Else MsgBox "No se encontr asignacin.xls en la ruta ( c:\aplicacin ) Copie el archivo ORIGINAL a esta ruta para que la aplicacin funcione correctamente.", vbCritical, "ERROR - ARCHIVO NO ENCONTRADO" End If EXPORTAR_ASIGNACIN_Exit: Exit Function EXPORTAR_ASIGNACIN_Err: If Err.Number = 3010 Then MsgBox Err.Number & " correctamente " _

Cierre el archivo de Excel ''asignacin.xls'' para realizar

204

& "el envio de la informacin - " & Err.Description, vbCritical, "Error - EL ARCHIVO DESTINO ESTA ABIERTO" Else MsgBox Err.Number & "- - " & Err.Description, vbCritical, "ERROR" End If Resume EXPORTAR_ASIGNACIN_Exit End Function

Function Exportar_Programa_Detallado()
On Error GoTo EXPORTAR_Err Dim i, c As Integer, m, n As String c=1 Set fs = Application.FileSearch With fs .LookIn = "c:\aplicacin" 'para buscar en los discos c y d pege est comando .LookIn = "c:\;d:\" .SearchSubFolders = True .FileName = "detallada.xls" m = "c:\aplicacin\detallada.xls" If .Execute > 0 Then ' MsgBox "There were " & .FoundFiles.Count & _ " file(s) found." For i = 1 To .FoundFiles.Count n = .FoundFiles(i) If n = m Then 'MsgBox "igual" c=0 End If Next i End If End With If c = 0 Then DoCmd.TransferSpreadsheet acExport, 8, "prog_detallada", [m], True, ""

stAppName = "excel.exe C:\aplicacin\detallada.xls" Call Shell(stAppName, 1) Else MsgBox "No se encontr detallada.xls en la ruta ( c:\aplicacin ) Copie el archivo ORIGINAL a esta ruta para que la aplicacin funcione correctamente.", vbCritical, "ERROR - ARCHIVO NO ENCONTRADO" End If EXPORTAR_Exit: Exit Function EXPORTAR_Err: If Err.Number = 3010 Then

205

MsgBox Err.Number & " - Cierre el archivo de Excel ''detallada.xls'' para realizar correctamente " _ & "el envio de la informacin - " & Err.Description, vbCritical, "Error - EL ARCHIVO DESTINO ESTA ABIERTO" Else MsgBox Err.Number & "- - " & Err.Description, vbCritical, "ERROR" End If Resume EXPORTAR_Exit End Function

Function Exportar_FINITA()
On Error GoTo EXPORTAR_Err Dim i, c As Integer, m, n As String c=1 Set fs = Application.FileSearch With fs .LookIn = "c:\aplicacin" 'para buscar en los discos c y d pege est comando .LookIn = "c:\;d:\" .SearchSubFolders = True .FileName = "carga_finita.xls" m = "c:\aplicacin\carga_finita.xls" If .Execute > 0 Then ' MsgBox "There were " & .FoundFiles.Count & _ " file(s) found." For i = 1 To .FoundFiles.Count n = .FoundFiles(i) If n = m Then 'MsgBox "igual" c=0 End If Next i End If End With If c = 0 Then DoCmd.TransferSpreadsheet acExport, 8, "cg_finita", [m], True, "" stAppName = "excel.exe C:\aplicacin\carga_finita.xls" Call Shell(stAppName, 1) Else MsgBox "No se encontr carga_finita.xls en la ruta ( c:\aplicacin ) Copie el archivo ORIGINAL a esta ruta para que la aplicacin funcione correctamente.", vbCritical, "ERROR ARCHIVO NO ENCONTRADO" End If EXPORTAR_Exit: Exit Function EXPORTAR_Err:

206

If Err.Number = 3010 Then MsgBox Err.Number & " - Cierre el archivo de Excel ''carga_finita.xls'' para realizar correctamente " _ & "el envio de la informacin - " & Err.Description, vbCritical, "Error - EL ARCHIVO DESTINO ESTA ABIERTO" Else MsgBox Err.Number & "- - " & Err.Description, vbCritical, "ERROR" End If Resume EXPORTAR_Exit End Function

Modulo funciones de utilidad


Option Compare Database Option Explicit

Function estcargado(ByVal txtNombreFormulario As String) As Boolean


' Devuelve Verdadero si se ha cargado el formulario especificado. Const conObjetoEstaCerrado = 0 Const conModoDiseo = 0 If SysCmd(acSysCmdGetObjectState, acForm, txtNombreFormulario) <> conObjetoEstaCerrado Then If Forms(txtNombreFormulario).CurrentView <> conModoDiseo Then EstCargado = True End If End If End Function

Function Verventanabasededatos()
On Error GoTo Err_VerVentanaBaseDeDatos Dim txtNombreDoc As String txtNombreDoc = "Centro_trabajo" ' Cerrar el formulario Panel de control principal. DoCmd.Close ' Mandar el enfoque a la ventana de base de datos; seleccionar la tabla ' Categoras (primer formulario de la lista). DoCmd.SelectObject acTable, txtNombreDoc, True Salir_VerVentanaBaseDeDatos: Exit Function Err_VerVentanaBaseDeDatos: MsgBox Err.Description Resume Salir_VerVentanaBaseDeDatos End Function

Function salir() 207

On Error GoTo Err_salir DoCmd.ShowToolbar "BASE DE DATOS", acToolbarYes DoCmd.Quit Exit_salir: Exit Function Err_salir: MsgBox Err.Description Resume Exit_salir End Function

Function cerrar()
DoCmd.ShowToolbar "BASE DE DATOS", acToolbarYes CloseCurrentDatabase End Function

Archivos Excel Prioridades.Xls


'Diseado por Jess Eduardo Scarpetta jescarpe@yahoo.com 'Feb 2002 Trabajo de grado Sub msg() MsgBox "TRABAJO DE GRADO Herramienta informtica en hoja electrnica para la planeacin a corto plazo de la produccin en ambientes de planificacin jerrquica, para PYMES con sistema de produccin por lotes o series cortas. REALIZADO POR Jess Eduardo Scarpetta y Eliana Cuellar Bernal. Este archivo es un vinculo del archivo en Access HPP-S.mdb", vbInformation, "Acerca de" End Sub

Asignacin.Xls
'Diseado por Jess Eduardo Scarpetta jescarpe@yahoo.com 'Feb 2002 Trabajo de grado

Sub msg() MsgBox "TRABAJO DE GRADO Herramienta informtica en hoja electrnica para la planeacin a corto plazo de la produccin en ambientes de planificacin jerrquica, para PYMES con sistema de produccin por lotes o series cortas. REALIZADO POR Jess Eduardo Scarpetta y Eliana Cuellar Bernal. Este archivo es un vinculo del archivo en Access HPP-S.mdb Mtodo Hngaro, VER: MACHUCA DOMNGUEZ, Jos Antonio et al. Direccin De Operaciones : Aspectos tcticos y operativos en la produccin y los servicios. Espaa : Mc Graw Hill, 1995. 299 p.", vbInformation, "Acerca de" End Sub Sub algoritmo() 208

Dim n, m, i As Integer, aux As Double Dim mat(1 To 99, 1 To 99) As Double Dim cero(1 To 99, 1 To 99) Dim temp(1 To 99, 1 To 99) Dim cont(1 To 99, 1 To 1) Dim fila(1 To 99, 1 To 99) As Double On Error GoTo algoritmo_Err Worksheets("asignar").Select Range("B2:CU99").Select ActiveWorkbook.Names.Add Name:="tabla", RefersToR1C1:="=asignar!R2C2:R99C99" Range("CV2").Select ActiveCell.FormulaR1C1 = "=COUNT(RC[-98]:RC[-1])" n = Range("Cv2") 'busca el limite para las columnas Range("B100").Select ActiveCell.FormulaR1C1 = "=COUNT(R[-98]C:R[-1]C)" m = Range("B100") 'busca el limite para las filas Range("B2").Select If n = 0 Or m = 0 Then 'condicional primario MsgBox "alguno o ambos limites de la matriz igual a cero. verifique que los datos comienzan desde la casilla B2", vbInformation, "ERROR EN LOS LIMITES" Else If n >= m Then ok = m Else: ok = n End If m=m+1 n=n+1 For r = 2 To m 'lee los datos de las celdas y los coloca en la For c = 2 To n 'matriz mat With Worksheets("asignar").Cells(r, c) mat(r, c) = .Value End With Worksheets("asignar").Cells(r, c).Select Next c Next r '***************************************************************** For c = 2 To n ' aux = mat(2, c) For r = 2 To m 'MNIMO por COLUMNA If mat(r, c) < aux Then ' aux = mat(r, c) ' 209 'control ok para saber en que momento 'las iteraciones son validas

End If Next r For r = 2 To m ' resta Mnimo por COLUMNA mat(r, c) = mat(r, c) - aux Next r Next c '***************************************************************** For r = 2 To m 'MNIMO por fila OK! aux = mat(r, 2) For c = 2 To n If mat(r, c) < aux Then aux = mat(r, c) End If Next c For c = 2 To n ' resta Mnimo por fila mat(r, c) = mat(r, c) - aux Next c Next r '***************************************************************** Worksheets("Hoja1").Select Range("B2:CU99").Select Selection.ClearContents 'limpia la zona donde se pegan los datos '***************************************************************** fase3 = False Do '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ciclo fase tres\\\\\\\\ 'FASE 3 '---------------------------------------------------------------If fase3 = True Then

For r = 2 To m i=0 For c = 2 To n If cero(r, c) = "asignar" Then i=i+1 End If Next c If i = 0 Then p=r End If Next r

210

For c = 2 To n temp(p, c) = mat(p, c) Next c For c = 2 To n If temp(p, c) = 0 Then For r = 2 To m If cero(r, c) = "asignar" Then For q = 2 To n If cero(r, q) = "asignar" Then temp(r, q) = cero(r, q) Else: temp(r, q) = mat(r, q) End If Next q Else: temp(r, c) = mat(r, c) End If Next r End If Next c For r = 2 To m 'contador de casillas con ceros o i=0 'asignar en la matriz temp For c = 2 To n If temp(r, c) = 0 Or temp(r, c) = "asignar" Then If IsEmpty(temp(r, c)) Then i=i Else: i = i + 1 End If Else: i = i End If Next c If i > 0 Then For c = 2 To n 'asigna las filas con ceros o asignacion fila(r, c) = temp(r, c) 'a la matriz fila, borrando esa casillas temp(r, c) = Null 'de la matriz temp Next c End If Next r For c = 2 To n If fila(p, c) = 0 Then For r = 2 To m fila(r, c) = Null Next r 211

End If Next c aux = fila(2, 2) For r = 2 To m For c = 2 To n If IsEmpty(fila(r, c)) Then Else 'fila If fila(r, c) < aux Then aux = fila(r, c) End If End If Next c Next r

'busca el mnimo en la matriz

For r = 2 To m For c = 2 To m If IsEmpty(fila(r, c)) Then 'resta el mnimo a la matriz Else: fila(r, c) = fila(r, c) - aux 'fila End If If IsEmpty(temp(r, c)) Then 'suma el mnimo a la matriz Else: temp(r, c) = temp(r, c) + aux 'temp End If If IsNull(fila(r, c)) Or IsEmpty(fila(r, c)) Then Else: temp(r, c) = fila(r, c) 'pasa los datos de la End If 'matriz fila a temp If IsNull(temp(r, c)) Or IsEmpty(temp(r, c)) Then Else: mat(r, c) = temp(r, c) 'pasa los datos de la End If Next c Next r End If '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ '================================================================ ' FASE DOS BUSQUEDA SOLUCIN PTIMA '================================================================ For r = 2 To m 'cambia los ceros por For c = 2 To n 'sus valores en la hoja If mat(r, c) = 0 Then 'de calculo matriz y los With Worksheets("asignar").Cells(r, c) 'guarda en la matriz cero cero(r, c) = .Value End With End If 212

Next c Next r '**********************************************************ciclo externo vacio = False 'valor de la variable de control Do 'inicio del ciclo externo aux = 0: min = 1000 For r = 2 To m 'contador de casillas con nmeros i=0 'en la matriz ceros y guardado de la For c = 2 To n 'cantidad en el vector cont(contador) If cero(r, c) <> 0 And cero(r, c) <> "asignar" Then i=i+1 cont(r, 1) = i Else: cont(r, 1) = i End If Next c Next r '---------------------------------------------------------ciclo interno-i=1 Do j=1 For r = 2 To m If cont(r, 1) = 0 Then 'contador de ceros en el vector cont(r,1) j=j+1 End If If j = m Then vacio = True Exit Do 'sale del ciclo interno cuando el vector Else: vacio = False 'este lleno de ceros End If If cont(r, 1) = i Then For c = 2 To n If cero(r, c) <> 0 Then With Worksheets("asignar").Cells(r, c) aux = .Value If aux < min Then min = aux: p = r: q = c End If End With End If Next c End If Next r 213

If min = 1000 Then i = 1 + i: vacio = True End If Loop Until vacio = False '----------------------------------------------------fin---ciclo interno-If vacio = True Then i=0 For r = 2 To m ' For c = 2 To n ' If cero(r, c) = "asignar" Then i=1+i End If Next c Next r If i = ok Then fase3 = False Exit Do Else: fase3 = True Exit Do End If End If For r = 2 To m 'coloca vacios en la columna If p <> r Then 'con menor valor y asignar en la cero(r, q) = Null 'posicin del menor Else: cero(r, q) = "asignar" ' End If Next r '***************************************************************** For c = 2 To n 'coloca vacios en la fila If q <> c Then 'con el menor valor cero(p, c) = Null End If Next c Loop Until vacio = True '**************************************************fin****ciclo externo Loop Until fase3 = False '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\fin--ciclo fase tres\\\\\\\\ For r = 2 To m 'imprime los datos del array en For c = 2 To n 'la hoja1 del archivo por columna Cells(r, c) = cero(r, c) 214

Worksheets("Hoja1").Cells(r, c).Select Next c Next r End If ActiveSheet.Shapes(2).Select Range("A1").Select 'MsgBox "fin" algoritmo_Exit: Exit Sub algoritmo_Err: ' Rutina de control de errores. 'MsgBox Err.Number & "- - " & Err.Description, vbCritical, "ERROR" If Err.Number = -2147024809 Then cuadro_de_texto Resume Else MsgBox Err.Number & "- - " & Err.Description, vbCritical, "ERROR" Resume algoritmo_Exit End If End Sub 'algoritmo Sub cuadro_de_texto() ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 151.5, 92.25, 299.25, 72#).Select Selection.Font.Bold = False ActiveSheet.Shapes(2).Select Selection.ShapeRange.Line.Visible = msoFalse With Selection .HorizontalAlignment = xlJustify .VerticalAlignment = xlJustify .Orientation = xlHorizontal .AutoSize = False End With Selection.Characters.Text = _ "La palabra ASIGNAR indica que trabajo debe asignarse a que maquina para obtener el menor tiempo de proceso posible." With Selection.Characters(Start:=1, Length:=117).Font .Name = "Times New Roman" .FontStyle = "Normal" .Size = 16 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False 215

.Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With With Selection.Characters(Start:=12, Length:=7).Font .Name = "Times New Roman" .FontStyle = "Negrita" .Size = 16 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = 7 End With Range("A1").Select End Sub Johnson.Xls
'Diseado por Jess Eduardo Scarpetta jescarpe@yahoo.com 'Feb 2002 Trabajo de grado

Sub algoritmo() Dim g, t, y, j, m, i As Integer, aux, s As Variant Dim dat(1 To 99, 1 To 3) As Variant Dim JOHN(1 To 99, 1 To 3): Dim graf(1 To 99, 1 To 3) On Error GoTo algoritmo_Err Worksheets("johnson").Select Range("B2:C99").Select ActiveWorkbook.Names.Add Name:="tabla", RefersToR1C1:="=johnson!R2C2:R99C3" Range("B100").Select ActiveCell.FormulaR1C1 = "=COUNT(R[-98]C:R[-1]C)" m = Range("B100") 'busca el limite para las filas Range("B2").Select If m = 0 Then 'condicional primario MsgBox "el limite vertical de la matriz es igual a cero. verifique que los datos comienzan desde la casilla B2", vbInformation, "ERROR EN LOS LIMITES" Else ok = m: i = 2: j = 0: m = m + 1 For r = 1 To m 'lee los datos de las For c = 1 To 3 'celdasy los coloca en With Worksheets("johnson").Cells(r, c) 'la matriz dat dat(r, c) = .Value End With 216

Worksheets("johnson").Cells(r, c).Select Next c Next r Do 'ciclo hasta que la matriz dat este vaca aux = 1000 For r = 2 To m For c = 2 To 3 If dat(r, c) < aux Then aux = dat(r, c) p = r: q = c End If Next c Next r If q = 2 Then For c = 1 To 3 JOHN(i, c) = dat(p, c) dat(p, c) = Null Next c i=i+1 Else t=m-j For c = 1 To 3 JOHN(t, c) = dat(p, c) dat(p, c) = Null Next c j=j+1 End If k=0 For r = 2 To m If IsNull(dat(r, 2)) Then k=k+1 End If Next r If k = ok Then Exit Do End If Loop '***************************************************************** For c = 1 To 3 'copia los encabezados JOHN(1, c) = dat(1, c) 'de la matriz dat a la 217

graf(1, c) = JOHN(1, c) Next c

'matriz john y graf

Worksheets("Hoja1").Select Range("A1:CU99").Select 'limpia la zona donde Selection.ClearContents 'se pegan los datos For r = 1 To m 'imprime los datos del array en For c = 1 To 3 'la hoja1 del archivo por columna Cells(r, c) = JOHN(r, c) Worksheets("Hoja1").Cells(r, c).Select Next c Next r i=0 For c = 2 To 3 For r = 2 To m p=r+i graf(p, c) = JOHN(r, c) Next r i=i+1 Next c q=m+1 s=0 For r = 2 To m s = graf(r, 2) + s Next r s = graf(q, 3) + s graf(2, 3) = JOHN(2, 2) For r = 1 To q 'imprime los datos del array en For c = 1 To 3 'la hoja1 del archivo por columna q=8-c Cells(r, q) = graf(r, c) 'Worksheets("Hoja1").Cells(r, q).Select Next c Next r t=0 g=0 For i = 1 To 3 ActiveSheet.Shapes(i).Select Next i If g = 0 And t = 0 Then 218

g=2 Else: If t <> 0 Then MsgBox "EN CASO DE REALIZARSE MAL LA OPERACIN BORRE EL OBJETO E INTENTE DE NUEVO LA OPERACIN. ", vbInformation, "IMPORTANTE" g=2 End If End If ActiveSheet.Shapes(g).Select Selection.Characters.Text = "los trabajos se terminan en " & s & " horas estndar " With Selection.Characters(Start:=1, Length:=43).Font .Name = "Arial" .FontStyle = "Normal" .Size = 16 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With End If Worksheets("Hoja1").Cells(1, 1).Select algoritmo_Exit: Exit Sub algoritmo_Err: ' Rutina de control de errores. 'MsgBox Err.Number & "- - " & Err.Description, vbCritical, "ERROR" If Err.Number = -2147024809 Then y = InputBox("Falta uno de estos elementos en la hoja de clculo: "_ &" "_ & "1 - El grafico representativo de la Regla de Johnson. "_ & "2 - El Texto explicacin de la respuesta obtenida. "_ & "3 - El botn que ejecuta el algoritmo. "_ & "4 - Todas las anteriores", "FALTA ALGO EN LA HOJA DE CLCULO") Select Case y Case 1 grafico t=1 Case 2 cuadro_de_texto g=i 219

Case 3 boton t=1 Case 4 grafico cuadro_de_texto boton t=1 Case Else MsgBox "El nmero no es valido" Resume algoritmo_Exit End Select Resume Else MsgBox Err.Number & "- - " & Err.Description, vbCritical, "ERROR" Resume algoritmo_Exit End If End Sub 'JOHNSON MODULO 2 'Diseado por Jess Eduardo Scarpetta 'jescarpe@yahoo.com 'Feb 2002 'Trabajo de grado Sub grafico() 'ActiveWindow.Visible = False 'Windows("grafico johnson.xls").Activate Range("A1:C99").Select Charts.Add ActiveChart.HasLegend = False ActiveChart.ChartType = xlBarStacked ActiveChart.SetSourceData Source:=Sheets("Hoja1").Range("A1:A99,E1:F99"), _ PlotBy:=xlRows For r = 1 To 98 ActiveChart.SeriesCollection(r).Select Selection.Interior.ColorIndex = xlNone Next r ActiveChart.Location Where:=xlLocationAsObject, Name:="Hoja1" With ActiveChart .HasTitle = True .ChartTitle.Characters.Text = "Secuenciacin Regla de Johnson para N trabajos en 2 maquinas" .Axes(xlCategory, xlPrimary).HasTitle = False .Axes(xlValue, xlPrimary).HasTitle = False End With 220

With ActiveChart.Axes(xlCategory) .HasMajorGridlines = False .HasMinorGridlines = False End With With ActiveChart.Axes(xlValue) .HasMajorGridlines = False .HasMinorGridlines = False End With ActiveChart.PlotArea.Select ActiveChart.ChartArea.Select 'MsgBox "borrar" ' ActiveWindow.Visible = False ' Selection.Delete End Sub Sub cuadro_de_texto() ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 203.25, 16.5, _ 388.5, 43.5).Select Selection.ShapeRange.Line.Visible = msoFalse Selection.Characters.Text = "los trabajos se terminan en " & s & " horas estndar" With Selection.Characters(Start:=1, Length:=63).Font .Name = "Arial" .FontStyle = "Normal" .Size = 16 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With End Sub Sub boton() ActiveSheet.Buttons.Add(49.5, 249, 123.75, 28.5).Select Selection.OnAction = "algoritmo" 'ActiveSheet.Shapes("1").Select Selection.Characters.Text = "JOHNSON" With Selection.Characters(Start:=1, Length:=4).Font .Name = "Arial" .FontStyle = "Normal" .Size = 10 .Strikethrough = False .Superscript = False 221

.Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With Range("A2").Select End Sub Sub msg() MsgBox "TRABAJO DE GRADO Herramienta informtica en hoja electrnica para la planeacin a corto plazo de la produccin en ambientes de planificacin jerrquica, para PYMES con sistema de produccin por lotes o series cortas. REALIZADO POR Jess Eduardo Scarpetta y Eliana Cuellar Bernal. Este archivo es un vinculo del archivo en Access HPP-S.mdb", vbInformation, "Acerca de" End Sub Detallada.Xls Sub Macro1() ActiveSheet.ChartObjects("Grfico 12").Activate ActiveChart.Axes(xlValue).Select ActiveChart.ChartArea.Select With ActiveChart .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "he" End With Selection.Left = 282 Selection.Top = 162 Selection.Font.Bold = False End Sub MODULO 2
'Diseado por Jess Eduardo Scarpetta jescarpe@yahoo.com 'Feb 2002 Trabajo de grado

Sub msg() MsgBox "TRABAJO DE GRADO Herramienta informtica en hoja electrnica para la planeacin a corto plazo de la produccin en ambientes de planificacin jerrquica, para PYMES con sistema de produccin por lotes o series cortas. REALIZADO POR Jess Eduardo Scarpetta y Eliana Cuellar Bernal. Este archivo es un vinculo del archivo en Access HPP-S.mdb", vbInformation, "Acerca de" End Sub Sub grafico() Range("A1:B100").Select 222

Charts.Add ActiveChart.ChartType = xlBarStacked ActiveChart.SetSourceData Source:=Sheets("prog_detallada").Range("A1:B100"), _ PlotBy:=xlRows ActiveChart.Location Where:=xlLocationAsObject, Name:="prog_detallada" ActiveChart.HasLegend = False ActiveChart.Axes(xlCategory).Select Selection.TickLabels.AutoScaleFont = True With Selection.TickLabels.Font .Name = "Arial" .FontStyle = "Normal" .Size = 10 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = 2 .Background = xlTransparent End With ActiveChart.Shapes.AddTextbox(msoTextOrientationHorizontal, 6.75, 24#, 37.5 _ , 22.5).Select Selection.ShapeRange.Line.Visible = msoFalse Selection.Characters.Text = "Pedido" Selection.AutoScaleFont = False With Selection.Characters(Start:=1, Length:=6).Font .Name = "Arial" .FontStyle = "Normal" .Size = 10 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With With ActiveChart .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "he" End With Range("A1").Select End Sub

223

Carga_Finita.Xls
'Diseado por Jess Eduardo Scarpetta jescarpe@yahoo.com 'Feb 2002 Trabajo de grado

Sub msg() MsgBox "TRABAJO DE GRADO Herramienta informtica en hoja electrnica para la planeacin a corto plazo de la produccin en ambientes de planificacin jerrquica, para PYMES con sistema de produccin por lotes o series cortas. REALIZADO POR Jess Eduardo Scarpetta y Eliana Cuellar Bernal. Este archivo es un vinculo del archivo en Access HPP-S.mdb", vbInformation, "Acerca de" End Sub Sub Informacion1() MsgBox "Cambie las horas reales de la celda en verde claro para variar las horas reales normales de trabajo que se muestran en la celda de arriba en color naranja. Realice los cambios en la celda verde y observe las modificaciones en el grafico. Al cerrar el archivo copie el nuevo valor de las horas de trabajo para el periodo evaluado en el centro de anlisis en la base de datos en Access archivo 'PLANEACIN CORTO PLAZO' en el formulario PRODUCCIN PLANEADA del men CONTROL en la columna HR de la tabla INPUT, OUTPUT PLANIFICADO para el centro seleccionado.", vbInformation, "INFORMACIN" End Sub Sub Informacion2() MsgBox "Suprima o borre cargas de la columna F (nmeros en Fucsia) y observe los cambios en el grafico al realizar lo anterior", vbInformation, "INFORMACIN" End Sub MODULO 2
'Diseado por Jess Eduardo Scarpetta jescarpe@yahoo.com 'Feb 2002 Trabajo de grado

Sub grafico() Range("B5:H8").Select Charts.Add ActiveChart.ChartType = xlColumnClustered ActiveChart.SetSourceData Source:=Sheets("Hoja2").Range("B5:H8"), PlotBy:= _ xlRows ActiveChart.Location Where:=xlLocationAsObject, Name:="Hoja2" With ActiveChart .HasTitle = True .ChartTitle.Characters.Text = _ "GANTT de carga finita para el centro seleccionado" .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "periodos" 224

.Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "carga" End With ActiveChart.Axes(xlValue).Select ActiveChart.PlotArea.Select Selection.Left = 1 Selection.Top = 61 Selection.Top = 6 Selection.Width = 278 Selection.Height = 135 ActiveChart.Legend.Select Selection.Left = 188 Selection.Top = 25 ActiveChart.Axes(xlCategory).Select Selection.TickLabels.AutoScaleFont = False With Selection.TickLabels.Font .Name = "Arial" .FontStyle = "Normal" .Size = 8 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic .Background = xlAutomatic End With ActiveChart.Axes(xlCategory).AxisTitle.Select Selection.AutoScaleFont = False With Selection.Font .Name = "Arial" .FontStyle = "Negrita" .Size = 7 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic .Background = xlAutomatic End With Selection.Left = 230 ActiveChart.Axes(xlValue).Select 225

Selection.TickLabels.AutoScaleFont = False With Selection.TickLabels.Font .Name = "Arial" .FontStyle = "Normal" .Size = 8 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic .Background = xlAutomatic End With ActiveChart.Axes(xlValue).AxisTitle.Select Selection.AutoScaleFont = False With Selection.Font .Name = "Arial" .FontStyle = "Negrita" .Size = 7 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic .Background = xlAutomatic End With With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .Orientation = xlHorizontal End With Selection.Left = 3 Selection.Top = 1 ActiveChart.ChartTitle.Select Selection.Left = 117 Selection.Top = 1 Selection.AutoScaleFont = False With Selection.Font .Name = "Arial" .FontStyle = "Negrita" .Size = 10 .Strikethrough = False 226

.Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic .Background = xlAutomatic End With ActiveChart.Legend.Select Selection.AutoScaleFont = False With Selection.Font .Name = "Arial" .FontStyle = "Normal" .Size = 8 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic .Background = xlAutomatic End With ActiveWindow.Visible = False Windows("carga_finita.xls").Activate Range("B5").Select End Sub In-out.Xls
'Diseado por Jess Eduardo Scarpetta jescarpe@yahoo.com 'Feb 2002 Trabajo de grado

Sub msg() MsgBox "TRABAJO DE GRADO Herramienta informtica en hoja electrnica para la planeacin a corto plazo de la produccin en ambientes de planificacin jerrquica, para PYMES con sistema de produccin por lotes o series cortas. REALIZADO POR Jess Eduardo Scarpetta y Eliana Cuellar Bernal. Este archivo es un vinculo del archivo en Access HPP-S.mdb", vbInformation, "Acerca de" End Sub MODULO 2 Sub grfico() Range("D1:E100").Select ActiveWindow.SmallScroll Down:=-8 End Sub 227

Sub graf() Charts.Add ActiveChart.ChartType = xlColumnStacked ActiveChart.SetSourceData Source:=Sheets("control_input_output").Range( _ "D1:E100"), PlotBy:=xlRows ActiveChart.Location Where:=xlLocationAsObject, Name:= _ "control_input_output" With ActiveChart .HasTitle = True .ChartTitle.Characters.Text = "input para el CT" .Axes(xlCategory, xlPrimary).HasTitle = False .Axes(xlValue, xlPrimary).HasTitle = False End With With ActiveChart.Axes(xlCategory) .HasMajorGridlines = False .HasMinorGridlines = False End With With ActiveChart.Axes(xlValue) .HasMajorGridlines = True .HasMinorGridlines = False End With ActiveChart.HasLegend = False ActiveSheet.Shapes("Grfico 3").ScaleWidth 1.14, msoFalse, _ msoScaleFromBottomRight ActiveSheet.Shapes("Grfico 3").ScaleHeight 1.34, msoFalse, _ msoScaleFromTopLeft ActiveSheet.Shapes("Grfico 3").IncrementLeft -93.75 ActiveSheet.Shapes("Grfico 3").IncrementTop 36# End Sub Sub outgraf() Charts.Add ActiveChart.ChartType = xlColumnStacked ActiveChart.SetSourceData Source:=Sheets("control_input_output").Range( _ "F1:G100"), PlotBy:=xlRows ActiveChart.Location Where:=xlLocationAsObject, Name:= _ "control_input_output" With ActiveChart .HasTitle = True .ChartTitle.Characters.Text = "out para el CT" .Axes(xlCategory, xlPrimary).HasTitle = False .Axes(xlValue, xlPrimary).HasTitle = False End With ActiveChart.HasLegend = False 228

ActiveSheet.Shapes("Grfico 4").ScaleWidth 1.07, msoFalse, msoScaleFromTopLeft ActiveSheet.Shapes("Grfico 4").ScaleHeight 1.16, msoFalse, _ msoScaleFromTopLeft ActiveSheet.Shapes("Grfico 4").ScaleWidth 1.05, msoFalse, msoScaleFromTopLeft ActiveSheet.Shapes("Grfico 4").ScaleHeight 1.1, msoFalse, _ msoScaleFromTopLeft ActiveSheet.Shapes("Grfico 4").IncrementLeft 192# ActiveSheet.Shapes("Grfico 4").IncrementTop 54# ActiveSheet.Shapes("Grfico 4").IncrementLeft -1.5 ActiveSheet.Shapes("Grfico 4").IncrementTop -17.25 ActiveWindow.Visible = False Windows("in-out.xls").Activate ActiveSheet.ChartObjects("Grfico 3").Activate ActiveChart.ChartArea.Select ActiveSheet.Shapes("Grfico 3").IncrementLeft -8.25 ActiveSheet.Shapes("Grfico 3").ScaleWidth 0.97, msoFalse, msoScaleFromTopLeft ActiveSheet.Shapes("Grfico 3").ScaleHeight 1.01, msoFalse, _ msoScaleFromBottomRight ActiveWindow.Visible = False Windows("in-out.xls").Activate ActiveSheet.ChartObjects("Grfico 4").Activate ActiveChart.ChartArea.Select ActiveSheet.Shapes("Grfico 4").IncrementLeft -16.5 ActiveSheet.Shapes("Grfico 4").IncrementTop -1.5 ActiveWindow.Visible = False ActiveSheet.ChartObjects("Grfico 4").Activate ActiveWindow.Visible = False ActiveSheet.ChartObjects("Grfico 4").Activate Windows("in-out.xls").SmallScroll ToRight:=1 ActiveWindow.Visible = False ActiveSheet.ChartObjects("Grfico 4").Activate ActiveWindow.Visible = False ActiveSheet.ChartObjects("Grfico 4").Activate Windows("in-out.xls").SmallScroll ToRight:=1 ActiveWindow.Visible = False ActiveSheet.ChartObjects("Grfico 4").Activate ActiveWindow.Visible = False ActiveSheet.ChartObjects("Grfico 4").Activate ActiveWindow.Visible = False ActiveSheet.ChartObjects("Grfico 4").Activate Windows("in-out.xls").SmallScroll ToRight:=-1 ActiveWindow.Visible = False ActiveSheet.ChartObjects("Grfico 4").Activate ActiveWindow.Visible = False ActiveSheet.ChartObjects("Grfico 4").Activate 229

Windows("in-out.xls").SmallScroll ToRight:=1 ActiveWindow.Visible = False ActiveSheet.ChartObjects("Grfico 4").Activate Windows("in-out.xls").SmallScroll ToRight:=1 Windows("in-out.xls").SmallScroll Down:=3 ActiveSheet.Shapes("Grfico 4").ScaleWidth 0.94, msoFalse, msoScaleFromTopLeft ActiveSheet.Shapes("Grfico 4").ScaleHeight 0.99, msoFalse, _ msoScaleFromBottomRight Windows("in-out.xls").LargeScroll ToRight:=-1 ActiveWindow.Visible = False ActiveSheet.ChartObjects("Grfico 4").Activate ActiveWindow.Visible = False ActiveSheet.ChartObjects("Grfico 4").Activate Windows("in-out.xls").SmallScroll Down:=-1 ActiveWindow.Visible = False ActiveSheet.ChartObjects("Grfico 4").Activate ActiveWindow.Visible = False ActiveSheet.ChartObjects("Grfico 4").Activate Windows("in-out.xls").SmallScroll Down:=-1 ActiveWindow.Visible = False ActiveSheet.ChartObjects("Grfico 4").Activate ActiveWindow.Visible = False ActiveSheet.ChartObjects("Grfico 4").Activate Windows("in-out.xls").SmallScroll Down:=-1 ActiveWindow.Visible = False ActiveSheet.ChartObjects("Grfico 4").Activate ActiveWindow.Visible = False ActiveSheet.ChartObjects("Grfico 4").Activate ActiveWindow.Visible = False ActiveSheet.ChartObjects("Grfico 4").Activate ActiveWindow.Visible = False ActiveSheet.ChartObjects("Grfico 4").Activate ActiveWindow.Visible = False ActiveSheet.ChartObjects("Grfico 4").Activate ActiveWindow.Visible = False ActiveSheet.ChartObjects("Grfico 4").Activate ActiveWindow.Visible = False ActiveSheet.ChartObjects("Grfico 4").Activate ActiveWindow.Visible = False ActiveSheet.ChartObjects("Grfico 4").Activate Windows("in-out.xls").SmallScroll Down:=1 ActiveWindow.Visible = False ActiveSheet.ChartObjects("Grfico 4").Activate ActiveWindow.Visible = False ActiveSheet.ChartObjects("Grfico 4").Activate 230

Windows("in-out.xls").SmallScroll Down:=-1 ActiveWindow.Visible = False Windows("in-out.xls").Activate Range("A1").Select End Sub

231

Vous aimerez peut-être aussi