Sei sulla pagina 1di 169

UNIVERSIDAD TECNICA DE MANAB

FACULTAD DE CIENCIAS INFORMTICAS


ESCUELA DE INGENIERIA EN SISTEMAS INFORMTICOS TESIS DE GRADO
Previa a la obtencin del ttulo en: INGENIERA EN SISTEMAS INFORMTICOS

Modalidad INVESTIGACIN DIAGNSTICA Y PROPOSITIVA

Tema:

Sistema informtico para el manejo de Sistemas de Riego por Goteo para el Colegio de Ingenieros Agrcolas de la Regin Litoral del Ecuador.
Autores: PRRAGA MUOZ SONIA MONSERRATE PONCE TUBAY MANUEL ALEXANDER

Director de Tesis ING. JAVIER CUZCO TORRES

Portoviejo Manab Ecuador 2010

DEDICATORIA

Dedico esta tesis con todo mi corazn y cario a los seres ms importantes en mi vida: Primeramente a Dios que como jefe supremo es quien ilumina cada da mis actos, me brinda la oportunidad de vivir y disfrutar de la alegra de ser madre. A mis queridos y adorados hijos; MANOLITO Y ALEJANDRITO por ser mi mayor fuente de inspiracin para ser cada da mejor por ellos y para ellos. Mis padres ZONIA Y GUILLERMO, seres incondicionales que han estado conmigo en todo momento apoyndome e incentivndome. A mi esposo MANUEL PONCE, que gracias a su compaa, cuidado y amor hemos podido juntos realizarnos en el hogar, y hoy cumplir la meta de superacin profesional.

SONIA MONSERRATE PRRAGA MUOZ

ii

AGRADECIMIENTO

Agradezco a Dios, por ser quien me ayudo y me dio las fuerzas necesarias para seguir adelante con la elaboracin de esta tesis.

Les agradezco a mis hijos, por entender cuando la mamita estaba ocupada con la realizacin de la tesis, a m esposo por su comprensin y apoyo en todo momento, a mi padre Ing. Guillermo Prraga Snchez, que fue quien nos ayudo con los conocimientos en lo relacionado a Ingeniera Civil, a mi suegro Sr. Manuel Ponce que junto a su apoyo moral e incondicional nos incentivo cada vez ms para la realizacin de esta tesis. A mi mama Zonia Muoz que siempre ha estado ah incentivndome en todo momento, a mi suegra la Sra. Vilma Tubay, quien con su apoyo incondicional en todo momento ha sido muy importante para mi en la realizacin de mi tesis.

Muy agradecida con Ing. Lenin Rivera muchas gracias Ingeniero porque gracias a sus discernimientos y consejos pudimos lograr la culminacin de la presente, al Eco. Wilmer Giler que con sus conocimientos siempre estuvo apoyndonos y guindonos con la documentacin y orientacin de esta tesis. Al Ing. Javier Cuzco nuestro Director de Tesis, muchas gracias a usted quien se encargo de guiarnos y orientarnos y aclarar las dudas que se presentaron en la ejecucin de esta tesis.

Estoy cordialmente agradecida con el Sr. Cristhian Vega, Ingeniero Agrcola, encargado del asesoramiento de parte del Colegio de Ingeniero Agrcolas, el mismo que nos asigno tiempo paciencia y dedicacin brindndonos todos los conocimientos del Riego por Goteo, de manera que pudimos entender todos los procesos agrcolas que se deben de realizar para determinar el Sistema de Riego por Goteo, muchas gracias a usted Ingeniero.

SONIA MONSERRATE PRRAGA MUOZ

iii

DEDICATORIA

Dedico esta tesis a:

A Dios por ser quien ha guiado mis pasos durante toda mi vida y es quien me mantiene de pie da a da.

A mis padres MANUEL PONCE GUTIERREZ y VILMA TUBAY LOOR, porque gracias a sus consejos, incentivos y dedicacin para con mi educacin hoy he logrado cumplir uno de mis logros profesionales.

Mis hijos MANOLITO Y ALEJANDRITO, por ser ellos mi inspiracin y a la vez mis ganas de seguir adelante superndome profesionalmente.

A mi esposa SONIA, por ser ella un apoyo ms en la culminacin de esta tesis.

MANUEL ALEXANDER PONCE TUBAY

iv

AGRADECIMIENTO

Agradezco a Dios por ser l quien me brinda la posibilidad de vivir y estar aqu presente ante la culminacin de este proyecto.

Me siento agradecido con mis padres, mis hijos y mi esposa por brindarme su apoyo incondicional para realizarme como un profesional.

Agradezco al Ing. Javier Cuzco Director de Tesis, al Ing. Lenin Rivera al Eco. Wilmer Giler, porque gracias a su ayuda, y a sus conocimientos, pudimos culminar esta tesis.

Le agradezco al Ing. Cristhian Vega porque gracias a sus clases de Ingeniera Agrcola, con temas referente al Riego por Goteo, pudimos interpretar cada uno de los clculos que conllevaron a realizar la tesis.

MANUEL ALEXANDER PONCE TUBAY

CERTIFICACIN DEL DIRECTOR DE TESIS

En mi calidad de Director de Tesis, CERTIFICO: Que el presente trabajo de Tesis de Grado de la Modalidad Investigacin Diagnstica Propositiva con tema: SISTEMA INFORMTICO PARA EL MANEJO DE SISTEMAS DE RIEGO POR GOTEO PARA EL COLEGIO DE INGENIEROS AGRCOLAS DE LA REGIN LITORAL DEL ECUADOR. , fue realizado por los Egresados PRRAGA MUNOZ SONIA MONSERRATE Y PONCE TUBAY MANUEL

ALEXANDER, bajo mi direccin y supervisin, cumpliendo con los requisitos y mritos suficientes para ser considerado por los Miembros del Tribunal Evaluador de la Facultad de Ciencias Informticas de la Universidad Tcnica de Manab.

Portoviejo, Junio del 2010

Ing. Javier Cuzco Torres DIRECTOR DE TESIS

vi

CERTIFICACIN DEL TRIBUNAL DE REVISIN Y EVALUACIN

El Tribunal de Revisin y Evaluacin CERTIFICA: Que el presente trabajo de Tesis de Grado en la Modalidad Investigacin Diagnstica Propositiva titulada: SISTEMA INFORMTICO PARA EL MANEJO DE SISTEMAS DE RIEGO POR GOTEO PARA EL COLEGIO DE INGENIEROS AGRCOLAS DE LA REGIN LITORAL DEL ECUADOR., es un trabajo original de los Egresados PRRAGA MUNOZ SONIA MONSERRATE Y PONCE TUBAY MANUEL ALEXANDER, la misma que ha sido revisada, evaluada y aprobada por los miembros del tribunal.

Portoviejo, Junio del 2010 Para constancia firman:

........................................................ Ing. Lenin RiveraMontalvn Presidente

. Econ. Wilmer Giler Docente del rea

. Ing. Hernn Vargas Docente comisin investigacin

Miembros del tribunal examinador y evaluador


vii

DECLARATORIA

Es de exclusiva responsabilidad del contenido de esta Tesis de Grado los autores del proyecto SISTEMA INFORMTICO PARA EL MANEJO DE
SISTEMAS DE RIEGO POR GOTEO PARA EL COLEGIO DE INGENIEROS AGRCOLAS DE LA REGIN LITORAL DEL ECUADOR. de todos y cada

una de las actividades realizadas en este trabajo de investigacin.

Sonia Monserrate Prraga Muoz

.. Manuel Alexander Ponce Tubay

viii

DECLARATORIA

Los autores de la presente tesis de grado titulada: SISTEMA


INFORMTICO PARA EL MANEJO DE SISTEMAS DE RIEGO POR GOTEO PARA EL COLEGIO DE INGENIEROS AGRCOLAS DE LA REGIN LITORAL DEL ECUADOR. ceden todos sus derechos de autora sobre la

Investigacin diagnstica y propositiva, a la Universidad Tcnica de Manab y al Colegio de Ingenieros Agrcolas de la Regin Litoral del Ecuador. Previo a la avalizacin entre las instituciones.

Sonia Monserrate Prraga Muoz

.. Manuel Alexander Ponce Tubay

ix

NDICE

Contenidos
PRELIMINAR

Pgs.

DEDICATORIA.. II AGRADECIMIENTO. III DEDICATORIA.. IV AGRADECIMIENTO. V CERTIFICACIN DEL DIRECTOR DE TESIS VI CERTIFICACIN DEL TRIBUNAL DE REVISIN Y EVALUACIN.... VII DECLARATORIA...VIII DECLARATORIA.. IX NDICE... X NDICE DE GRFICO.. RESUMEN EJECUTIVO... EXECUTIVE SUMMARY.

PRINCIPAL 1 2 3 4 4.1 4.2 4.3 INTRODUCCIN. 1 ANTECEDENTES. 3 JUSTIFICACIN. 4 PLANTEAMIENTO DEL PROBLEMA 6

DESCRIPCION DEL PROBLEMA 6 ANALISIS DEL PROBLEMA 9 DELIMITACION DEL PROLEMA9

4.3.1 DELIMITACION TEMPORAL.. 10 4.4 5 5.1 5.2 FORMULACION DEL PROBLEMA. 10 OBJETIVOS DE LA INVESTIGACIN 10 OBJETIVO GENERAL 10 OBJETIVOS ESPECIFICOS 10 x

6 6.1 6.2

MARCO REFERENCIAL, TERICO, CONCEPTUAL 12 MARCO REFERENCIAL 12 MARCO TERICO.. 14

6.2.1 RIEGO DE CULTIVOS 14 6.2.2 SISTEMA DE RIEGO POR GOTEO... 15 6.2.3 CARACTERSTICAS DEL RIEGO POR GOTEO. 16 6.2.4 VENTAJAS Y DESVENTAJAS.. 17 6.2.5 DISEO AGRONMICO 21 6.2.5.1 6.2.5.2 6.2.5.3 6.2.5.4 6.2.5.5 6.2.5.6 6.2.5.7 6.2.5.7.1 CAPACIDAD DE CAMPO.. 23 PUNTO DE MARCHITEZ PERMANENTE 24 LMINA DE RIEGO. 25 LMINA REAL.. 25 LMINA NETA DE RIEGO. 26 LMINA BRUTA DE RIEGO.. 27 EVAPOTRANSPIRACIN... 27 DISEO DE UN MODELO PARA ESTIMAR LA

EVAPOTRANSPIRACIN DE REFERENCIA UTILIZANDO LA TEMPERATURA DEL AIRE DEL ECUADOR. 28 6.2.5.8 6.2.5.8.1 6.2.5.9 EVAPOTRANSPIRACIN REAL... 29 COEFICIENTE DE CULTIVO..... 30 FRECUENCIA DE RIEGO 31 NUMERO DE GOTEROS. 33 CAUDAL 34 NMERO DE REYNOLDS.. 35 FLUJO PARCIALMENTE TURBULENTO 36 PRDIDAS DE CARGA... 37 OTRAS FUNCIONES 38

6.2.6 DISEO HIDRULICO 32 6.2.6.1 6.2.6.2 6.2.6.3 6.2.6.4 6.2.6.5

6.2.7 DEFINICIN DE SGBD... 38 6.2.7.1 6.2.8 CLASIFICACIN DE LOS SGBD 39 6.2.9 POSTGRESQL 40 6.2.10 SHARDEVELOP. 41 xi

6.2.11 AUTOCAD.. 42 6.2.12 SISTEMAS COORDENADAS 42 6.2.13 GPS 44 6.2.14 CARACTERSTICAS TCNICAS Y PRESTACIONES 44 6.2.14.1 VOCABULARIO BSICO DEL GPS.. 45 6.2.15 APLICACIONES... 46 6.2.16 SISTEMAS DE COORDENADAS UNIVERSAL TRANSVERSAL DEL MERCATOR. 47 6.2.16.1 6.2.16.2 6.3 7 7.1 8 8.1 ZONAS UTM 48 NOTACIN.. 49

MARCO CONCEPTUAL. 49 HIPOTESIS 50 VARIABLES Y SU OPERACIONALIZACION. 50 DISEO METODOLGICO 52 METODOLOGA Y TIPO DE INVESTIGACIN. 52

8.1.1 METODOLOGA.. 52 8.2 8.3 8.4 8.5 8.6 8.7 8.8 TIPOS DE INVESTIGACIN.. 52 MTODOS E INSTRUMENTOS DE RECOLECCIN. 52 PLAN DE ANLISIS 53 RECURSOS HUMANOS.. 53 RECURSOS INSTITUCIONALES.. 53 RECURSOS MATERIALES. 53 RECURSOS TECNOLGICOS 53

8.8.1 HARDWARE. 53 8.8.2 SOFTWARE.. 54 8.8.3 BASE DE DATOS. 54 8.8.4 HERRAMIENTAS DE DESARROLLO... 54 8.8.5 HERRAMIENTAS DE DESARROLLO... 54 9. PRESENTACION DE RESULTADOS, ANLISIS E INTERPRETACIN..... 54 10. 10.1 CONCLUSIONES Y RECONMENDACIONES.. 58 CONCLUSIONES.. 58 xii

10.2 11 11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9

RECOMENDACIONES.. PROPUESTA.. TITULO DE LA PROPUESTA...... JUSTIFICACIN.... FUNDAMENTACIN OBJETIVO GENERAL... OBJETIVO ESPECIFICO... IMPORTANCIA. UBICACIN SECTORIAL Y FSICA. FACTIBILIDAD TEMA.

59 60 60 60 60 61 61 62 63 63 63 64 65 66 67 68 69 70 73 81

11.10 DIAGRAMA DE CONTEXTO. 11.11 DIAGRAMA DE FLUJO DE DATOS (DFD). 11.12 DIAGRAMA DE ENTIDAD RELACION (DER) 12 13 14 15 PRESUPUESTO. CRONOGRAMA BIBLIOGRAFA ANEXOS MANUAL DEL USUARIO.. MANUAL TECNICO

xiii

NDICE DE GRFICO
Pgs.

Figura 1: Diagrama que representa los estados hdricos y la disponibilidad de agua para las planta .. hortcolas .. Figura 3: Sistemas de coordenadas.. Figura4. Diagrama de contexto. Figura5. Diagrama de Flujo de Datos Figura6. Diagrama entidad relacin.. 22

Figura 2: valores del coeficiente de cultivo (Kc) para distintos cultivos herbceos y 31 43 64 65 66

xiv

RESUMEN EJECUTIVO

La tecnologa en la actualidad influye circunstancialmente en los progresos de las instituciones o empresas siendo la clave del xito contar con cambios tecnolgicos, por ende la presente tesis titulada Sistema informtico para el manejo de Sistemas de Riego por Goteo para el Colegio de Ingenieros Agrcolas de la Regin Litoral del Ecuador., contribuye la automatizacin de los procesos en el clculo de un Sistema de Riego por Goteo.

El objetivo de este informe, es proporcionar una amplia informacin a los Ingenieros Agrcolas as como a la comunidad, y dar a conocer lo importante y valioso que es la implementacin de un software que realice los procesos de un Sistema de Riego por Goteo de manera gil y eficaz.

El sistema de Riego por Goteo cuenta con el desarrollo de los Diseos Agronmicos, Diseos Hidrulicos, y Diseos Econmicos de manera que se obtenga un costo real y a la vez la graficacin de cmo quedara implementado en el terreno el Sistema de Riego por Goteo, utilizando una herramienta grafica como es el AutoCad.

La realizacin de este sistema es un avance tecnolgico significativo dando un beneficio a los Ingenieros Agrcolas de la Regin Litoral del Ecuador, y a la Institucin para que pueda brindar un mejor servicio.

xv

EXECUTIVE SUMMARY
Currently the technology influences circumstantially in the progresses of the institutions or companies being the key of the success for counting on technological changes, therefore the present titled thesis Computer science System for the handling of Systems of Irrigation by Dripping for the School of Agricultural Engineers of the Coastal Region of Ecuador., it contributes in the automatic process, in the calculation of a System of Irrigation by Dripping.

The objective of this report is to provide broad information to the Agricultural Engineers as well as to the community, and to present how important and valuable thing is the implementation of software that realizes the processes of a System of Irrigation by Dripping of agile and effective way.

The system of Irrigation by Dripping counts on the development of the Agronomic Designs, Hydraulic Designs, and Economic Designs ,so that a real cost is obtained simultaneously and the gratification of how it would be implemented in the land the System of Irrigation by Dripping, using a graphic tool as it is the AutoCad. The accomplishment of this system is significant a technological advance giving a benefit to the Agricultural Engineers of the Coastal Region of Ecuador and to the Institution so that it can offer a better service.

xvi

1. INTRODUCCIN

En el siglo XXI el hombre y sus investigaciones cientficas hacen que la tecnologa camine a pasos agigantados en la vida de las organizaciones y personas, permitiendo con sus avances tecnolgicos: fiabilidad, calidad, agilidad y reduccin de espacio fsico en el trabajo.

Efectivamente la informtica se constituye en la tecnologa intelectual dominante, dando lugar a formas de conocimientos y por lo tanto a otras formas de memoria. Es compromiso de la sociedad moderna prepararse para enfrentar los retos que las innovaciones cientfico-tecnolgicas presentan da a da y as formar parte de sus avances, adquiriendo ventajas que permitan ser competitivos.

En la actualidad la tecnologa percibe una avance significativo en cada una de las ramas de las diferentes ciencias, y cada vez se hace ms indispensable para el desarrollo de las actividades que estas conlleven, tal es el caso de la Ingeniera Agrcola; de manera que dichos avances tecnolgicos son caracterizados en la modificacin de las estructuras tradicionales de produccin, manejo y

comercializacin de los productos del sector agropecuario, lo que hace necesario que se generen grandes proyectos tecnolgicos para resolver problemas claves que se presenten en el sector, como la utilizacin adecuada de los recursos hdricos, maquinaria agrcola, agroindustria, y construcciones rurales; cada uno de estos factores son circunstanciales para el desarrollo de las poblaciones en nivel agropecuario.

La informtica es la rama encargada del procesamiento automtico de la informacin, que consiste en la aplicacin de los fundamentos de la ciencia de la computacin y la ingeniera de software, para soluciones integrales de cmputo y comunicaciones, que unida con las dems ciencias e ingenieras facilita las diferentes aplicaciones que estas realicen.

Dentro de la Ingeniera Agrcola contamos con un sinnmero de ramas asociadas a 1

las ciencias fsicas, matemticas y de investigacin, complementndola con las ciencias biolgicas, naturales y sociales. Para determinar los diferentes sistemas de riego que contienen las plantaciones de cultivos de produccin de las plantas, es necesario aplicar los distintos conocimientos de las ramas antes mencionadas, y para determinar estos sistemas se requiere un periodo de tiempo extenso realizando los diferentes clculos para constatar la estructura y como va a ser aplicada en el terreno a cultivar.

Uno de los problemas que existe a nivel mundial en la actualidad con los cultivos, es la escasez de agua dulce, es ah donde surgi la necesidad de implementar un sistema que ayude a que no exista desperdicio de agua para los cultivos, apareciendo la tcnica de riego por goteo, por ser caracterizada fuente de ahorro de agua que permite un mejor control del suelo, mayor rendimiento del cultivo, con

procedimientos a base de clculos.

Este sistema actualmente es aplicado por los ingenieros agrcolas en las diferentes provincias que conforman la Regin Litoral del Ecuador. Cada uno de los procesos requeridos en el clculo de la tcnica de Riego por Goteo, conllevan tiempo y espacio, desfavoreciendo la agilidad del Ingeniero Agrcola, es de esta manera que la informtica junto con sus avances tecnolgicos y el desarrollo del software apropiado ayudar a agilitar dichos procesos.

2. ANTECEDENTES

El Colegio Regional de Ingenieros Agrcolas del Litoral, se cre a travs de la ley de Ejercicio Profesional de la Ingeniera mediante Decreto N 1300 publicado en el registro oficial 709 del 16 de Diciembre de 1974, y en su artculo IV del Reglamento la Ley de Ejercicio Profesional de la Agricultura, se incluye la Rama de la Ingeniera Agrcola dentro de otros Ingenieros.1

Desde su creacin la institucin ha ido creciendo tecnolgicamente a base de adquisiciones de equipos o de diferentes aplicaciones creadas para un buen funcionamiento de la misma.

Durante los aos 2007 - 2009 se han diseado y construido maquinarias agrcolas y forestales, la institucin ha estado activa en proyectos de investigacin sobre diseo e instalacin de sistemas de riego en varios estadios deportivos, jardines botnicos y propiedades agrcolas desde el ao 2000 hasta la presente fecha. Participacin en varios congresos internacionales y nacionales de conocimientos de avances tecnolgicos en la Ingeniera Agrcola.

Adquisicin de equipo topogrfico con software de aplicacin de tecnologa GPS contando con una estacin total en levantamientos topogrficos desde el ao 2004.

Actualmente consta con tecnologa GPS diferencial con sistema RTK (Real Time Kinemati), adems una aplicacin de tecnologa satelital (teledeteccin) en el estudio de reas agrcolas y topogrficas.

Aplicacin de software de HCANALES, esta herramienta fue adquirida en el Congreso Internacional de Ingeniera Agrcola en Chile 2007. La misma que permite simplificar los clculos tediosos que se requieren en el diseo de canales y estructuras hidrulicas, pudiendo realizar simulaciones, variando cualquier parmetro
1

SIDE. Sociedad de Ingenieros del Ecuador, Ley de Ejercicio Profesional de la Ingeniera y su reglamento, Cdigos de tica, Normas relativas al ejercicio profesional, Captulo III, Art 21, pg. 39.

hidrulico. El sistema permite resolver los problemas ms frecuentes que se presentan en el diseo de canales y estructuras hidrulicas, las cuales son: Calcular el tirante normal Calcular el tirante crtico Calcular el resalto hidrulico Calcular la curva de remanso Calcular caudales

La institucin no tiene una herramienta informtica experta para el manejo de un sistema de riego por goteo, vindose en la necesidad de obtenerla para brindar un mejor servicio a sus socios y a la vez ayudar mejorar el desempeo profesional de los mismos.

3. JUSTIFICACIN

En la actualidad, se vive una revolucin que ha dado lugar a la sociedad de la informacin, tambin denominada sociedad digital, comandada por las nuevas tecnologas, donde la informtica juega un papel fundamental en todos los mbitos. Una de las utilidades ms importantes de la informtica es facilitar informacin en forma oportuna y veraz, lo cual, por ejemplo, puede tanto facilitar el desarrollo de un clculo en corto tiempo, como permitir el control de procesos crticos en las diferentes ramas profesionales.

El crecimiento notable en la agricultura concerniente al rea de riego de los cultivos, ha incrementado el inters de la tecnologa de riego por goteo. En este contexto, el desarrollo de herramientas informticas (software de riego), permite minimizar los tiempos de clculo, ofrecindonos un mayor tiempo de anlisis y evaluacin de los resultados.

El Colegio de Ingenieros Agrcola del Litoral, tiene como visin el crecimiento y 4

desarrollo interno y externo del mismo, es as que con la implementacin de un Sistema informtico de Riego por Goteo, perfecciona su servicio a los dems ingenieros agrcolas.

El desarrollo del Sistema informtico para el manejo de un Sistema de Riego por Goteo para el Colegio de ingenieros Agrcolas de la Regin Litoral del Ecuador, cubre una necesidad inmediata, ya que facilita el debido clculo para los distintos proyectos existentes de riego por goteo en los diferentes cultivos de la zona. Realizando los procesos para el diseo agronmico e hidrulico que deben de ser llevados de manera que se pueda entregar un servicio confiable y exacto en el momento en que algn socio de la entidad desee hacer uso del mismo para la realizacin de un proyecto de riego con esta herramienta.

Inters personal:

Se considera que a la UTM le interesa convertirse en una entidad productora de profesionales que posean no solo conocimientos sino que adicionalmente puedan elaborar instrumentos validos para el desarrollo de las diferentes entidades con logros de superacin profesional.

Adems porque este tema de investigacin da una visin ms amplia de la forma en que debe de aplicar un profesional informtico las diferentes tcnicas de riego de los cultivos que aplican los Ingenieros Agrcolas en la Zona Litoral del Ecuador, facilitando as el desarrollo e implementacin de los sistemas de riego en la provincia y la regin litoral.

Relevancia Cientfica:

Construccin de una infraestructura slida que sirva de apoyo para las diferentes actividades que realiza la entidad, hacindola ms gil y veraz mediante el Sistema de Riego por Goteo para el Colegio de ingenieros Agrcolas de la Regin Litoral del Ecuador, desarrollado con herramientas de ltima generacin y con profesionales de 5

la comunidad manabita.

Relevancia Humana:

Porque facilita a los Ingenieros asociados al Colegio de ingenieros Agrcolas, realizar cada uno de los procesos que permiten elaborar proyectos de riego por goteo de manera ms gil, prctica y automtica facilitando as sus actividades profesionales.

Beneficios de la investigacin:

Los beneficiarios directos son los Ingenieros Agrcolas socios de la institucin, relacionados a la agilidad con la que se realizan los diferentes clculos del diseo agronmico e hidrulico para la tcnica de riego por goteo de los cultivos de la Regin Litoral del Ecuador.

As tambin el desarrollo de software realizado por egresados en informtica de la Universidad Tcnica de Manab con herramientas actuales, es un gran aporte para el desarrollo econmico, tcnico y social.

4. PLANTEAMIENTO DEL PROBLEMA

4.1. DESCRIPCION DEL PROBLEMA

