Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tesis
Que para obtener el Ttulo de:
P r e s e n t a :
Manuel Snchez Martnez
A s e s o r e s :
Ing. Catalina Patio Gallegos
Mxico,D.F. 2013
Sistema de Cmputo para el Control de Reportes de Equipos Daados
Agradecimientos
La presente Tesis es un esfuerzo en el cual, directa o indirectamente, participaron
varias personas leyendo, opinando, corrigiendo, criticando, tenindome paciencia, dando
nimo, acompaando en los momentos de crisis y en los momentos de felicidad. ste
trabajo escrito es la muestra de la dedicacin, lucha y esfuerzo que he realizado a lo largo
de mi carrera y en el largo camino de la vida.
Gracias a todos mis compaeros que conoc y con los cules he convivido a lo largo
de la carrera, ya que gracias a sus opiniones y experiencias han ayudado a forjar no solo
una persona si no a un profesionista que tiene deseo de luchar y seguir adelante con
dedicacin, compromiso y responsabilidad.
Agradezco a mis grandes amigos que han estado junto a m en los momentos ms
difciles brindando su apoyo para que no me rinda nunca. Gracias a una gran persona que
ha estado conmigo siendo un fuerte pilar en el desarrollo de los estudios de mi carrera,
una compaera de vida y una gran amiga, alguien que llego a mi vida y de quin he
aprendido mucho tanto en lo personal como en lo profesional, gracias a ella he podido
crecer y mantenerme en el camino del xito. Doy las gracias a mi familia, por todo su
apoyo por sus consejos y por estar a mi lado siempre ya que si no estuvieran conmigo ste
sueo difcilmente se habra hecho realidad.
Tabla de Contenido
INTRODUCCIN .......................................................................................................................................... VI
OBJETIVO GENERAL ........................................................................................................................................... VII
OBJETIVOS ESPECFICOS ..................................................................................................................................... VII
JUSTIFICACIN ................................................................................................................................................. VIII
CAPTULO 1: ................................................................................................................................................. 9
CAPTULO 2: ............................................................................................................................................... 20
CAPTULO 3: ............................................................................................................................................... 35
CAPTULO 4: ............................................................................................................................................... 55
IMPLEMENTACIN ..................................................................................................................................... 55
CONCLUSIONES .......................................................................................................................................... 60
RECOMENDACIONES .................................................................................................................................. 61
ANEXOS ..................................................................................................................................................... 66
Introduccin
El propsito del siguiente trabajo de Tesis Profesional es explicar el desarrollo del
Sistema de Cmputo para el Control de Reportes de Equipos Daados, el cul es la
solucin para la problemtica de la empresa NEC de Mxico S.A. de C.V. El sistema realiza
el manejo de eventos suscitados dentro de la organizacin de una manera fcil y eficiente,
esto basndose en los sistemas de gestin de tickets (en ingls Trouble Ticket System).
Como propsito final, la herramienta permite mejorar los procesos que el rea de
Soporte Audiovisual lleva a cabo para dar de alta los reportes de los equipos daados, con
esto se garantiza una atencin oportuna por parte de NEC de Mxico a sus clientes y as
mantener su poltica de Satisfaccin al Cliente.
Objetivo General
Objetivos Especficos
Analizar el procedimiento que realiza Soporte Audiovisual para llevar a cabo
el control de reportes de los equipos daados.
Identificar los principales problemas que se presentan al registrar los
reportes de los equipos daados.
Determinar el mtodo con el cul se optimizar el procedimiento para un
mejor control de los reportes de equipos daados.
Desarrollar la Interfaz de Cmputo mediante lenguaje C#.
Evaluar el sistema de cmputo para verificar que se adecua a las
necesidades del rea de Soporte Audiovisual de NEC Mxico S. A. de C. V. y
realizar las correcciones y/o adecuaciones necesarias.
Justificacin
El rea de Soporte Audiovisual de la empresa NEC de Mxico S.A. de C.V.
debido a su crecimiento en los ltimos aos a nivel comercial, se ha visto obligada a
invertir en el desarrollo de nuevas formas para mejorar sus procesos de negocios, para as
lograr mantener un control de todas sus actividades. Uno de sus problemas es el hecho de
no poder controlar todos los reportes, debido a que deben atender un gran nmero de
llamadas, lo cual no permite llevar un control de todos los sucesos que se presentan.
Captulo 1:
ESTADO DEL
ARTE
NEC proporciona:
Soluciones IT (tecnologas de informacin), soluciones de comunicaciones y
telecomunicaciones a empresas y al gobierno.
La compaa est dividida en tres principales ramas:
Soluciones IT.
Soluciones de Red.
Dispositivos Electrnicos.
Adems que su entorno est enfocado al internet, trabaja con PHP y MYSQL.
Caractersticas:
Fecha de Recepcin.
Nmero de Ticket.
Cliente.
Contacto directo del cliente.
Encargado de Atencin.
Tipo de Equipo.
Modelo de Pantalla.
Modelo de Proyector.
Nmero de serie del equipo.
Garanta.
Fecha de Inicio de Garanta.
Fecha de Trmino de Garanta.
Falla.
Observaciones.
Detalles del Servicio
Firma de Aceptacin de servicio
Open (Abierto)
Close (Cerrado)
Captulo 2:
MARCO TERICO Y
METODOLGICO
mayora de las bases de datos tienen formato electrnico, que ofrece un amplio rango de
soluciones al problema de almacenar datos.
Segn el contenido
nombre lo indica, el contenido son cifras o nmeros. Por ejemplo, una coleccin de
resultados de anlisis de laboratorio, entre otras.
Almacenan las fuentes primarias, como por ejemplo, todo el contenido de todas
las ediciones de una coleccin de revistas cientficas.
Directorios.
Un ejemplo son las guas telefnicas en formato electrnico.
Banco de imgenes, audio, video, multimedia, etc.
Bases de datos o bibliotecas de informacin Biolgica.
Respaldo y recuperacin.
Control de concurrencia.
Seguridad e integridad.
Diccionario de datos
Es una base de datos donde se guardan todas las propiedades de la base de datos,
descripcin de la estructura, relaciones entre los datos, etc.
Es una persona o grupo de personas responsables del control del sistema gestor de
base de datos.
3.2 4.2
1.2 2.2
Desarrollo de Verificar Condiciones
Anlisis y Diseo Preliminar 5.2
procedimientos de para la
Diagnstico del Proceso de solicitudes
usuario Implementacin
Sistema Actual de cambios
2.3
3.3
Diseo Detallado 5.3
1.3 Pruebas y
Modificaciones
Propuesta General Aceptacin del
al Sistema
de Solucin sistema
5.4
Revisin y Evaluacin
del Comportamiento
5.5
Identificacin de nuevas
Fig. 1.2 Metodologa LAGS necesidades
Los datos que se generan son campos en los cuales se tiene un registro del tipo de
equipo que entra a soporte tcnico a mantenimiento, o en su defecto que ingresa debido
algn tipo de problema en su funcionamiento, se obtienen datos tales como :
Nmero de Ticket.
Fecha de reporte.
Status del Ticket.
Cliente.
Contacto Directo con el Cliente.
Tipo de Equipo que se reporta.
Modelo del Equipo.
Nmero de Serie del Equipo.
Diagnstico.
Falla.
Periodo de Garanta.
Fecha de Inicio de la Garanta.
Fecha de Trmino de la Garanta.
Forma de Recepcin de reporte (Telfono o Correo Electrnico).
Observaciones.
La frecuencia con la cual se generan las operaciones o procesos para dar de alta el
reporte flucta demasiado, sin embargo la empresa NEC de Mxico S.A. de C.V. tiene un
registro en el cual se presenta que en promedio se reciben al da de 10 a 20 reportes de
equipo daado, equipo que se recibe para mantenimiento correctivo y/o preventivo.
Los procesos que conforman la actividad que se analiza, son las rdenes de servicio
que necesita un cliente, son procesos por separado ya que son servicios que se efectan
en diferente horario y fecha, y cada cliente necesita algn tipo de servicio en especfico.
Qu inicia la actividad?
La actividad se inicia cada que se recibe una llamada por parte del cliente o en su
defecto se recibe un correo electrnico por parte del cliente, y as se obtienen los campos
necesarios para generar el reporte.
Los datos que se introducen al sistema son los datos del cliente que solicita el
servicio de mantenimiento , y de igual manera es importante tener los datos del equipo
que necesita de un servicio de mantenimiento. El origen de los datos son via telfono o va
correo electrnico.
Los datos del sistema sern las entradas o registros que contendr el formulario
para generar un reporte y los datos que entregue el CENSYC a NEC de Mxico.
La informacin que se encuentra en el sistema ser utilizada por los Ingenieros que
se encuentra a cargo del rea de Soprte Audiovisual de NEC de Mxico S.A. de C.V.
Para qu la utiliza?
El usuario que se encuentre utilizando el sistema debe de tener una idea clara de
los registros que se utilizaran en el sistema y los cuales sern la base para poder crear la
base de datos, el sistema debe tener medidas de seguridad, ya que, debido a la
informacin que se maneja algunos campos del sistema estarn restringidos para evitar
que cualquier persona que se encuentre utilizando el sistema pueda modificar la
informacin, por tal motivo solo las personas autorizadas sern los nicos usuarios con los
permisos necesarios para dar de alta reportes en su debido caso poder modificar algn
tipo de informacin.
Los datos obtenidos al dar de alta los reportes podrn ser consultados
posteriormente para su seguimiento, y se contar con secciones en las cuales se podr
registrar un nuevo producto ya sea un proyectos o una pantalla con la finalidad de tener
actualizada la base de datos y con esto dar una excelente atencin por parte del rea de
Soporte Audiovisual.
Captulo 3:
DISEO Y
DESARROLLO
Para poder presentar de una forma adecuada las salidas ante el usuario se deben
de responder las siguientes preguntas, las cuales indican que el diseo del sistema se
encuentra en buena direccin.
La salida servir para que el personal del rea de Soporte Audiovisual tenga un
control sobre los reportes de los equipos daados que reciben, con esto se desea tener un
sistema eficiente para la atencin del cliente por parte del rea Audiovisual.
El diccionario de datos define los trminos asociados con las estructuras de datos,
que se emplean en el desarrollo y empleo de sistemas de informacin.
El diagrama entidad relacin que se construy para el sistema, establece las relaciones
que tienen las tablas para poder dar de alta un reporte. Las relaciones que integran el
diagrama entidad relacin son las siguientes:
Acceso.
Empresa.
Contacto.
Estado.
Forma de recepcin.
Tipo de Equipo.
Modelo Proyector.
Modelo Pantalla.
Estado.
La seccin Proyector presenta las opciones de Nuevo y Consultar. En sta parte del
sistema es para poder ingresar nuevo modelos de proyectores en el caso que sea
necesario actualizar la base de datos de los modelos. La seccin Consultar permite revisar
las caractersticas del modelo de proyector que se desee conocer.
La seccin Pantalla presenta las opciones de Nuevo y Consultar. En sta parte del
sistema es para poder ingresar nuevo modelos de pantallas en el caso que sea necesario
actualizar la base de datos de los modelos de pantallas. La seccin Consultar permite
revisar las caractersticas del modelo de pantalla que se desee conocer.
Captulo 4:
IMPLEMENTACIN
Tener los permisos por parte de NEC para la utilizacin de las imgenes
presentadas en el sistema.
Solicitar los permisos por parte de NEC para la implementacin del sistema.
Verificar la seguridad de la informacin mantenindola de carcter privado para la
empresa.
Requisitos de Hardware:
Ventajas Adicionales
Incidentes de soporte tcnico
Soporte tcnico prioritario en los foros de MSDN
Microsoft E-Learningcolecciones de cursos
(normalmente de 20 horas cada uno; por ao
calendario)
MSDN Magazine
Boletn de MSDN Flash
MSDN Online Concierge
Ofertas especiales de Microsoft y asociados
Fig. 2.1 Caractersticas Visual Studio 2010
Se tendr una bitcora, una base de datos con los problemas que los usuarios han
reportado para que as se tenga un control estadstico de cmo est funcionando el
sistema y posteriormente analizar y evaluar, si es necesario realizar una correccin en el
diseo del sistema, y la urgencia con la cual se debe realizar el cambio, as como, se
evaluar la falla ms comn para corregir rpidamente ese problema.
La observacin por parte del administrador del sistema y sobre todo de las
personas que estarn en el constante uso del sistema deber mantener contacto con el
diseador del sistema para presentar sus observaciones y dar un mantenimiento
constante al sistema y as asegurar su ptimo funcionamiento.
Conclusiones
El sistema de control de reportes se mantendr en un periodo de prueba, pero se
ha observado que el proceso para poder dar de alta un reporte y mantener el control y el
seguimiento del mismo, ha mejorado y la atencin que otorga el rea de Soporte
Audiovisual a sus clientes ha sido ms eficiente.
Recomendaciones
El trabajo que aqu se presenta ofrece oportunidades amplias para su
perfeccionamiento y profundizacin, pero difcilmente para ser tomado como otro posible
tema de tesis, esto debido a que ya la base y estructura del sistema estn completamente
desarrolladas, lo cual indica que la profundizacin puede ser vista a niveles de nuevos
reportes, actualizacin de algn campo que requiera el reporte, nueva relacin entre las
tablas de la base de datos, automatizacin de tareas.
ndice de Figuras
ndice de Tablas
FIG. 1.2 METODOLOGA LAGS ................................................................................................................... 27
Fuentes Bibliogrficas
F. Alonso Amo y Loc Martnez Normand, Introduccin a la Ingeniera del software, Delta
Publicaciones, 2005.
Carlos Muoz Raso, Cmo elaborar una investigacin de tesis, Prentice Hall, 1998.
Yolanda Cerezo Lpez, Rafael Caballero Roldn, Olga Pealba Rodrguez, Iniciacin a la
programacin en C#, 2006.
Pablo Lugo, Roderick Rangel, Sistema de Incidencias MSIS de Mega Soft Computacin C.A.
basado en Help Desk y sistemas de ticketing (Issue tracking system o trouble ticketing).
Tesis, Universidad Catlica Andrs Bello, 2007.
Fuentes Electrnicas
http://mygnet.net/manuales/csharp/creacion_de_reportes_en_visual_c_sharp.754
http://msdn.microsoft.com/es-es/library/bb629268(v=vs.90).aspx
http://alarcos.inf-cr.uclm.es/doc/ISOFTWAREI/Tema04.pdf
http://geeks.ms/blogs/lfranco/archive/2010/11/26/howto-crear-una-pantalla-de-inicio-splash-
screen.aspx
http://windowsclient.net/blogs/linkecubeko/archive/2009/05/01/crear-un-instalador-para-
windowsapplication-en-visual-studio-paso-a-paso.aspx
http://msdn.microsoft.com/es-es/library/bb629268(v=vs.90).aspx
http://giovannidotnet.wordpress.com/2011/04/15/creacin-de-reportes-con-crystal-report-con-
visual-studio-2010-en-windows-form/
http://www.onglasses.net/Default.aspx?id=1115
Anexos
Cdigo Fuente utilizado en el Sistema para el Control de Reportes de Equipo Daado de la
Empresa NEC de Mxico S.A. de C.V.
Men Principal
/* ====================================================================
* Proyecto: Sistema de Control de Reportes
* Escuela Superior de Ingeniera Mecnica y Elctrica
* Unidad Profesional Zacatenco
* Ingeniera en Comunicaciones y Electrnica
* Especialidad Computacin
* Desarrollado por Manuel Snchez Martnez
* ==================================================================== */
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace NEC_Windows_Form
{
public partial class Principal : Form
{
public Principal()
{
InitializeComponent();
this.Load += new EventHandler(Principal_Load);
}
using System.Configuration;
namespace NEC_Windows_Form
{
public partial class Agregar : Form
{
public Agregar()
{
InitializeComponent();
}
//Funciones iniciales
Interface_Inicial();
BTNGuardar.Enabled = false;
TBEmpleado.Focus();
}
if (oreporte.AgregaReporte(DFecha.Text, TBRecepcion.Text,
TBEmpresa.Text, TBContacto.Text, TBAtencion.Text, TBEquipo.Text, TBModeloP.Text,
TBModeloPAN.Text, TBSerie.Text, TBGarantia.Text, DInicioGarantia.Text,
DTerminoGarantia.Text, TBFalla.Text, TBDiagnostico.Text, TBObservaciones.Text,
TBStatus.Text))
{
MessageBox.Show("Reporte agregado
correctamente","Agregado",MessageBoxButtons.OK);
}
else
{
MessageBox.Show("Error al agregar el reporte " +
oreporte.mensaje,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
Limpiar_Formulario(); //Limpia el formulario
//Interface_Inicial(); //Prepara la interfaz del formulario inicial*/
}
TBRecepcion.Focus();
LBTicket.Enabled = true;
TBTicket.Enabled = true;
LBFecha.Enabled = true;
DFecha.Enabled = true;
LBRecepcion.Enabled = true;
TBRecepcion.Enabled = true;
LBEmpresa.Enabled = true;
TBEmpresa.Enabled = true;
LBContacto.Enabled = true;
TBContacto.Enabled = true;
LBAtencion.Enabled = true;
TBAtencion.Enabled = true;
LBEquipo.Enabled = true;
TBEquipo.Enabled = true;
LBProyector.Enabled = true;
TBModeloP.Enabled = true;
LBPantalla.Enabled = true;
TBModeloPAN.Enabled = true;
LBSerie.Enabled = true;
TBSerie.Enabled = true;
LBGarantia.Enabled = true;
TBGarantia.Enabled = true;
LBIniGaran.Enabled = true;
DInicioGarantia.Enabled = true;
LBTermiGara.Enabled = true;
DTerminoGarantia.Enabled = true;
LBFalla.Enabled = true;
TBFalla.Enabled = true;
LBDiagnostico.Enabled = true;
TBDiagnostico.Enabled = true;
LBObservaciones.Enabled = true;
TBObservaciones.Enabled = true;
LBStatus.Enabled = true;
TBStatus.Enabled = true;
BTNGuardar.Enabled = true;
TBRecepcion.Focus();
}
adap.Fill(dt);
return dt;
}
return coleccion;
}
}
adap.Fill(dt);
return dt;
}
return coleccion;
}
}
adap.Fill(dt);
return dt;
}
return coleccion;
}
}
adap.Fill(dt);
return dt;
}
return coleccion;
}
}
adap.Fill(dt);
return dt;
}
return coleccion;
}
}
adap.Fill(dt);
return dt;
}
return coleccion;
}
}
adap.Fill(dt);
return dt;
}
return coleccion;
}
}
adap.Fill(dt);
return dt;
return coleccion;
}
}
private bool BuscarReporte(string ticket)
{
//CONEXION
SqlConnection conexion = new SqlConnection();
conexion.ConnectionString = "Data
Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\Data\\Tesis.mdf;Integrated
Security=True;User Instance=True";
//Cadena SQL
String CadenaSQL = "SELECT MAX(ticket)+1 AS ticket FROM reporte";
//Adaptador
SqlDataAdapter Adaptador = new SqlDataAdapter(CadenaSQL, conexion);
//Data Set
DataSet ds = new DataSet();
//Contar Registros
if (ds.Tables[0].Rows.Count == 0)
{
ds.Dispose();
return false; //Registro no encontrado
}
else
{
//Cargar los campos en Text Box
TBTicket.Text = ds.Tables[0].Rows[0]["ticket"].ToString();
ds.Dispose();//cierra el data set y libera los recursos de memoria
que ocupa
try
{
if (BuscarReporte(TBTicket.Text) == true)
{
//MessageBox.Show("Reporte Encontrado ", "Mensaje");
}
else
{
MessageBox.Show("Reporte NO Encontrado ",
"Mensaje",MessageBoxButtons.OK,MessageBoxIcon.Error);
TBTicket.Focus();
}
SqlCommand cmd = new SqlCommand("SELECT ID,pass FROM empleados WHERE
ID='" + TBEmpleado.Text + "' AND pass='" + TBContra.Text + "' ",cn);
cn.Open();
cmd.ExecuteNonQuery();
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds,"empleados");
DataRow dro;
dro = ds.Tables["empleados"].Rows[0];
}
catch
{
MessageBox.Show("Los datos son incorrectos. Ingreselos nuevamente.",
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
Interface_Inicial();
}
finally
{
cn.Close();
}
}
}
}
Modificar Reporte
/* ====================================================================
* Proyecto: Sistema de Control de Reportes
* Escuela Superior de Ingeniera Mecnica y Elctrica
* Unidad Profesional Zacatenco
* Ingeniera en Comunicaciones y Electrnica
* Especialidad Computacin
* Desarrollado por Manuel Snchez Martnez
* ==================================================================== */
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Data.Sql;
namespace NEC_Windows_Form
{
public partial class Modificar : Form
{
public Modificar()
{
InitializeComponent();
}
TBStatus.AutoCompleteCustomSource =
AutoCompleClassStatus.Autocomplete();
TBStatus.AutoCompleteMode = AutoCompleteMode.Suggest;
TBStatus.AutoCompleteSource = AutoCompleteSource.CustomSource;
}
TBEmpleado.Focus();
}
BTNCANCELAR.Enabled = true;
BTNGuardar.Enabled = false;
BTNEntrar.Enabled = false;
LBBUSCATICKET.Enabled = true;
TBTICKET.Enabled = true;
BTNBUSCAR.Enabled = true;
LBTicket.Enabled = false;
TBNoTicket.Enabled = false;
LBFecha.Enabled = false;
DFecha.Enabled = false;
LBRecepcion.Enabled = false;
TBRecepcion.Enabled = false;
LBEmpresa.Enabled = false;
TBEmpresa.Enabled = false;
LBContacto.Enabled = false;
TBContacto.Enabled = false;
LBAtencion.Enabled = false;
TBAtencion.Enabled = false;
LBEquipo.Enabled = false;
TBEquipo.Enabled = false;
LBProyector.Enabled = false;
TBModeloP.Enabled = false;
LBPantalla.Enabled = false;
TBModeloPAN.Enabled = false;
LBSerie.Enabled = false;
TBSerie.Enabled = false;
LBGarantia.Enabled = false;
TBGarantia.Enabled = false;
LBInicioGarantia.Enabled = false;
DInicioGarantia.Enabled = false;
LBTerminoGarantia.Enabled = false;
DTerminoGarantia.Enabled = false;
LBFalla.Enabled = false;
TBFalla.Enabled = false;
LBDiagnostico.Enabled = false;
TBDiagnostico.Enabled = false;
LBObservaciones.Enabled = false;
TBObservaciones.Enabled = false;
LBStatus.Enabled = false;
TBStatus.Enabled = false;
TBTICKET.Focus();
TBStatus.Clear();
TBNoTicket.Clear();
//Cadena SQL
String CadenaSQL = "SELECT * FROM reporte WHERE ticket='" + ticket+"'";
//Adaptador
SqlDataAdapter Adaptador = new SqlDataAdapter(CadenaSQL, conexion);
//Data Set
DataSet ds = new DataSet();
//Contar Registros
if (ds.Tables[0].Rows.Count == 0)
{
ds.Dispose();
return false; //Registro no encontrado
}
else
{
//Cargar los campos en Text Box
TBNoTicket.Text = ds.Tables[0].Rows[0]["ticket"].ToString();
DFecha.Text = ds.Tables[0].Rows[0]["fecha_reporte"].ToString();
TBRecepcion.Text =
ds.Tables[0].Rows[0]["forma_recepcion"].ToString();
TBEmpresa.Text = ds.Tables[0].Rows[0]["empresa"].ToString();
TBContacto.Text = ds.Tables[0].Rows[0]["contacto"].ToString();
TBAtencion.Text = ds.Tables[0].Rows[0]["atencion"].ToString();
TBEquipo.Text = ds.Tables[0].Rows[0]["tipo_equipo"].ToString();
TBModeloP.Text =
ds.Tables[0].Rows[0]["modelo_proyector"].ToString();
TBModeloPAN.Text
=ds.Tables[0].Rows[0]["modelo_pantalla"].ToString();
TBSerie.Text = ds.Tables[0].Rows[0]["serie_equipo"].ToString();
TBGarantia.Text = ds.Tables[0].Rows[0]["garantia"].ToString();
DInicioGarantia.Text =
ds.Tables[0].Rows[0]["inicio_garantia"].ToString();
DTerminoGarantia.Text =
ds.Tables[0].Rows[0]["termino_garantia"].ToString();
TBFalla.Text = ds.Tables[0].Rows[0]["falla"].ToString();
TBDiagnostico.Text = ds.Tables[0].Rows[0]["diagnostico"].ToString();
TBObservaciones.Text =
ds.Tables[0].Rows[0]["observaciones"].ToString();
TBStatus.Text = ds.Tables[0].Rows[0]["status"].ToString();
//Cadena SQL
String CadenaSQL = "UPDATE reporte SET ";
CadenaSQL = CadenaSQL + "fecha_reporte = '" + fecha_reporte + "',";
CadenaSQL = CadenaSQL + "forma_recepcion = '" + forma_recepcion +
"',";
CadenaSQL = CadenaSQL + "empresa = '" + empresa + "',";
CadenaSQL = CadenaSQL + "contacto = '" + contacto + "',";
CadenaSQL = CadenaSQL + "atencion = '" + atencion + "',";
CadenaSQL = CadenaSQL + "tipo_equipo = '" + tipo_equipo + "',";
CadenaSQL = CadenaSQL + "modelo_Proyector = '" + modelo_Proyector +
"',";
CadenaSQL = CadenaSQL + "modelo_Pantalla = '" + modelo_Pantalla +
"',";
CadenaSQL = CadenaSQL + "serie_equipo = '" + serie_equipo + "',";
CadenaSQL = CadenaSQL + "garantia = '" + garantia + "',";
CadenaSQL = CadenaSQL + "inicio_garantia = '" + inicio_garantia +
"',";
CadenaSQL = CadenaSQL + "termino_garantia = '" + termino_garantia +
"',";
CadenaSQL = CadenaSQL + "falla = '" + falla + "',";
CadenaSQL = CadenaSQL + "diagnostico = '" + diagnostico + "',";
CadenaSQL = CadenaSQL + "observaciones = '" + observaciones + "',";
//Comando SQL
SqlCommand Comando = Conexion.CreateCommand();
Comando.CommandText = CadenaSQL;
adap.Fill(dt);
return dt;
}
return coleccion;
}
}
adap.Fill(dt);
return dt;
}
return coleccion;
}
}
adap.Fill(dt);
return dt;
}
return coleccion;
}
}
adap.Fill(dt);
return dt;
}
return coleccion;
}
}
adap.Fill(dt);
return dt;
}
return coleccion;
}
}
try
{
SqlCommand cmd = new SqlCommand("SELECT ID,pass FROM empleados WHERE
ID='" + TBEmpleado.Text + "' AND pass='" + TBContra.Text + "' ", cn);
cn.Open();
cmd.ExecuteNonQuery();
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds, "empleados");
DataRow dro;
dro = ds.Tables["empleados"].Rows[0];
Imprimir Reporte
/* ====================================================================
* Proyecto: Sistema de Control de Reportes
* Escuela Superior de Ingeniera Mecnica y Elctrica
* Unidad Profesional Zacatenco
* Ingeniera en Comunicaciones y Electrnica
* Especialidad Computacin
* Desarrollado por Manuel Snchez Martnez
* ==================================================================== */
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Data.Sql;
using System.Data.SqlTypes;
using System.IO;
using Microsoft.Office.Interop.Word;
using Microsoft.Office.Interop;
using Word = Microsoft.Office.Interop.Word;
namespace NEC_Windows_Form
{
public partial class Imprimir_Reporte : Form
{
public Imprimir_Reporte()
{
InitializeComponent();
TBDiagnostico.Clear();
TBObservaciones.Clear();
TBStatus.Clear();
File.Copy(@"C:\Documentos\ordenServicio.docx",
@"C:\Reportes\Ticket_#" + TBBuscar.Text + @"\Ticket_#" + TBBuscar.Text +
".docx");//Se copia el archivo que es una plantilla predefinida en formato Word y al
copiar se llena con los datos solicitados
documento = MSWord.Documents.Open(@"C:\Reportes\Ticket_#" +
TBBuscar.Text + @"\Ticket_#" + TBBuscar.Text + ".docx");
//Se llena el documento Word utilizando las marcas puestas en la plantilla con los
datos cargados desde la base de datos
documento.Bookmarks["FechaActual"].Range.Text =
FechaActual.Text;
documento.Bookmarks["fecha_reporte"].Range.Text = DFecha.Text;
documento.Bookmarks["ticket"].Range.Text = TBNoTicket.Text;
documento.Bookmarks["empresa"].Range.Text = TBEmpresa.Text;
documento.Bookmarks["contacto"].Range.Text = TBContacto.Text;
documento.Bookmarks["correo"].Range.Text = TBCorreo.Text;
documento.Bookmarks["tipo_equipo"].Range.Text =
FechaActual.Text;
documento.Bookmarks["modelo_pantalla"].Range.Text =
TBModeloPAN.Text;
documento.Bookmarks["modelo_proyector"].Range.Text =
TBModeloP.Text;
documento.Bookmarks["serie_equipo"].Range.Text = TBSerie.Text;
documento.Bookmarks["garantia"].Range.Text = TBGarantia.Text;
documento.Bookmarks["inicio_garantia"].Range.Text =
DInicioGarantia.Text;
documento.Bookmarks["termino_garantia"].Range.Text =
DTerminoGarantia.Text;
documento.Save();
MSWord.Visible = true;
MessageBox.Show(@"Reporte Guardado en C:\Reportes\Ticket_#" +
TBBuscar.Text,"Aviso",MessageBoxButtons.OK,MessageBoxIcon.Information);
Limpiar_Formulario();
}
catch (Exception Exc)
{
MessageBox.Show(@"El reporte ya se encuentra guardado, revise la
carpeta
C:\Reportes\Ticket_#","Advertencia",MessageBoxButtons.OK,MessageBoxIcon.Error);
Limpiar_Formulario();
}
}
else
{
MessageBox.Show("Reporte NO Encontrado ", "Mensaje");
TBBuscar.Focus();
}
}
//Cadena SQL
String CadenaSQL = "SELECT * FROM reporte WHERE ticket='" + ticket +
"'";
String CadenaSQL2 = "SELECT * FROM empresas";
//Adaptador
SqlDataAdapter Adaptador = new SqlDataAdapter(CadenaSQL, conexion);
SqlDataAdapter Adaptador2 = new SqlDataAdapter(CadenaSQL2, conexion);
//Data Set
DataSet ds = new DataSet();
DataSet ds2 = new DataSet();
//Contar Registros
if (ds.Tables[0].Rows.Count == 0 || ds2.Tables[0].Rows.Count == 0)
{
ds.Dispose();
ds2.Dispose();
return false; //Registro no encontrado
}
else
{
//Cargar los campos en Text Box
TBNoTicket.Text = ds.Tables[0].Rows[0]["ticket"].ToString();
DFecha.Text = ds.Tables[0].Rows[0]["fecha_reporte"].ToString();
TBRecepcion.Text =
ds.Tables[0].Rows[0]["forma_recepcion"].ToString();
TBEmpresa.Text = ds.Tables[0].Rows[0]["empresa"].ToString();
TBContacto.Text = ds.Tables[0].Rows[0]["contacto"].ToString();
TBAtencion.Text = ds.Tables[0].Rows[0]["atencion"].ToString();
TBEquipo.Text = ds.Tables[0].Rows[0]["tipo_equipo"].ToString();
TBModeloP.Text =
ds.Tables[0].Rows[0]["modelo_proyector"].ToString();
TBModeloPAN.Text =
ds.Tables[0].Rows[0]["modelo_pantalla"].ToString();
TBSerie.Text = ds.Tables[0].Rows[0]["serie_equipo"].ToString();
TBGarantia.Text = ds.Tables[0].Rows[0]["garantia"].ToString();
DInicioGarantia.Text =
ds.Tables[0].Rows[0]["inicio_garantia"].ToString();
DTerminoGarantia.Text =
ds.Tables[0].Rows[0]["termino_garantia"].ToString();
TBFalla.Text = ds.Tables[0].Rows[0]["falla"].ToString();
TBDiagnostico.Text = ds.Tables[0].Rows[0]["diagnostico"].ToString();
TBObservaciones.Text =
ds.Tables[0].Rows[0]["observaciones"].ToString();
TBStatus.Text = ds.Tables[0].Rows[0]["status"].ToString();
TBCorreo.Text = ds2.Tables[0].Rows[0]["correo"].ToString();
{
TBUSCATICKET.Focus();
//cargar los datos para el autocomplete del textbox Proyector
TBUSCATICKET.AutoCompleteCustomSource = AutoCompleClass.Autocomplete();
TBUSCATICKET.AutoCompleteMode = AutoCompleteMode.Suggest;
TBUSCATICKET.AutoCompleteSource = AutoCompleteSource.CustomSource;
}
adap.Fill(dt);
return dt;
}
adap.Fill(dt);
return dt;
}
DataTable myTable;
myTable = new DataTable();
myDataAdapter.Fill(myTable);
DataModelo.DataSource = myTable;
TBModelo.Enabled = true;
}
adap.Fill(dt);
return dt;
}
adap.Fill(dt);
return dt;
}
if (oreporte.AgregaPantalla(TBTipo.Text, TBModelo.Text,
TBResoluciuon.Text, TBDisplay.Text))
{
MessageBox.Show("Nuevo modelo de Pantalla agregado
correctamente","Agregado",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
else
{
MessageBox.Show("Error al agregar el reporte " +
oreporte.mensaje,"Error");
}
Limpiar_Formulario(); //Limpia el formulario
//Interface_Inicial(); //Prepara la interfaz del formulario inicial*/
}
//Cadena SQL
String CadenaSQL = "SELECT MAX(ID)+1 AS ID FROM pantalla";
//Adaptador
SqlDataAdapter Adaptador = new SqlDataAdapter(CadenaSQL, conexion);
//Data Set
DataSet ds = new DataSet();
//Contar Registros
if (ds.Tables[0].Rows.Count == 0)
{
ds.Dispose();
return false; //Registro no encontrado
}
else
{
//Cargar los campos en Text Box
ID.Text = ds.Tables[0].Rows[0]["ID"].ToString();
ds.Dispose();//cierra el data set y libera los recursos de memoria
que ocupa
adap.Fill(dt);
return dt;
}
return coleccion;
}
}
adap.Fill(dt);
return dt;
}
return coleccion;
}
}
SqlDataSource1.ConnectionString = "Data
Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\Data\\Tesis.mdf;Integrated
Security=True;User Instance=True";
adap.Fill(dt);
return dt;
}
return coleccion;
}
}
adap.Fill(dt);
return dt;
}
{
DataTable dt = Datos();
//Cadena SQL
String CadenaSQL = "SELECT * FROM pantalla WHERE modelo='" + modelo +
"'";
//Adaptador
SqlDataAdapter Adaptador = new SqlDataAdapter(CadenaSQL, conexion);
//Data Set
DataSet ds = new DataSet();
//Contar Registros
if (ds.Tables[0].Rows.Count == 0)
{
ds.Dispose();
return false; //Registro no encontrado
}
else
{
//Cargar los campos en Text Box
IDTB.Text = ds.Tables[0].Rows[0]["ID"].ToString();
TBTipo.Text = ds.Tables[0].Rows[0]["tipo"].ToString();
TBModelo.Text = ds.Tables[0].Rows[0]["modelo"].ToString();
TBResolucion.Text = ds.Tables[0].Rows[0]["resolucion"].ToString();
TBDisplay.Text = ds.Tables[0].Rows[0]["dimension"].ToString();
LBBuscarModelo.Enabled = true;
TBBuscar.Enabled = true;
BTNBuscar.Enabled = true;
IDLabel.Enabled = false;
IDTB.Enabled = false;
LBDisplay.Enabled = false;
LBProyector.Enabled = false;
LBResolucion.Enabled = false;
LBTipo.Enabled = false;
TBDisplay.Enabled = false;
TBModelo.Enabled = false;
TBResolucion.Enabled = false;
TBTipo.Enabled = false;
TBBuscar.Focus();
}
IDLabel.Enabled = true;
IDTB.Enabled = true;
LBDisplay.Enabled = true;
LBProyector.Enabled = true;
LBResolucion.Enabled = true;
LBTipo.Enabled = true;
TBDisplay.Enabled = true;
TBModelo.Enabled = true;
TBResolucion.Enabled = true;
TBTipo.Enabled = true;
}
adap.Fill(dt);
return dt;
}
TBTipo.AutoCompleteCustomSource = AutoCompleClassTipo.Autocomplete();
TBTipo.AutoCompleteMode = AutoCompleteMode.Suggest;
TBTipo.AutoCompleteSource = AutoCompleteSource.CustomSource;
if (BuscarReporte(ID.Text) == true)
{
// MessageBox.Show("Reporte Encontrado ", "Mensaje");
}
else
{
MessageBox.Show("Reporte NO Encontrado ", "Mensaje");
ID.Focus();
}
}
private void BTNCancelar_Click(object sender, EventArgs e)
{
this.Close();
}
if (oreporte.AgregaProyector(TBTipo.Text, TBModelo.Text,
TBLumenes.Text))
{
MessageBox.Show("Nuevo Modelo de Proyector agregado correctamente",
"Agregado",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
else
{
MessageBox.Show("Error al agregar el reporte " + oreporte.mensaje,
"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
Limpiar_Formulario(); //Limpia el formulario
}
TBLumenes.Clear();
}
private bool BuscarReporte(string ticket)
{
//CONEXION
SqlConnection conexion = new SqlConnection();
conexion.ConnectionString = "Data
Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\Data\\Tesis.mdf;Integrated
Security=True;User Instance=True";
//Cadena SQL
String CadenaSQL = "SELECT MAX(ID)+1 AS ID FROM proyector";
//Adaptador
SqlDataAdapter Adaptador = new SqlDataAdapter(CadenaSQL, conexion);
//Data Set
DataSet ds = new DataSet();
//Contar Registros
if (ds.Tables[0].Rows.Count == 0)
{
ds.Dispose();
return false; //Registro no encontrado
}
else
{
//Cargar los campos en Text Box
ID.Text = ds.Tables[0].Rows[0]["ID"].ToString();
ds.Dispose();//cierra el data set y libera los recursos de memoria
que ocupa
}
public static class AutoCompleClassTipo
{
//mtodo para cargar los datos de la base de datos
public static DataTable Datos()
{
DataTable dt = new DataTable();
adap.Fill(dt);
return dt;
}
return coleccion;
}
}
public static class AutoCompleClassModelo
{
//mtodo para cargar los datos de la base de datos
public static DataTable Datos()
{
DataTable dt = new DataTable();
adap.Fill(dt);
return dt;
}
return coleccion;
}
}
public static class AutoCompleClassLumenes
{
//mtodo para cargar los datos de la base de datos
public static DataTable Datos()
{
DataTable dt = new DataTable();
adap.Fill(dt);
return dt;
}
return coleccin;
}
}
}
}
TBModelo.Enabled = false;
TBTipo.Enabled = false;
TBBusca.Focus();
}
if (BuscarProyector(TBBusca.Text) == true)
{
//MessageBox.Show("Reporte Encontrado ", "Mensaje");
Interface_Datos();
}
else
{
MessageBox.Show("El modelo que se busc NO se encuentra en la Base
de Datos ", "Advertencia");
Interface_Inicial();
TBBusca.Focus();
}
}
//Conexion
SqlConnection Conexion = new SqlConnection();
Conexion.ConnectionString = "Data
Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\Data\\Tesis.mdf;Integrated
Security=True;User Instance=True";
//Cadena SQL
String CadenaSQL = "SELECT * FROM proyector WHERE Modelo='"+ modelo +
"'";
//Adaptador
SqlDataAdapter Adaptador = new SqlDataAdapter(CadenaSQL,Conexion);
//Dataset
DataSet ds = new DataSet();
//llenar el Dataset
Conexion.Open();
Adaptador.Fill(ds);
Conexion.Close();
//Contar Registros
if (ds.Tables[0].Rows.Count == 0)
{
ds.Dispose();
return false;
}
else
{
TBID.Text = ds.Tables[0].Rows[0]["ID"].ToString();
TBTipo.Text = ds.Tables[0].Rows[0]["Tipo"].ToString();
TBModelo.Text = ds.Tables[0].Rows[0]["Modelo"].ToString();
TBLumenes.Text = ds.Tables[0].Rows[0]["Lumenes"].ToString();
ds.Dispose();
return true;
}
}
adap.Fill(dt);
return dt;
}
}
}
}
if
(oreporte.AgregaEmpresa(TBNombre.Text,TBContacto.Text,TBCorreo.Text,TBTelefono.Text)
)
{
//Cadena SQL
String CadenaSQL = "SELECT MAX(ID)+1 AS ID FROM empresas";
//Adaptador
SqlDataAdapter Adaptador = new SqlDataAdapter(CadenaSQL, conexion);
//Data Set
DataSet ds = new DataSet();
//Contar Registros
if (ds.Tables[0].Rows.Count == 0)
{
ds.Dispose();
return false; //Registro no encontrado
}
else
{
//Cargar los campos en Text Box
IDLB.Text = ds.Tables[0].Rows[0]["ID"].ToString();
ds.Dispose();//cierra el data set y libera los recursos de memoria
que ocupa
return true; //Registro Existe
}
}
}
}
else
{
MessageBox.Show("El modelo que se busc NO se encuentra en la Base
de Datos ", "Advertencia");
Interface_Inicial();
TBBuscar.Focus();
}
}
private bool BuscarEmpresa(string empresa)
{
//CONEXION
SqlConnection conexion = new SqlConnection();
conexion.ConnectionString = "Data
Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\Data\\Tesis.mdf;Integrated
Security=True;User Instance=True";
//Cadena SQL
String CadenaSQL = "SELECT * FROM empresas WHERE empresa='" + empresa +
"'";
//Adaptador
SqlDataAdapter Adaptador = new SqlDataAdapter(CadenaSQL, conexion);
//Data Set
DataSet ds = new DataSet();
//Contar Registros
if (ds.Tables[0].Rows.Count == 0)
{
ds.Dispose();
return false; //Registro no encontrado
}
else
{
//Cargar los campos en Text Box
IDLB.Text = ds.Tables[0].Rows[0]["ID"].ToString();
TBNombre.Text = ds.Tables[0].Rows[0]["empresa"].ToString();
TBContacto.Text = ds.Tables[0].Rows[0]["contacto"].ToString();
TBCorreo.Text = ds.Tables[0].Rows[0]["correo"].ToString();
TBTelefono.Text = ds.Tables[0].Rows[0]["telefono"].ToString();
BTNBuscar.Enabled = true;
LBID.Enabled = false;
IDLB.Enabled = false;
LBNombre.Enabled = false;
TBNombre.Enabled = false;
LBContacto.Enabled = false;
TBContacto.Enabled = false;
LBCorreo.Enabled = false;
TBCorreo.Enabled = false;
LBTelefono.Enabled = false;
TBTelefono.Enabled = false;
TBBuscar.Focus();
}
adap.Fill(dt);
return dt;
}
{
DataTable dt = Datos();
return Procesado;
}
try
{
comando.ExecuteNonQuery();
conexion.Close();
inserta = "";
Procesado = true;
}
catch (SqlException Exc)
{
mensaje = Exc.ToString();
}
return Procesado;
}
try
{
//Creacin de un objeto comando
//inserta Es la cadena que define el comando que se desea ejecutar
//Conexion Es la conexin a la base de datos que ya se realiz
anterior
SqlCommand comando = new SqlCommand(inserta, conexion);
conexion.Open();
comando.ExecuteNonQuery();
conexion.Close();
inserta = "";
Procesado = true;
}
catch (SqlException Exc)
{
mensaje = Exc.ToString();
}
return Procesado;
}
try
{
//Creacin de un objeto comando
//inserta Es la cadena que define el comando que se desea ejecutar
//Conexion Es la conexin a la base de datos que ya se realiz
anterior
SqlCommand comando = new SqlCommand(inserta, conexion);
conexion.Open();
comando.ExecuteNonQuery();
conexion.Close();
inserta = "";
Procesado = true;
}
catch (SqlException Exc)
{
mensaje = Exc.ToString();
}
return Procesado;
}
public bool AgregaEmpresa(string empresa, string contacto, string correo,
string telefono)
{
bool Procesado = false;
string inserta = "";
mensaje = "";
//Preparacin del comando insert tal como necesitamos que se ejecute en
la base de datos
inserta = string.Format("INSERT INTO empresas (empresa, contacto,
correo, telefono) VALUES ('{0}','{1}','{2}','{3}')",empresa, contacto, correo,
telefono);
try
{
//Creacin de un objeto comando
//inserta Es la cadena que define el comando que se desea ejecutar
//Conexion Es la conexin a la base de datos que ya se realiz
anterior
SqlCommand comando = new SqlCommand(inserta, conexion);
conexion.Open();
comando.ExecuteNonQuery();
conexion.Close();
inserta = "";
Procesado = true;
}
catch (SqlException Exc)
{
mensaje = Exc.ToString();
}
return Procesado;
}
//Cadena SQL
String CadenaSQL = "SELECT * FROM reporte WHERE modelo = " + modelo;
//Adaptador
SqlDataAdapter Adaptador = new SqlDataAdapter(CadenaSQL, conexion);
//Data Set
TesisDataSet1 ds = new TesisDataSet1();
//Contar Registros
if (ds.Tables[0].Rows.Count == 0)
{
return false;
}
else
{
return true;
}
}
}
}