En la actualidad el Colegio de Ingenieros Agrcolas del Litoral, brinda servicios a los Ingenieros Agrcolas de la Zona, ya sea en asesoramientos o en proyectos en va de desarrollo en las diferentes etapas y tcnicas del proceso de estudio y plantacin de los cultivos de la Regin Litoral del Ecuador.

La institucin cuenta con la ayuda de profesionales en el rea de Agricultura, 6

efectuando proyectos de desarrollo a nivel de cultivos. Es as como actualmente se aplica la Tcnica de Riego por goteo, logrando obtener un ahorro en el agua y al mismo tiempo que no exista deshidratacin en los cultivos. Los Ingenieros han incrementado sus logros profesionales implementando este sistema en diferentes campos de la zona, pero es un dilema a la hora de realizar los clculos que requiere esta tcnica, el Colegio de Ingenieros Agrcolas a fin de agilitar estos procedimientos se ve en la necesidad de implementar un Sistema informtico para el manejo de Sistemas de Riego por Goteo.

Situacin actual

El proceso del clculo de un sistema de Riego por Goteo en trminos generales consta de dos partes: Diseo Agronmico y Diseo Hidrulico.

Diseo agronmico Capacidad de campo Punto de marchitez permanente Textura del suelo Necesidades netas de riego, la cantidad de agua que debe contener el cultivo durante su produccin. Frecuencia y Duracin del riego.

Diseo Hidrulico El numero de emisores por planta, caudal del emisor emisores. El clculo de las conducciones del sistema de riego, as como el clculo de laterales y de tuberas. y disposicin de los

Si bien existen diferentes procesos para determinar el diseo agronmico e hidrulico de un cultivo, existe la dificultad que toma realizar cada uno de estos procedimientos y a la vez la concordancia y continuidad de los mismos, debido a que si alguna falla no se podr continuar con el otro. 7

Problemas principales:

En lo que respecta a la elaboracin de un Sistema de Riego por Goteo se detectan las siguientes falencias.

Debido a que se debe de tomar en cuenta el tipo de cultivo que se va a sembrar existen diferenciaciones en los clculos a realizarse, ya que ni un cultivo es igual al otro, es decir, no es lo mismo cultivar sanda, que cebolla ni las necesidades de la una son igual que la otra por eso, se diferencian por constantes, por lo que se vuelve tedioso para los ingenieros agrcolas hacer un clculo para cada sembro.

El problema del tipo de suelo y longitudes del terreno donde se implantar el cultivo es un inconveniente, pues los sembros se realizan en diferentes suelos que comnmente no son uniformes, generando as ms retardo para los profesionales al momento de realizar los clculos referentes al diseo de la plantacin.

Falta de un proceso gil al momento de determinar la pendientes que tendr el terreno en el cual se va a determinar un cultivo e implementarlo, causando as prdida de tiempo y a la vez desorden en los datos reales en los que se debe ejecutar.

Falta de una automatizacin, cuando se debe de determinar la hidratacin y tratamientos y las necesidades netas del cultivo de manera que estas sean favorables para el mismo.

La entidad no posee una herramienta que pueda establecer en corto tiempo un resultado ptimo sobre un debido diseo y desarrollo del clculo de un sistema de riego por goteo en cualquier cultivo que se produzca en la zona, de manera que no est en capacidad de poder satisfacer esas necesidades inmediatas para los ingenieros agrcolas que integran la misma. 8

4.2. ANALISIS DEL PROBLEMA

El colegio de ingenieros Agrcolas del Litoral, se ha robustecido y obtenido grandes logros en la Regin, impulsando a los ingenieros Agrcolas a instruirse cada vez ms en su profesin, generando ms fuentes de empleo y a la vez ayudando a futuros profesionales, a que se desenvuelvan en la sociedad y aportando a la misma con diferentes proyectos del mbito agrcola, ya sea con la fabricacin de herramientas necesarias para el desarrollo favorable de cada una de las actividades que realizan o desarrollando una aplicacin de fcil manejo para los usuarios, de manera que puedan ingresar la informacin de cada uno de los cultivos que se desee implantar as como las especificaciones del lugar donde se implantar.

Esta aplicacin ayuda a la entidad a evitar que los ingenieros agrcolas que laboran en la misma tengan que recurrir a elaborar manualmente cada uno de los clculos que implica implementar un Sistema de Riego por Goteo. Ofreciendo un servicio ms rpido y eficaz en cada uno de los procesos que requiere dicho clculo. Tambin ofrece el diseo total de la implantacin de cualquier cultivo a sembrar, dando una imagen visualizada de cmo quedar diseada la implantacin.

El Sistema informtico es uno de los activos ms importante del Colegio de ingenieros Agrcolas de la Regin Litoral del Ecuador, ya que la operacin del mismo girar en torno a la utilizacin de esta aplicacin eliminando el proceso manual.

4.3. DELIMITACION DEL PROLEMA

La presente investigacin se realiz en el Colegio de Ingenieros Agrcolas de la Regin Litoral del Ecuador, ubicado en la Calle Ricaurte entre 10 de Agosto y Crdova en la Ciudad de Portoviejo, Provincia de Manab, Ecuador. 9

4.3.1.1.

Delimitacin Temporal

El tiempo estimado para el desarrollo del presente proyecto es de seis meses.

4.4. FORMULACIN DEL PROBLEMA

El disear, desarrollar e implementar el Sistema informtico para el manejo de Sistemas de Riego por Goteo beneficiar al Colegio de Ingenieros Agrcolas de la Regin Litoral del Ecuador?

5. OBJETIVOS DE LA INVESTIGACIN

5.1

OBJETIVO GENERAL

Implementar un Sistema informtico sobre el manejo de Sistemas de Riego por Goteo para el Colegio de Ingenieros Agrcolas de la Regin Litoral del Ecuador.

5.2

OBJETIVOS ESPECIFICOS

Generar los clculos de seleccin de los diferentes cultivos determinando as cada una de las constantes que los diferencian y determinando la planta que va a ser cultivada por el usuario.

10

Determinar las uniformidades referentes a las longitudes del espacio territorial a cultivarse de manera que se pueda establecer correctamente el clculo requerido en el diseo de las implantaciones de los cultivos.

Generar el clculo correspondiente a la pendiente que posee el terreno donde se implantar el cultivo, evitando as la prdida de tiempo y evitar inconsistencias o datos irreales al ejecutarse el proceso.

Proporcionar una herramienta que permita obtener el diseo de riego por goteo, determinando los costos reales al entorno en el que se encuentra, dando como resultado un costo total de la implantacin del cultivo.

Generar el diseo grafico de la implantacin del cultivo basado en la tcnica de riego por goteo, de manera que el usuario tenga una idea visual de cmo quedar una vez diseado dicho sistema.

Elaborar el clculo y desarrollo de los procesos que se realizan en el Diseo Agronmico de un Sistema de Riego por Goteo, dando como resultado la informacin necesaria de los requerimientos agrcolas de un cultivo.

Desarrollar el clculo del Diseo Hidrulico de un Sistema de Riego por Goteo, estableciendo la distribucin de las tuberas y el comportamiento del agua, segn los requerimientos de un cultivo especfico.

11

MARCO REFERENCIAL, TERICO, CONCEPTUAL

6.1

MARCO REFERENCIAL

El Colegio Regional de Ingenieros Agrcolas del Litoral, se cre a travs de la ley de Ejercicio Profesional de la Ingeniera mediante Decreto N 1300 publicado en el registro oficial 709 del 16 de Diciembre de 1974, y en su artculo IV del Reglamento la Ley de Ejercicio Profesional de la Agricultura, se incluye la Rama de la Ingeniera Agrcola dentro de otros Ingenieros.

Mediante Registro Oficial N 398 del 7 de Agosto del 2008 con la administracin del Sr. Economista Rafael Correa Delgado Presidente Constitucional de la Repblica del Ecuador se realiz la siguiente reforma al reglamento la Ley de Ejercicio Profesional de la Ingeniera Agrcola, en el cual se sustituye el numeral 1 del Art. 22, y quedando reformado y actualizado el nuevo campo profesional del Ingeniero Agrcola como a continuacin se detalla.2

Decreta: Expedir las siguientes reformas al REGLAMENTO A LA LEY DE EJERCICIO PROFESIONAL DE LA INGENIERIA. Art. 1.- Sustityase el Art. 4 por el siguiente: Art. 4.- Estn amparados por la Ley y sus Reglamentos los profesionales de las siguientes Ramas de la Ingeniera: Agrcola; agrnoma; de Alimentos; Geogrfica; Elctrica y Electrnica; Forestal; Geolgica; de Minas; de Petrleos; Industrial; Mecnica; Naval; Qumica; Zootecnista; Informtica; Sistemas y Computacin;
2

SIDE. Sociedad de Ingenieros del Ecuador, Ley de Ejercicio Profesional de la Ingeniera y su reglamento, Cdigos de tica, Normas relativas al ejercicio profesional, 2008, Ecuador.

12

Textiles; en Recursos Naturales Renovables; Agroindustriales; Administradores de Empresas Agropecuarias; Industrias Agropecuarias; Electromecnica; Hidrulico; Diseo y Construccin; Agropecuaria; Empresas Ecotursticas; Gestin Empresarial; Administracin Financiera; y Ambiental.

Art. 2.- Sustityase el numeral 1 del Art. 22 por lo siguiente: 1.- Ingeniero Agrcola:

a) Disear, proyectar, ejecutar programas y proyectos de mecanizacin agrcola, agricultura de precisin y de conservacin; b) Adaptabilidad social y econmica de las mquinas agrcolas; c) Organizacin de las operaciones agrcolas mecanizadas, administracin de equipos, controles de mantenimiento, rendimientos y anlisis econmicos; d) Diseo de elementos y mecanismos de mquinas agrcolas, tractores, maquinarias para la siembra, mantenimiento de cultivos, cosecha y movimiento de tierras, para riego, drenaje y albarradas; e) Investigar y participar en la Gestin Integral de los Recursos Hdricos; f) Estudiar, disear, planificar, dirigir, ejecutar, construir, fiscalizar y administrar obras y proyectos de infraestructura de riego y drenaje, para la produccin agropecuaria; g) Investigar y estudiar los recursos de agua y tierra para su aprovechamiento en la agricultura; h) Elaborar, dirigir, ejecutar y fiscalizar estudios de suelos con fines de riego y programas de conservacin y recuperacin de suelos agrcolas; i) Planificar, investigar, construir, dirigir y ejecutar obras de infraestructura rural, caminos rurales y los programas integrales de Desarrollo Rural; j) Planificar, disear, y construir la infraestructura para el manejo poscosecha;

13

k) Investigar, elaborar y ejecutar proyectos de comercializacin agropecuaria; l Investigar, proyectar, ejecutar y asesorar programas y proyectos de invernaderos; m) Efectuar levantamiento edafolgico y topogrfico del sector agrcola; n) Docencia universitaria en materias relacionadas con la Ingeniera Agrcola; o) Cualquier otro trabajo que por su carcter o los conocimientos especiales que requiera, est capacitado para ejercer como Ingeniero Agrcola.

Divulgacin por el Colegio Nacional de Ingenieros Agrcolas del Ecuador CIADE

El Colegio de Ingenieros Agrcolas de la Regin Litoral del Ecuador, con sede en la Calle Ricaurte entre 10 de Agosto y Crdova en la Ciudad de Portoviejo, Provincia de Manab, Ecuador.

6.2

MARCO TERICO

6.2.1

RIEGO DE CULTIVOS

El riego consiste en que los cultivos tengan un suministro de agua necesaria, de manera que favorezcan su crecimiento y desarrollo. Se utiliza en la agricultura y en la jardinera.3

Los mtodos ms comunes de riego son: Por arroyamiento o surcos. Por inundacin o sumersin, generalmente, en bancales o tablones aplanados entre dos caballones.
3

http://www.cedru.org/bmztextominiriego.htm

14

Por aspersin. El riego por aspersin roca el agua en gotas por la superficie de la tierra, asemejndose al efecto de la lluvia Por infiltracin o canales. Por goteo o riego localizado. El riego de goteo libera gotas o un chorro fino, a travs de los agujeros de una tubera plstica que se coloca sobre o debajo de la superficie de la tierra.

Por drenaje.

6.2.2

SISTEMA DE RIEGO POR GOTEO

El riego por goteo, igualmente conocido bajo el nombre de riego gota a gota, es un mtodo de irrigacin utilizado en las zonas ridas pues permite la utilizacin ptima del agua y abonos. El agua aplicada por este mtodo de riego se infiltra hacia las races de las plantas irrigando directamente la zona de influencia de las races a travs de un sistema de tuberas y emisores (goteros).

EL Riego por Goteo es una conquista ms en la lucha por conseguir una utilizacin del agua lo ms favorable para la planta y, al mismo tiempo, ahorrando dispersiones y prdidas que en pases, donde los recursos hdricos son cada da ms escasos, constituyen un lujo que no se pueden permitir4.

Es ms, el riego localizado o Riego por goteo puede tambin utilizar aguas salobres o aguas recicladas. Los sistemas de filtrado, los equipos de fertirrigacin, la hidromecnica aplicada a los equipos de control unidos a la aplicacin de nuevos materiales derivados del petrleo (PVC y PE y ltimamente el polipropileno y polibutileno) han dado paso a nuevos sistemas que, con el exclusivo objetivo de economizar el agua y la mano de obra, estn avanzando da a da de forma sorprendente.
4

http://www.euroresidentes.com/jardineria/sistemas_de_riego/riego/riego_por_goteo/riego_y_las_nuev as_tecnologias.htm

15

6.2.3

CARACTERSTICAS DEL RIEGO POR GOTEO

- Utilizacin de pequeos caudales a baja presin.

- Localizacin del agua en la proximidad de las plantas a travs de un nmero variable de puntos de emisin (emisores o goteros).

- Al reducir el volumen de suelo mojado, y por tanto su capacidad de almacenamiento, se debe operar con una alta frecuencia de aplicacin, a caudales pequeos.

Si est correctamente montado, instalado, y controlado, el riego por goteo puede ayudar a realizar importantes economas de agua por la reduccin de la evaporacin . Por otro lado, el riego gota a gota puede eliminar muchas enfermedades que nacen del contacto del agua con las hojas. En conclusin, en las regiones donde los aprovisionamientos de agua estn muy limitados, se puede obtener un notable aumento de produccin utilizando la misma cantidad de agua que antes.

Este sistema de riego presenta diversas ventajas desde los puntos de vista agronmicos, tcnicos y econmicos, derivados de un uso ms eficiente del agua y de la mano de obra. Adems, permite utilizar caudales pequeos de agua.

Una importante reduccin de la evaporacin del suelo, lo que trae una reduccin significativa de las necesidades de agua. No se puede hablar de una reduccin en lo que se refiere a la transpiracin del cultivo, ya que la cantidad de agua transpirada (eficiencia de transpiracin) es una caracterstica fisiolgica de la especie.

Permite el aporte controlado de nutrientes con el agua de riego sin prdidas por lixiviacin con posibilidad de modificarlos en cualquier momento del cultivo (fertirriego)5.
5

http://www.euroresidentes.com/jardineria/sistemas_de_riego/riego/riego_por_goteo.htm

16

6.2.4

VENTAJAS Y DESVENTAJAS

Los sistemas de riego por goteo/microaspersin tienen las siguientes ventajas tpicas sobre algunos de los dems mtodos de riego6:

1.

Pueden usarse en terrenos con elevadas pendientes. Ningn otro mtodo de riego puede ser empleado en terrenos con pendientes extremas.

2.

Requieren solo un emparejamiento mnimo de la superficie del terreno. Esta labor es necesaria para prevenir problemas de drenaje superficial, los cuales pueden presentarse con las lluvias; tambin es necesaria para acomodar cualquier equipo especial de labranza utilizado.

3.

Resulta ms difcil proporcionar riego en exceso en trminos brutos durante los meses de ET pico. Esto ocurre mayormente porque muchos sistemas de

goteo/microaspersin no se disean con una gran capacidad de bombeo, y no de que ocurra solo por el hecho de que quienes manejan los sistemas de riego por goteo/microaspersin posean la cualidad inherente de ser mejores que quienes manejan otros sistemas de riego.

4.

La Uniformidad de Distribucin (UD) de los sistemas nuevos puede ser muy alta (0,93 o mayor) en terrenos razonablemente adecuados y con un excelente diseo, ya que en los sistemas nuevos la UD depende solo de la hidrulica y del diseo, ms que del manejo, de las diferencias de suelo y/o de los patrones de superposicin de los aspersores. A medida que la industria provea an mejores emisores compensadores de presin, los valores de UD de los sistemas nuevos probablemente y en forma consistente, caern en estos rangos altos (> 0,93).

Burt, C.M., S.W. Styles and J.A. Forero S. 2000. Riego por Goteo y por Microaspersion para Arboles, Vides y Cultivos Anuales. Irrigation Training and Research Center. Cal Poly, San Luis Obispo, CA. ISBN 0-9643634-3-7. 334 p.

17

5.

Los sistemas pueden instalarse virtualmente en parcelas de cualquier tamao y forma.

6.

En general no hay que enfrentar problemas de escorrenta superficial.

Sin

embargo, la escorrenta superficial puede constituirse en problema con aguas de muy alta pureza.

7.

Los sistemas tienen la capacidad de aplicar riegos con alta frecuencia sin sacrificar UD, como ocurre con mtodos de riego por superficie, y sin permitir prdidas por evaporacin excesivas no beneficiosas, como acontece con el mtodo de riego por aspersin. Los riegos de alta frecuencia permiten el

mantenimiento de una humedad ptima en la zona de races, lo cual reviste especial importancia cuando se emplean aguas salinas, o para cultivos de races poco profundas. Conviene sealar que los riegos muy frecuentes no son

necesariamente deseables para algunos cultivos tales como la lechuga.

Los fertilizantes pueden ser aplicados directa y uniformemente a la zona de races en cualquier da de cualquier estado de crecimiento, en cualquier dosis, sin humedecer el follaje de las plantas.

La porcin superior de la zona de races puede mantenerse hmeda, lo cual acrecienta la toma de nutrientes tales como fsforo y amonio, nutrientes estos que tpicamente se concentran cerca de la superficie del suelo. Esta simple ventaja es probablemente de excepcional importancia en el mejoramiento de la produccin de algunos cultivos.

Las ventajas arriba mencionadas son "tpicas", lo cual no significa que siempre estn garantizadas. Tal como ocurre con cualquier otro mtodo de riego, la buena

operacin depende de un buen diseo, de un buen equipo y de un buen mantenimiento. Por su parte, los sistemas de riego por goteo/microaspersin pueden presentar las siguientes desventajas:

18

1. La UD puede degradarse rpidamente con el tiempo debido a causas estndar tales como filtradas insuficientes de agua, el lavado de laterales y/o la inyeccin de qumicos. La UD puede degradarse tambin en forma rpida debido a algunas circunstancias imprevistas e inusuales, tales como almejas de agua dulce que crecen dentro de las mangueras, o insectos inusuales que prefieren poner sus huevos dentro de cierto tipo de emisor. El dao causado por roedores puede ser devastador en algunas reas.

2. Los sistemas de goteo/microaspersin son susceptibles a dao causado por vandalismo. Las reparaciones de daos causados por vandalismo pueden ser complicadas, requieren mucho tiempo y son costosas.

3. Las prdidas por evaporacin pueden ser altas con algunos microaspersores que frecuentemente humedecen grandes reas de suelo desnudo.

4. A pesar de que a menudo existe el potencial para obtener excelentes resultados (ahorros de agua, eficiencia en la fertilizacin, optimizacin de la produccin), ellos solamente pueden lograrse con excelentes diseo y manejo. Es frecuente que a los regadores y a los agricultores les tome varios aos desarrollar habilidades de manejo promedio, y no es extrao que se presenten fallas catastrficas antes de que tales habilidades se obtengan. Los mtodos de riego por goteo/microaspersin algunas veces son percibidos por los productores y planificadores como capaces de proveer la curacin mgica a los problemas asociados con otros mtodos de riego, cuando en realidad son causados por un manejo pobre con los otros mtodos de riego. A menos que el estilo de manejo cambie cuando se instalan sistemas de riego por goteo/microaspersin, los problemas pueden pasar de ser moderados a ser severos. Por fortuna, muchos productores desean aprender por completo las tcnicas de operacin del riego cuando son expuestos a un nuevo mtodo de riego.

5. El agua debe estar disponible para el sistema en forma muy frecuente y confiable. El riego por goteo/microaspersin no puede ser utilizado en proyectos 19

de riego que entreguen el riego sobre la base de programacin por rotacin (la cual incluye la mayora las areas regadas del mundo), a menos que los campos sean abastecidos con agua subterrnea.

6. Los costos de energa para instalacin y operacin de los sistemas de riego son generalmente mayores que para mtodos de riego por superficie en terrenos planos (asumiendo eficiencias similares). No obstante, la eficiencia global en el uso de energa puede en realidad ser superior con riego por

goteo/microaspersin si se tiene en cuenta que hay reduccin en la cantidad de fertilizantes aplicados y que las producciones se mejoran; en forma similar, los requerimientos de energa pueden ser menores en sistemas de riego por goteo/microaspersin, si se necesita un menor emparejamiento de la superficie del terreno.

7. Hay docenas de tipos diferentes de partes esenciales (uniones, vlvulas, etc.). Los sistemas deben estar respaldados por una excelente infraestructura de reabastecimiento de repuestos.

8. En regiones muy ridas, un sistema de riego por aspersin puede necesitarse una vez cada pocos aos (y en algunos casos ms frecuentemente, como con algunos cultivos con goteo subsuperficial) para lixiviar las sales que se acumularon cerco de la superficie del suelo.

9. Los sistemas de riego por goteo/microaspersin pueden implicar costos iniciales muy altos en algunas situaciones.

Tanto los equipos, como los precios y el manejo de cada tipo de sistema de riego por goteo/microaspersin varan segn el caso. Existen tambin grandes diferencias en seleccin de equipo de pas a pas, de estado a estado y an de provincia a provincia.

El suelo est constituido por tres fases: slida, liquida y gaseosa. La fase slida est constituida por partculas minerales y una pequea porcin de partculas orgnicas. 20

El espacio no ocupado por la fase slida constituye los poros del suelo, que estarn normalmente ocupados por aire y agua en proporciones variables segn el estado de humedad. Se llama Porosidad (P) al cociente entre el volumen de poros y el volumen aparente de suelo (Vas).

6.2.5

DISEO AGRONMICO

En todo sistema de riego el diseo agronmico es el componente fundamental, al extremo que los errores que se cometan en esta fase hacen que no sirvan los detallados clculos hidrulicos o la eleccin de automatismo. La importancia de un buen diseo agronmico en los proyectos de riego por goteo repercutir directamente en: La produccin y operaciones de riego, capacidad de las redes estructurales de riego7.

Resulta fundamental conocer cul es la disponibilidad en el suelo, para suplir la demanda de agua de los cultivos.

Ella est directamente relacionada con la matriz de suelo, y por lo tanto su retencin estar sometida a principios y leyes fsicas y caractersticas mecnicas de los suelos.

En trminos prcticos, el agua en el suelo presenta diferentes tasas de disponibilidad para las plantas creciendo sobre l, estas cantidades de agua disponible normalmente asociadas a una determinada tensin interna, traducida como la presin negativa ejercida por una columna de agua, en trminos prcticos, la presin es una fuerza que se realiza por ejemplo para empujar un cuerpo, la tensin es la misma magnitud de fuerza, pero en sentido contrario, es decir tirando a el mismo cuerpo, por lo que la presin cambia de signo pasando a ser negativa (Figura 1).

Las cantidades de agua mencionadas estn relacionadas con el contenido volumtrico


7

FUENTES, Jos, Tcnicas de Riego, Ministerio de Agricultura, Pesca y Alimentacin, Madrid Espaa 2003, pg.: 319

21

de agua en el suelo y que incide sobre la fuerza con que esta retenida el agua en el suelo y se denominan Constantes Hdricas.

Los valores ms utilizados de lmites de tensin a la que est retenida el agua en el suelo y que definen su estado energtico son Capacidad de Campo (CC) y Punto de Marchitez Permanente (PMP).

Para uso agronmico, las constantes hdricas ms utilizadas son Capacidad de Campo y Punto de Marchitez Permanente, las cuales estn relacionadas con ciertos niveles de energa del agua en el suelo y corresponden a % de humedad del suelo, que son caractersticas para cada suelo.

Fuente: Casanova 2007 Figura 1: Diagrama que representa los estados hdricos y la disponibilidad de agua para las plantas.

Resumiendo, las plantas toman agua desde el suelo a presiones negativas o tensin, para entender esto, se puede decir que se asemeja a tomar agua desde una botella con una bombilla, mientras la bombilla sea ms larga, mas presin deberemos realizar con nuestra boca para que el agua llegue desde la botella hasta nuestra boca. en el caso de las plantas es una situacin similar, se puede asociar la tensin como la fuerza necesaria para sacar agua del suelo.

22

6.2.5.1 CAPACIDAD DE CAMPO

El concepto de capacidad de campo (CC) es un concepto definido a partir de las experiencias del riego tecnificado. Se define como el contenido de agua que retiene un suelo en contra de la fuerza de gravedad, en condiciones de equilibrio y cuando no existe extraccin de agua del suelo por las plantas, sea esta por evaporacin o transpiracin8.

Se expresa como porcentaje sobre la masa o volumen y tambin como una altura de una columna de agua para una cierta profundidad del suelo (ejemplo mm/m).

Esta es una propiedad del suelo, que no se puede definir en forma exacta, sin embargo, es de alguna utilidad para muchas soluciones prcticas, debido a ello se sigue utilizando, a pesar de la dificultad de determinarla en el laboratorio. Sin embargo, muchos no se ajustan a la definicin original, definen como CC al contenido de agua con la tensin ms baja despus de una precipitacin.

La CC se podra definir tambin como la tensin limite, entre las aguas que escurren rpidamente y aquella que se mueve lentamente esta velocidad umbral es de 1 .10-4 cm/s.

% = , + , + , + ,

Donde:

CC= Capacidad de Campo L= Limo Ac= Arcilla Ar=Arena


8

http://www.siar.cl/docs/protocolos/Curvas_humedad.pdf

23

6.2.5.2 PUNTO DE MARCHITEZ PERMANENTE

El concepto de punto de marchitez permanente corresponde a la cantidad de agua retenida en un suelo, con la cual una planta se marchita irreversiblemente. Puede ser un rango o un lmite, pero una vez alcanzado es un proceso irreversible. Este monto se expresa en porcentaje sobre la masa o el volumen, al igual que la CC, como una columna de agua para una profundidad de suelo dada (mm/m). La tensin del agua en el PMP es de 1,5 104 cm. columna de agua (CA) (1,5 MPa). Esto es por convencin, y est definida para el girasol basada en estudios primarios de ecologa vegetal9.

Muchas plantas, obtienen agua del suelo a tensiones ms altas que estas, se puede citar el caso de plantas xerofticas.

En trminos de economa del agua, el PMP es el un lmite entre el agua lquida retenida por el suelo, que solo puede ser eliminada va evaporacin, vale decir un cambio de fase que implica un gran gasto energtico.

En climas semiridos esta condicin de humedad puede alcanzar varios cm. de profundidad.

% = , + , + ,

Donde: PMP= Punto de Marchitez Permanente Ac= Arcilla L=Limo Ar=Arena

FUENTES, Jos, Tcnicas de Riego, Ministerio de Agricultura, Pesca y Alimentacin, Madrid Espaa 2003, pg.: 322

24

6.2.5.3 LMINAS DE RIEGO

La lmina de riego se define como la cantidad de agua que se debe aplicar al suelo, dependiendo de la profundidad radicular o de la profundidad a la cual se desea llegar con el riego. Existen dos tipos de clculos de la lmina de riego denominados lmina neta y lmina bruta, que consideran la eficiencia de aplicacin de agua10.

6.2.5.4 LMINA REAL

La lmina real (LR), se puede calcular fcilmente si se conocen los contenidos de humedad correspondientes a la capacidad de campo (Cc) y punto de marchitez permanente (Pm), las propiedades fsicas del suelo y la profundidad que considerara para el riego que generalmente corresponde a la profundidad efectiva del sistema radicular11.

La lmina real es una caracterstica del suelo y corresponde a la cantidad de agua que el suelo puede almacenar por un determinado tiempo. Se puede expresar en lmina de agua por profundidad del suelo, generalmente mm de agua por m de profundidad del suelo o en volumen de agua por unidad de rea (m3/ha).

Donde: LN= Lamina Neta Cc= Capacidad de Campo en % Pm= Punto de Marchitez Permanente % Da = Densidad aparente del suelo en g/cm3 P = Profundidad del sistema radicular.
10

INPOFUS. Instituto de la Potasa y el Fsforo. Sociedad Ecuatoriana de la Ciencia del Suelo. Memorias del I Seminario Internacional de Fertigacin, Quito Ecuador 1998. 11 Ibid, p55.

25

6.2.5.5 LMINA NETA DE RIEGO

La lmina neta de riego (LN), es la cantidad de agua que se aplica al suelo y que en condiciones ideales es utilizada completamente por el cultivo12.

En cultivos bajo riego, nunca se debe permitir que el contenido de humedad del suelo alcance el punto de marchitez. En otras palabras, se debe reponer el agua cuando se agote una fraccin de la capacidad de agua del suelo.

El nivel de agotamiento (NAP) vara entre 0,2 y 0,8. Los valores menores son usados para cultivos ms sensibles al dficit de agua y los mayores para los cultivos resistentes. El valor de NAP a ser usado, dentro de cada grupo de cultivos, depender de la mayor o menor sensibilidad del cultivo al dficit de agua en el suelo y a la demanda atmosfrica de la regin. Para un mismo cultivo, cuando mayor sea la demanda atmosfrica menor ser el valor de NAP. Es muy comn el uso de NAP=0,3 para ornamentales. El clculo de LN del suelo se logra con la siguiente ecuacin:

Donde:

LN=Lamina Neta LR=Lamina Real de Riego NAP=Nivel de Agotamiento Permisible

12

Ibid, p59

26

6.2.5.6

LMINA BRUTA DE RIEGO

Normalmente la aplicacin de agua no es uniforme, ni perfecta, debido a la heterogeneidad del suelo. Por esta razn es necesario aplicar un poco mas de agua para uniformizar el riego hasta la profundidad de las races13.

Este exceso de agua generalmente se pierde por percolocacin profunda (en algunos casos se agrega voluntariamente ms agua para que se produzca lavado de sales) y por escurrimiento superficial. Se lo considera para efectos de clculo en la eficiencia de aplicacin.

Para calcular la lmina bruta de riego se usa la siguiente ecuacin:

Donde:

LN= Lamina neta EA= Eficiencia de aplicacin dependiendo el sistema de riego (en el riego por goteo el valor EA es constante 0,9).

6.2.5.7

EVAPOTRANSPIRACIN

En

punto anterior se calcul la lmina de riego que aplicada al suelo est a

disposicin del sistema radicular. Las plantas consumen diariamente la cantidad de agua y otra se pierde por evaporacin de los suelos adyacentes a las plantas. La suma de estar porciones de agua representa la evapotranspiracin.

13

Ibid, p61

27

Dicho de otra manera, la evapotranspiracin consiste en la absorcin de agua a travs de las races de las plantas, que es utilizada en las diferentes actividades fisiolgicas y emitida a travs de los estomas hacia la atmsfera, y adems el agua evaporada por el suelo en el que se encuentran las plantas y la evaporada desde la superficie de las hojas14.

Para efecto de clculo de la cantidad de agua a utilizarse se considera la evapotranspiracin y la evapotranspiracin real.

6.2.5.7.1

Diseo de un modelo para estimar evapotranspiracin de referencia utilizando la temperatura del aire el Ecuador.

Considerando las heterogneas caractersticas que tienen dos zonas de similar latitud pero diferente altitud en Ecuador, como son Portoviejo (regin costa) y Riobamba (regin andina), se ajust el modelo de Holdridge y tres modificaciones del mismo (modelo CHo diario, CHo mensual y CHo anual) con el propsito de estimar la evapotranspiracin de referencia (ETo) para rangos de promedios mviles de 30, 10, 7, 5, 3 y un da. Una vez calibrado CHo, se estim ETo y se validaron los resultados comparndolos con valores de evapotranspiracin de referencia utilizando la evaporacin de bandeja con su respectivo coeficiente de bandeja (ETo Ban)15.

El coeficiente emprico de Holdridge (CHo), a pesar de obtener una reducida correlacin con la humedad relativa especialmente en Riobamba, logr el mejor comportamiento que las dems variables climticas en ambos lugares, corrigiendo el gradiente trmico vertical y aumentando la calidad de prediccin de ETo. Posteriormente, al comparar las tres modificaciones del modelo de Holdridge con ETo Ban, el modelo CHo diario consigui las mejores estimaciones de ETo con los indicadores estadsticos de ajustes levemente mejores en Portoviejo.

14 15

Ibid, p62 VEGA Cristhian. Profesor. Departamento de Aguas y Tierras. Universidad Tcnica de Manab, Ecuador. E-mail: cristhianvegap@hotmail.com

28

As mismo, al comparar el modelo CHo diario con el modelo de Penman-Monteith, se observ una similitud en la prediccin de ETo, particularmente en Riobamba. Finalmente para las estimaciones de ETo en mm ao-1 el valor propuesto por Holdridge (58,93) es superado en un 64,60 % para Riobamba, mientras que para Portoviejo es un 38,54 % inferior al valor original.

= ( ) Donde:

= ( + , , ) HR= (53 - 97) T=(19 32,7) OC

= Evapotranspiracin = Coeficiente emprico de Holdridge HR = Humedad Relativa T = Temperatura.

6.2.5.8 EVAPOTRANSPIRACIN REAL

La cobertura vegetal vara a lo largo del desarrollo de un cultivo (desde la siembra hasta la cosecha), lo que hace que se modifique la transpiracin. Esta modificacin se debe adems a las condiciones edficas y a los niveles de humedad del suelo16.

16

Ibid, p63

29

La evapotranspiracin real es la que se produce en forma real da a da, de acuerdo al crecimiento de la planta, las caractersticas edficas y la disponibilidad de agua, el factor decisivo en la ETr se determina usando la siguiente ecuacin:

Donde:

ETr = Evapotranspiracin real en mm ETO = Evapotranspiracin en mm Kc = Coeficiente de cultivo que depende del estado de crecimiento del mismo.

6.2.5.8.1

Coeficiente de cultivo

Coeficiente de cultivo, Kc, es un coeficiente de ajuste que permite calcular la ETr a partir de la ETo. Estos coeficientes dependen fundamentalmente de las caractersticas propias de cada cultivo, por tanto, son especficos para cada uno de ellos y dependen de su estado de desarrollo y de sus etapas fenolgicas, por ello, son variables a lo largo del tiempo. Dependen tambin de las caractersticas del suelo y su humedad, as como de las prcticas agrcolas y del riego17.

17

www.elriego.com/informa_te/riego_agricola/fundamentos_riego/programacion_riegos/necesidades_a gua.htm

30

FIGURA NO 2: Fuente: www.elriego.com/informa_te/riego_agricola/fundamentos_riego/programacion_riegos/necesidades_a gua.htm

6.2.5.9 FRECUENCIA DE RIEGO

La frecuencia de riego es el tiempo que le toma al cultivo agotar la humedad del suelo a un nivel de agotamiento dado. Luego de calcular la lmina neta de aplicacin de agua, la frecuencia de riego a una demanda mxima de agua se determina utilizando la siguiente ecuacin18.

18

Castro Navarro, Carlos Mario. Frecuencia de Riego en Demanda Mxima y Ciclo de Riego: Frecuencia de Riego [Internet]. Versin 5. Knol. 2009 feb 10.

31

= /

Donde:

FR= Frecuencia de riego L= Lmina de riego que almacena el suelo (lmina neta). ETr = Evapotranspiracin real

6.2.6

DISEO HIDRULICO

Con el diseo hidrulico se determinan los componentes, dimensiones de la red y funcionamiento de la instalacin de riego, de tal manera que se puedan aplicar las necesidades de agua al cultivo en el tiempo que se haya establecido, teniendo en cuenta el diseo agronmico previamente realizado.

Los clculos hidrulicos consisten en determinar en primer lugar los caudales en laterales y terciarias y a continuacin, teniendo en cuenta la tolerancia de presiones (obtenida a partir de la tolerancia de caudales), calcular para las mismas tuberas los dimetros y el rgimen de presiones. Esta es la fase ms complicada del clculo hidrulico y con ella acaba el diseo de la subunidad19.

El diseo hidrulico contempla el dimensionamiento de toda la red de tuberas, para lo cual se calculan las prdidas de cargas de las diferentes combinaciones de dimetros y longitudes de tuberas, manteniendo una tolerancia de presiones en la subunidad (modulo), y calculndose el requerimiento total de presiones. 20

19

http://ocwus.us.es/ingenieria-agroforestal/hidraulica-yriegos/temario/Tema%2010.Riego%20goteo/tutorial_16.htm
20

CHUCAY Pedro Ing. Ministerio de Agricultura. PSI Proyecto Subsectorial de Irrigacin. Diseo Hidrulico.

32

6.2.6.1

NUMERO DE GOTEROS

Longitud del lateral.- La longitud de las tuberas laterales est condicionada entre otros factores, por la topografa del terreno, siendo menor la longitud del lateral cuando la pendiente es ascendente pudindose aumentar a medida que la pendiente en menor y se hace descendente. Evidentemente, al variar los datos tcnicos (dimetro de la tubera, caudales y presiones) En aquellos terrenos que presentan una pendiente muy elevada, se aconseja seguir la norma de instalar laterales siguiendo aproximadamente las curvas de nivel, y las tuberas terciarias o portalaterales siguiendo la pendiente, disponiendo reguladores de presin en aquellos lugares donde se requieran21.

Espaciamiento de Emisores.- En la actualidad en distintos pases se aceptan espaciamientos de 0.30 a 0.75 m y caudales entre 1.0 a 3.0 LPH. No obstante, en suelos de texturas finas (arenosos, franco-arenosos, areno-francosos), que tienen una menor capacidad de retencin de agua, se recomienda usar caudales bajos y espaciamientos menores entre los emisores. Por el contrario, en suelos de texturas medias a pesadas, como los suelos francos, franco-limosos, franco-arcillosos y arcillosos, se recomiendan mayores caudales y espaciamientos entre emisores. El caudal del emisor no debe producir escurrimiento superficial dentro del rea de aplicacin inmediata. En campos con tipos variables de suelo, este criterio se aplica al suelo con la menor tasa de infiltracin, a no ser que represente menos del 15% del rea regada. Debe sealarse que con un mayor espaciamiento entre emisores, es ms difcil lograr una franja mojada uniforme en el suelo, y por ende, una germinacin y emergencia uniformes en el campo.

21

Ibid, p34.

33

6.2.6.2

CAUDAL

El caudal del gotero. Cuando el agua empieza a salir del gotero se forma un pequeo charco, a la vez que el suelo empieza a absorber agua en toda la superficie. A mayor caudal del gotero corresponde una mayor superficie del charco y por lo tanto, un bulbo ms extendido en forma horizontal.

Cada emisor o gotero suelen echar entre 2 y 8 litros por hora, siendo tpico el gotero de 4 l/h de caudal. En el suelo se forma lo que se llama el bulbo hmedo, que es el volumen de tierra humedecida por cada gotero.

Si el suelo es ms arenoso, el bulbo es ms estrecho y profundo que en suelos arcillosos, donde adopta una forma ms ancha y profundiza menos.

Aqu entra un concepto muy importante: la separacin entre goteros. Es necesario que exista un solapamiento de los bulbos hmedos. Emisores muy prximos garantizan este solapamiento. La separacin entre emisores oscila entre 30 centmetros y 1 metro.

El caudal del emisor condiciona la longitud de la tubera lateral, de tal forma que cuanto mayor sea el caudal del emisor, menor ser la longitud del lateral.

Donde:

Q lateral= Caudal del lateral 34

Q medio gotero= Caudal del espesor del gotero

6.2.6.3

NMERO DE REYNOLDS

El nmero de Reynolds es un nmero adimensional utilizado en mecnica de fluidos, diseo de reactores y fenmenos de transporte para caracterizar el movimiento de un fluido22.

Como todo nmero adimensional es un cociente, una comparacin. En este caso es la relacin entre los trminos convectivos y los trminos viscosos de las ecuaciones de Navier-Stokes que gobiernan el movimiento de los fluidos.

Por ejemplo un flujo con un nmero de Reynolds alrededor de 100.000 (tpico en el movimiento de una aeronave pequea, salvo en zonas prximas a la capa lmite) expresa que las fuerzas viscosas son 100.000 veces menores que las fuerzas convectivas, y por lo tanto aquellas pueden ser ignoradas.

Un ejemplo del caso contrario sera un cojinete axial lubricado con un fluido y sometido a una cierta carga. En este caso el nmero de Reynolds es mucho menor que 1 indicando que ahora las fuerzas dominantes son las viscosas y por lo tanto las convectivas pueden despreciarse. Otro ejemplo: En el anlisis del movimiento de fluidos en el interior de conductos proporciona una indicacin de la prdida de carga causada por efectos viscosos.

Adems el nmero de Reynolds permite predecir el carcter turbulento o laminar en ciertos casos. As por ejemplo en conductos si el nmero de Reynolds es menor de 2000 el flujo ser laminar y si es mayor de 4000 el flujo ser turbulento. El
22

http://tarwi.lamolina.edu.pe/~dsa/Reynold.htm

35

mecanismo y muchas de las razones por las cuales un flujo es laminar o turbulento es todava hoy objeto de especulacin23.

# =

. ,

Donde:

D= Dimetro del Lateral QL= Caudal del Lateral

6.2.6.4

FLUJO PARCIALMENTE TURBULENTO

Se conoce como flujo turbulento al movimiento desordenado de un fluido: Este se caracteriza por fluctuaciones al azar en la velocidad del fluido y por un mezclado intenso. El patrn desordenado de burbujas cercanas a la parte inferior de la pared del canal es el resultado del mezclado del flujo turbulento en esa zona24.

En el flujo turbulento las partculas del fluido se mezclan a escala molar, de modo que durante el movimiento se produce un intercambio de cantidad de movimiento entre partculas adyacentes, ocasionando una rpida y continua agitacin y mezcla en el seno del fluido. En la prctica el flujo turbulento se produce para nmeros de Reynolds por encima de valores entre 6.000 a 10.000.

23

http://es.wikipedia.org/wiki/N%C3%BAmero_de_Reynolds Ibid, texto.

24

36

, , , + , ,

Donde:

Fm= Flujo parcialmente turbulento Re= Numero de Reynolds

Factor De Salida Mltiples + + # #

6.2.6.5

PERDIDAS DE CARGA

La prdida de carga en una tubera o canal, es la prdida de energa dinmica del fluido debido a la friccin de las partculas del fluido entre s y contra las paredes de la tubera que las contiene25.

Pueden ser continuas, a lo largo de conductos regulares, o accidentales o localizadas, debido a circunstancias particulares, como un estrechamiento, un cambio de direccin, la presencia de una vlvula, etc.

= ,
25

http://es.wikipedia.org/wiki/P%C3%A9rdida_de_carga

37

6.2.7

DEFINICIN DE SGBD

(Sistema de gestin de base de datos) o en ingls Database management system (DBMS), es una agrupacin de programas que sirven para definir, construir y manipular una base de datos26. Definir una base de datos: consiste en especificar los tipos de datos, estructuras y restricciones para los datos que se almacenarn. Construir una base de datos: es el proceso de almacenar los datos sobre algn medio de almacenamiento. Manipular una base de datos: incluye funciones como consulta, actualizacin, etc. de bases de datos. Si el sistema soporta bases de datos relacionales se llama RDBMS en ingls o SGBDR en espaol.

6.2.7.1

OTRAS FUNCIONES DE LOS SGBD

En la manipulacin de una base de datos, los SGBD deben incluir un control de concurrencia, o sea, deben permitir a varios usuarios tener acceso "simultneo" a la base de datos. Controlar la concurrencia implica que si varios usuarios acceden a la base de datos, la actualizacin de los datos se haga de forma controlada para que no haya problemas. Un SGBD tambin debe encargase de cumplir las reglas de integridad y redundancias. Otra funcin importante en un SGBD es su capacidad de realizar copias de seguridad y de recuperacin de datos. Restriccin de accesos no autorizados. Suministrar mltiples interfaces de usuario. Representar relaciones complejas entre los datos.
26

http://www.alegsa.com.ar/Dic/sgbd.php

38

6.2.8

CLASIFICACIN DE LOS SGBD

Esta clasificacin est basada en el modelo de datos en que est basado el SGBD. Los modelos de datos ms habituales son: Relacional (SGBDR): representa a la base de datos como una coleccin de tablas. Estas bases de datos suelen utilizar SQL como lenguaje de consultas de alto nivel. Orientado a objetos: define a la base de datos en trminos de objetos, sus propiedades y sus operaciones. Todos los objetos que tienen la misma estructura y comportamiento pertenecen a una clase y las clases de organizan en jerarquas. Objeto-relacional o relacional extendido: son los sistemas relacionales con caractersticas del orientado a objetos. Jerrquico: representa los datos como estructuras jerrquicas de rbol. En red o CODASYL DBTG. Un SGBD tambin puede clasificarse por el nmero de usuario a los que da servicio: Mono usuario Multiusuario

Tambin puede clasificarse segn el nmero de sitios en los que est distribuida la base de datos: Centralizado: la base de datos y el software SGBD estn almacenados en un solo sitio (una sola computadora).

Distribuido (SGBDD): la base de datos y el software SGBD pueden estar distribuidos en mltiples sitios conectados por una red.

39

6.2.9 POSTGRESQL

En 1996, se hizo evidente que el nombre "Postgres95" no resistira el paso del tiempo. Se eligi un nuevo nombre, PostgreSQL, para reflejar la relacin entre el Postgres original y las versiones ms recientes con capacidades SQL. Al mismo tiempo, hicimos que los nmeros de versin partieran de la 6.0, volviendo a la secuencia seguida originalmente por el proyecto Postgres27.

Durante el desarrollo de Postgres95 se hizo hincapi en identificar y entender los problemas en el cdigo del motor de datos. Con PostgreSQL, el nfasis ha pasado a aumentar caractersticas y capacidades, aunque el trabajo contina en todas las reas. Las principales mejoras en PostgreSQL incluyen: Los bloqueos de tabla han sido sustituidos por el control de concurrencia multiversin, el cual permite a los accesos de slo lectura continuar leyendo datos consistentes durante la actualizacin de registros, y permite copias de seguridad en caliente desde pg_dump mientras la base de datos permanece disponible para consultas. Se han implementado importantes caractersticas del motor de datos, incluyendo subconsultas, valores por defecto, restricciones a valores en los campos (constraints) y disparadores (triggers). Se han aadido funcionalidades en lnea con el estndar SQL92, incluyendo claves primarias, identificadores entrecomillados, forzado de tipos cadenas literales, conversin de tipos y entrada de enteros binarios y hexadecimales. Los tipos internos han sido mejorados, incluyendo nuevos tipos de fecha/hora de rango amplio y soporte para tipos geomtricos adicionales. La velocidad del cdigo del motor de datos ha sido incrementada aproximadamente en un 20-40%, y su tiempo de arranque ha bajado el 80% desde que la versin 6.0 fue lanzada.

27

http://sdi.bcn.cl/desarrollo/doctos/PostgreSQL%20-%20Tutorial.pdf

40

6.2.10 SHARPDEVELOP

SharpDevelop es un entorno de desarrollo integrado libre para los lenguajes de programacin C#, Visual Basic .NET y Boo28. Es usado tpicamente por aquellos programadores de los citados lenguajes, que no desean o no pueden usar el entorno de desarrollo de Microsoft, el Microsoft Visual Studio. Hay disponible un port para Mono/Gtk#, llamado MonoDevelop, el cual funciona en otros sistemas operativos. Para el completado automtico de cdigo, la aplicacin incorpora sus propios parsers. La versin 1.1 de la aplicacin puede importar proyectos de Visual Studio .NET. La versin 2.0 ya es capaz de editarlos directamente. La versin 3.0 integra soporte para python y f#29. SharpDevelop es un entorno de desarrollo para C# en .NET que dispone de las siguientes caractersticas: Soporte para el desarrollo en C#, y algo ms limitado, para VB.NET Ayuda integrada y resaltado de sintaxis Editor visual de formularios Windows Forms Plantillas de proyectos predefinidas Depurador integrado Documentador NDoc integrado Entorno de pruebas unitarias NUnit integrado

28 29

http://www.icsharpcode.net/OpenSource/SD/ http://christianquintana.blogspot.com/2006/03/instalando-sharpdevelop-v1102124.html

41

6.2.11

AUTOCAD

AutoCAD es un programa de diseo asistido por ordenador (CAD "Computer Aided Design"; en ingls, Diseo Asistido por Computadora) para dibujo en 2D y 3D. Actualmente es desarrollado y comercializado por la empresa Autodesk.

Al igual que otros programas de Diseo Asistido por Ordenador (DAC), AutoCAD gestiona una base de datos de entidades geomtricas (puntos, lneas, arcos, etc) con la que se puede operar a travs de una pantalla grfica en la que se muestran stas, el llamado editor de dibujo. La interaccin del usuario se realiza a travs de comandos, de edicin o dibujo, desde la lnea de rdenes, a la que el programa est fundamentalmente orientado. Las versiones modernas del programa permiten la introduccin de stas mediante una interfaz grfica de usuario o en ingls GUI, que automatiza el proceso. Parte del programa AutoCAD est orientado a la produccin de planos, empleando para ello los recursos tradicionales de grafismo en el dibujo, como color, grosor de lneas y texturas tramadas. La extensin del archivo de AutoCAD es .dwg, aunque permite exportar en otros formatos (el ms conocido es el .dxf).

En AutoCAD, hay dos sistemas de coordenadas: Uno fijo, llamado Sistema de coordenadas universales (SCU), y otro mvil, el Sistema de coordenadas personales (SCP). En el SCU el eje X es horizontal, el eje Y es vertical y el eje Z es perpendicular al plano XY. El origen es el punto en el que se cruzan los ejes X e Y (0,0) en la esquina inferior izquierda del dibujo. Al desplazar el SCP, se define su nueva posicin en cuanto a su denominacin en el SCU. Prcticamente, todas las entradas de coordenadas se realizan utilizando el SCP actual.

6.2.12

EL SISTEMA COORDINADO X,Y

Todo lo que usted dibuja en AutoCAD es exacto. Ser ms preciso de lo que hubiera 42

necesitado que fuera. Todos los objetos dibujados sobre la pantalla estn colocados ah en referencia a un simple sistema de coordenadas X, Y. En AutoCAD, a este sistema se le conoce como Sistema Coordinado Mundial (WCS, por las siglas de World Co-ordinate System). El siguiente diagrama muestra cmo funciona dicho sistema30.

FIGURA # 3.- SISTEMAS DE COORDENADAS.

Fuente: http://www.mailxmail.com/curso-aprende-autocad-3d/introducir-coordenadas-z

AutoCAD se vale de puntos para definir la posicin de un objeto. Existe un punto de origen a partir del cual comienza a contar; dicho punto es (0,0). Todo objeto est ubicado con relacin al origen. Si usted dibuja una lnea horizontalmente hacia la derecha partiendo del origen, sta coincide con el eje positivo X. Si dibuja una lnea vertical hacia arriba comenzando desde el mismo origen, coincidir con el eje positivo Y. En la imagen anterior se muestra un punto situado en (9,6). Esto significa que el punto est 9 unidades en el eje X y 6 unidades en el eje Y. Cuando se trabaja con puntos, la coordenada en X siempre es la primera. El otro punto mostrado est en (-10,-5), lo que significa que est ubicado a 10 unidades del origen en el eje negativo X (izquierda), y a 5 unidades en el eje negativo Y (abajo).

30

http://www.mailxmail.com/curso-aprende-autocad-3d/definir-sistema-coordenadas-usuario-ucsuser-coordinate-system

43

En AutoCAD, una lnea est definida por dos puntos: un punto inicial y un punto final. El programa trabaja con estos puntos para representar la lnea en pantalla. La mayor parte del tiempo usted no dibujar haciendo referencia directa al origen.

6.2.13 GPS

El Global Positioning System (GPS) o Sistema de Posicionamiento Global (ms conocido con las siglas GPS, aunque su nombre correcto es NAVSTAR-GPS[1] ) es un sistema global de navegacin por satlite (GNSS) que permite determinar en todo el mundo la posicin de un objeto, una persona, un vehculo o una nave, con una precisin hasta de centmetros, usando GPS diferencial, aunque lo habitual son unos pocos metros. Aunque su invencin se atribuye a los gobiernos franceses y belga, el sistema fue desarrollado e instalado, y actualmente es operado por el Departamento de Defensa de los Estados Unidos31.

El GPS funciona mediante una red de 27 satlites (24 operativos y 3 de respaldo) en rbita sobre el globo, a 20.200 km, con trayectorias sincronizadas para cubrir toda la superficie de la Tierra. Cuando se desea determinar la posicin, el receptor que se utiliza para ello localiza automticamente como mnimo tres satlites de la red, de los que recibe unas seales indicando la posicin y el reloj de cada uno de ellos. Con base en estas seales, el aparato sincroniza el reloj del GPS y calcula el retraso de las seales; es decir, la distancia al satlite. Por "triangulacin" calcula la posicin en que ste se encuentra. La triangulacin en el caso del GPS, a diferencia del caso 2-D que consiste en averiguar el ngulo respecto de puntos conocidos, se basa en determinar la distancia de cada satlite respecto al punto de medicin. Conocidas las distancias, se determina fcilmente la propia posicin relativa respecto a los tres satlites. Conociendo adems las coordenadas o posicin de cada uno de ellos por la seal que emiten, se obtiene la posicin absoluta o coordenadas reales del punto de medicin. Tambin se consigue una exactitud extrema en el reloj del GPS, similar a la de los relojes atmicos que llevan a bordo cada uno de los satlites.
31

http://es.wikipedia.org/wiki/Sistema_de_posicionamiento_global

44

La antigua Unin Sovitica tena un sistema similar llamado GLONASS, ahora gestionado por la Federacin Rusa.

Actualmente la Unin Europea est desarrollando su propio sistema de posicionamiento por satlite, denominado Galileo.

6.2.14 CARACTERSTICAS TCNICAS Y PRESTACIONES

Operadora de satlites controlando la constelacin NAVSTAR-GPS, en la Base Area de Schriever.

Lanzamiento de satlites para la constelacin NAVSTAR-GPS mediante un cohete Delta. El Sistema Global de Navegacin por Satlite lo componen:

1. Sistema de satlites. Est formado por 24 unidades con trayectorias sincronizadas para cubrir toda la superficie del globo terrqueo. Ms concretamente, repartidos en 6 planos orbitales de 4 satlites cada uno. La energa elctrica que requieren para su funcionamiento la adquieren a partir de dos paneles compuestos de celdas solares adosados a sus costados.

2. Estaciones terrestres. Envan informacin de control a los satlites para controlar las rbitas y realizar el mantenimiento de toda la constelacin.

3. Terminales receptores. Indican la posicin en la que estn; conocidas tambin como Unidades GPS, son las que podemos adquirir en las tiendas especializadas.

6.2.14.1 Vocabulario bsico en GPS

Vehculo de la empresa Tele Atlas con GPS cartografiando y fotografiando las carreteras en Rochester, Nueva York (EE.UU.)BRG (Bearing): el rumbo entre dos 45

puntos de pasos intermedios (waypoints) CMG (Course Made Good): rumbo entre el punto de partida y la posicin actual EPE (Estimated Postion Error): margen de error estimado por el receptor ETE (Estimated Time Enroute): tiempo estimado entre dos waypoints DOP (Dilution Of Precision): medida de la precisin de las coordenadas obtenidas por GPS, segn la distribucin de los satlites, disponibilidad de ellos... ETA (Estimated Time to Arrival): tiempo estimado de llegada al destino

6.2.15 APLICACIONES

Navegador GPS de pantalla tctil de un vehculo con informacin sobre la ruta, as como las distancias y tiempos de llegada al punto de destino.

1. Navegacin terrestre (y peatonal), martima y area. Bastantes automviles lo incorporan en la actualidad, siendo de especial utilidad para encontrar direcciones o indicar la situacin a la gra. 2. Telfonos mviles 3. Topografa y geodesia. 4. Localizacin agrcola (agricultura de precisin), ganadera y de fauna. 5. Salvamento y rescate. 6. Deporte, acampada y ocio. 7. Para localizacin de enfermos, discapacitados y menores. 8. Aplicaciones cientficas en trabajos de campo. 9. Geocaching, actividad deportiva consistente en buscar "tesoros" escondidos por otros usuarios. 10. Se utiliza para rastreo y recuperacin de vehculos. 11. Navegacin Deportiva. 12. Deportes Areos: Parapente, Ala delta, Planeadores, etc. 13. Existe quien dibuja usando tracks o juega utilizando el movimiento como cursor (comn en los gps garmin). 14. Sistemas de gestin y seguridad de flotas. 46

El uso civil del sistema GPS, se puede considerar que comienza en el verano de 1982, cuando pror parte de investigadores del MIT (Massachusetts Institute of Technologu) se realizan con el prototipo de GPS Macrometer (Leick A. 1994). Las aplicaciones continuaron con la introduccin del GPS en las campaas para la determinacin de redes geodsicas, los primeros trabajos descritos se realizaaron en Ottawa 1983, para redes geodsicas de pequeas dimensiones, sobre los 50 km. De lnea base, (Wells D. Et al. 1986).

No obstante aunque las aplicaciones del sistema GPS eran precisas, tambin eran muy lentas en la determinacin de la posicin, una hora como mnimo. En 1985 Remondi introduce el concepto de posicionamiento cinemtico relativo, midiendo la fase de la portadora, con el cual era posible obtener precisiones centimtricas con observaciones prcticamente instantneas, simplemente con la condicin de que no perdieran el seguimiento de los satlites durante la trayectoria, para que no hubiese prdida de ciclos, y establecer un periodo previo de inicializacin para la resolucin de la ambigedad entera (Remondi, B.W. 1985 a, b, c).

6.2.16 SISTEMA

DE

COORDENADAS

UNIVERSAL

TRANSVERSAL DE MERCATOR

El Sistema de Coordenadas Universal Transversal de Mercator (En ingls Universal Transverse Mercator, UTM) es un sistema de coordenadas basado en la proyeccin cartogrfica transversa de Mercator, que se construye como la proyeccin de Mercator normal, pero en vez de hacerla tangente al Ecuador, se la hace tangente a un meridiano. A diferencia del sistema de coordenadas geogrficas, expresadas en longitud y latitud, las magnitudes en el sistema UTM se expresan en metros nicamente al nivel del mar que es la base de la proyeccin del elipsoide de referencia32.
32

Deetz, Charles H (1944). Elementos de proyeccin de mapas y su aplicacin a la construccin de mapas y cartas. Washington: Secretara de Estado de los Estados Unidos de Amrica

47

La UTM es una proyeccin cilndrica conforme. El factor de escala en la direccin del paralelo y en la direccin del meridiano son iguales (h = k). Las lneas loxodrmicas se representan como lneas rectas sobre el plano (mapa). Los meridianos se proyectan sobre el plano con una separacin proporcional a la del modelo, as hay equidistancia entre ellos. Sin embargo los paralelos se van separando a medida que nos alejamos del Ecuador, por lo que al llegar al polo las deformaciones sern infinitas. Es por ello que solo se representa la region entre los paralelos 84N y 80S. Adems es una proyeccin compuesta; la esfera se representa en trozos, no entera. Para ello se divide la Tierra en husos de 6 de longitud cada uno.

La proyeccin UTM tiene la ventaja de que ningn punto est alejado del meridiano central de su zona, por lo que las distorsiones son pequeas. Pero esto se consigue al coste de la discontinuidad: un punto en el lmite de la zona se proyecta en dos puntos distintos, salvo que se encuentre en el ecuador. Una lnea que una dos puntos de entre zonas contiguas no es continua salvo que cruce por el ecuador.

Para evitar estas discontinuidades, a veces se extienden las zonas, para que el meridiano tangente sea el mismo. Esto permite mapas continuos casi compatibles con los estndares. Sin embargo, en los lmites de esas zonas, las distorsiones son mayores que en las zonas estndar.

6.2.16.1 Zonas UTM

Se divide la Tierra en 20 zonas de 8 Grados de Latitud, que se denominan con letras desde la C hasta la X excluyendo las letras "I" y "O", por su parecido con los nmeros uno (1) y cero (0), respectivamente. Puesto que es un sistema norteamericano (estadounidense), tampoco se utiliza la letra "". La zona C coincide con el intervalo de latitudes que va desde 80 S (o -80 latitud) hasta 72 S (o -72 latitud). Las zonas polares no estn consideradas en este sistema de referencia. Para definir un punto en cualquiera de los polos, se usa el sistema de coordenadas UPS. Si una zona tiene una letra igual o mayor que la N, la zona est en el hemisferio norte, mientras que est en el sur si su letra es menor que la "N". 48

6.2.16.2 Notacin

Cada cuadrcula UTM se define mediante el nmero del huso y la letra de la zona; por ejemplo, la ciudad espaola de Granada se encuentra en la cuadrcula 30S, y Logroo en la 30T.

6.3

MARCO CONCEPTUAL

NECESIDADES DE RIEGO: Consta del clculo de la aportacin adicional para compensar prdidas de agua causadas por la evaporizacin y la transpiracin.

HIDROCICLN: El hidrocicln es un dispositivo, desprovisto de elementos mviles que permite la separacin de las partculas solidas en suspensin.

FILTRADO: Filtrado del agua consiste en retener las partculas contaminantes en el interior de la masa porosa (filtro de arena) o sobre la superficie filtrante (filtro de malla).

SGBD: Sistema de gestin de base de datos.

VB.NET: Visual Basic .NET

MONODEVELOP: Es un entorno de desarrollo integrado libre y gratuito, diseado primordialmente para C# y otros lenguajes .NET como Nemerle, Boo, y Java (va IKVM.NET).

49

HIPOTESIS

El sistema informtico en el Colegio de Ingenieros Agrcolas de la Regin Litoral beneficiara el desempeo profesional de los ingenieros agrcolas en la tcnica de riego por goteo agilitando los procesos de clculo de forma automtica.

7.1 VARIABLES Y SU OPERACIONALIZACION

Variable Independiente Sistema informtico

Variable Dependiente Desempeo profesional.

Palabra de enlace Beneficiar.

VARIABLE INDEPENDIENTE Sistema informtico


CONCEPTO DIMENSION O CATEGORIA

INDICADOR

INDICE

SUBINDICE

Es una aplicacin informtica capaz de solucionar un conjunto de problemas que exigen un gran conocimient o sobre un determinado tema33.
33

Anlisis de los datos

Recopilar, examinar la informacin

Desarrollo

Lenguaje de programacin

Implementacin

Correccin, usabilidad, mantenimiento

Valores necesarios y Datos tomados frmulas a utilizar en de la los procesos. observacin directa Utilizacin de realizada al herramientas basadas personal de la en software libre unidad tcnica del colegio de Manipulacin de los ingenieros clculos para agrcolas del implantar un sistema litoral y de riego por goteo. referencias bibliogrficas

http://html.rincondelvago.com/sistemas-informaticos_2.html

50

VARIABLE DEPENDIENTE

Desempeo profesional.

CONCEPTO

DIMENSION O CATEGORIA INDICADOR INDICE SUBINDICE

Es fruto de la planeacin de la Sistema de riego Diseo carrera comprende y por goteo en los agronmico los cultivos
agrcolas.

Procedimientos

Datos

tomados la

necesarios para de la elaboracin observacin

de clculo.

directa realizada al personal de la

aspectos en los que una persona enriquece mejora conocimientos para desarrollarse de mejor manera en su vida laboral34. o sus

Requerimientos

unidad

tcnica

necesarios para del colegio de determinar Diseo hidrulico clculo el ingenieros agrcolas del y

hidrulico en las litoral implantaciones de cultivo referencias bibliogrficas

34

http://www.mailxmail.com/curso-formacion-competencia-educacion-superior/desempeno-

profesional

51

DISEO METODOLGICO

La investigacin se fundamenta en la creacin de un sistema informtico de procedimiento tcnico, que permitir disear y desarrollar este proyecto y as cumplir con los objetivos propuestos.

8.1 METODOLOGA Y TIPO DE INVESTIGACIN

8.1.1

METODOLOGA

Se utiliz la metodologa de campo, de manera que se puedo observar los diferentes aspectos relacionados con el tratamiento de la informacin que manipula la entidad y como se dan en su contexto natural, para despus ser analizados.

8.2 TIPO DE INVESTIGACIN.

La investigacin es de tipo descriptivo, pudiendo indagar la incidencia y los valores que manifiestan las variables o los diferentes factores enfocados al problema.

8.3 MTODOS E INSTRUMENTOS DE RECOLECCIN DE DATOS

El mtodo y tcnica de recoleccin se baso en fuentes de informacin primaria tomando datos de primera mano de fuente directa y en el mismo sitio de los acontecimientos, pudiendo abstraer activamente la realidad exterior mediante la tcnica de observacin de campo realizada para captar los hechos tal como van sucediendo.

Se tom en cuenta el mtodo y tcnica de fuentes de informacin secundaria como fichaje basada en anlisis de contenidos y lectura cientfica desde datos bibliogrficos e internet. 52

8.4 PLAN DE ANLISIS

La informacin recopilada se analiz de manera crtica, para efectuar los correctivos necesarios y determinar realmente qu tipo de informacin nos sirve para afianzar nuestra teora y traducirla a la realidad.

8.5 RECURSOS HUMANOS

Director del Proyecto Investigadores Profesionales en el campo.

8.6 RECURSOS INSTITUCIONALES Apoyo de la Facultad de Ciencias Informticas de la Universidad Tcnica de Manab. Colegio de Ingenieros Agrcolas de la Regin Litoral del Ecuador.

8.7 RECURSOS MATERIALES Materiales de oficina. Suministros de oficina.

8.8 RECURSOS TECNOLGICOS 8.8.1 HARDWARE Computadores de Escritorio. GPS

8.8.2

SOFTWARE SISTEMAS OPERATIVOS Sistema operativo Windows

53

8.8.3

BASE DE DATOS Postgrest

8.8.4

HERRAMIENTAS DE DESARROLLO SharDeveloper 2.2

8.8.5

HERRAMIENTAS DE DISEO AutoCAD

PRESENTACION DE RESULTADOS

9.1 ANLISIS E INTERPRETACIN DE LOS RESULTADOS

OBJETIVO ESPECFICO I Generar clculos los de

TCNICA

ITEMS Para qu generar los clculos de

RESULTADO Se determinaron las constantes que diferencian y determinan los

seleccin de los Observacin diferentes cultivos Fichaje determinando as

requerimientos propios de la planta. Estos parmetros son necesarios y de mucha importancia para el ingeniero agrcola de

cada una de las constantes que los diferencian determinando y la

los manera que l pueda omitir el proceso de bsqueda de cofiencientes de cultivo pues

diferente

s cultivos estos estarn establecidos. La utilizacin que van del cultivo y su determinacin junto con hacer cultivado por las constantes que lo diferencian, consiste en un punto de partida para un diseo

planta que va a ser cultivada por el usuario.

el agronmico en un sistema de riego por goteo.

usuario?

54

OBJETIVO ESPECFICO II Determinar uniformidades referentes a las

TCNICA

ITEMS Se Por

RESULTADO estableci correctamente el

Qu diseo de las implantaciones de los cultivos. Dadas las coordenadas del GPS cuyos puntos son tomados del territorio donde se va a

las Observaci

determinar las uniformida des

longitudes del espacio n territorial a cultivarse de manera que se puedan establecer correctamente el clculo requerido en el diseo de las implantaciones de los cultivos. Fichaje

implementar el sistema de riego

referentes a para realizar el debido calculo y las longitudes determinar el permetro del terreno y las distancias establecidas entre

del espacio un punto y otro. territorial?

OBJETIVO ESPECFICO III Generar el clculo

TCNICA

ITEMS

RESULTADO Con el sistema, se evita la

correspondiente a la

Para

qu prdida

de

tiempo

en

el

pendiente que posee el Observacin generar terreno donde se Fichaje clculo

el momento, que, l ingeniero agrcola ingrese los datos que el clculo de las

implantara el cultivo, evitando as la prdida de tiempo y evitar inconsistencias o datos irreales al ejecutarse el proceso.

correspondiente genera a pendientes?

las prdidas de carga en donde se determina la pendiente que se emplea en el diseo para implementar el sistema de riego.

55

OBJETIVO ESPECFICO IV Proporcionar herramienta permita obtener una que

TCNICA

ITEMS

RESULTADO El resultado del costo se asemeja

Por

qu al entorno en que se desarrolla es decir con precios reales a los actuales materiales momentos a de los para

el Observacin

proporcionar una herramienta que

diseo de riego por Fichaje goteo, determinando

utilizarse

los costos reales al entorno en el que se encuentra, como costo dando un la del

permita implantar el sistema de riego, el el sistema entrega al ingeniero de agrcola datos de costo del por sistema de riego al momento de disearlo. costo real Estableciendo del Diseo un del

obtener diseo riego goteo?

resultado total de

implantacin cultivo.

Sistema de Riego por Goteo.

OBJETIVO ESPECFICO V Generar grafico el de diseo la del

TCNICA

ITEMS

RESULTADO Se muestra la representacin

Para qu se grafica, del permetro y de los genera el modulos de riego basndose a en

implantacin

cultivo basado en la Observacin diseo grafico implementarse, tcnica de riego por Fichaje goteo, de manera que el usuario tenga una idea visual de cmo quedara diseado sistema. una vez dicho de

la datos reales de GPS, tomados en el terreno a cultivarse, dichos datos interactan en el sistema con la herramienta AutoCAD, de manera que el usuario tenga idea visual de cmo quedar una vez diseado el sistema de Riego por goteo.

implantacin de cultivo?

56

OBJETIVO VI ESPECFICO Elaborar el clculo y desarrollo procesos de que los se

TCNICA

ITEMS En Para elaborar el

RESULTADO Diseo Agronmico, que

Qu establecen

parmetros

el involucran al suelo y la planta de y manera que entrega al ingeniero la informacin

realizan en el Diseo Observacin clculo Agronmico de un Fichaje

desarrollo de agrcola los que

Sistema de Riego por Goteo, dando como resultado la

procesos necesaria de los requerimientos realizan de la planta con relacin al

en el diseo suelo, ahorrndose tiempo y agronmico? espacio y obteniendo un

informacin necesaria de los requerimientos agrcolas cultivo. de un

resultado eficaz. Es fundamental generar primero un diseo

agronmico antes del diseo hidrulico.

OBJETIVO ESPECFICO VII

TCNICA

ITEMS

RESULTADO El diseo hidrulico en un

Desarrollar el clculo

Para qu es sistema de riego consiste en la relacin agua y planta, como el en esta parte del sistema se del establecen como van a ser instaladas las distintas tuberas de de la red de riego; todos estos

del Diseo Hidrulico Observacin necesario de un Sistema por de Fichaje desarrollar clculo diseo hidrulico

Riego

Goteo, la de y las el del los

estableciendo distribucin tuberas

un sistema de parmetros son un conjunto de riego goteo? por resultados obtenidos a base de clculos, para as lograr mayor veracidad Ingeniero obtener optimizados. 57 y a la vez Agrcola el

comportamiento agua, segn

requerimientos de un cultivo especfico.

pueda

resultados

10 CONCLUSIONES Y RECOMENDACIONES

10.1

CONCLUSIONES

En el transcurso del periodo de ejecucin de la presente investigacin, basada en la modalidad de investigacin diagnostica y propositiva signific una gran experiencia laboral que junto a los conocimientos adquiridos durante el proceso de estudio de la carrera de informtica, y con ayuda de todo el estudio impartido por los ingenieros agrcolas, referente al riego por goteo, conociendo as el funcionamiento y cada uno de los parmetros requeridos en los mismos, podemos llegar a concluir que:

Los avances tecnolgicos abarcan a todas la reas profesionales asemejando y a la vez facilitando de una manera eficaz el desempeo laboral, y asegurando un mejor servicio a la comunidad, es as que los ingenieros agrcolas se ven en la necesidad de automatizar los procesos requeridos para realizar un diseo y una implementacin de riego por goteo, entrando a ser competitivos para brindar cada vez un mejor servicio, y lograr optimizar el desempeo profesional de ellos mismos.

El Colegio de Ingenieros Agrcolas de la Regin Litoral, realiza sus estudios de implantacin de Riego por Goteo manualmente, lo mismo que conllev a implementar un sistema informtico necesario para mejorar, facilitar y realizar de manera eficaz dicho estudio, con lo cual el ingeniero agrcola suministra al sistema toda la informacin requerida y ste realiza el respectivo clculo de los diferentes diseos de un Sistema de Riego por Goteo, dando as un mejor rendimiento y a la vez una mejor herramienta de trabajo tanto al ingeniero agrcola como al Colegio de Ingenieros Agrcolas de la Regin Litoral del Ecuador en general.

Al contar con una herramienta que realice el diseo agronmico e hidrulico de un Sistema de Riego por Goteo, proporcionar eficacia en la toma de decisiones

58

de los ingenieros agrcolas y beneficiar su desempeo laboral para bien de la comunidad.

10.2

RECOMENDACIONES

En el transcurso de la ejecucin de esta investigacin se pudo constatar las necesidades que posee la institucin con relacin al Riego por Goteo, vindose en la necesidad de automatizar los procesos de manera que agiliten la creacin de estos diseos.

Consideramos que el Colegio de Ingeniero Agrcolas con la adaptacin del Sistema de Riego por Goteo, beneficiar el desempeo profesional de cada uno de los socios que lo conformen. Debido a las expectativas antes nombradas recomendamos:

Se debe hacer conocer a los socios del Colegio de Ingenieros la existencia del Sistema dentro de la institucin, de manera que estn al tanto de los beneficios y ventajas al momento de querer implantar un Sistema de Riego por goteo.

Otra y muy importante recomendacin es que se realicen seminarios o convocatorias para indicarles a los Ingenieros Agrcolas las caractersticas, manejo y manipulacin del Sistema de Riego por goteo de manera que cuando ellos puedan manipularlo se vean ms relacionados con el software.

59

11 PROPUESTA

11.1

TITULO DE LA PROPUESTA

El proyecto de Investigacin Diagnostica y Propositiva: Implementar un sistema informtico para el manejo de un Sistema de Riego por Goteo para el Colegio de Ingenieros Agrcolas de la Regin Litoral del Ecuador, como modalidad de tesis a cargo de los egresadas de Ingeniera en Sistemas, Sra. Prraga Muoz Monserrate y Sr. Manuel Alexander Ponce Tubay. Sonia

11.2

JUSTIFICACIN

El crecimiento notable en la agricultura concerniente al rea de riego de los cultivos, ha incrementado el inters de la tecnologa de riego por goteo. En este contexto, el desarrollo de herramientas informticas (software de riego), permiten minimizar los tiempos de clculo, ofrecindonos un mayor tiempo de anlisis y evaluacin de los resultados.

El Colegio de Ingenieros Agrcolas Litoral, tiene como visin el crecimiento y desarrollo interno y externo del mismo, es as que con la implementacin de un Sistema informtico de Riego por Goteo, mejorar en su servicio a los dems ingenieros agrcolas.

11.3

FUNDAMENTACIN

Para el desarrollo e implementacin del Sistema Informtico para el manejo de un Sistema de Riego por goteo para el Colegio de Ingenieros Agrcolas de la Regin Litoral del Ecuador, es importante tener en cuenta las fases del diseo agronmico e hidrulico que son fundamentales para la agilidad en los procesos y para obtener un sistema confiable y eficaz. 60

11.4

OBJETIVO GENERAL

Implementar un Sistema informtico sobre el manejo de Sistemas de Riego por Goteo para el Colegio de Ingenieros Agrcolas de la Regin Litoral del Ecuador.

11.5

OBJETIVOS ESPECIFICOS

1. Generar los clculos de seleccin de los diferentes cultivos determinando as cada una de las constantes que los diferencian y determinando la planta que va a ser cultivada por el usuario.

2. Determinar las uniformidades referentes a las longitudes del espacio territorial a cultivarse de manera que se puedan establecer correctamente el clculo requerido en el diseo de las implantaciones de los cultivos.

3. Generar el clculo correspondiente a la pendiente que posee el terreno donde se implantara el cultivo, evitando as la prdida de tiempo y evitar inconsistencias o datos irreales al ejecutarse el proceso.

4. Proporcionar una herramienta que permita obtener el diseo de riego por goteo, determinando los costos reales al entorno en el que se encuentra, dando como resultado un costo total de la implantacin del cultivo.

5. Generar el diseo grafico de la implantacin del cultivo basado en la tcnica de riego por goteo, de manera que el usuario tenga una idea visual de cmo quedara una vez diseado dicho sistema. 6. Elaborar el clculo y desarrollo de los procesos que se realizan en el Diseo Agronmico de un Sistema de Riego por Goteo, dando como resultado la informacin necesaria de los requerimientos agrcolas de un cultivo.

61

7. Desarrollar el clculo del Diseo Hidrulico de un Sistema de Riego por Goteo, estableciendo la distribucin de las tuberas y el comportamiento del agua, segn los requerimientos de un cultivo especfico.

11.6

IMPORTANCIA

El desarrollo e implementacin del sistema informtico para el manejo de un Sistema de Riego por Goteo para el Colegio de Ingenieros Agrcolas de la Regin Litoral del Ecuador, es un proyecto de investigacin de mucha importancia para la Institucin, ya que puede dar un gran beneficio a la entidad y sus usuarios a nivel de la regin. A continuacin se detallan algunas ventajas que reflejan la importancia del proyecto:

La informacin crediticia estara estructurada a travs de parmetros que se

utiliza para el control y seguimiento de las diferentes solicitudes, al igual que los parmetros especficos por etapas y lneas de crdito. Es una herramienta de fcil interpretacin, dando un acercamiento entre la informacin manipulada y el usuario.

Incentiva a los ingenieros agrcolas a escoger un sistema de riego por goteo al momento de tomar la decisin; en que, diseo utilizar para implantar un cultivo.

Se convierte en un activo fijo para el Colegio de Ingenieros Agrcolas debido a su utilizacin para generar un clculo de diseo especficamente de riego por goteo de un cultivo en general.

Proporciona un clculo de un diseo agronmico e hidrulico de un sistema de riego por goteo obteniendo el usuario los datos de manera mas gil y automtica ahorrando el tiempo que comnmente se demoraban en disearlo. 62

Genera una interaccin de los datos resultantes del diseo para ser demostrados en una herramienta grafica AutoCAD; siendo esta fase del sistema de mucha importancia del ingeniero ya que el omite el proceso de graficar individualmente el terreno junto con sus sistema de riego; porque este se genera en la aplicacin del software.

11.7

UBICACIN SECTORIAL Y FSICA

El lugar donde se va a llevar efecto la propuesta es: LUGAR: Colegio de Ingeniero Agrcolas de la Regin Litoral del Ecuador. CANTN: Portoviejo PROVINCIA: Manab. PAS: Ecuador.

11.8

FACTIBILIDAD

Es factible porque representa un avance tecnolgico de alto nivel para el Colegio de Ingenieros Agrcolas de la Regin Litoral del Ecuador, proyecto que en la actualidad no ha sido adquirido o desarrollado por la entidad, por ende la importancia y la factibilidad de la investigacin, adems representa una base fundamental para futuros proyectos dentro de la Institucin.

11.9

TEMA

Sistema informtico para el manejo de Sistemas de Riego por Goteo para el Colegio de Ingenieros Agrcolas de la Regin Litoral del Ecuador.

63

11.10

DIAGRAMA DE CONTEXTO

USUARIO

RIEGOCAD

BASE DE DATOS

Figura 4.

11.11

DIAGRAMA DE FLUJO DE DATOS

Los diagramas de flujo de datos son un tipo de herramienta de modelado, permiten modelar todo tipo de sistemas, concentrndose en las funciones que realiza, y los datos de entrada y salida de esas funciones. Conteniendo los diferentes componentes:

* PROCESOS (burbujas): representan la parte del sistema que transforma ciertas entradas en ciertas salidas.

* FLUJOS: representan los datos en movimiento. Pueden ser flujos de entrada o flujos de salida. Los flujos conectan procesos entre s y tambin almacenes con procesos.

* ALMACENES: representan datos almacenados. Pueden ser una base de datos, un 64

archivo fsico, etc.

* TERMINADORES: representan entidades externas que se comunican con el sistema. Esas entidades pueden ser personas, organizaciones u otros sistemas, pero no pertenecen al sistema que se est modelando.

Existen procesos y flujos especiales llamados procesos de control y flujos de control. Se emplean para modelar sistemas en tiempo real.

Cultivo Datos

USUARIO DISEO AGRONMICO


Datos

Datos

Proyecto Datos

Accesorio s Filtros

DISEO HIDRULICO

Cauchos

DISEO ECONMICO

Datos

Costo proyecto

Cintas Conectores

Figura 5. 65

11.12 DIAGRAMA ENTIDAD RELACIN Un diagrama o modelo entidad-relacin (a veces denominado por su siglas, E-R "Entity relationship", o, "DER" Diagrama de Entidad Relacin) es una herramienta para el modelado de datos de un sistema de informacin. Estos modelos expresan entidades relevantes para un sistema de informacin as como sus interrelaciones y propiedades. 1 N

Figura 6. 66

12. PRESUPUESTO

Los gastos que se han calculado para la ejecucin del proyecto y lo que compete a lo posterior para la culminacin del mismo son los siguientes:

No 1 2 3 4 5 6 7 8 Internet Transportes

DESCRIPCIN

VALOR $250,00 $ 60.00 $ 200,00 $ 50,00 $80,00 $ 50,00 $ 120,00 $ 205,00

TOTAL $250,00 $ 60.00 $ 200,00 $ 50,00 $80,00 $ 50,00 $ 120,00 $ 205,00 $1015.00

Mat. y Equipo de Oficina (computador, Papel, otros) Fotocopias durante Investigacin Impresiones (Documentacin Final) Fotocopias (Documentacin Final) Empastado del Proyecto Otros Gastos, Imprevistos TOTAL

67

13. CRONOGRAMA Las actividades realizadas estn relacionadas con el cronograma presentado a continuacin, coincidiendo con la culminacin de ste proyecto

MESES Y SEMANAS

RECURSOS HUMANOS
Autores de la tesis. Comisin de inv. de la FCI. Autores de la tesis

ACTIVIDADES

SEP. OCT. NOV. DIC. ENE. FEB. MAR. 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4

MATERIAL
Libros, internet, copias, impresiones, mat. de oficina Internet, impresiones, copias, libros, Eq de oficina Libros, internet. Libros, internet Libros, internet. Libros, internet. Libros, impresiones, internet. Libros, copias, internet. Libros, copias, internet. Libros, copias, internet. Libros, internet. Internet, impresiones, copias. Empastado, fotocopias, impresiones.

COSTOS
$ 91,30

1 Aprobacin del Protocolo 2 Inicio de la investigacin 3 Desarrollo de Propuesta 3.1 Clculos para la seleccin de los diferentes cultivos Desarrollo de clculo de las longitudes del terreno a 3.2 cultivarse Generacin del clculo de pendiente del terreno donde 3.3 se implantara el cultivo 3.4 Diseo de la Base de datos Desarrollo del clculo de costo de los elementos 3.5 requeridos en el Sist. De Riego por goteo. Desarrollo de la Representacin Grafica del Sist.de 3.6 Riego por Goteo. Desarrollo del Diseo Agronmico de un Sistema de 3.7 Riego por Goteo Desarrollo del Diseo Hidrulico de un Sistema de 3.8 Riego por Goteo 4 Documentacin

$236,60

x Autores de la tesis. x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x Autores de la Tesis. Autores de la Tesis. Autores de la Tesis. Autores de la Tesis. Autores de la Tesis. Autores de la tesis. Director de Tesis Autores de la tesis. Director de Tesis Autores de la tesis. Director de Tesis Autores de la tesis. Director de Tesis Autores de la tesis. Director de Tesis Miembros del x tribunal

$ 48,15 $ 48,15 $ 48,15 $ 48,15 $ 54,15 $ 45,15 $ 45,15 $ 61,30 $45,30 $ 65,70

$ 177,75 $ 1750.00

5 Conclusin y Presentacin del Informe Final TOTAL

68

14. BIBLIOGRAFA

Burt, C.M., S.W. Styles and J.A. Forero S. 2000. Riego por Goteo y por Microaspersion para Arboles, Vides y Cultivos Anuales. Irrigation Training and Research Center. Cal Poly, San Luis Obispo, CA. ISBN 0-9643634-3-7. 334 p.

Castro Navarro, Carlos Mario. Frecuencia de Riego en Demanda Mxima y Ciclo de Riego: Frecuencia de Riego [Internet]. Versin 5. Knol. 2009 feb 10.

CHUCAY Pedro Ing. Ministerio de Agricultura. PSI Proyecto Subsectorial de Irrigacin. Diseo Hidrulico.

Deetz, Charles H (1944). Elementos de proyeccin de mapas y su aplicacin a la construccin de mapas y cartas. Washington: Secretara de Estado de los Estados Unidos de Amrica

INPOFUS. Instituto de la Potasa y el Fsforo. Sociedad Ecuatoriana de la Ciencia del Suelo. Memorias del I Seminario Internacional de Fertigacin, Quito Ecuador 1998.

SIDE. Sociedad de Ingenieros del Ecuador, Ley de Ejercicio Profesional de la Ingeniera y su reglamento, Cdigos de tica, Normas relativas al ejercicio profesional, Captulo III, Art 21, pg. 39.

FUENTES, Jos, Tcnicas de Riego, Ministerio de Agricultura, Pesca y Alimentacin, Madrid Espaa 2003, pg.: 319

69

SIDE. Sociedad de Ingenieros del Ecuador, Ley de Ejercicio Profesional de la Ingeniera y su reglamento, Cdigos de tica, Normas relativas al ejercicio profesional, 2008, Ecuador.

VEGA Cristhian. Profesor. Departamento de Aguas y Tierras. Universidad Tcnica de Manab, Ecuador. E-mail: cristhianvegap@hotmail.com

http://www.cedru.org/bmztextominiriego.htm

http://www.euroresidentes.com/jardineria/sistemas_de_riego/riego/riego_por _goteo/riego_y_las_nuevas_tecnologias.htm

http://www.euroresidentes.com/jardineria/sistemas_de_riego/riego/riego_por _goteo.htm

http://www.siar.cl/docs/protocolos/Curvas_humedad.pdf

www.elriego.com/informa_te/riego_agricola/fundamentos_riego/programacio n_riegos/necesidades_agua.htm

http://ocwus.us.es/ingenieria-agroforestal/hidraulica-yriegos/temario/Tema%2010.Riego%20goteo/tutorial_16.htm

http://tarwi.lamolina.edu.pe/~dsa/Reynold.htm

http://es.wikipedia.org/wiki/N%C3%BAmero_de_Reynolds

70

http://www.alegsa.com.ar/Dic/sgbd.php

http://sdi.bcn.cl/desarrollo/doctos/PostgreSQL%20-%20Tutorial.pdf

http://www.icsharpcode.net/OpenSource/SD/

http://christianquintana.blogspot.com/2006/03/instalando-sharpdevelopv1102124.html

http://www.mailxmail.com/curso-aprende-autocad-3d/definir-sistemacoordenadas-usuario-ucs-user-coordinate-system

http://es.wikipedia.org/wiki/Sistema_de_posicionamiento_global

http://html.rincondelvago.com/sistemas-informaticos_2.html

http://www.mailxmail.com/curso-formacion-competencia-educacionsuperior/desempeno-profesional

71

ANEXOS

72

MANUAL DE USUARIO

El Manual de Usuario que a continuacin se presenta tiene como objetivo capacitar al usuario final sobre la forma de utilizar el aplicativo. Explica los conceptos bsicos, propsitos y proporciona informacin acerca de todos los procesos que se realizan en el sistema.

Pantalla principal del sistema.- RIEGOCAD (Riego por goteo en AutoCad), mostrndose con el nombre del sistema.

Men.- Se muestra la pantalla principal con el men desplegado del sistema pudindose observar los tems de entrar, proyectos realizados, ingreso de cultivos, materiales, salir.

73

Entrar.- Al escoger la opcin entrar se muestra el formulario diseo mostrndose en si todos los diseos que se realizan en el Riego por Goteo; Diseo Agronmico, Diseo Hidrulico y Diseo Econmico.

El Diseo Agronmico es el primer proceso en realizarse, debido a esto primeramente el usuario debe escoger el cultivo que desee cultivar, con el navegador de registros tal como se indica en la figura, seguidamente se llenan los respectivos campos que se piden que ingrese, una vez ingresado los datos, se da clic en el botn CALCULAR, luego se visualizaran los resultados en la parte central del formulario.

Realizado el clculo del Diseo Agronmico podremos visualizar en la parte inferior izquierda GRAFICAR DATOS DE GPS, para realizar este proceso, se da clic en el botn EXAMINAR, de manera que se pueda buscar el archivo .txt en donde han sido almacenados los datos del GPS del terreno en donde se va a cultivar, el botn MOSTRAR nos ayudara a mostrar los datos del GPS, el botn GRAFICAR es el encargado de la conexin del sistema con la herramienta grafica AutoCAD, determinando as los puntos del GPS tomados desde el terreno.

Una vez cargado el AutoCAD se visualiza que automticamente se ha generado el permetro del terreno a cultivarse pudindose manipular debidamente la imagen, 74

facilitando mejor su visualizacin.

Dentro del mismo formulario del Diseo Agronmico en la parte derecha inferior se podrn observar los botones CALCULAR, TEXTURA DEL SUELO, AYUDA Y SALIR. El botn TEXTURA DEL SUELO nos mostrara las diferentes textura del suelo segn los datos de limo, arcilla y arena ingresados en la parte superior del formulario, estos datos son basados al triangulo de textura , el usuario podr visualizar grficamente la textura del suelo en cual se va a cultivar como se indica la siguiente imagen.

75

En el formulario Dise Hidrulico, podremos observar que este se desplaza a la vez en dos pestaas para determinar el Diseo Hidrulico del Modulo Lateral, Diseo hidrulico de la tubera mltiple.

Con el botn graficar que laterales y graficar tubera mltiple podemos obtener la generacin grafica en AutoCad.

A continuacin se visualiza el clculo del Diseo Econmico, el mismo se que ejecutara una vez realizado el Diseo Agronmico e Hidrulico.

76

A continuacin se muestra un mensaje que nos indica que el proyecto ha sido guardado.

En caso de que se desee graficar y no ha realizado los respectivos clculos el sistema indicara una advertencia en donde no se podr graficar.

77

Si no se completan el ingreso de los datos no se podr realizar el respectivo clculo.

Si no estn llenos todos los campos para realizar el diseo econmico este no se ejecutara. Y mostrara un mensaje de advertencia.

Aqu se muestra la textura del suelo, dando clic en el botn textura del suelo encontrado en el formulario del Diseo Agronmico.

78

Si al momento de guardar un proyecto, el nombre ya est guardado en la base de datos, mostrara un mensaje de advertencia indicando que ya existe un proyecto con ese nombre.

Esta pantalla nos permite ingresar, eliminar los diferentes cultivos a escoger.

79

A continuacin se muestras las diferentes pantallas para el ingreso de los materiales para el diseo econmico las cuales son filtros, cintas, accesorios, cauchos, conectores.

80

MANUAL TECNICO

CARACTERSTICA DE HARDWARE DEL EQUIPO Procesador Intel Pentium IV 512 MB de Ram

CARACTERSTICAS DE SOFTWARE Windws xp o Windows vista de 32Bits Autocad 2009 Windows Installe 3.1 .NET Framework 2.0 SDK setup net framework2.0

El NET Framework 2.0 SDK setup , el windows installer y el net framework2.0 se encuentran en el CD de instalacin del sistema en la carpeta herramientas

INSTALACIN DEL POSGRESQL En el CD de instalacin en la carpeta herramientas se encuentra el instalador del Postgresql el cual se llama postgresql-8.3 le damos doble clic. Al momento que comenzamos a instalar el postgresql esta es la primera pantalla que nos aparece la cual nos pide que seleccionemos el idioma y el que vamos a escoger es English / English una vez seleccionado damos clic en Start

En la siguiente ventana damos clic en next

81

En la siguiente ventana damos clic en next

En esta ventana habilitamos todo lo que se encuentre con una X y debe de quedar de la siguiente manera, y damos clic en next

En al siguiente ventana, donde dice Service name lo dejamos tal como esta, Account name lo dejamos como esta, Account domain lo dejamos como esta el mismo tendr el nombre del computador donde se est instalando, Account password le ponemos riegocad y en Verify password volvemos a escribir riegocad

82

En el siguiente mensaje ponemos Si

En el siguiente volvemos a poner si

Y en el siguiente Aceptar

En la siguiente ventana dejamos todos los campos como se encuentran y donde dice Password le ponemos riegocad y en Password(again) le ponemos riegocad y le damos clic en Next

En la siguiente ventana le damos clic en siguiente

83

En esta ventana seleccionamos todo y damos clic en Next

En la siguiente ventana damos clic en Next

Y comienza la instalacin del Potgresql

En la siguiente ventana damos clic en Finish

84

Cuando nos aperece esta ventana damos clic en Cancel

Y nos aparece la siguiente ventana y damos clic en Si y hemos terminado de instalar el Postgresql

Para ingresar a nuestra base de datos nos vamos al men inicio de Windows->todos los Progras->Postgresql 8.3->pgAdmin III y nos mostrara la siguiente pantalla

Damos doble clic en Postgresql Database Server y nos Sandra la siguiente pantalla 85

que nos pedir que ingrese la contrasea para ingresar a la Base de Datos y que vamos a digitar se riegocad por es la que le pusimos en la parte que es de la instalacin, y damos clic en Ok

Nos aparecer la siguiente pantalla, donde daremos clic donde dice base de Datos y se nos desplegara la base de datos que dice Postgres le damos clic en Postgres y se nos desplegara otro submen

En la pantalla anterior selecciona la base Datos Postgres, en la parte superior debajo del men ayuda se encuentra un botn que dice Sql y que tiene un Lapiz aqu vamos a ejecutar cada una de las sentencias sql para crear las diferentes tablas que vamos a utilizar en nuestro sistema, una vez digitada la sentencia le damos clic en el men consulta -> ejecutar y tendremos lo siguiente

86

A continuacin tenemos el orden en que se deben ejecutar las sentecias Sql para crear las tablas de nuestra Base de Datos Tabla proyecto create table proyecto ( nombreproyecto varchar(30) primary key, cultivosembrar varchar(30), limo numeric, acilla numeric, arena numeric, densidadap numeric, profundidadr numeric, nap numeric, hr numeric, tempe numeric, cc numeric, pmp numeric, lr numeric, ln numeric, lb numeric, evapo numeric, evaporeal numeric, fr numeric, ll numeric, dl numeric, dil numeric, nl numeric, qgotero numeric, egotero numeric, distlateral numeric, ngoteros numeric, qlateral numeric, qlateralm numeric, qmodulo numeric, nreynolds numeric, ftp numeric, fsm numeric, pcarga numeric, llm numeric, dm numeric, cpvc numeric, qmodulom3 numeric, fsmm numeric, pcm numeric ) Tablas Datos de Gps CREATE TABLE datosgps ( puntox numeric, puntoy numeric, puntoz numeric, nombreproyecto character varying(30), CONSTRAINT (nombreproyecto) REFERENCES proyecto (nombreproyecto) MATCH SIMPLE ON UPDATE CASCADE ON DELETE CASCADE ) WITH (OIDS=TRUE); ALTER TABLE datosgps OWNER TO postgres; GRANT ALL ON TABLE datosgps TO postgres; GRANT ALL ON TABLE datosgps TO public; datosgps_nombreproyecto_fkey FOREIGN KEY

Tabla costo del Proyecto 87

CREATE TABLE costoproyecto ( articulo varchar(50), cantidad numeric, precio numeric, total numeric, nombreproyecto character varying(30), CONSTRAINT (nombreproyecto) REFERENCES proyecto (nombreproyecto) MATCH SIMPLE ON UPDATE CASCADE ON DELETE CASCADE ) WITH (OIDS=TRUE); ALTER TABLE datosgps OWNER TO postgres; GRANT ALL ON TABLE datosgps TO postgres; GRANT ALL ON TABLE datosgps TO public; datosgps_nombreproyecto_fkey FOREIGN KEY

Tabla cultivo CREATE TABLE cultivo ( nombrecultivo character varying(30) NOT NULL, kc double precision, CONSTRAINT cultivo_pkey PRIMARY KEY (nombrecultivo) ) WITH (OIDS=FALSE); ALTER TABLE cultivo OWNER TO postgres Table filtro create table filtro ( codigo varchar(20) primary key, marca varchar(30), descripcion varchar(40), precio numeric) 88

tabla Accesorios create table accesorios ( codigo varchar(20) primary key, marca varchar(30), descripcion varchar(40), precio numeric)

tabla Cauchos create table cauchos ( codigo varchar(20) primary key, marca varchar(30), descripcion varchar(40), precio numeric)

tabla Cintas create table cintas ( codigo varchar(20) primary key, marca varchar(30), descripcion varchar(40), precio numeric)

Tabla conectores create table conectores ( codigo varchar(20) primary key, marca varchar(30), descripcion varchar(40), precio numeric) tabla Costo del Proyecto CREATE TABLE costoproyecto ( articulo varchar(50), cantidad numeric, 89

precio numeric, total numeric, nombreproyecto character varying(30), CONSTRAINT (nombreproyecto) REFERENCES proyecto (nombreproyecto) MATCH SIMPLE ON UPDATE CASCADE ON DELETE CASCADE ) WITH (OIDS=TRUE); ALTER TABLE datosgps OWNER TO postgres; GRANT ALL ON TABLE datosgps TO postgres; GRANT ALL ON TABLE datosgps TO public; datosgps_nombreproyecto_fkey FOREIGN KEY

Una vez creada todas las tablas nuestra base datos quedara de la siguiente manera con todas sus tablas

INSTALACIN DEL PSQLODBC Una vez instalado el Postgresql y creadas las tablas procedemos a instalar el psqlodbc el cual se encuentra en las herramientas del CD de instalacin, damos doble clic sobre el instalador y nos aparece la siguiente pantalla y le damos clic en next

Aceptamos los derechos de licencia y damos clic en Next, y tenemos la siguiente pantalla seleccionamos todo y damos clic en Next 90

Tenemos la siguiente pantalla y le damos clic en install

Se lo instala y damos clic en finish, y hemos terminado de instalar nuestro ODBC que nos permitir conectar nuestra aplicacin con las base de datos Postgresql

Ahora crearemos nuestro dsn de usuario, damos clic en el men inicio de Windows > panel de control-> herramientas administrativas-> orgenes de datos(ODBC)- y tenemos la siguiente pantalla

91

Damos clic en agregar y escogemos PostgreSql Ansi y damos clic en finalizar

Y tenemos la siguiente pantalla, en Data Source lo dejamos como esta, en Description le ponemos conexim, en database le ponemos postgres, en SSl Mode disable, en Server le ponemos localhost, en Port le ponemos el puerto 5432, en User Name le ponemos postgres y en el Password digitamos riegocad

Luego le hacemos un test para ver si hay conexin a nuestra base de datos dando un clic en Test y nos debe mostrar el siguiente mensaje

INSTALACIN DE RIEGOCAD En el CD de instalacin en la carpeta RIEGOCAD se encuentra el instalador del sistema el cual se llama Setup le damos doble clic y nos presenta la siguiente pantalla en la cual le damos clic en siguiente

92

En la siguiente pantalla seleccionamos en la casilla para todos los usuarios y damos clic en siguiente.

La siguiente pantalla no dice que confirma la instalacin y damos clic en siguiente

Y la siguiente pantalla nos dice que la instalacin se ha completado y damos clic en Cerrar, en el escritorio de nuestro computador tendremos un acceso directo que se llama RIEGOCAD, y tendremos listo nuestro sistema para trabajar

93

Programacin el Formulario principal


Imports System.Math Public Class Form1 Private Sub EntrarToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EntrarToolStripMenuItem.Click Form2.Show() End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) End Sub Private Sub SalirToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SalirToolStripMenuItem.Click Form4.Show() End Sub Private Sub MenuToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuToolStripMenuItem.Click End Sub Private Sub AbrirProyectoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AbrirProyectoToolStripMenuItem.Click Form5.Show() End Sub Private Sub SalirToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SalirToolStripMenuItem1.Click End Sub Private Sub FiltrosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FiltrosToolStripMenuItem.Click Form3.Show() End Sub Private Sub AccesoriosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AccesoriosToolStripMenuItem.Click Form6.Show() End Sub Private Sub CintasToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CintasToolStripMenuItem.Click

94

Form7.Show() End Sub Private Sub ConectorInicialToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ConectorInicialToolStripMenuItem.Click Form8.Show() End Sub Private Sub CauchosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CauchosToolStripMenuItem.Click Form9.Show() End Sub Private Sub SalirToolStripMenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SalirToolStripMenuItem2.Click End End Sub Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click End Sub End Class

Form2, calculo del diseo agronmico, hidrulico y econmico


Imports System.IO Imports System.IO.File Imports System.Windows.Forms.TextBox Imports System.Data.DataViewSettingCollection Imports System.ComponentModel Imports System.Math Public Class Form2 Sub OpenAutoCAD() Dim objautocad As Autodesk.AutoCAD.Interop.AcadApplication objautocad = CreateObject("autocad.application", "") objautocad.Visible = True End Sub Sub graficar() Dim texto() As String = Nothing 'texto es un vector de string Dim texto2() As String = Nothing Dim objautocad As Autodesk.AutoCAD.Interop.AcadApplication Dim acadline As Autodesk.AutoCAD.Interop.Common.AcadLine Dim textog As Autodesk.AutoCAD.Interop.Common.AcadText Dim pi(2) As Double : Dim pf(2) As Double objautocad = GetObject(, "autocad.application") Dim i, j, k, l, m, n, o, p, conta As Integer Dim datoxm, datoym, mayor, menor As Double i = 0 : j = 0 : k = 1 : l = 2 : m = 3 : n = 4 : o = 5 : p = 6 conta = dgvDatos.Rows.Count While i <= conta - 2 pi(0) = data.Rows(i).Cells(j).Value pi(1) = data.Rows(i).Cells(k).Value pi(2) = data.Rows(i).Cells(l).Value pf(0) = data.Rows(i).Cells(m).Value

95

pf(1) = data.Rows(i).Cells(n).Value pf(2) = data.Rows(i).Cells(o).Value acadline = objautocad.ActiveDocument.ModelSpace.AddLine(pi, pf) acadline.color = utodesk.AutoCAD.Interop.Common.ACAD_COLOR.acMagenta i = i + 1 End While Me.dgvDatos.Sort(Me.dgvDatos.Columns("column1"),System.ComponentMode l.ListSortDirection.Ascending) datoxm = dgvDatos.Rows(0).Cells(0).Value datoym = dgvDatos.Rows(0).Cells(1).Value datoxm = datoxm + 10 datoym = datoym - 10 pi(0) = datoxm : pi(1) = datoym : pi(2) = 0 textog = objautocad.ActiveDocument.ModelSpace.AddText("Perimetro del Terreno a cultivar", pi, 2) textog.color = Autodesk.AutoCAD.Interop.Common.ACAD_COLOR.acBlue Me.data.Sort(Me.data.Columns("dista"),System.ComponentModel.ListSort Direction.Ascending) menor = data.Rows(0).Cells(6).Value Me.data.Sort(Me.data.Columns("dista"),System.ComponentModel.ListSort Direction.Descending) mayor = data.Rows(3).Cells(6).Value TextBox1.Text = mayor TextBox4.Text = menor End Sub Sub graficar_laterales() Dim objautocad As Autodesk.AutoCAD.Interop.AcadApplication Dim acadline As Autodesk.AutoCAD.Interop.Common.AcadLine Dim acadpunto As Autodesk.AutoCAD.Interop.Common.AcadCircle Dim texto As Autodesk.AutoCAD.Interop.Common.AcadText Dim pil(2) As Double : Dim pfl(2) As Double Dim uno, dos, gotero As Double Dim i, c, f, x, y, datox, datoy As Double Dim ss As Char Dim contaxy As Integer i = 0 contaxy = dgvDatos.Rows.Count While i <= contaxy - 2 x = CDbl(dgvDatos.Rows(i).Cells(0).Value) y = CDbl(dgvDatos.Rows(i).Cells(1).Value) dataxy.Rows.Add(x, y) i = i + 1 End While Me.dataxy.Sort(Me.dataxy.Columns("xlate"),System.ComponentModel.List SortDirection.Descending) datox = dataxy.Rows(0).Cells(0).Value datoy = dataxy.Rows(0).Cells(1).Value datox = datox + 10 ss = "Perfil del Terreno a Cultivar" uno = CDbl(TextBox1.Text) : dos = CDbl(TextBox4.Text) : gotero = CDbl(TextBox6.Text) objautocad = GetObject(, "autocad.application") pil(0) = datox : pil(1) = datoy : pil(2) = 1

96

pfl(0) = datox + dos : pfl(1) = datoy : pfl(2) = 0 acadline = objautocad.ActiveDocument.ModelSpace.AddLine(pil, pfl) acadline.color = Autodesk.AutoCAD.Interop.Common.ACAD_COLOR.acByBlock pil(0) = datox : pil(1) = datoy - uno : pil(2) = 1 pfl(0) = datox : pfl(1) = datoy : pfl(2) = 0 acadline = objautocad.ActiveDocument.ModelSpace.AddLine(pil, pfl) acadline.color = Autodesk.AutoCAD.Interop.Common.ACAD_COLOR.acByBlock pil(0) = dos + datox : pil(1) = datoy - uno : pil(2) = 1 pfl(0) = datox : pfl(1) = datoy - uno : pfl(2) = 0 acadline = objautocad.ActiveDocument.ModelSpace.AddLine(pil, pfl) acadline.color = Autodesk.AutoCAD.Interop.Common.ACAD_COLOR.acByBlock pil(0) = dos + datox : pil(1) = datoy - uno : pil(2) = 1 pfl(0) = datox + dos : pfl(1) = datoy : pfl(2) = 0 acadline = objautocad.ActiveDocument.ModelSpace.AddLine(pil, pfl) acadline.color = Autodesk.AutoCAD.Interop.Common.ACAD_COLOR.acByBlock i = datox Dim longlateral As Double = CDbl(TextBox24.Text) While i <= (dos + datox) - 1 pil(0) = i : pil(1) = datoy : pil(2) = 0 pfl(0) = i : pfl(1) = datoy - uno acadline = objautocad.ActiveDocument.ModelSpace.AddLine(pil, pfl) acadline.color = Autodesk.AutoCAD.Interop.Common.ACAD_COLOR.acByBlock i = i + longlateral End While f = datox While f <= (dos + datox) c = datoy While c >= (datoy - uno) pil(0) = f : pil(1) = c : pil(2) = 0 acadpunto = objautocad.ActiveDocument.ModelSpace.AddCircle(pil, 0.05) acadpunto.color = Autodesk.AutoCAD.Interop.Common.ACAD_COLOR.acGreen c = c - gotero End While f = f + longlateral End While pil(0) = datox + dos + 2 : pil(1) = datoy - 10 texto = objautocad.ActiveDocument.ModelSpace.AddText("Modulo del Lateral", pil, 2) pil(0) = datox : pil(1) = datoy - uno - 10 texto = objautocad.ActiveDocument.ModelSpace.AddText("laterales", pil, 2) pil(0) = datox + 15 : pil(1) = datoy - uno - 10 : pil(2) = 1 pfl(0) = datox + 15 : pfl(1) = datoy - uno - 6 : pfl(2) = 0 acadline = objautocad.ActiveDocument.ModelSpace.AddLine(pil, pfl) acadline.color = Autodesk.AutoCAD.Interop.Common.ACAD_COLOR.acByBlock pil(0) = datox : pil(1) = datoy - uno - 20 texto = objautocad.ActiveDocument.ModelSpace.AddText("Goteros", pil, 2) pil(0) = datox + 15 : pil(1) = datoy - uno - 20 : pil(2) = 0

97

acadpunto = objautocad.ActiveDocument.ModelSpace.AddCircle(pil, 0.5) acadpunto.color = Autodesk.AutoCAD.Interop.Common.ACAD_COLOR.acGreen pil(0) = datox : pil(1) = datoy - uno - 30 texto = objautocad.ActiveDocument.ModelSpace.AddText("Perimetro del Terreno", pil, 2) pil(0) = datox + 22 : pil(1) = datoy - uno - 30 : pil(2) = 1 pfl(0) = datox + 27 : pfl(1) = datoy - uno - 30 : pfl(2) = 0 acadline = objautocad.ActiveDocument.ModelSpace.AddLine(pil, pfl) acadline.color = Autodesk.AutoCAD.Interop.Common.ACAD_COLOR.acMagenta pil(0) = datox : pil(1) = datoy - uno - 40 texto = objautocad.ActiveDocument.ModelSpace.AddText("Tuberia Multiple", pil, 2) pil(0) = datox + 22 : pil(1) = datoy - uno - 40 : pil(2) = 1 pfl(0) = datox + 27 : pfl(1) = datoy - uno - 40 : pfl(2) = 0 acadline = objautocad.ActiveDocument.ModelSpace.AddLine(pil, pfl) acadline.color = Autodesk.AutoCAD.Interop.Common.ACAD_COLOR.acYellow End Sub Sub multiple() Dim objautocad As Autodesk.AutoCAD.Interop.AcadApplication Dim acadline As Autodesk.AutoCAD.Interop.Common.AcadLine Dim texto As Autodesk.AutoCAD.Interop.Common.AcadText Dim pil(2) As Double : Dim pfl(2) As Double Dim uno, dos, gotero, datox, datoy As Double datox = dataxy.Rows(0).Cells(0).Value datoy = dataxy.Rows(0).Cells(1).Value datox = datox + 10 uno = CDbl(TextBox1.Text) : dos = CDbl(TextBox4.Text) : gotero = CDbl(TextBox6.Text) objautocad = GetObject(, "autocad.application") pil(0) = datox : pil(1) = datoy + 2 : pil(2) = 1 pfl(0) = datox + dos : pfl(1) = datoy + 2 : pfl(2) = 0 acadline = objautocad.ActiveDocument.ModelSpace.AddLine(pil, pfl) acadline.color = Autodesk.AutoCAD.Interop.Common.ACAD_COLOR.acYellow pil(0) = datox + 2 : pil(1) = datoy + 4 texto = objautocad.ActiveDocument.ModelSpace.AddText("Tuberia Multiple", pil, 2) End Sub Function buscar(ByVal txtval As String, ByVal car As Char) As Boolean Dim b As Integer For b = 1 To txtval.Length If Convert.ToChar(Mid(txtval, b, 1)) = car Then Return False End If Next Return True End Function Private Sub calcular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles calcular.Click

98

If TextBox22.Text = "" Or limo.Text = "" Or arcilla.Text = "" Or arena.Text = "" Or da.Text = "" Or p.Text = "" Or nap.Text = "" Or hr.Text = "" Or t.Text = "" Then MessageBox.Show("Por Favor complete el ingreso de los datos", "RIEGOCAD") Else 'capacidad de Campo y punto de marchitez parmanente Dim suma, dap As Double suma = CDbl(arcilla.Text) + CDbl(limo.Text) + CDbl(arena.Text) If suma = 100 Then 'lamina de Riego dap = CDbl(da.Text) If dap <= 2.5 Then Dim np As Double Dim ea As Double ea = 0.9 np = CDbl(nap.Text) If np > 0 And np <= 50 Then cc.Text = (0.48 * CDbl(arcilla.Text)) + (0.162 * CDbl(limo.Text)) + (0.023 * CDbl(arena.Text)) + 2.62 pmp.Text = (0.302 * CDbl(arcilla.Text)) + (0.102 * CDbl(limo.Text)) + (0.0147 * CDbl(arena.Text)) lr.Text = ((CDbl(cc.Text) - CDbl(pmp.Text)) / 100) * (CDbl(da.Text)) * (CDbl(p.Text)) nap.Text = nap.Text / 100 ln.Text = CDbl(lr.Text) * CDbl(nap.Text) lb.Text = CDbl(ln.Text) / ea 'evapotranspiracion Dim hr2, cho As Double hr2 = CDbl(hr.Text) cho = Exp((-40682 / (hr2 * hr2)) + (1328.3 / hr2) - 12.869) evapo.Text = cho * CDbl(t.Text) evaporeal.Text = CDbl(evapo.Text) * TextBox23.Text 'frecuencia de Riego fr.Text = Round((CDbl(lb.Text) / CDbl(evaporeal.Text))) Else MsgBox("Por favor ingrese un NAP mayor a 0 o menor o igual 50", MsgBoxStyle.Information) End If Else MsgBox("La densidad aparente no puede ser mayor a 2.5",MsgBoxStyle.Information) End If ' Lamina neta y bruta Else MsgBox("Por favor, verifique que la sumatoria de los % de limo, arcilla y Arena sea igual a 100 ", MsgBoxStyle.Information) limo.Text = "" arena.Text = "" arcilla.Text = "" End If cc.Visible = True pmp.Visible = True lr.Visible = True ln.Visible = True lb.Visible = True evapo.Visible = True

99

evaporeal.Visible = True fr.Visible = True End If End Sub Private Sub limo_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles limo.KeyPress Dim x As Char = e.KeyChar If x >= "0" And x <= "9" Then 'numero e.Handled = False Else If x = Convert.ToChar(13) Then 'enter e.Handled = True Else If x = Convert.ToChar(8) Then 'backspace e.Handled = False Else If buscar(limo.Text, x) = True And x = "." Then 'punto e.Handled = False Else If limo.Text.Length = 0 And (x = "+" Or x = "-") Then 'suma o resta e.Handled = False Else e.Handled = True End If End If End If End If End If If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub limo_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles limo.TextChanged End Sub Private Sub arcilla_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles arcilla.KeyPress Dim x As Char = e.KeyChar If x >= "0" And x <= "9" Then 'numero e.Handled = False Else If x = Convert.ToChar(13) Then 'enter

100

e.Handled = True Else If x = Convert.ToChar(8) Then 'backspace e.Handled = False Else If buscar(arcilla.Text, x) = True And x = "." Then 'punto e.Handled = False Else If arcilla.Text.Length = 0 And (x = "+" Or x = "-") Then 'suma o resta e.Handled = False Else e.Handled = True End If End If End If End If End If If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub arcilla_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles arcilla.TextChanged End Sub Private Sub arena_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles arena.KeyPress Dim x As Char = e.KeyChar If x >= "0" And x <= "9" Then 'numero e.Handled = False Else If x = Convert.ToChar(13) Then 'enter e.Handled = True Else If x = Convert.ToChar(8) Then 'backspace e.Handled = False

101

Else If buscar(arena.Text, x) = True And x = "." Then 'punto e.Handled = False Else If arena.Text.Length = 0 And (x = "+" Or x = "-") Then 'suma o resta e.Handled = False Else e.Handled = True End If End If End If End If End If If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub arena_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles arena.TextChanged End Sub Private Sub da_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles da.KeyPress Dim x As Char = e.KeyChar If x >= "0" And x <= "9" Then 'numero e.Handled = False Else If x = Convert.ToChar(13) Then 'enter e.Handled = True Else If x = Convert.ToChar(8) Then 'backspace e.Handled = False Else If buscar(da.Text, x) = True And x = "." Then

102

'punto e.Handled = False Else If da.Text.Length = 0 And (x = "+" Or x = "") Then 'suma o resta e.Handled = False Else e.Handled = True End If End If End If End If End If If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub

Private Sub da_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles da.TextChanged End Sub Private Sub p_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles p.KeyPress Dim x As Char = e.KeyChar If x >= "0" And x <= "9" Then 'numero e.Handled = False Else If x = Convert.ToChar(13) Then 'enter e.Handled = True Else If x = Convert.ToChar(8) Then 'backspace e.Handled = False Else If buscar(p.Text, x) = True And x = "." Then 'punto e.Handled = False

103

Else If p.Text.Length = 0 And (x = "+" Or x = "") Then 'suma o resta e.Handled = False Else e.Handled = True End If End If End If End If End If If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub p_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles p.TextChanged End Sub

Private Sub nap_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles nap.KeyPress Dim x As Char = e.KeyChar If x >= "0" And x <= "9" Then 'numero e.Handled = False Else If x = Convert.ToChar(13) Then 'enter e.Handled = True Else If x = Convert.ToChar(8) Then 'backspace e.Handled = False Else If buscar(nap.Text, x) = True And x = "." Then 'punto e.Handled = False Else

104

If nap.Text.Length = 0 And (x = "+" Or x = "-") Then 'suma o resta e.Handled = False Else e.Handled = True End If End If End If End If End If If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub nap_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles nap.TextChanged End Sub Private Sub hr_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles hr.KeyPress Dim x As Char = e.KeyChar If x >= "0" And x <= "9" Then 'numero e.Handled = False Else If x = Convert.ToChar(13) Then 'enter e.Handled = True Else If x = Convert.ToChar(8) Then 'backspace e.Handled = False Else If buscar(hr.Text, x) = True And x = "." Then 'punto e.Handled = False Else If hr.Text.Length = 0 And (x = "+" Or x = "") Then 'suma o resta e.Handled = False

105

Else e.Handled = True End If End If End If End If End If If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub hr_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles hr.TextChanged End Sub Private Sub t_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles t.KeyPress Dim x As Char = e.KeyChar If x >= "0" And x <= "9" Then 'numero e.Handled = False Else If x = Convert.ToChar(13) Then 'enter e.Handled = True Else If x = Convert.ToChar(8) Then 'backspace e.Handled = False Else If buscar(t.Text, x) = True And x = "." Then 'punto e.Handled = False Else If t.Text.Length = 0 And (x = "+" Or x = "") Then 'suma o resta e.Handled = False Else e.Handled = True End If

106

End If End If End If End If If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Close() End Sub Private Sub GroupBox8_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GroupBox8.Enter End Sub Private Sub GroupBox9_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GroupBox9.Enter End Sub Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click Dim logarit, a, cintas As Double If TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Or TextBox4.Text = "" Or TextBox5.Text = "" Or TextBox6.Text = "" Or TextBox24.Text = "" Then MessageBox.Show("Por favor ingrese todos los datos ", "RIEGOCAD") Else TextBox7.Text = CDbl(TextBox1.Text) / CDbl(TextBox6.Text) TextBox8.Text = CDbl(TextBox7.Text) * CDbl(TextBox5.Text) TextBox12.Text = CDbl(TextBox8.Text) / (3600 * 1000) TextBox13.Text = CDbl(TextBox8.Text) * CDbl(TextBox4.Text) TextBox14.Text = ((CDbl(TextBox3.Text) * (CDbl(TextBox12.Text) / (3.1416 * ((CDbl(TextBox3.Text) / 2) ^ 2))) / 0.000001003)) logarit = ((0.000131579 / 3.7) + (2.51 / (CDbl(TextBox14.Text ^ 0.9)))) TextBox15.Text = 0.25 / ((Log10(logarit)) ^ 2) TextBox20.Text = 1 / 3 + 1 / (2 * CDbl(TextBox7.Text)) + 1 / (6 * CDbl(TextBox7.Text) ^ 2) TextBox16.Text = CDbl(TextBox15.Text) * (CDbl(TextBox1.Text) / CDbl(TextBox3.Text) ^ 5) * ((8 * CDbl(TextBox12.Text) ^ 2) / (9.8 * ((3.146) ^ 2))) * CDbl(TextBox20.Text) TextBox9.Text = TextBox4.Text a = (100 / CDbl(TextBox24.Text)) * 100 cintas = a / 2000 TextBox43.Text = cintas TextBox42.Text = TextBox4.Text TextBox44.Text = TextBox4.Text End If

107

End Sub Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click If TextBox9.Text = "" Or TextBox10.Text = "" Or TextBox11.Text = "" Then MessageBox.Show("Por favor ingrese todos los datos", "RIEGOCAD") Else TextBox17.Text = CDbl(TextBox13.Text) / (3600 * 1000) TextBox18.Text = 1 / 3 + 1 / (2 * TextBox4.Text) + 1 / (6 * CDbl(TextBox4.Text) ^ 2) TextBox19.Text = CDbl(TextBox9.Text) * (CDbl(TextBox17.Text) / (0.278 * CDbl(TextBox11.Text) * (CDbl(TextBox10.Text) ^ 2.63))) ^ 1.852 End If End Sub Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click Close() End Sub Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click Close() End Sub Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click Close() End Sub Private Sub Button15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) End Sub Private Sub Button14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) End Sub Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) End Sub Private Sub Button15_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.Click OpenFileDialog1.InitialDirectory = "c:\" OpenFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*" OpenFileDialog1.FilterIndex = 2 OpenFileDialog1.RestoreDirectory = True If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then txtDirFile.Text = OpenFileDialog1.FileName End If End Sub

108

Private Sub Button14_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button14.Click If txtDirFile.Text <> "" And dgvDatos.Rows.Count - 1 = 0 Then Dim sFileReader As IO.StreamReader Dim s As String Dim texto() As String = Nothing 'texto es un vector de string sFileReader = File.OpenText(txtDirFile.Text) ' Leer cada una de las palabras del archivo ' Si .Peek = -1 es que ya no hay nada que leer, ' esto es como el .EOF del VB6 Try Do While Not sFileReader.Peek = -1 ' Asignar en s la lnea leida, sin espacios extras s = sFileReader.ReadLine.Trim ' Si no es una lnea vacia... If s.Length > 0 Then texto = Split(s, ",", -1) 'tengo un vector texto de 3 columnas dgvDatos.Rows.Add(texto(0), texto(1), texto(2)) Else ' Si el ID era una cadena vaca, leer el siguiente dato s = sFileReader.ReadLine End If Loop MessageBox.Show("El archivo se cargo correctamente", "OK", MessageBoxButtons.OK, MessageBoxIcon.Information) Catch ex As Exception MessageBox.Show(ex.Message) MessageBox.Show("Por Favor seleccione un archivo con la extension .TXT") End Try sFileReader.Close() Else MessageBox.Show("Seleccione un archivo y un delimitador o el Archivo ya se encuentra cargado", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning) End If Dim x1 As Double Dim x2 As Double Dim y1 As Double Dim y2 As Double Dim z1 As Double Dim z2 As Double Dim dist As Double Dim conta, conta2, i, j, k, l, c As Integer i = 0 j = 0 : k = 1 : l = 2 conta = dgvDatos.Rows.Count conta2 = dgvDatos.Rows.Count While i <= conta - 1 x1 = CDbl(dgvDatos.Rows(i).Cells(j).Value) y1 = CDbl(dgvDatos.Rows(i).Cells(k).Value) z1 = CDbl(dgvDatos.Rows(i).Cells(l).Value) c = i + 1

109

While c < conta2 - 1 x2 = CDbl(dgvDatos.Rows(c).Cells(j).Value) y2 = CDbl(dgvDatos.Rows(c).Cells(k).Value) z2 = CDbl(dgvDatos.Rows(c).Cells(l).Value) dist = ((x2 - x1) ^ 2 + (y2 - y1) ^ 2) ^ 0.5 data.Rows.Add(x1, y1, z1, x2, y2, z2, dist) c = c + 1 End While i = i + 1 End While Me.data.Sort(Me.data.Columns("dista"), System.ComponentModel.ListSortDirection.Ascending)

End Sub Private Sub Button13_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click If dgvDatos.Rows.Count - 1 <> 0 Then OpenAutoCAD() graficar() Else MessageBox.Show("Por favor cargue un archivo para poder graficar", "RIEGOCAD") End If End Sub Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click dgvDatos.DataSource = Nothing dgvDatos.Rows.Clear() txtDirFile.Text = "" End Sub Private Sub Label21_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label21.Click End Sub Private Sub GroupBox4_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GroupBox4.Enter End Sub Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: esta lnea de cdigo carga datos en la tabla 'DataSet12.conectores' Puede moverla o quitarla segn sea necesario. Me.ConectoresTableAdapter.Fill(Me.DataSet12.conectores) 'TODO: esta lnea de cdigo carga datos en la tabla 'DataSet11.cintas' Puede moverla o quitarla segn sea necesario. Me.CintasTableAdapter.Fill(Me.DataSet11.cintas) 'TODO: esta lnea de cdigo carga datos en la tabla ataSet13.cauchos' Puede moverla o quitarla segn sea necesario. Me.CauchosTableAdapter.Fill(Me.DataSet13.cauchos) 'TODO: esta lnea de cdigo carga datos en la tabla 'DataSet10.accesorios' Puede moverla o quitarla segn sea necesario. Me.AccesoriosTableAdapter.Fill(Me.DataSet10.accesorios)

110

'TODO: esta lnea de cdigo carga datos en la tabla 'DataSet9.filtro' Puede moverla o quitarla segn sea necesario. Me.FiltroTableAdapter.Fill(Me.DataSet9.filtro) 'TODO: esta lnea de cdigo carga datos en la tabla 'DataSet3.cultivo' Puede moverla o quitarla segn sea necesario. Me.CultivoTableAdapter2.Fill(Me.DataSet3.cultivo) 'TODO: esta lnea de cdigo carga datos en la tabla 'DataSet2.cultivo' Puede moverla o quitarla segn sea necesario. Me.CultivoTableAdapter1.Fill(Me.DataSet2.cultivo) 'TODO: esta lnea de cdigo carga datos en la tabla 'DataSet1.cultivo' Puede moverla o quitarla segn sea necesario. Me.CultivoTableAdapter.Fill(Me.DataSet1.cultivo) End Sub Private Sub Button16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button16.Click If dgvDatos.Rows.Count - 1 = 0 Or limo.Text = "" Or arcilla.Text = "" Or arena.Text = "" Or da.Text = "" Or p.Text = "" Or nap.Text = "" Or hr.Text = "" Or t.Text = "" Or cc.Text = "" Or pmp.Text = "" Or lr.Text = "" Or ln.Text = "" Or lb.Text = "" Or evapo.Text = "" Or evaporeal.Text = "" Or fr.Text = "" Or TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Or TextBox4.Text = "" Or TextBox5.Text = "" Or TextBox6.Text = "" Or TextBox7.Text = "" Or TextBox8.Text = "" Or TextBox12.Text = "" Or TextBox13.Text = "" Or TextBox14.Text = "" Or TextBox15.Text = "" Or TextBox16.Text = "" Or TextBox20.Text = "" Then MessageBox.Show("Por favor realice el calculo Agronomico, calculo hidraulico del lateral y grafique el perfil del terreno antes de graficar los laterales", "RIEGOCAD") Else graficar_laterales() End If End Sub Private Sub Button17_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button17.Click If dgvDatos.Rows.Count - 1 = 0 Or limo.Text = "" Or arcilla.Text = "" Or arena.Text = "" Or da.Text = "" Or p.Text = "" Or nap.Text = "" Or hr.Text = "" Or t.Text = "" Or cc.Text = "" Or pmp.Text = "" Or lr.Text = "" Or ln.Text = "" Or lb.Text = "" Or evapo.Text = "" Or evaporeal.Text = "" Or fr.Text = "" Or TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Or TextBox4.Text = "" Or TextBox5.Text = "" Or TextBox6.Text = "" Or TextBox7.Text = "" Or TextBox8.Text = "" Or TextBox12.Text = "" Or TextBox13.Text = "" Or TextBox14.Text = "" Or TextBox15.Text = "" Or TextBox16.Text = "" Or TextBox20.Text = "" Or TextBox9.Text = "" Or TextBox10.Text = "" Or TextBox11.Text = "" Or TextBox17.Text = "" Or TextBox18.Text = "" Or TextBox19.Text = "" Then MessageBox.Show("Por favor realice el calculo Agronomico, calculo hidraulico del lateral, calculo hidraulico del multiple y grafique el perfil del terreno antes de graficar el Multiple", "RIEGOCAD") Else multiple() End If End Sub

111

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress Dim x As Char = e.KeyChar If x >= "0" And x <= "9" Then 'numero e.Handled = False Else If x = Convert.ToChar(13) Then 'enter e.Handled = True Else If x = Convert.ToChar(8) Then 'backspace e.Handled = False Else If buscar(TextBox1.Text, x) = True And x = "." Then 'punto e.Handled = False Else If TextBox1.Text.Length = 0 And (x = "+" Or x = "-") Then 'suma o resta e.Handled = False Else e.Handled = True End If End If End If End If End If If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged End Sub Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress Dim x As Char = e.KeyChar If x >= "0" And x <= "9" Then 'numero

112

e.Handled = False Else If x = Convert.ToChar(13) Then 'enter e.Handled = True Else If x = Convert.ToChar(8) Then 'backspace e.Handled = False Else If buscar(TextBox2.Text, x) = True And x = "." Then 'punto e.Handled = False Else If TextBox2.Text.Length = 0 And (x = "+" Or x = "-") Then 'suma o resta e.Handled = False Else e.Handled = True End If End If End If End If End If If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged End Sub Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress Dim x As Char = e.KeyChar If x >= "0" And x <= "9" Then 'numero e.Handled = False Else

113

If x = Convert.ToChar(13) Then 'enter e.Handled = True Else If x = Convert.ToChar(8) Then 'backspace e.Handled = False Else If buscar(TextBox3.Text, x) = True And x = "." Then 'punto e.Handled = False Else If TextBox3.Text.Length = 0 And (x = "+" Or x = "-") Then 'suma o resta e.Handled = False Else e.Handled = True End If End If End If End If End If If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged End Sub Private Sub TextBox4_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox4.KeyPress Dim x As Char = e.KeyChar If x >= "0" And x <= "9" Then 'numero e.Handled = False Else If x = Convert.ToChar(13) Then 'enter e.Handled = True

114

Else If x = Convert.ToChar(8) Then 'backspace e.Handled = False Else If buscar(TextBox4.Text, x) = True And x = "." Then 'punto e.Handled = False Else If TextBox4.Text.Length = 0 And (x = "+" Or x = "-") Then 'suma o resta e.Handled = False Else e.Handled = True End If End If End If End If End If If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox4_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox4.TextChanged End Sub Private Sub TextBox5_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox5.KeyPress Dim x As Char = e.KeyChar If x >= "0" And x <= "9" Then 'numero e.Handled = False Else If x = Convert.ToChar(13) Then 'enter e.Handled = True Else If x = Convert.ToChar(8) Then 'backspace e.Handled = False Else

115

If buscar(TextBox5.Text, x) = True And x = "." Then 'punto e.Handled = False Else If TextBox5.Text.Length = 0 And (x = "+" Or x = "-") Then 'suma o resta e.Handled = False Else e.Handled = True End If End If End If End If End If If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox5_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox5.TextChanged End Sub Private Sub TextBox6_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox6.KeyPress Dim x As Char = e.KeyChar If x >= "0" And x <= "9" Then 'numero e.Handled = False Else If x = Convert.ToChar(13) Then 'enter e.Handled = True Else If x = Convert.ToChar(8) Then 'backspace e.Handled = False Else If buscar(TextBox6.Text, x) = True And x = "." Then 'punto e.Handled = False

116

Else If TextBox6.Text.Length = 0 And (x = "+" Or x = "-") Then 'suma o resta e.Handled = False Else e.Handled = True End If End If End If End If End If If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox6_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox6.TextChanged End Sub Private Sub TextBox9_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox9.KeyPress Dim x As Char = e.KeyChar If x >= "0" And x <= "9" Then 'numero e.Handled = False Else If x = Convert.ToChar(13) Then 'enter e.Handled = True Else If x = Convert.ToChar(8) Then 'backspace e.Handled = False Else If buscar(TextBox9.Text, x) = True And x = "." Then 'punto e.Handled = False Else If TextBox9.Text.Length = 0 And (x = "+" Or x = "-") Then 'suma o resta

117

e.Handled = False Else e.Handled = True End If End If End If End If End If If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox9_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox9.TextChanged End Sub Private Sub TextBox10_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox10.KeyPress Dim x As Char = e.KeyChar If x >= "0" And x <= "9" Then 'numero e.Handled = False Else If x = Convert.ToChar(13) Then 'enter e.Handled = True Else If x = Convert.ToChar(8) Then 'backspace e.Handled = False Else If buscar(TextBox10.Text, x) = True And x = "." Then 'punto e.Handled = False Else If TextBox10.Text.Length = 0 And (x = "+" Or x = "-") Then 'suma o resta e.Handled = False Else e.Handled = True

118

End If End If End If End If End If If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox10_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox10.TextChanged End Sub Private Sub TextBox11_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox11.KeyPress Dim x As Char = e.KeyChar If x >= "0" And x <= "9" Then 'numero e.Handled = False Else If x = Convert.ToChar(13) Then 'enter e.Handled = True Else If x = Convert.ToChar(8) Then 'backspace e.Handled = False Else If buscar(TextBox11.Text, x) = True And x = "." Then 'punto e.Handled = False Else If TextBox11.Text.Length = 0 And (x = "+" Or x = "-") Then 'suma o resta e.Handled = False Else e.Handled = True End If End If End If

119

End If End If If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox11_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox11.TextChanged End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If dgvDatos.Rows.Count - 1 = 0 Or limo.Text = "" Or arcilla.Text = "" Or arena.Text = "" Or da.Text = "" Or p.Text = "" Or nap.Text = "" Or hr.Text = "" Or t.Text = "" Or cc.Text = "" Or pmp.Text = "" Or lr.Text = "" Or ln.Text = "" Or lb.Text = "" Or evapo.Text = "" Or evaporeal.Text = "" Or fr.Text = "" Or TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Or TextBox4.Text = "" Or TextBox5.Text = "" Or TextBox6.Text = "" Or TextBox7.Text = "" Or TextBox8.Text = "" Or TextBox12.Text = "" Or TextBox13.Text = "" Or TextBox14.Text = "" Or TextBox15.Text = "" Or TextBox16.Text = "" Or TextBox20.Text = "" Or TextBox9.Text = "" Or TextBox10.Text = "" Or TextBox11.Text = "" Or TextBox17.Text = "" Or TextBox18.Text = "" Or TextBox19.Text = "" Or TextBox21.Text = "" Or TextBox22.Text = "" Or TextBox23.Text = "" Then MessageBox.Show("Por favor realice el calculo Agronomico, calculo hidraulico del lateral, calculo hidraulico del multiple antes de guardar el proyecto", "RIEGOCAD") Else Dim conexion As New Npgsql.NpgsqlConnection conexion.ConnectionString = "SERVER=localhost;UID=postgres;PWD=riegocad;database=postgres" ' Crea la sentencia SQL Dim sentencia As String sentencia = "INSERT INTO proyecto VALUES ('" & TextBox21.Text & "', '" & TextBox22.Text & "' , '" & limo.Text & "' , '" & arcilla.Text & "' , '" & arena.Text & "' , '" & da.Text & "' , '" & p.Text & "' , '" & nap.Text & "' , '" & hr.Text & "' , '" & t.Text & "', '" & cc.Text & "' , '" & pmp.Text & "' , '" & lr.Text & "' , '" & ln.Text & "' , '" & lb.Text & "' , '" & evapo.Text & "', '" & evaporeal.Text & "' , '" & fr.Text & "' , '" & TextBox1.Text & "' , '" & TextBox2.Text & "' , '" & TextBox3.Text & "' , '" & TextBox4.Text & "' , '" & TextBox5.Text & "' , '" & TextBox6.Text & "','" & TextBox24.Text & "' ,'" & TextBox7.Text & "' , '" & TextBox8.Text & "' , '" & TextBox12.Text & "' , '" & TextBox13.Text & "' , '" & TextBox14.Text & "' , '" & TextBox15.Text & "' , '" & TextBox20.Text & "' , '" & TextBox16.Text & "' , '" & TextBox9.Text & "' , '" & TextBox10.Text & "' , '" & TextBox11.Text & "' , '" & TextBox17.Text & "' , '" & TextBox18.Text & "' , '" & TextBox19.Text & "' )" ' Crea el comando SQL Dim comando As New Npgsql.NpgsqlCommand(sentencia, conexion) Dim resultados, resultados2 As Integer 'Conecta con la Base de Datos Try conexion.Open() ' Ejecuta la sentencia SQL (NonQuery ya que es una insercin).

120

Slo devuelve el nmero de filas afectadas resultados = comando.ExecuteNonQuery Catch ex As Exception 'En caso de error MessageBox.Show("Ya se encuentra un proyecto con este nombre") End Try ' Desconecta de la Base de Datos conexion.Close() MessageBox.Show("Se han aadido " & resultados & " Proyecto ") If resultados > 0 Then Dim i, j, cont, cont2 As Integer Dim ListSqlStrings As New ArrayList cont = dgvDatos.Rows.Count cont2 = costo.Rows.Count i = 0 While i <= cont - 2 sentencia = "INSERT INTO datosgps(puntox,puntoy,puntoz,nombreproyecto) VALUES ('" & dgvDatos.Rows(i).Cells(0).Value.ToString & "', '" & dgvDatos.Rows(i).Cells(1).Value.ToString & "' , '" & dgvDatos.Rows(i).Cells(2).Value.ToString & "' , '" & TextBox21.Text & "')" ' Crea el comando SQL Dim comando2 As New Npgsql.NpgsqlCommand(sentencia, conexion) 'Conecta con la Base de Datos Try conexion.Open() ' Ejecuta la sentencia SQL (NonQuery ya que es una insercin). Slo devuelve el nmero de filas afectadas resultados2 = comando2.ExecuteNonQuery Catch ex As Exception End Try ' Desconecta de la Base de Datos conexion.Close() i = i + 1 End While cont2 = costo.Rows.Count j = 0 While j <= cont2 - 2 sentencia = "INSERT INTO costoproyecto(articulo,cantidad,precio,total,nombreproyecto) VALUES ('" & costo.Rows(j).Cells(0).Value.ToString & "', '" & costo.Rows(j).Cells(1).Value.ToString & "' , '" & costo.Rows(j).Cells(2).Value.ToString & "' ,'" & costo.Rows(j).Cells(3).Value.ToString & "', '" & TextBox21.Text & "')" ' Crea el comando SQL Dim comando2 As New Npgsql.NpgsqlCommand(sentencia, conexion) 'Conecta con la Base de Datos Try conexion.Open() Ejecuta la sentencia SQL (NonQuery ya que es una insercin). Slo devuelve el nmero de filas afectadas resultados2 = comando2.ExecuteNonQuery

121

Catch ex As Exception End Try ' Desconecta de la Base de Datos conexion.Close() j = j + 1 End While dgvDatos.DataSource = Nothing dgvDatos.Rows.Clear() limo.Text = "" arcilla.Text = "" arena.Text = "" da.Text = "" p.Text = "" nap.Text = "" hr.Text = "" t.Text = "" cc.Text = "" pmp.Text = "" lr.Text = "" ln.Text = "" lb.Text = "" evapo.Text = "" evaporeal.Text = "" fr.Text = "" TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" TextBox5.Text = "" TextBox6.Text = "" TextBox7.Text = "" TextBox8.Text = "" TextBox12.Text = "" TextBox13.Text = "" TextBox14.Text = "" TextBox15.Text = "" TextBox16.Text = "" TextBox20.Text = "" TextBox9.Text = "" TextBox10.Text = "" TextBox11.Text = "" TextBox17.Text = "" TextBox18.Text = "" TextBox19.Text = "" TextBox24.Text = "" costo.DataSource = Nothing costo.Rows.Clear() TextBox40.Text = "" TextBox41.Text = "" TextBox42.Text = "" TextBox43.Text = "" TextBox44.Text = "" End If End If End Sub Private Sub TextBox24_KeyPress(ByVal sender As Object, ByVal e As

122

System.Windows.Forms.KeyPressEventArgs) Handles TextBox24.KeyPress Dim x As Char = e.KeyChar If x >= "0" And x <= "9" Then 'numero e.Handled = False Else If x = Convert.ToChar(13) Then 'enter e.Handled = True Else If x = Convert.ToChar(8) Then 'backspace e.Handled = False Else If buscar(TextBox24.Text, x) = True And x = "." Then 'punto e.Handled = False Else If TextBox3.Text.Length = 0 And (x = "+" Or x = "-") Then 'suma o resta e.Handled = False Else e.Handled = True End If End If End If End If End If If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox24_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox24.TextChanged End Sub Private Sub TextBox35_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox35.TextChanged End Sub Private Sub TextBox38_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox38.TextChanged End Sub

123

Private Sub Button18_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button18.Click Dim total1, total2, total3, total4, total5, total As Double Dim tota, comple As String tota = "TOTAL $" comple = "" If TextBox40.Text = "" Or TextBox41.Text = "" Or TextBox42.Text = "" Or TextBox43.Text = "" Or TextBox44.Text = "" Then MsgBox("Por favor ingrese todas las cantidades de los productos", MsgBoxStyle.Information) Else If costo.Rows.Count - 1 = 0 Then total1 = CDbl(TextBox40.Text) * CDbl(TextBox25.Text) costo.Rows.Add(TextBox26.Text, TextBox40.Text, TextBox25.Text, total1) total2 = CDbl(TextBox41.Text) * CDbl(TextBox28.Text) costo.Rows.Add(TextBox29.Text, TextBox41.Text, TextBox28.Text, total2) total3 = CDbl(TextBox34.Text) * CDbl(TextBox43.Text) costo.Rows.Add(TextBox35.Text, TextBox34.Text, TextBox43.Text, total3) total4 = CDbl(TextBox37.Text) * CDbl(TextBox44.Text) costo.Rows.Add(TextBox38.Text, TextBox37.Text, TextBox44.Text, total4) total5 = CDbl(TextBox31.Text) * CDbl(TextBox42.Text) costo.Rows.Add(TextBox32.Text, TextBox31.Text, TextBox42.Text, total5) total = total1 + total2 + total3 + total4 + total5 costo.Rows.Add(comple, comple, tota, total) Me.costo.Columns("total").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight Else MsgBox("ya se ha hecho el calculo del costo, si desea realizar otro por favor de clic en nuevo y seleccione los productos", MsgBoxStyle.Information) End If End If End Sub Private Sub Button19_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button19.Click costo.DataSource = Nothing costo.Rows.Clear() End Sub Private Sub TextBox40_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox40.KeyPress Dim x As Char = e.KeyChar If x >= "0" And x <= "9" Then 'numero e.Handled = False Else If x = Convert.ToChar(13) Then 'enter

124

e.Handled = True Else If x = Convert.ToChar(8) Then 'backspace e.Handled = False Else If buscar(TextBox40.Text, x) = True And x = "." Then 'punto e.Handled = False Else If TextBox40.Text.Length = 0 And (x = "+" Or x = "-") Then 'suma o resta e.Handled = False Else e.Handled = True End If End If End If End If End If If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox40_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox40.TextChanged End Sub Private Sub TextBox41_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox41.KeyPress Dim x As Char = e.KeyChar If x >= "0" And x <= "9" Then 'numero e.Handled = False Else If x = Convert.ToChar(13) Then 'enter e.Handled = True Else If x = Convert.ToChar(8) Then 'backspace e.Handled = False

125

Else If buscar(TextBox41.Text, x) = True And x = "." Then 'punto e.Handled = False Else If TextBox41.Text.Length = 0 And (x = "+" Or x = "-") Then 'suma o resta e.Handled = False Else e.Handled = True End If End If End If End If End If If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox41_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox41.TextChanged End Sub Private Sub TextBox42_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox42.KeyPress Dim x As Char = e.KeyChar If x >= "0" And x <= "9" Then 'numero e.Handled = False Else If x = Convert.ToChar(13) Then 'enter e.Handled = True Else If x = Convert.ToChar(8) Then 'backspace e.Handled = False Else If buscar(TextBox42.Text, x) = True And x = "."

126

Then 'punto e.Handled = False Else If TextBox42.Text.Length = 0 And (x = "+" Or x = "-") Then 'suma o resta e.Handled = False Else e.Handled = True End If End If End If End If End If If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox42_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox42.TextChanged End Sub Private Sub TextBox43_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox43.KeyPress Dim x As Char = e.KeyChar If x >= "0" And x <= "9" Then 'numero e.Handled = False Else If x = Convert.ToChar(13) Then 'enter e.Handled = True Else If x = Convert.ToChar(8) Then 'backspace e.Handled = False Else If buscar(TextBox43.Text, x) = True And x = "." Then 'punto e.Handled = False

127

Else If TextBox43.Text.Length = 0 And (x = "+" Or x = "-") Then 'suma o resta e.Handled = False Else e.Handled = True End If End If End If End If End If If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox43_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox43.TextChanged End Sub Private Sub TextBox44_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox44.KeyPress Dim x As Char = e.KeyChar If x >= "0" And x <= "9" Then 'numero e.Handled = False Else If x = Convert.ToChar(13) Then 'enter e.Handled = True Else If x = Convert.ToChar(8) Then 'backspace e.Handled = False Else If buscar(TextBox44.Text, x) = True And x = "." Then 'punto e.Handled = False Else If TextBox44.Text.Length = 0 And (x = "+" Or x = "-") Then 'suma o resta

128

e.Handled = False Else e.Handled = True End If End If End If End If End If If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox44_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox44.TextChanged End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Form10.Show() End Sub Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click Form11.Show() End Sub Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click Form12.Show() End Sub Private Sub Button20_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button20.Click Form13.Show() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim suma As Double suma = CDbl(limo.Text) + CDbl(arcilla.Text) + CDbl(arena.Text) If suma = 100 Then If limo.Text >= 10 And limo.Text <= 30 And arcilla.Text >= 40 And arcilla.Text <= 80 And arena.Text > 10 And arena.Text <= 40 Then Form14.Show() Else If limo.Text >= 50 And limo.Text <= 80 And arcilla.Text >= 10 And arcilla.Text <= 20 And arena.Text >= 10 And arena.Text <= 40 Then Form15.Show() Else

129

If limo.Text >= 50 And limo.Text <= 60 And arcilla.Text = 30 And arena.Text >= 10 And arena.Text <= 20 Then Form16.Show() Else If limo.Text >= 40 And limo.Text <= 50 And arcilla.Text >= 40 And arcilla.Text <= 50 And arena.Text >= 10 And arena.Text <= 20 Then Form17.Show() Else If limo.Text >= 30 And limo.Text <= 40 And arcilla.Text = 30 And arena.Text >= 30 And arena.Text <= 40 Then Form18.Show() Else If limo.Text >= 30 And limo.Text <= 40 And arcilla.Text >= 10 And arcilla.Text <= 20 And arena.Text >= 40 And arena.Text <= 50 Then Form19.Show() Else If limo.Text = 30 And arcilla.Text = 30 And arena.Text = 40 Then Form20.Show() Else If limo.Text >= 20 And limo.Text <= 30 And arcilla.Text >= 10 And arcilla.Text <= 20 And arena.Text >= 60 And arena.Text <= 70 Then Form21.Show() Else If limo.Text = 20 And arcilla.Text = 30 And arena.Text = 50 Then Form22.Show() End If End If End If End If End If End If End If End If End If Else MsgBox("La suma de limo, arcilla y arena tiene que ser igual a 100") End If End Sub Private Sub fr_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles fr.TextChanged End Sub Private Sub GroupBox5_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GroupBox5.Enter End Sub Private Sub TabPage1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabPage1.Click End Sub End Class Form3 ingreso de filtros Public Class Form3 Function buscar(ByVal txtval As String, ByVal car As Char) As

130

Boolean Dim b As Integer For b = 1 To txtval.Length If Convert.ToChar(Mid(txtval, b, 1)) = car Then Return False End If Next Return True End Function Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load TODO: esta lnea de cdigo carga datos en la tabla 'DataSet9.filtro' Puede moverla o quitarla segn sea necesario. Me.FiltroTableAdapter.Fill(Me.DataSet9.filtro) TODO: esta lnea de cdigo carga datos en la tabla 'DataSet9.filtro' Puede moverla o quitarla segn sea necesario. Me.FiltroTableAdapter.Fill(Me.DataSet9.filtro) End Sub Private Sub GuardarToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GuardarToolStripButton.Click Dim conexion As New Npgsql.NpgsqlConnection If TextBox1.Text <> "" And TextBox2.Text <> "" And TextBox3.Text <> "" And TextBox4.Text <> "" Then conexion.ConnectionString = "SERVER=localhost;UID=postgres;PWD=riegocad;database=postgres" ' Crea la sentencia SQL Dim sentencia As String sentencia = "INSERT INTO filtro VALUES ('" & TextBox1.Text & "', '" & TextBox2.Text & "', '" & TextBox3.Text & "' , '" & TextBox4.Text & "')" ' Crea el comando SQL Dim comando As New Npgsql.NpgsqlCommand(sentencia, conexion) Dim resultados As Integer 'Conecta con la Base de Datos Try conexion.Open() ' Ejecuta la sentencia SQL (NonQuery ya que es una insercin). Slo devuelve el nmero de filas afectadas resultados = comando.ExecuteNonQuery Catch ex As Exception 'En caso de error MessageBox.Show("El codigo ingresado ya existe") End Try ' Desconecta de la Base de Datos conexion.Close() MessageBox.Show("Se han aadido " & resultados & " Productos") Else MsgBox("Por favor llene todos los campos") End If End Sub Private Sub BindingNavigatorDeleteItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorDeleteItem.Click

131

If TextBox1.Text <> "" And TextBox2.Text <> "" And TextBox3.Text <> "" And TextBox4.Text <> "" Then Dim conexion As New Npgsql.NpgsqlConnection conexion.ConnectionString = "SERVER=localhost;UID=postgres;PWD=riegocad;database=postgres" Dim eliminar As String = "DELETE FROM filtro WHERE codigo='" & TextBox1.Text & "' " Dim delete As New Npgsql.NpgsqlCommand(eliminar, conexion) conexion.Open() delete.ExecuteNonQuery() conexion.Close() MsgBox("El producto ha sido eliminado", MsgBoxStyle.Information) TextBox1.Text = "" TextBox2.Text = "" Else MsgBox("Por favor seleccione un producto para eliminarlo") End If End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If TextBox1.Text <> "" And TextBox2.Text <> "" And TextBox3.Text <> "" And TextBox4.Text <> "" Then Dim conexion As New Npgsql.NpgsqlConnection conexion.ConnectionString = "SERVER=localhost;UID=postgres;PWD=riegocad;database=postgres" Dim actualizar As String = "update filtro SET marca='" & TextBox2.Text & "', descripcion='" & TextBox3.Text & "',precio='" & TextBox4.Text & "' where (codigo='" & TextBox1.Text & "') " Dim delete As New Npgsql.NpgsqlCommand(actualizar, conexion) conexion.Open() delete.ExecuteNonQuery() conexion.Close() MsgBox("El producto ha sido actualizado", MsgBoxStyle.Information) Else MsgBox("Por favor seleccione un producto para modificarlo", MsgBoxStyle.Information) End If End Sub Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged End Sub Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True

132

SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged End Sub Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged End Sub Private Sub TextBox4_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox4.KeyPress Dim x As Char = e.KeyChar If x >= "0" And x <= "9" Then 'numero e.Handled = False Else If x = Convert.ToChar(13) Then 'enter e.Handled = True Else If x = Convert.ToChar(8) Then 'backspace e.Handled = False Else If buscar(TextBox4.Text, x) = True And x = "." Then 'punto e.Handled = False Else If TextBox4.Text.Length = 0 And (x = "+" Or x = "-") Then 'suma o resta e.Handled = False Else e.Handled = True End If End If

133

End If End If End If If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox4_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox4.TextChanged End Sub End Class

Form4 Ingreso de Cultivo


Imports Npgsql.NpgsqlConnection Imports Microsoft.VisualBasic.ErrObject Public Class Form4 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim conexion As New Npgsql.NpgsqlConnection conexion.ConnectionString = "SERVER=localhost;UID=postgres;PWD=riegocad;database=postgres" ' Crea la sentencia SQL Dim sentencia As String sentencia = "INSERT INTO cultivo(nombrecultivo,kc) VALUES ('" & TextBox1.Text & "', '" & TextBox2.Text & "' )" ' Crea el comando SQL Dim comando As New Npgsql.NpgsqlCommand(sentencia, conexion) Dim resultados As Integer 'Conecta con la Base de Datos conexion.Open() ' Ejecuta la sentencia SQL (NonQuery ya que es una insercin). Slo devuelve el nmero de filas afectadas resultados = comando.ExecuteNonQuery ' Desconecta de la Base de Datos conexion.Close() MessageBox.Show("Se han aadido " & resultados & " filas") End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim conexion As New Npgsql.NpgsqlConnection conexion.ConnectionString = "SERVER=localhost;UID=postgres;PWD=riegocad;database=postgres" Dim eliminar As String = "DELETE FROM cultivo WHERE nombrecultivo='" & TextBox1.Text & "' " Dim delete As New Npgsql.NpgsqlCommand(eliminar, conexion) conexion.Open() delete.ExecuteNonQuery() conexion.Close() MsgBox("El cultivo ha sido eliminado", MsgBoxStyle.Information)

134

TextBox1.Text = "" TextBox2.Text = "" End Sub Private Sub BindingNavigator1_RefreshItems(ByVal sender As System.Object, ByVal e As System.EventArgs) End Sub Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: esta lnea de cdigo carga datos en la tabla 'DataSet3.cultivo' Puede moverla o quitarla segn sea necesario. Me.CultivoTableAdapter.Fill(Me.DataSet3.cultivo) End Sub Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) TextBox1.Text = "" TextBox2.Text = "" End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim conexion As New Npgsql.NpgsqlConnection conexion.ConnectionString = "SERVER=localhost;UID=postgres;PWD=riegocad;database=postgres" Dim actualizar As String = "update cultivo SET nombrecultivo='" & TextBox1.Text & "', kc='" & TextBox2.Text & "' where (nombrecultivo='" & TextBox1.Text & "') " Dim delete As New Npgsql.NpgsqlCommand(actualizar, conexion) conexion.Open() delete.ExecuteNonQuery() conexion.Close() MsgBox("El cultivo ha sido actualizado", MsgBoxStyle.Information) End Sub Private Sub BindingNavigatorDeleteItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorDeleteItem.Click Dim conexion As New Npgsql.NpgsqlConnection If TextBox1.Text <> "" And TextBox2.Text <> "" Then conexion.ConnectionString = "SERVER=localhost;UID=postgres;PWD=riegocad;database=postgres" Dim eliminar As String = "DELETE FROM cultivo WHERE nombrecultivo='" & TextBox1.Text & "' " Dim delete As New Npgsql.NpgsqlCommand(eliminar, conexion) conexion.Open() delete.ExecuteNonQuery() conexion.Close() MsgBox("El cultivo ha sido eliminado", MsgBoxStyle.Information) TextBox1.Text = "" TextBox2.Text = ""

135

Else MsgBox("Por favor seleccione un producto para eliminarlo") End If End Sub Private Sub BindingNavigatorCountItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorCountItem.Click End Sub Private Sub BindingNavigatorAddNewItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorAddNewItem.Click End Sub Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged End Sub Private Sub GuardarToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GuardarToolStripButton.Click Dim conexion As New Npgsql.NpgsqlConnection If TextBox1.Text <> "" And TextBox2.Text <> "" Then conexion.ConnectionString = "SERVER=localhost;UID=postgres;PWD=riegocad;database=postgres" ' Crea la sentencia SQL Dim sentencia As String sentencia = "INSERT INTO cultivo(nombrecultivo,kc) VALUES ('" & TextBox1.Text & "', '" & TextBox2.Text & "' )" ' Crea el comando SQL Dim comando As New Npgsql.NpgsqlCommand(sentencia, conexion) Dim resultados As Integer 'Conecta con la Base de Datos Try conexion.Open() ' Ejecuta la sentencia SQL (NonQuery ya que es una insercin). Slo devuelve el nmero de filas afectadas resultados = comando.ExecuteNonQuery Catch ex As Exception 'En caso de error MessageBox.Show("El cultivo ya se encuentra ingresado") End Try ' Desconecta de la Base de Datos conexion.Close() MessageBox.Show("Se han aadido " & resultados & " Cultivos") Else MsgBox("Por favor llene todos los campos") End If End Sub End Class

136

Form5 proyectos realizados


Imports System.IO Imports System.IO.File Imports System.Windows.Forms.TextBox Imports System.Data.DataViewSettingCollection Imports System.ComponentModel Imports System.Math Public Class Form5 Function buscar(ByVal txtval As String, ByVal car As Char) As Boolean Dim b As Integer For b = 1 To txtval.Length If Convert.ToChar(Mid(txtval, b, 1)) = car Then Return False End If Next Return True End Function Private Sub Form5_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: esta lnea de cdigo carga datos en la tabla 'DataSet14.proyecto' Puede moverla o quitarla segn sea necesario. Me.ProyectoTableAdapter1.Fill(Me.DataSet14.proyecto) 'TODO: esta lnea de cdigo carga datos en la tabla 'DataSet7.datosgps' Puede moverla o quitarla segn sea necesario. Me.DatosgpsTableAdapter.Fill(Me.DataSet7.datosgps) 'TODO: esta lnea de cdigo carga datos en la tabla 'DataSet7.proyecto' Puede moverla o quitarla segn sea necesario. Me.ProyectoTableAdapter.Fill(Me.DataSet7.proyecto) End Sub Private Sub Button14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button14.Click Dim conexion As Npgsql.NpgsqlConnection = New Npgsql.NpgsqlConnection("SERVER=localhost;UID=postgres;PWD=riegocad; database=postgres") Dim comando As Npgsql.NpgsqlDataAdapter = New Npgsql.NpgsqlDataAdapter("select puntox,puntoy,puntoz from datosgps where nombreproyecto='" & TextBox42.Text & "' ", conexion) Dim midataset As DataSet = New DataSet() conexion.Open() comando.Fill(midataset, "datosgps") dgvDatos.DataSource = midataset dgvDatos.DataMember = "datosgps" conexion.Close() Dim Dim Dim Dim Dim Dim x1 x2 y1 y2 z1 z2 As As As As As As Double Double Double Double Double Double

137

Dim Dim i = j =

dist As Double conta, conta2, i, j, k, l, c As Integer 0 0 : k = 1 : l = 2

conta = dgvDatos.Rows.Count conta2 = dgvDatos.Rows.Count While i <= conta - 1 x1 = CDbl(dgvDatos.Rows(i).Cells(j).Value) y1 = CDbl(dgvDatos.Rows(i).Cells(k).Value) z1 = CDbl(dgvDatos.Rows(i).Cells(l).Value) c = i + 1 While c < conta2 - 1 ' aux = dist x2 = CDbl(dgvDatos.Rows(c).Cells(j).Value) y2 = CDbl(dgvDatos.Rows(c).Cells(k).Value) z2 = CDbl(dgvDatos.Rows(c).Cells(l).Value) dist = ((x2 - x1) ^ 2 + (y2 - y1) ^ 2) ^ 0.5 data1.Rows.Add(x1, y1, z1, x2, y2, z2, dist) c = c + 1 End While i = i + 1 End While Me.data1.Sort(Me.data1.Columns("dist"), System.ComponentModel.ListSortDirection.Ascending) End Sub

Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click dgvDatos.DataSource = Nothing dgvDatos.Rows.Clear() End Sub Private Sub BindingNavigatorMoveNextItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorMoveNextItem.Click End Sub Private Sub BindingNavigatorMovePreviousItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorMovePreviousItem.Click End Sub Private Sub BindingNavigatorMoveFirstItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorMoveFirstItem.Click End Sub Private Sub BindingNavigatorMoveLastItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorMoveLastItem.Click End Sub Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim t1, total As Double

138

Dim comple, tota As String Dim contac, i As Integer tota = "TOTAL $" comple = "" Dim conexion As Npgsql.NpgsqlConnection = New Npgsql.NpgsqlConnection("SERVER=localhost;UID=postgres;PWD=riegocad; database=postgres") Dim comando As Npgsql.NpgsqlDataAdapter = New Npgsql.NpgsqlDataAdapter("select articulo,cantidad,precio,total from costoproyecto where nombreproyecto='" & TextBox42.Text & "' ", conexion) Dim midataset1 As DataSet = New DataSet() conexion.Open() comando.Fill(midataset1, "costoproyecto") costos.DataSource = midataset1 costos.DataMember = "costoproyecto" conexion.Close() contac = costos.Rows.Count While i <= contac - 2 t1 = CDbl(costos.Rows(i).Cells(3).Value) total = t1 + total i = i + 1 End While TextBox44.Text = total 'costos.Rows.Add(comple, comple, tota, total) Me.costos.Columns("column7").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight End Sub Private Sub Label63_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label63.Click End Sub Private Sub BindingNavigatorDeleteItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorDeleteItem.Click If TextBox42.Text <> "" Then Dim conexion As New Npgsql.NpgsqlConnection conexion.ConnectionString = "SERVER=localhost;UID=postgres;PWD=riegocad;database=postgres" Dim eliminar As String = "DELETE FROM proyecto WHERE nombreproyecto='" & TextBox42.Text & "' " Dim delete As New Npgsql.NpgsqlCommand(eliminar, conexion) conexion.Open() delete.ExecuteNonQuery() conexion.Close() MsgBox("El proyecto ha sido eliminado", MsgBoxStyle.Information) TextBox1.Text = "" TextBox2.Text = "" costos.DataSource = Nothing costos.Rows.Clear() Else MsgBox("Por favor seleccione un producto para eliminarlo") End If End Sub Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As

139

System.EventArgs) Handles Button11.Click Close() End Sub Private Sub GroupBox6_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GroupBox6.Enter End Sub End Class

Form6 Ingreso de accesorios


Public Class Form6 Function buscar(ByVal txtval As String, ByVal car As Char) As Boolean Dim b As Integer For b = 1 To txtval.Length If Convert.ToChar(Mid(txtval, b, 1)) = car Then Return False End If Next Return True End Function Private Sub Form6_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: esta lnea de cdigo carga datos en la tabla 'DataSet10.accesorios' Puede moverla o quitarla segn sea necesario. Me.AccesoriosTableAdapter.Fill(Me.DataSet10.accesorios) End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If TextBox1.Text <> "" And TextBox2.Text <> "" And TextBox3.Text <> "" And TextBox4.Text <> "" Then Dim conexion As New Npgsql.NpgsqlConnection conexion.ConnectionString = "SERVER=localhost;UID=postgres;PWD=riegocad;database=postgres" Dim actualizar As String = "update accesorios SET marca='" & TextBox2.Text & "', descripcion='" & TextBox3.Text & "',precio='" & TextBox4.Text & "' where (codigo='" & TextBox1.Text & "') " Dim delete As New Npgsql.NpgsqlCommand(actualizar, conexion) conexion.Open() delete.ExecuteNonQuery() conexion.Close() MsgBox("El producto ha sido actualizado", MsgBoxStyle.Information) Else MsgBox("Por favor seleccione un producto para modificarlo") End If End Sub Private Sub BindingNavigatorDeleteItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorDeleteItem.Click Dim conexion As New Npgsql.NpgsqlConnection If TextBox1.Text <> "" And TextBox2.Text <> "" And TextBox3.Text <> "" And TextBox4.Text <> "" Then

140

conexion.ConnectionString = "SERVER=localhost;UID=postgres;PWD=riegocad;database=postgres" Dim eliminar As String = "DELETE FROM accesorios WHERE codigo='" & TextBox1.Text & "' " Dim delete As New Npgsql.NpgsqlCommand(eliminar, conexion) conexion.Open() delete.ExecuteNonQuery() conexion.Close() MsgBox("El producto ha sido eliminado", MsgBoxStyle.Information) TextBox1.Text = "" TextBox2.Text = "" Else MsgBox("Por favor seleccione un producto para eliminarlo") End If End Sub Private Sub GuardarToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GuardarToolStripButton.Click Dim conexion As New Npgsql.NpgsqlConnection If TextBox1.Text <> "" And TextBox2.Text <> "" And TextBox3.Text <> "" And TextBox4.Text <> "" Then conexion.ConnectionString = "SERVER=localhost;UID=postgres;PWD=riegocad;database=postgres" ' Crea la sentencia SQL Dim sentencia As String sentencia = "INSERT INTO accesorios VALUES ('" & TextBox1.Text & "', '" & TextBox2.Text & "', '" & TextBox3.Text & "' , '" & TextBox4.Text & "')" ' Crea el comando SQL Dim comando As New Npgsql.NpgsqlCommand(sentencia, conexion) Dim resultados As Integer 'Conecta con la Base de Datos Try conexion.Open() ' Ejecuta la sentencia SQL (NonQuery ya que es una insercin). Slo devuelve el nmero de filas afectadas resultados = comando.ExecuteNonQuery Catch ex As Exception 'En caso de error MessageBox.Show("El codigo ingresado ya existe") End Try ' Desconecta de la Base de Datos conexion.Close() MessageBox.Show("Se han aadido " & resultados & " Productos") Else MsgBox("Por favor llene todos los campos") End If End Sub Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True

141

SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged End Sub Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged End Sub Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged End Sub Private Sub TextBox4_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox4.KeyPress Dim x As Char = e.KeyChar If x >= "0" And x <= "9" Then 'numero e.Handled = False Else If x = Convert.ToChar(13) Then 'enter e.Handled = True Else If x = Convert.ToChar(8) Then 'backspace e.Handled = False Else If buscar(TextBox4.Text, x) = True And x = "." Then 'punto

142

e.Handled = False Else If TextBox4.Text.Length = 0 And (x = "+" Or x = "-") Then 'suma o resta e.Handled = False Else e.Handled = True End If End If End If End If End If If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox4_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox4.TextChanged End Sub End Class

Fomr7 Ingreso de Cintas


Public Class Form7 Function buscar(ByVal txtval As String, ByVal car As Char) As Boolean Dim b As Integer For b = 1 To txtval.Length If Convert.ToChar(Mid(txtval, b, 1)) = car Then Return False End If Next Return True End Function Private Sub Form7_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: esta lnea de cdigo carga datos en la tabla 'DataSet11.cintas' Puede moverla o quitarla segn sea necesario. Me.CintasTableAdapter.Fill(Me.DataSet11.cintas) End Sub Private Sub BindingNavigatorDeleteItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

143

BindingNavigatorDeleteItem.Click If TextBox1.Text <> "" And TextBox2.Text <> "" And TextBox3.Text <> "" And TextBox4.Text <> "" Then Dim conexion As New Npgsql.NpgsqlConnection conexion.ConnectionString = "SERVER=localhost;UID=postgres;PWD=riegocad;database=postgres" Dim eliminar As String = "DELETE FROM cintas WHERE codigo='" & TextBox1.Text & "' " Dim delete As New Npgsql.NpgsqlCommand(eliminar, conexion) conexion.Open() delete.ExecuteNonQuery() conexion.Close() MsgBox("El producto ha sido eliminado", MsgBoxStyle.Information) TextBox1.Text = "" TextBox2.Text = "" Else MsgBox("Por favor seleccione un producto para eliminarlo") End If End Sub Private Sub GuardarToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GuardarToolStripButton.Click Dim conexion As New Npgsql.NpgsqlConnection If TextBox1.Text <> "" And TextBox2.Text <> "" And TextBox3.Text <> "" And TextBox4.Text <> "" Then conexion.ConnectionString = "SERVER=localhost;UID=postgres;PWD=riegocad;database=postgres" ' Crea la sentencia SQL Dim sentencia As String sentencia = "INSERT INTO cintas VALUES ('" & TextBox1.Text & "', '" & TextBox2.Text & "', '" & TextBox3.Text & "' , '" & TextBox4.Text & "')" ' Crea el comando SQL Dim comando As New Npgsql.NpgsqlCommand(sentencia, conexion) Dim resultados As Integer 'Conecta con la Base de Datos Try conexion.Open() ' Ejecuta la sentencia SQL (NonQuery ya que es una insercin). Slo devuelve el nmero de filas afectadas resultados = comando.ExecuteNonQuery Catch ex As Exception 'En caso de error MessageBox.Show("El codigo ingresado ya existe") End Try ' Desconecta de la Base de Datos conexion.Close() MessageBox.Show("Se han aadido " & resultados & " Productos") Else MsgBox("Por favor llene todos los campos") End If

144

End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If TextBox1.Text <> "" And TextBox2.Text <> "" And TextBox3.Text <> "" And TextBox4.Text <> "" Then Dim conexion As New Npgsql.NpgsqlConnection conexion.ConnectionString = "SERVER=localhost;UID=postgres;PWD=riegocad;database=postgres" Dim actualizar As String = "update cintas SET marca='" & TextBox2.Text & "', descripcion='" & TextBox3.Text & "',precio='" & TextBox4.Text & "' where (codigo='" & TextBox1.Text & "') " Dim delete As New Npgsql.NpgsqlCommand(actualizar, conexion) onexion.Open() delete.ExecuteNonQuery() conexion.Close() MsgBox("El producto ha sido actualizado", MsgBoxStyle.Information) Else MsgBox("Por favor seleccione un producto para modificarlo") End If End Sub Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged End Sub Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged End Sub Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub

145

Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged End Sub Private Sub TextBox4_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox4.KeyPress Dim x As Char = e.KeyChar If x >= "0" And x <= "9" Then 'numero e.Handled = False Else If x = Convert.ToChar(13) Then 'enter e.Handled = True Else If x = Convert.ToChar(8) Then 'backspace e.Handled = False Else If buscar(TextBox4.Text, x) = True And x = "." Then 'punto e.Handled = False Else If TextBox4.Text.Length = 0 And (x = "+" Or x = "-") Then 'suma o resta e.Handled = False Else e.Handled = True End If End If End If End If End If If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox4_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox4.TextChanged End Sub End Class

146

Form8 Ingreso de Conectores


Public Class Form8 Function buscar(ByVal txtval As String, ByVal car As Char) As Boolean Dim b As Integer For b = 1 To txtval.Length If Convert.ToChar(Mid(txtval, b, 1)) = car Then Return False End If Next Return True End Function Private Sub Form8_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: esta lnea de cdigo carga datos en la tabla 'DataSet12.conectores' Puede moverla o quitarla segn sea necesario. Me.ConectoresTableAdapter.Fill(Me.DataSet12.conectores) End Sub Private Sub BindingNavigatorDeleteItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorDeleteItem.Click If TextBox1.Text <> "" And TextBox2.Text <> "" And TextBox3.Text <> "" And TextBox4.Text <> "" Then Dim conexion As New Npgsql.NpgsqlConnection conexion.ConnectionString = "SERVER=localhost;UID=postgres;PWD=riegocad;database=postgres" Dim eliminar As String = "DELETE FROM conectores WHERE codigo='" & TextBox1.Text & "' " Dim delete As New Npgsql.NpgsqlCommand(eliminar, conexion) conexion.Open() delete.ExecuteNonQuery() conexion.Close() MsgBox("El producto ha sido eliminado", MsgBoxStyle.Information) TextBox1.Text = "" TextBox2.Text = "" Else MsgBox("Por favor seleccione un producto para eliminarlo") End If End Sub Private Sub GuardarToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GuardarToolStripButton.Click Dim conexion As New Npgsql.NpgsqlConnection If TextBox1.Text <> "" And TextBox2.Text <> "" And TextBox3.Text <> "" And TextBox4.Text <> "" Then conexion.ConnectionString = "SERVER=localhost;UID=postgres;PWD=riegocad;database=postgres" ' Crea la sentencia SQL Dim sentencia As String

147

sentencia = "INSERT INTO conectores VALUES ('" & TextBox1.Text & "', '" & TextBox2.Text & "', '" & TextBox3.Text & "' , '" & TextBox4.Text & "')" ' Crea el comando SQL Dim comando As New Npgsql.NpgsqlCommand(sentencia, conexion) Dim resultados As Integer 'Conecta con la Base de Datos Try conexion.Open() ' Ejecuta la sentencia SQL (NonQuery ya que es una insercin). Slo devuelve el nmero de filas afectadas resultados = comando.ExecuteNonQuery Catch ex As Exception 'En caso de error MessageBox.Show("El codigo ingresado ya existe") End Try ' Desconecta de la Base de Datos conexion.Close() MessageBox.Show("Se han aadido " & resultados & " Productos") Else MsgBox("Por favor llene todos los campos") End If End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If TextBox1.Text <> "" And TextBox2.Text <> "" And TextBox3.Text <> "" And TextBox4.Text <> "" Then Dim conexion As New Npgsql.NpgsqlConnection conexion.ConnectionString = "SERVER=localhost;UID=postgres;PWD=riegocad;database=postgres" Dim actualizar As String = "update conectores SET marca='" & TextBox2.Text & "', descripcion='" & TextBox3.Text & "',precio='" & TextBox4.Text & "' where (codigo='" & TextBox1.Text & "') " Dim delete As New Npgsql.NpgsqlCommand(actualizar, conexion) conexion.Open() delete.ExecuteNonQuery() conexion.Close() MsgBox("El producto ha sido actualizado", MsgBoxStyle.Information) Else MsgBox("Por favor seleccione un producto para modificarlo") End If End Sub Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}")

148

End If End Sub Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged End Sub Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged End Sub Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged End Sub Private Sub TextBox4_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox4.KeyPress Dim x As Char = e.KeyChar If x >= "0" And x <= "9" Then 'numero e.Handled = False Else If x = Convert.ToChar(13) Then 'enter e.Handled = True Else If x = Convert.ToChar(8) Then 'backspace e.Handled = False Else If buscar(TextBox4.Text, x) = True And x = "." Then 'punto e.Handled = False Else If TextBox4.Text.Length = 0 And (x = "+" Or x = "-") Then 'suma o resta e.Handled = False Else

149

e.Handled = True End If End If End If End If nd If If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox4_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox4.TextChanged End Sub End Class

Form9 Ingreso de Cauchos


Public Class Form9 Function buscar(ByVal txtval As String, ByVal car As Char) As Boolean Dim b As Integer For b = 1 To txtval.Length If Convert.ToChar(Mid(txtval, b, 1)) = car Then Return False End If Next Return True End Function Private Sub Form9_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: esta lnea de cdigo carga datos en la tabla 'DataSet13.cauchos' Puede moverla o quitarla segn sea necesario. Me.CauchosTableAdapter.Fill(Me.DataSet13.cauchos) End Sub Private Sub BindingNavigatorDeleteItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorDeleteItem.Click If TextBox1.Text <> "" And TextBox2.Text <> "" And TextBox3.Text <> "" And TextBox4.Text <> "" Then Dim conexion As New Npgsql.NpgsqlConnection conexion.ConnectionString = "SERVER=localhost;UID=postgres;PWD=riegocad;database=postgres" Dim eliminar As String = "DELETE FROM cauchos WHERE codigo='" &

150

TextBox1.Text & "' " Dim delete As New Npgsql.NpgsqlCommand(eliminar, conexion) conexion.Open() delete.ExecuteNonQuery() conexion.Close() MsgBox("El producto ha sido eliminado", MsgBoxStyle.Information) TextBox1.Text = "" TextBox2.Text = "" Else MsgBox("Por favor seleccione un producto para eliminarlo") End If End Sub Private Sub GuardarToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GuardarToolStripButton.Click Dim conexion As New Npgsql.NpgsqlConnection If TextBox1.Text <> "" And TextBox2.Text <> "" And TextBox3.Text <> "" And TextBox4.Text <> "" Then conexion.ConnectionString = "SERVER=localhost;UID=postgres;PWD=riegocad;database=postgres" ' Crea la sentencia SQL Dim sentencia As String sentencia = "INSERT INTO cauchos VALUES ('" & TextBox1.Text & "', '" & TextBox2.Text & "', '" & TextBox3.Text & "' , '" & TextBox4.Text & "')" ' Crea el comando SQL Dim comando As New Npgsql.NpgsqlCommand(sentencia, conexion) Dim resultados As Integer 'Conecta con la Base de Datos Try conexion.Open() ' Ejecuta la sentencia SQL (NonQuery ya que es una insercin). Slo devuelve el nmero de filas afectadas resultados = comando.ExecuteNonQuery Catch ex As Exception 'En caso de error MessageBox.Show("El codigo ingresado ya existe") End Try ' Desconecta de la Base de Datos conexion.Close() MessageBox.Show("Se han aadido " & resultados & " Productos") Else MsgBox("Por favor llene todos los campos") End If End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If TextBox1.Text <> "" And TextBox2.Text <> "" And TextBox3.Text <> "" And TextBox4.Text <> "" Then Dim conexion As New Npgsql.NpgsqlConnection conexion.ConnectionString =

151

"SERVER=localhost;UID=postgres;PWD=riegocad;database=postgres" Dim actualizar As String = "update cauchos SET marca='" & TextBox2.Text & "', descripcion='" & TextBox3.Text & "',precio='" & TextBox4.Text & "' where (codigo='" & TextBox1.Text & "') " Dim delete As New Npgsql.NpgsqlCommand(actualizar, conexion) conexion.Open() delete.ExecuteNonQuery() conexion.Close() MsgBox("El producto ha sido actualizado", MsgBoxStyle.Information) Else MsgBox("Por favor seleccione un producto para modificarlo") End If End Sub Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged End Sub Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged End Sub Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged End Sub Private Sub TextBox4_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox4.KeyPress

152

Dim x As Char = e.KeyChar If x >= "0" And x <= "9" Then 'numero e.Handled = False Else If x = Convert.ToChar(13) Then 'enter e.Handled = True Else If x = Convert.ToChar(8) Then 'backspace e.Handled = False Else If buscar(TextBox4.Text, x) = True And x = "." Then 'punto e.Handled = False Else If TextBox4.Text.Length = 0 And (x = "+" Or x = "-") Then 'suma o resta e.Handled = False Else e.Handled = True End If End If End If End If End If If e.KeyChar = ChrW(Keys.Enter) Then e.Handled = True SendKeys.Send("{TAB}") End If End Sub Private Sub TextBox4_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox4.TextChanged End Sub End Class

153

Potrebbero piacerti anche