SlideShare una empresa de Scribd logo
Manual Técnico
Índice…
Este Manual trata sobre el diseño de la aplicación requerida por Cimaco, así como el
diseño de componentes que integran al sistema. El capítulo de desarrollo contiene
cuatro apartados, todos ellos explicados brevemente a continuación:
1 Análisis.- Apartado en el cual se detalla la problemática por la que atraviesa Cimaco.
2 Diseño de la base de datos.- Trata sobre el diseño de la base de datos requerida
por Mundo Verde.
.
4 Pantallas y Codificación.- Apartado en el cual se presenta el diseño de la aplicación
gráfica y el código.
1 Análisis… (La problemática que existe, y como lo resuelves viene
en tu reporte, básate en mi manual técnico)
2 Diseño de base de cimaco
Este apartado trata sobre el diseño de la base de datos que ha sido creada
para Cimaco. Se llegó a esta estructura, después de realizar el análisis de la
problemática de Cimaco, de estudiar sus procedimientos y los datos para realizarlos.
Se puede analizar la estructura con diferentes diagramas para su mejor
entendimiento.
2.1 Diagramas entidad relación
2.2 Tablas
A continuación se muestran las tablas detalladas de la base de datos de Cimaco
3 Aplicación gráfica y código
La codificación es parte fundamental de todo sistema de información. Este
apartado contiene el código que conforma la aplicación diseñada para Cimaco.
3.1 Menú principal
Este apartado muestra la parte gráfica del sistema, las diferentes pantallas que
el usuario puede encontrar, dependiendo de la transacción que se desee realizar.
Fig. 2. Menú Principal.
La figura 2 muestra el menú principal, desde la cual se pueden realizar
búsquedas de equipos, reportes, acceder a impresiones de reportes, alarma de
mantenimiento y la identificación de usuarios.
A continuación se muestra el código con el que cuenta el menú principal. El
primer fragmento muestra la conexión con la base de datos.
public MySql.Data.MySqlClient.MySqlConnection conexion;
public MySql.Data.MySqlClient.MySqlCommand comando;
public MySql.Data.MySqlClient.MySqlDataReader reader;
public string cad_conexion =
@"User=root;password=123456;Server=localhost;Database=cimaco;";
El siguiente fragmento de código pertenece a la identificación del usuario.
private void button3_Click(object sender, EventArgs e)
{
if (textBox2.Text.Trim() == "" | textBox3.Text.Trim() == "")
{
MessageBox.Show("Indica el nombre de usuario y password");
return;
}
conexion = new
MySql.Data.MySqlClient.MySqlConnection(cad_conexion);
conexion.Open();
string cad_select = "SELECT * FROM mecanico WHERE
clave_mec='" + usuario + "' AND password='" + password + "'";
reader = comando.ExecuteReader();
if (reader.HasRows)
{
reader.Read();
menu a = new menu();
a.Activate();
a.Show();
this.Hide();
}
else
{
reader.Close();
}
conexion.Close();
}
El siguiente fragmento de codigo pertenece a los botones que realizan
busquedas en la base de datos y son mostradas en el datagrid, y tambien se
encuentra el fragmento de código perteneciente a la alarma de mantenimientos.
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text.Trim() == "")
{
MessageBox.Show("El nombre de dispositivo es requerido");
return;
}
MySqlConnection conn = new
MySqlConnection(@"User=root;password=123456;Server=localhost;Database=cim
aco;");
MySqlCommand consulta = new MySqlCommand("SELECT * from info
WHERE nom_dispositivo ='" + textBox1.Text.ToString() + "'", conn);
MySqlDataAdapter myDataAdapter = new
MySqlDataAdapter(consulta);
conn.Open();
myDataAdapter.Fill(myDataTable);
conn.Close();
dataGridView1.DataSource = myDataTable;
}
private void button2_Click(object sender, EventArgs e)
{
if (comboBox1.Text.Trim() == "")
{
MessageBox.Show("El nombre del departamento es
requerido");
return;
}
MySqlConnection conn = new
MySqlConnection(@"User=root;password=123456;Server=localhost;Database=cim
aco;");
MySqlCommand consulta = new MySqlCommand("SELECT * from info
WHERE depto ='" + comboBox1.Text.ToString() + "'", conn);
DataTable myDataTable = new DataTable();
MySqlDataAdapter(consulta);
conn.Open();
myDataAdapter.Fill(myDataTable);
conn.Close();
dataGridView1.DataSource = myDataTable;
}
private void button6_Click(object sender, EventArgs e)
{
MySqlConnection conn = new
MySqlConnection(@"User=root;password=123456;Server=localhost;Database=cim
aco;");
MySqlCommand consulta = new MySqlCommand("select * from info
where fecha_proxman= '" + fhoy + "'", conn);
MySqlDataAdapter myDataAdapter = new
MySqlDataAdapter(consulta);
conn.Open();
myDataAdapter.Fill(myDataTable);
conn.Close();
dataGridView1.DataSource = myDataTable;
}
private void button7_Click(object sender, EventArgs e)
{
if (textBox1.Text.Trim() == "")
{
MessageBox.Show("El nombre de dispositivo es requerido");
return;
}
MySqlConnection conn = new
MySqlConnection(@"User=root;password=123456;Server=localhost;Database=cim
aco;");
MySqlCommand consulta = new MySqlCommand("SELECT * from mant
WHERE nom_dispositivo ='" + textBox1.Text.ToString() + "'", conn);
DataTable myDataTable = new DataTable();
MySqlDataAdapter myDataAdapter = new
MySqlDataAdapter(consulta);
conn.Open();
myDataAdapter.Fill(myDataTable);
conn.Close();
dataGridView1.DataSource = myDataTable;
}
private void button4_Click(object sender, EventArgs e)
{
impresion a = new impresion();
a.Activate();
a.Show();
}
3.2 Menú
Este punto muestra la pantalla Menú (Fig. 3), la cual es la primera pantalla que
el administrador podrá ver, luego de identificarse en la pantalla de menú principal.
Fig. 3. Menú.
El siguiente fragmento de código, muestra el direccionamiento a las diferentes
secciones del sistema Cimaco.
private void button1_Click(object sender, EventArgs e)
{
equipos a = new equipos();
a.Activate();
a.Show();
this.Hide();
}
private void button2_Click(object sender, EventArgs e)
{
mantenimiento a = new mantenimiento();
a.Activate();
a.Show();
this.Hide();
}
private void button3_Click(object sender, EventArgs e)
{
mecanico a = new mecanico();
a.Activate();
a.Show();
this.Hide();
}
3.3 Equipos
En la Figura 4, se puede observar la pantalla perteneciente a Equipos, en la
cual se efectúan altas, bajas, cambios y consultas, de la información de los equipos
de cómputo en Cimaco.
Fig. 4. Equipos ó Dispositivos.
A continuación se muestra en fragmento de código perteneciente a la conexión
de la base de datos y el código de altas.
public MySql.Data.MySqlClient.MySqlConnection conexion;
public MySql.Data.MySqlClient.MySqlCommand comando;
public MySql.Data.MySqlClient.MySqlDataReader reader;
public string cad_conexion =
@"User=root;password=123456;Server=localhost;Database=cimaco;";
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text.Trim() == "")
{
MessageBox.Show("Ingresa el nombre del dispositivo");
return;
}
if (textBox2.Text.Trim() == "")
{
MessageBox.Show("Ingresa el piso");
return;
}
if (textBox3.Text.Trim() == "")
{
MessageBox.Show("Ingresa el sistema");
return;
}
if (textBox4.Text.Trim() == "")
{
MessageBox.Show("Ingresa la versión");
return;
}
if (textBox5.Text.Trim() == "")
{
MessageBox.Show("Ingresa el tipo");
return;
}
if (textBox6.Text.Trim() == "")
{
MessageBox.Show("Ingresa el grupo");
return;
}
if (textBox7.Text.Trim() == "")
{
MessageBox.Show("Ingresa el departamento");
return;
}
if (textBox8.Text.Trim() == "")
{
MessageBox.Show("Ingresa el encargado");
return;
}
if (textBox9.Text.Trim() == "")
{
MessageBox.Show("Ingresa la dirección ip");
return;
}
if (textBox10.Text.Trim() == "")
{
MessageBox.Show("Ingresa la licencia");
return;
}
if (textBox11.Text.Trim() == "")
{
MessageBox.Show("Ingresa la capacidad");
return;
}
if (textBox12.Text.Trim() == "")
{
MessageBox.Show("Ingresa la marca");
return;
}
if (textBox13.Text.Trim() == "")
{
MessageBox.Show("Ingresa el nombre del antivirus");
return;
}
if (textBox14.Text.Trim() == "")
{
MessageBox.Show("Ingresa el estado del equipo");
return;
}
string cad_select = "SELECT * from info";
try
{
conexion = new
MySql.Data.MySqlClient.MySqlConnection(cad_conexion);
conexion.Open();
comando = new
MySql.Data.MySqlClient.MySqlCommand(cad_select, conexion);
string a = textBox1.Text, b = textBox2.Text, c =
textBox3.Text, d = textBox4.Text;
string z = textBox5.Text, f = textBox6.Text, g =
textBox7.Text, h = textBox8.Text;
string i = textBox9.Text, j = textBox10.Text, k =
textBox11.Text, l = textBox12.Text;
string m = textBox13.Text, n = textBox14.Text, o =
textBox15.Text, p = textBox16.Text;
string q = textBox17.Text, r = textBox18.Text;
string cadins = "Insert into
info(nom_dispositivo,piso,sistema,version,tipo,grup_trab,depto,encargado,
ip,licencia,capacidad,marca,antivirus,activo,modelo,fecha_ad,fecha_man,fe
cha_proxman)";
cadins += "Values('" + a + "','" + b + "','" + c + "','"
+ d + "','" + z + "','" + f + "','" + g + "','" + h + "','" + i + "','" +
j + "','" + k + "','" + l + "','" + m + "','" + n + "','" + o + "','" + p
+ "','" + q + "','" + r + "')";
//se ejecuta el comando de la consulta
//creado por Juan José Guevara Soto
comando.CommandText = cadins;
comando.ExecuteNonQuery();
MessageBox.Show("La operación finalizó con exito");
}
catch (Exception ex) { MessageBox.Show(ex.Message); }
finally { conexion.Close(); }
}
El fragmento de código que se muestra a continuación, pertenece a las áreas
de consultas, bajas, actualizaciones y limpieza de la pantalla.
private void button2_Click(object sender, EventArgs e)
{
if (textBox1.Text.Trim() == "")
{
MessageBox.Show("El nombre del equipo no ha sido
indicado");
return;
}
// validarTextBoxes();
try
{
string criteria = textBox1.Text;
conexion = new
MySql.Data.MySqlClient.MySqlConnection(cad_conexion);
conexion.Open();
string cad_select = "SELECT * FROM info WHERE
nom_dispositivo='" + criteria + "'";
comando = new
MySql.Data.MySqlClient.MySqlCommand(cad_select, conexion);
reader = comando.ExecuteReader();
if (!(reader.HasRows))
{
MessageBox.Show("No se puede eliminar el registro");
reader.Close();
}
else
{
reader.Close();
string cad_delete = "DELETE FROM info WHERE
nom_dispositivo='" + criteria + "'";
MessageBox.Show(cad_delete);
comando = new
MySql.Data.MySqlClient.MySqlCommand(cad_delete, conexion);
comando.ExecuteNonQuery();
MessageBox.Show("Registro eliminado");
//limpiar();
}
}
catch (Exception ex) { MessageBox.Show(ex.Message); }
finally { conexion.Close(); }
}
private void button4_Click(object sender, EventArgs e)
{
if (textBox1.Text.Trim() == "")
{
MessageBox.Show("El nombre de dispositivo no ha sido
indicado");
return;
}
string no;
string nom;
string app;
string apm;
string tel;
string tell;
string ed;
string dir;
string ci;
string es;
string fn;
string tr;
string rf;
string cu;
string ns;
string fi;
string em;
string pu;
no = textBox1.Text;
nom = textBox2.Text;
app = textBox3.Text;
apm = textBox4.Text;
tel = textBox5.Text;
tell = textBox6.Text;
ed = textBox7.Text;
dir = textBox8.Text;
ci = textBox9.Text;
es = textBox10.Text;
fn = textBox11.Text;
tr = textBox12.Text;
rf = textBox13.Text;
cu = textBox14.Text;
ns = textBox15.Text;
fi = textBox16.Text;
em = textBox17.Text;
pu = textBox18.Text;
try
{
conexion = new
MySql.Data.MySqlClient.MySqlConnection(cad_conexion);
conexion.Open();
string cad_select = "SELECT * from info where
nom_dispositivo='" + no + "'";
comando = new
MySql.Data.MySqlClient.MySqlCommand(cad_select, conexion);
reader = comando.ExecuteReader();
if (!(reader.HasRows))
{
MessageBox.Show("No se pueden hacer cambios");
reader.Close();
}
else
{
reader.Close();
string cad_update = "UPDATE info set piso ='" + nom +
"',sistema='" + app + "',version='" + apm + "',tipo ='" + tel +
"',grup_trab='" + tell + "',depto='" + ed + "',encargado='" + dir +
"',ip='" + ci + "',licencia='" + es + "',capacidad ='" + fn + "',marca='"
+ tr + "',antivirus='" + rf + "',activo='" + cu + "',modelo='" + ns +
"',fecha_ad='" + fi + "',fecha_man='" + em + "',fecha_proxman='" + pu +
"' WHERE nom_dispositivo='" + no + "'";
//MessageBox.Show(cad_update);
comando.CommandText = cad_update;
comando.ExecuteNonQuery();
MessageBox.Show("Se actualizo el registro");
}
}
catch (Exception ex) { MessageBox.Show(ex.Message); }
finally { conexion.Close(); }
textBox1.Focus();
}
private void button5_Click(object sender, EventArgs e)
{
textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "";
textBox4.Text = "";
textBox5.Text = "";
textBox6.Text = "";
textBox7.Text = "";
textBox8.Text = "";
textBox9.Text = "";
textBox10.Text = "";
textBox11.Text = "";
textBox12.Text = "";
textBox13.Text = "";
textBox14.Text = "";
textBox15.Text = "";
textBox16.Text = "";
textBox17.Text = "";
textBox18.Text = "";
}
3.4 Mantenimiento
La Figura 5 muestra la pantalla Mantenimiento.
Fig. 5. Mantenimiento
El siguiente fragmento de código se encarga de las altas y bajas de la tabla Mant
. private void button6_Click(object sender, EventArgs e)
{
menu a = new menu();
a.Activate();
a.Show();
this.Hide();
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text.Trim() == "")
{
MessageBox.Show("Ingresa el número de reporte");
return;
}
if (textBox2.Text.Trim() == "")
{
MessageBox.Show("Ingresa el nombre del dispositivo");
return;
}
if (textBox3.Text.Trim() == "")
{
MessageBox.Show("Ingresa la fecha");
return;
}
if (textBox4.Text.Trim() == "")
{
MessageBox.Show("Ingresa el problema");
return;
}
if (textBox5.Text.Trim() == "")
{
MessageBox.Show("Ingresa la clave del mecanico");
return;
}
string cad_select = "SELECT * from mant";
try
{
conexion = new
MySql.Data.MySqlClient.MySqlConnection(cad_conexion);
conexion.Open();
comando = new
MySql.Data.MySqlClient.MySqlCommand(cad_select, conexion);
string a = textBox1.Text, b = textBox2.Text, c =
textBox3.Text, d = textBox4.Text;
string z = textBox5.Text;
string cadins = "Insert into
mant(no_rep,nom_dispositivo,fecha,problema,clave_mec)";
cadins += "Values('" + a + "','" + b + "','" + c + "','"
+ d + "','" + z + "')";
//se ejecuta el comando de la consulta
comando.CommandText = cadins;
comando.ExecuteNonQuery();
MessageBox.Show("La operación finalizó con exito");
}
catch (Exception ex) { MessageBox.Show(ex.Message); }
finally { conexion.Close(); }
}
private void button3_Click(object sender, EventArgs e)
{
if (textBox1.Text.Trim() == "")
{
MessageBox.Show("El No de Reporte no ha sido indicado");
return;
}
try
{
string criteria = textBox1.Text;
//////////////////////////////////////////////
conexion = new
MySql.Data.MySqlClient.MySqlConnection(cad_conexion);
conexion.Open();
/////////////////////////////////////////////////
string cad_select = "SELECT * from mant where
no_rep='" + criteria + "'";
//////////////////////////////////////////////////
comando = new
MySql.Data.MySqlClient.MySqlCommand(cad_select,conexion);
reader = comando.ExecuteReader();
/////////////////////////////////////////////////
if (reader.HasRows)
{
reader.Read();
textBox2.Text = reader.GetString(1);
textBox3.Text = reader.GetString(2);
textBox4.Text = reader.GetString(3);
textBox5.Text = reader.GetString(4);
}
else
{
reader.Close();
MessageBox.Show("no se encuentra registrado el
numero de reporte " + criteria);
textBox1.Focus();
}
}
catch (Exception ex) { MessageBox.Show(ex.Message); }
finally { conexion.Close(); }
}
private void button2_Click(object sender, EventArgs e)
{
if (textBox1.Text.Trim() == "")
{
MessageBox.Show("El número de reporte no ha sido
indicado");
return;
}
// validarTextBoxes();
try
{
string criteria = textBox1.Text;
conexion = new
MySql.Data.MySqlClient.MySqlConnection(cad_conexion);
conexion.Open();
string cad_select = "SELECT * FROM mant WHERE no_rep='" +
criteria + "'";
comando = new
MySql.Data.MySqlClient.MySqlCommand(cad_select, conexion);
reader = comando.ExecuteReader();
if (!(reader.HasRows))
{
MessageBox.Show("No se puede eliminar el registro");
reader.Close();
}
else
{
reader.Close();
string cad_delete = "DELETE FROM mant WHERE no_rep='"
+ criteria + "'";
MessageBox.Show(cad_delete);
comando = new
MySql.Data.MySqlClient.MySqlCommand(cad_delete, conexion);
comando.ExecuteNonQuery();
MessageBox.Show("Registro eliminado");
//limpiar();
}
}
catch (Exception ex) { MessageBox.Show(ex.Message); }
finally { conexion.Close(); }
}
El siguiente fragmento de código nos se encarga de las consultas, y cambios
de la tabla mant, que reside en la base de datos cimaco.
private void button4_Click(object sender, EventArgs e)
{
if (textBox1.Text.Trim() == "")
{
MessageBox.Show("El nombre de dispositivo no ha sido
indicado");
return;
}
string no;
string nom;
string app;
string apm;
string tel;
no = textBox1.Text;
nom = textBox2.Text;
app = textBox3.Text;
apm = textBox4.Text;
tel = textBox5.Text;
try
{
conexion = new
MySql.Data.MySqlClient.MySqlConnection(cad_conexion);
conexion.Open();
string cad_select = "SELECT * from mant where no_rep='" +
no + "'";
comando = new
MySql.Data.MySqlClient.MySqlCommand(cad_select, conexion);
reader = comando.ExecuteReader();
if (!(reader.HasRows))
{
MessageBox.Show("No se pueden hacer cambios");
reader.Close();
}
else
{
reader.Close();
string cad_update = "UPDATE mant set nom_dispositivo
='" + nom + "',fecha='" + app + "',problema='" + apm + "',clave_mec ='" +
tel + "' WHERE no_rep='" + no + "'";
//MessageBox.Show(cad_update);
comando.CommandText = cad_update;
comando.ExecuteNonQuery();
MessageBox.Show("Se actualizo el registro");
}
}
catch (Exception ex) { MessageBox.Show(ex.Message); }
finally { conexion.Close(); }
textBox1.Focus();
}
3.5 Mecánico
En la Figura 6 se muestra la pantalla mecánico, desde la cual se realizan altas,
bajas, consultas y cambios en la tabla mecanico.
Fig. 6. Mecánico
En el siguiente fragmento de código se puede observar el proceso de altas y
consultas.
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text.Trim() == "")
{
MessageBox.Show("Ingresa la clave del mecanico");
return;
}
if (textBox2.Text.Trim() == "")
{
MessageBox.Show("Ingresa el nombre del mecanico");
return;
}
string cad_select = "SELECT * from mecanico";
try
{
conexion = new
MySql.Data.MySqlClient.MySqlConnection(cad_conexion);
conexion.Open();
comando = new
MySql.Data.MySqlClient.MySqlCommand(cad_select, conexion);
string a = textBox1.Text, b = textBox2.Text, c =
textBox3.Text;
string cadins = "Insert into
mecanico(clave_mec,nombre,password)";
cadins += "Values('" + a + "','" + b + "','" + c + "')";
//se ejecuta el comando de la consulta
comando.CommandText = cadins;
comando.ExecuteNonQuery();
MessageBox.Show("La operación finalizó con exito");
}
catch (Exception ex) { MessageBox.Show(ex.Message); }
finally { conexion.Close(); }
}
private void button3_Click(object sender, EventArgs e)
{
if (textBox1.Text.Trim() == "")
{
MessageBox.Show("La clave de reporte no ha sido
indicada");
return;
}
try
{
string criteria = textBox1.Text;
//////////////////////////////////////////////
conexion = new
MySql.Data.MySqlClient.MySqlConnection(cad_conexion);
conexion.Open();
/////////////////////////////////////////////////
string cad_select = "SELECT * from mecanico where
clave_mec='" + criteria + "'";
//////////////////////////////////////////////////
comando = new
MySql.Data.MySqlClient.MySqlCommand(cad_select, conexion);
reader = comando.ExecuteReader();
/////////////////////////////////////////////////
if (reader.HasRows)
{
reader.Read();
textBox2.Text = reader.GetString(1);
textBox3.Text = reader.GetString(2);
}
else
{
reader.Close();
MessageBox.Show("no se encuentra registrada esa clave
de mecanico " + criteria);
textBox1.Focus();
}
}
catch (Exception ex) { MessageBox.Show(ex.Message); }
finally { conexion.Close(); }
}
A continuación se despliegan los fragmentos de código que se encargan de las
bajas y cambios.
private void button2_Click(object sender, EventArgs e)
{
if (textBox1.Text.Trim() == "")
{
MessageBox.Show("La clave del mecanico no ha sido
indicada");
return;
}
// validarTextBoxes();
try
{
string criteria = textBox1.Text;
conexion = new
MySql.Data.MySqlClient.MySqlConnection(cad_conexion);
conexion.Open();
string cad_select = "SELECT * FROM mecanico WHERE
clave_mec='" + criteria + "'";
comando = new
MySql.Data.MySqlClient.MySqlCommand(cad_select, conexion);
reader = comando.ExecuteReader();
if (!(reader.HasRows))
{
MessageBox.Show("No se puede eliminar el registro");
reader.Close();
}
else
{
reader.Close();
string cad_delete = "DELETE FROM mecanico WHERE
clave_mec='" + criteria + "'";
MessageBox.Show(cad_delete);
comando = new
MySql.Data.MySqlClient.MySqlCommand(cad_delete, conexion);
comando.ExecuteNonQuery();
MessageBox.Show("Registro eliminado");
//limpiar();
}
}
catch (Exception ex) { MessageBox.Show(ex.Message); }
finally { conexion.Close(); }
}
private void button4_Click(object sender, EventArgs e)
{
if (textBox1.Text.Trim() == "")
{
MessageBox.Show("El nombre de dispositivo no ha sido
indicado");
return;
}
string no;
string nom;
string app;
no = textBox1.Text;
nom = textBox2.Text;
app = textBox3.Text;
try
{
conexion = new
MySql.Data.MySqlClient.MySqlConnection(cad_conexion);
conexion.Open();
string cad_select = "SELECT * from mecanico where
clave_mec='" + no + "'";
comando = new
MySql.Data.MySqlClient.MySqlCommand(cad_select, conexion);
reader = comando.ExecuteReader();
if (!(reader.HasRows))
{
MessageBox.Show("No se pueden hacer cambios");
reader.Close();
}
else
{
reader.Close();
string cad_update = "UPDATE mecanico set nombre='" +
nom + "',password='" + app + "' WHERE clave_mec='" + no + "'";
//MessageBox.Show(cad_update);
comando.CommandText = cad_update;
comando.ExecuteNonQuery();
MessageBox.Show("Se actualizo el registro");
}
}
catch (Exception ex) { MessageBox.Show(ex.Message); }
finally { conexion.Close(); }
textBox1.Focus();
3.6 Imprime
En la Figura 7 se muestra la pantalla imprime, desde la cual se pueden imprimir
reportes de mantenimiento, a esta pantalla se accede desde el Menú Principal.
Fig. 7. Imprime
A continuación se muestra el fragmento de código perteneciente a la pantalla
imprime, primero se hace una conexión con la base de datos, para luego comenzar a
crear un archivo con extensión .xps, se almacena y se imprime desde dicho programa.
namespace cimaco
{
public partial class impresion : Form
{
private MySqlConnection conexion = new
MySqlConnection(@"User=root;password=123456;Server=localhost;Database=cim
aco;");
public impresion()
{
InitializeComponent();
}
public MySql.Data.MySqlClient.MySqlCommand comando;
public MySql.Data.MySqlClient.MySqlDataReader reader;
private void button1_Click(object sender, EventArgs e)
{
PrintDocument hoja = new PrintDocument();
hoja.PrintPage += new PrintPageEventHandler(this.imprime);
PrintPreviewDialog ppd = new PrintPreviewDialog();
ppd.Document = hoja;
ppd.ShowDialog();
}
private void imprime(object sender, PrintPageEventArgs e)
{
int x = 50;
int y = 50;
Font fuente = new Font("Arial", 15);
SolidBrush pluma = new SolidBrush(Color.Black);
Point punto = new Point(x, y);
string criteria = textBox1.Text;
string consulta = "SELECT * FROM mant WHERE no_rep = '" +
criteria + "'";
conexion.Open();
MySqlCommand command = new MySqlCommand(consulta, conexion);
//conexion.Open();
MySqlDataReader reader = command.ExecuteReader();
// Call Read before accessing data.
while (reader.Read())
{
e.Graphics.DrawString("Número de Reporte:" + " " +
reader[0].ToString(), fuente, pluma, punto);
punto.Y += 50;
e.Graphics.DrawString("Nombre de Dispositivo:" + " " +
reader[1].ToString(), fuente, pluma, punto);
punto.Y += 50;
e.Graphics.DrawString("Fecha:" + " " +
reader[2].ToString(), fuente, pluma, punto);
punto.Y += 50;
e.Graphics.DrawString("Problema:" + " " +
reader[3].ToString(), fuente, pluma, punto);
punto.Y += 50;
e.Graphics.DrawString("Clave del Mecánico:" + " " +
reader[4].ToString(), fuente, pluma, punto);
punto.Y += 50;
}
reader.Close();
conexion.Close();
}

Más contenido relacionado

La actualidad más candente

Proyecto de un formulario de facturacion
Proyecto de un formulario de facturacionProyecto de un formulario de facturacion
Proyecto de un formulario de facturacion
Royer Tuesta Salas
 
Practica de visual basic sistema de facturación
Practica de visual basic sistema de facturaciónPractica de visual basic sistema de facturación
Practica de visual basic sistema de facturación
milenka796
 
Aplication
AplicationAplication
Aplication
wouyrmz
 
My Sql A C#
My Sql A C#My Sql A C#
My Sql A C#
deiccy anahi
 
Tallerprogramacion
TallerprogramacionTallerprogramacion
Tallerprogramacion
johanadoria
 
Ap Is En Windows Mobile 5.0 V2.1
Ap Is En Windows Mobile 5.0 V2.1Ap Is En Windows Mobile 5.0 V2.1
Ap Is En Windows Mobile 5.0 V2.1
Guillermo Eliezer Coello Beltran
 
Ejercicios de programacion concurrente
Ejercicios de programacion concurrenteEjercicios de programacion concurrente
Ejercicios de programacion concurrente
edgar muñoz
 
Cristinagananparedes
CristinagananparedesCristinagananparedes
Cristinagananparedes
CRISTINA Ganan
 
Práctica Completa en Flash – ActionScript
Práctica Completa en Flash – ActionScriptPráctica Completa en Flash – ActionScript
Práctica Completa en Flash – ActionScript
jubacalo
 
(In) seguridad web
(In) seguridad web(In) seguridad web
(In) seguridad web
Eventos Creativos
 
MANUAL
MANUALMANUAL
MANUAL
EMRA197344
 
Eventos-en-visual-basic-60
Eventos-en-visual-basic-60Eventos-en-visual-basic-60
Eventos-en-visual-basic-60
Marabely España D Juárez
 
Statement
StatementStatement
Precentacion de sql visual
Precentacion de sql visualPrecentacion de sql visual
Precentacion de sql visual
BryanChacon12
 
Analisis programacion de pc.
Analisis programacion de pc.Analisis programacion de pc.
Analisis programacion de pc.
JOSE2015DANIEL
 
Problemas propuesto 1 al12
Problemas propuesto 1 al12Problemas propuesto 1 al12
Problemas propuesto 1 al12
YO Por Que
 
Guia 12 js
Guia 12 jsGuia 12 js
Guia 12 js
lechonahp
 
Mysql
MysqlMysql
Java::Acceso a Bases de Datos
Java::Acceso a Bases de DatosJava::Acceso a Bases de Datos
Java::Acceso a Bases de Datos
jubacalo
 

La actualidad más candente (19)

Proyecto de un formulario de facturacion
Proyecto de un formulario de facturacionProyecto de un formulario de facturacion
Proyecto de un formulario de facturacion
 
Practica de visual basic sistema de facturación
Practica de visual basic sistema de facturaciónPractica de visual basic sistema de facturación
Practica de visual basic sistema de facturación
 
Aplication
AplicationAplication
Aplication
 
My Sql A C#
My Sql A C#My Sql A C#
My Sql A C#
 
Tallerprogramacion
TallerprogramacionTallerprogramacion
Tallerprogramacion
 
Ap Is En Windows Mobile 5.0 V2.1
Ap Is En Windows Mobile 5.0 V2.1Ap Is En Windows Mobile 5.0 V2.1
Ap Is En Windows Mobile 5.0 V2.1
 
Ejercicios de programacion concurrente
Ejercicios de programacion concurrenteEjercicios de programacion concurrente
Ejercicios de programacion concurrente
 
Cristinagananparedes
CristinagananparedesCristinagananparedes
Cristinagananparedes
 
Práctica Completa en Flash – ActionScript
Práctica Completa en Flash – ActionScriptPráctica Completa en Flash – ActionScript
Práctica Completa en Flash – ActionScript
 
(In) seguridad web
(In) seguridad web(In) seguridad web
(In) seguridad web
 
MANUAL
MANUALMANUAL
MANUAL
 
Eventos-en-visual-basic-60
Eventos-en-visual-basic-60Eventos-en-visual-basic-60
Eventos-en-visual-basic-60
 
Statement
StatementStatement
Statement
 
Precentacion de sql visual
Precentacion de sql visualPrecentacion de sql visual
Precentacion de sql visual
 
Analisis programacion de pc.
Analisis programacion de pc.Analisis programacion de pc.
Analisis programacion de pc.
 
Problemas propuesto 1 al12
Problemas propuesto 1 al12Problemas propuesto 1 al12
Problemas propuesto 1 al12
 
Guia 12 js
Guia 12 jsGuia 12 js
Guia 12 js
 
Mysql
MysqlMysql
Mysql
 
Java::Acceso a Bases de Datos
Java::Acceso a Bases de DatosJava::Acceso a Bases de Datos
Java::Acceso a Bases de Datos
 

Similar a Manual tecnico

Guia no2 ado.net
Guia no2 ado.netGuia no2 ado.net
Guia no2 ado.net
Manuel Hormechea
 
Dprn3 u3 a1_hehm
Dprn3 u3 a1_hehmDprn3 u3 a1_hehm
Dprn3 u3 a1_hehm
Hector Herrera
 
Aplicación Cliente - Servidor / GUI - Consola
Aplicación Cliente - Servidor / GUI - ConsolaAplicación Cliente - Servidor / GUI - Consola
Aplicación Cliente - Servidor / GUI - Consola
José Antonio Sandoval Acosta
 
My Sql A C#
My Sql A C#My Sql A C#
My Sql A C#
guest6b3066
 
Guia de Laboratorios 2 - VB.NET 2005
Guia de Laboratorios 2 - VB.NET 2005Guia de Laboratorios 2 - VB.NET 2005
Guia de Laboratorios 2 - VB.NET 2005
Jose Ponce
 
Guia de Laboratorios 5 - VB.NET 2005
Guia de Laboratorios 5 - VB.NET 2005Guia de Laboratorios 5 - VB.NET 2005
Guia de Laboratorios 5 - VB.NET 2005
Jose Ponce
 
Informe conecta base_datos_diego_rangel
Informe conecta base_datos_diego_rangelInforme conecta base_datos_diego_rangel
Informe conecta base_datos_diego_rangel
DiegoRangel39
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
Mariana-Rmz
 
Secure txscalacsharp
Secure txscalacsharpSecure txscalacsharp
Secure txscalacsharp
Alvaro Rodriguez
 
Avance proyecto integrador i
Avance proyecto integrador iAvance proyecto integrador i
Avance proyecto integrador i
Santiago Forland
 
Copia de entorno de grado (1)
Copia de entorno de grado (1)Copia de entorno de grado (1)
Copia de entorno de grado (1)
Anderson Ortiz Caicedo
 
Guia no1 ado.net
Guia no1 ado.netGuia no1 ado.net
Guia no1 ado.net
Manuel Hormechea
 
Documentación de pruebas del software
Documentación de pruebas del softwareDocumentación de pruebas del software
Documentación de pruebas del software
Yenny Aldana
 
Guia n5 tam 2009 1
Guia n5 tam 2009 1Guia n5 tam 2009 1
Guia n5 tam 2009 1
Manuel Hormechea
 
Manual Tecnico
Manual TecnicoManual Tecnico
Manual Tecnico
guesta648f1
 
Ejercicio access+visualb
Ejercicio access+visualbEjercicio access+visualb
Ejercicio access+visualb
valen
 
Trabajando con Procedimientos Almacenados y VB.Net
Trabajando con Procedimientos Almacenados y VB.NetTrabajando con Procedimientos Almacenados y VB.Net
Trabajando con Procedimientos Almacenados y VB.Net
Alberto Navarro Sorolla
 
Instalacion de Postrgre sql en ubuntu
Instalacion de Postrgre sql en ubuntuInstalacion de Postrgre sql en ubuntu
Instalacion de Postrgre sql en ubuntu
David Vevelas
 
Introducción a CentOS 6
Introducción a CentOS 6Introducción a CentOS 6
Introducción a CentOS 6
Francisco Medina
 
Entrenamiento en Acceso a Datos con ASP.NET
Entrenamiento en Acceso a Datos con ASP.NETEntrenamiento en Acceso a Datos con ASP.NET
Entrenamiento en Acceso a Datos con ASP.NET
Haaron Gonzalez
 

Similar a Manual tecnico (20)

Guia no2 ado.net
Guia no2 ado.netGuia no2 ado.net
Guia no2 ado.net
 
Dprn3 u3 a1_hehm
Dprn3 u3 a1_hehmDprn3 u3 a1_hehm
Dprn3 u3 a1_hehm
 
Aplicación Cliente - Servidor / GUI - Consola
Aplicación Cliente - Servidor / GUI - ConsolaAplicación Cliente - Servidor / GUI - Consola
Aplicación Cliente - Servidor / GUI - Consola
 
My Sql A C#
My Sql A C#My Sql A C#
My Sql A C#
 
Guia de Laboratorios 2 - VB.NET 2005
Guia de Laboratorios 2 - VB.NET 2005Guia de Laboratorios 2 - VB.NET 2005
Guia de Laboratorios 2 - VB.NET 2005
 
Guia de Laboratorios 5 - VB.NET 2005
Guia de Laboratorios 5 - VB.NET 2005Guia de Laboratorios 5 - VB.NET 2005
Guia de Laboratorios 5 - VB.NET 2005
 
Informe conecta base_datos_diego_rangel
Informe conecta base_datos_diego_rangelInforme conecta base_datos_diego_rangel
Informe conecta base_datos_diego_rangel
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 
Secure txscalacsharp
Secure txscalacsharpSecure txscalacsharp
Secure txscalacsharp
 
Avance proyecto integrador i
Avance proyecto integrador iAvance proyecto integrador i
Avance proyecto integrador i
 
Copia de entorno de grado (1)
Copia de entorno de grado (1)Copia de entorno de grado (1)
Copia de entorno de grado (1)
 
Guia no1 ado.net
Guia no1 ado.netGuia no1 ado.net
Guia no1 ado.net
 
Documentación de pruebas del software
Documentación de pruebas del softwareDocumentación de pruebas del software
Documentación de pruebas del software
 
Guia n5 tam 2009 1
Guia n5 tam 2009 1Guia n5 tam 2009 1
Guia n5 tam 2009 1
 
Manual Tecnico
Manual TecnicoManual Tecnico
Manual Tecnico
 
Ejercicio access+visualb
Ejercicio access+visualbEjercicio access+visualb
Ejercicio access+visualb
 
Trabajando con Procedimientos Almacenados y VB.Net
Trabajando con Procedimientos Almacenados y VB.NetTrabajando con Procedimientos Almacenados y VB.Net
Trabajando con Procedimientos Almacenados y VB.Net
 
Instalacion de Postrgre sql en ubuntu
Instalacion de Postrgre sql en ubuntuInstalacion de Postrgre sql en ubuntu
Instalacion de Postrgre sql en ubuntu
 
Introducción a CentOS 6
Introducción a CentOS 6Introducción a CentOS 6
Introducción a CentOS 6
 
Entrenamiento en Acceso a Datos con ASP.NET
Entrenamiento en Acceso a Datos con ASP.NETEntrenamiento en Acceso a Datos con ASP.NET
Entrenamiento en Acceso a Datos con ASP.NET
 

Manual tecnico

  • 1. Manual Técnico Índice… Este Manual trata sobre el diseño de la aplicación requerida por Cimaco, así como el diseño de componentes que integran al sistema. El capítulo de desarrollo contiene cuatro apartados, todos ellos explicados brevemente a continuación: 1 Análisis.- Apartado en el cual se detalla la problemática por la que atraviesa Cimaco. 2 Diseño de la base de datos.- Trata sobre el diseño de la base de datos requerida por Mundo Verde. . 4 Pantallas y Codificación.- Apartado en el cual se presenta el diseño de la aplicación gráfica y el código. 1 Análisis… (La problemática que existe, y como lo resuelves viene en tu reporte, básate en mi manual técnico) 2 Diseño de base de cimaco Este apartado trata sobre el diseño de la base de datos que ha sido creada para Cimaco. Se llegó a esta estructura, después de realizar el análisis de la problemática de Cimaco, de estudiar sus procedimientos y los datos para realizarlos. Se puede analizar la estructura con diferentes diagramas para su mejor entendimiento. 2.1 Diagramas entidad relación
  • 2. 2.2 Tablas A continuación se muestran las tablas detalladas de la base de datos de Cimaco
  • 3. 3 Aplicación gráfica y código La codificación es parte fundamental de todo sistema de información. Este apartado contiene el código que conforma la aplicación diseñada para Cimaco. 3.1 Menú principal Este apartado muestra la parte gráfica del sistema, las diferentes pantallas que el usuario puede encontrar, dependiendo de la transacción que se desee realizar.
  • 4. Fig. 2. Menú Principal. La figura 2 muestra el menú principal, desde la cual se pueden realizar búsquedas de equipos, reportes, acceder a impresiones de reportes, alarma de mantenimiento y la identificación de usuarios. A continuación se muestra el código con el que cuenta el menú principal. El primer fragmento muestra la conexión con la base de datos. public MySql.Data.MySqlClient.MySqlConnection conexion; public MySql.Data.MySqlClient.MySqlCommand comando; public MySql.Data.MySqlClient.MySqlDataReader reader; public string cad_conexion = @"User=root;password=123456;Server=localhost;Database=cimaco;"; El siguiente fragmento de código pertenece a la identificación del usuario. private void button3_Click(object sender, EventArgs e) { if (textBox2.Text.Trim() == "" | textBox3.Text.Trim() == "") { MessageBox.Show("Indica el nombre de usuario y password"); return; } conexion = new MySql.Data.MySqlClient.MySqlConnection(cad_conexion); conexion.Open(); string cad_select = "SELECT * FROM mecanico WHERE clave_mec='" + usuario + "' AND password='" + password + "'";
  • 5. reader = comando.ExecuteReader(); if (reader.HasRows) { reader.Read(); menu a = new menu(); a.Activate(); a.Show(); this.Hide(); } else { reader.Close(); } conexion.Close(); } El siguiente fragmento de codigo pertenece a los botones que realizan busquedas en la base de datos y son mostradas en el datagrid, y tambien se encuentra el fragmento de código perteneciente a la alarma de mantenimientos. private void button1_Click(object sender, EventArgs e) { if (textBox1.Text.Trim() == "") { MessageBox.Show("El nombre de dispositivo es requerido"); return; } MySqlConnection conn = new MySqlConnection(@"User=root;password=123456;Server=localhost;Database=cim aco;"); MySqlCommand consulta = new MySqlCommand("SELECT * from info WHERE nom_dispositivo ='" + textBox1.Text.ToString() + "'", conn); MySqlDataAdapter myDataAdapter = new MySqlDataAdapter(consulta); conn.Open(); myDataAdapter.Fill(myDataTable); conn.Close(); dataGridView1.DataSource = myDataTable; } private void button2_Click(object sender, EventArgs e) { if (comboBox1.Text.Trim() == "") {
  • 6. MessageBox.Show("El nombre del departamento es requerido"); return; } MySqlConnection conn = new MySqlConnection(@"User=root;password=123456;Server=localhost;Database=cim aco;"); MySqlCommand consulta = new MySqlCommand("SELECT * from info WHERE depto ='" + comboBox1.Text.ToString() + "'", conn); DataTable myDataTable = new DataTable(); MySqlDataAdapter(consulta); conn.Open(); myDataAdapter.Fill(myDataTable); conn.Close(); dataGridView1.DataSource = myDataTable; } private void button6_Click(object sender, EventArgs e) { MySqlConnection conn = new MySqlConnection(@"User=root;password=123456;Server=localhost;Database=cim aco;"); MySqlCommand consulta = new MySqlCommand("select * from info where fecha_proxman= '" + fhoy + "'", conn); MySqlDataAdapter myDataAdapter = new MySqlDataAdapter(consulta); conn.Open(); myDataAdapter.Fill(myDataTable); conn.Close(); dataGridView1.DataSource = myDataTable; } private void button7_Click(object sender, EventArgs e) { if (textBox1.Text.Trim() == "") { MessageBox.Show("El nombre de dispositivo es requerido"); return; } MySqlConnection conn = new MySqlConnection(@"User=root;password=123456;Server=localhost;Database=cim aco;"); MySqlCommand consulta = new MySqlCommand("SELECT * from mant WHERE nom_dispositivo ='" + textBox1.Text.ToString() + "'", conn); DataTable myDataTable = new DataTable(); MySqlDataAdapter myDataAdapter = new MySqlDataAdapter(consulta); conn.Open(); myDataAdapter.Fill(myDataTable);
  • 7. conn.Close(); dataGridView1.DataSource = myDataTable; } private void button4_Click(object sender, EventArgs e) { impresion a = new impresion(); a.Activate(); a.Show(); } 3.2 Menú Este punto muestra la pantalla Menú (Fig. 3), la cual es la primera pantalla que el administrador podrá ver, luego de identificarse en la pantalla de menú principal. Fig. 3. Menú. El siguiente fragmento de código, muestra el direccionamiento a las diferentes secciones del sistema Cimaco. private void button1_Click(object sender, EventArgs e) { equipos a = new equipos(); a.Activate(); a.Show(); this.Hide(); } private void button2_Click(object sender, EventArgs e) { mantenimiento a = new mantenimiento(); a.Activate();
  • 8. a.Show(); this.Hide(); } private void button3_Click(object sender, EventArgs e) { mecanico a = new mecanico(); a.Activate(); a.Show(); this.Hide(); } 3.3 Equipos En la Figura 4, se puede observar la pantalla perteneciente a Equipos, en la cual se efectúan altas, bajas, cambios y consultas, de la información de los equipos de cómputo en Cimaco. Fig. 4. Equipos ó Dispositivos. A continuación se muestra en fragmento de código perteneciente a la conexión de la base de datos y el código de altas. public MySql.Data.MySqlClient.MySqlConnection conexion; public MySql.Data.MySqlClient.MySqlCommand comando; public MySql.Data.MySqlClient.MySqlDataReader reader; public string cad_conexion = @"User=root;password=123456;Server=localhost;Database=cimaco;"; private void button1_Click(object sender, EventArgs e) {
  • 9. if (textBox1.Text.Trim() == "") { MessageBox.Show("Ingresa el nombre del dispositivo"); return; } if (textBox2.Text.Trim() == "") { MessageBox.Show("Ingresa el piso"); return; } if (textBox3.Text.Trim() == "") { MessageBox.Show("Ingresa el sistema"); return; } if (textBox4.Text.Trim() == "") { MessageBox.Show("Ingresa la versión"); return; } if (textBox5.Text.Trim() == "") { MessageBox.Show("Ingresa el tipo"); return; } if (textBox6.Text.Trim() == "") { MessageBox.Show("Ingresa el grupo"); return; } if (textBox7.Text.Trim() == "") { MessageBox.Show("Ingresa el departamento"); return; } if (textBox8.Text.Trim() == "") { MessageBox.Show("Ingresa el encargado"); return; } if (textBox9.Text.Trim() == "")
  • 10. { MessageBox.Show("Ingresa la dirección ip"); return; } if (textBox10.Text.Trim() == "") { MessageBox.Show("Ingresa la licencia"); return; } if (textBox11.Text.Trim() == "") { MessageBox.Show("Ingresa la capacidad"); return; } if (textBox12.Text.Trim() == "") { MessageBox.Show("Ingresa la marca"); return; } if (textBox13.Text.Trim() == "") { MessageBox.Show("Ingresa el nombre del antivirus"); return; } if (textBox14.Text.Trim() == "") { MessageBox.Show("Ingresa el estado del equipo"); return; } string cad_select = "SELECT * from info"; try { conexion = new MySql.Data.MySqlClient.MySqlConnection(cad_conexion); conexion.Open(); comando = new MySql.Data.MySqlClient.MySqlCommand(cad_select, conexion); string a = textBox1.Text, b = textBox2.Text, c = textBox3.Text, d = textBox4.Text;
  • 11. string z = textBox5.Text, f = textBox6.Text, g = textBox7.Text, h = textBox8.Text; string i = textBox9.Text, j = textBox10.Text, k = textBox11.Text, l = textBox12.Text; string m = textBox13.Text, n = textBox14.Text, o = textBox15.Text, p = textBox16.Text; string q = textBox17.Text, r = textBox18.Text; string cadins = "Insert into info(nom_dispositivo,piso,sistema,version,tipo,grup_trab,depto,encargado, ip,licencia,capacidad,marca,antivirus,activo,modelo,fecha_ad,fecha_man,fe cha_proxman)"; cadins += "Values('" + a + "','" + b + "','" + c + "','" + d + "','" + z + "','" + f + "','" + g + "','" + h + "','" + i + "','" + j + "','" + k + "','" + l + "','" + m + "','" + n + "','" + o + "','" + p + "','" + q + "','" + r + "')"; //se ejecuta el comando de la consulta //creado por Juan José Guevara Soto comando.CommandText = cadins; comando.ExecuteNonQuery(); MessageBox.Show("La operación finalizó con exito"); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { conexion.Close(); } } El fragmento de código que se muestra a continuación, pertenece a las áreas de consultas, bajas, actualizaciones y limpieza de la pantalla. private void button2_Click(object sender, EventArgs e) { if (textBox1.Text.Trim() == "") { MessageBox.Show("El nombre del equipo no ha sido indicado"); return; } // validarTextBoxes(); try { string criteria = textBox1.Text; conexion = new MySql.Data.MySqlClient.MySqlConnection(cad_conexion); conexion.Open(); string cad_select = "SELECT * FROM info WHERE nom_dispositivo='" + criteria + "'"; comando = new MySql.Data.MySqlClient.MySqlCommand(cad_select, conexion); reader = comando.ExecuteReader(); if (!(reader.HasRows)) { MessageBox.Show("No se puede eliminar el registro"); reader.Close();
  • 12. } else { reader.Close(); string cad_delete = "DELETE FROM info WHERE nom_dispositivo='" + criteria + "'"; MessageBox.Show(cad_delete); comando = new MySql.Data.MySqlClient.MySqlCommand(cad_delete, conexion); comando.ExecuteNonQuery(); MessageBox.Show("Registro eliminado"); //limpiar(); } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { conexion.Close(); } } private void button4_Click(object sender, EventArgs e) { if (textBox1.Text.Trim() == "") { MessageBox.Show("El nombre de dispositivo no ha sido indicado"); return; } string no; string nom; string app; string apm; string tel; string tell; string ed; string dir; string ci; string es; string fn; string tr; string rf; string cu; string ns; string fi; string em; string pu; no = textBox1.Text; nom = textBox2.Text; app = textBox3.Text; apm = textBox4.Text; tel = textBox5.Text; tell = textBox6.Text;
  • 13. ed = textBox7.Text; dir = textBox8.Text; ci = textBox9.Text; es = textBox10.Text; fn = textBox11.Text; tr = textBox12.Text; rf = textBox13.Text; cu = textBox14.Text; ns = textBox15.Text; fi = textBox16.Text; em = textBox17.Text; pu = textBox18.Text; try { conexion = new MySql.Data.MySqlClient.MySqlConnection(cad_conexion); conexion.Open(); string cad_select = "SELECT * from info where nom_dispositivo='" + no + "'"; comando = new MySql.Data.MySqlClient.MySqlCommand(cad_select, conexion); reader = comando.ExecuteReader(); if (!(reader.HasRows)) { MessageBox.Show("No se pueden hacer cambios"); reader.Close(); } else { reader.Close(); string cad_update = "UPDATE info set piso ='" + nom + "',sistema='" + app + "',version='" + apm + "',tipo ='" + tel + "',grup_trab='" + tell + "',depto='" + ed + "',encargado='" + dir + "',ip='" + ci + "',licencia='" + es + "',capacidad ='" + fn + "',marca='" + tr + "',antivirus='" + rf + "',activo='" + cu + "',modelo='" + ns + "',fecha_ad='" + fi + "',fecha_man='" + em + "',fecha_proxman='" + pu + "' WHERE nom_dispositivo='" + no + "'"; //MessageBox.Show(cad_update); comando.CommandText = cad_update; comando.ExecuteNonQuery(); MessageBox.Show("Se actualizo el registro"); } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { conexion.Close(); } textBox1.Focus(); } private void button5_Click(object sender, EventArgs e) { textBox1.Text = ""; textBox2.Text = ""; textBox3.Text = ""; textBox4.Text = "";
  • 14. textBox5.Text = ""; textBox6.Text = ""; textBox7.Text = ""; textBox8.Text = ""; textBox9.Text = ""; textBox10.Text = ""; textBox11.Text = ""; textBox12.Text = ""; textBox13.Text = ""; textBox14.Text = ""; textBox15.Text = ""; textBox16.Text = ""; textBox17.Text = ""; textBox18.Text = ""; } 3.4 Mantenimiento La Figura 5 muestra la pantalla Mantenimiento. Fig. 5. Mantenimiento El siguiente fragmento de código se encarga de las altas y bajas de la tabla Mant . private void button6_Click(object sender, EventArgs e) { menu a = new menu(); a.Activate(); a.Show(); this.Hide(); }
  • 15. private void button1_Click(object sender, EventArgs e) { if (textBox1.Text.Trim() == "") { MessageBox.Show("Ingresa el número de reporte"); return; } if (textBox2.Text.Trim() == "") { MessageBox.Show("Ingresa el nombre del dispositivo"); return; } if (textBox3.Text.Trim() == "") { MessageBox.Show("Ingresa la fecha"); return; } if (textBox4.Text.Trim() == "") { MessageBox.Show("Ingresa el problema"); return; } if (textBox5.Text.Trim() == "") { MessageBox.Show("Ingresa la clave del mecanico"); return; } string cad_select = "SELECT * from mant"; try { conexion = new MySql.Data.MySqlClient.MySqlConnection(cad_conexion); conexion.Open(); comando = new MySql.Data.MySqlClient.MySqlCommand(cad_select, conexion); string a = textBox1.Text, b = textBox2.Text, c = textBox3.Text, d = textBox4.Text; string z = textBox5.Text; string cadins = "Insert into mant(no_rep,nom_dispositivo,fecha,problema,clave_mec)"; cadins += "Values('" + a + "','" + b + "','" + c + "','" + d + "','" + z + "')"; //se ejecuta el comando de la consulta comando.CommandText = cadins; comando.ExecuteNonQuery();
  • 16. MessageBox.Show("La operación finalizó con exito"); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { conexion.Close(); } } private void button3_Click(object sender, EventArgs e) { if (textBox1.Text.Trim() == "") { MessageBox.Show("El No de Reporte no ha sido indicado"); return; } try { string criteria = textBox1.Text; ////////////////////////////////////////////// conexion = new MySql.Data.MySqlClient.MySqlConnection(cad_conexion); conexion.Open(); ///////////////////////////////////////////////// string cad_select = "SELECT * from mant where no_rep='" + criteria + "'"; ////////////////////////////////////////////////// comando = new MySql.Data.MySqlClient.MySqlCommand(cad_select,conexion); reader = comando.ExecuteReader(); ///////////////////////////////////////////////// if (reader.HasRows) { reader.Read(); textBox2.Text = reader.GetString(1); textBox3.Text = reader.GetString(2); textBox4.Text = reader.GetString(3); textBox5.Text = reader.GetString(4); } else { reader.Close(); MessageBox.Show("no se encuentra registrado el numero de reporte " + criteria); textBox1.Focus(); } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { conexion.Close(); } }
  • 17. private void button2_Click(object sender, EventArgs e) { if (textBox1.Text.Trim() == "") { MessageBox.Show("El número de reporte no ha sido indicado"); return; } // validarTextBoxes(); try { string criteria = textBox1.Text; conexion = new MySql.Data.MySqlClient.MySqlConnection(cad_conexion); conexion.Open(); string cad_select = "SELECT * FROM mant WHERE no_rep='" + criteria + "'"; comando = new MySql.Data.MySqlClient.MySqlCommand(cad_select, conexion); reader = comando.ExecuteReader(); if (!(reader.HasRows)) { MessageBox.Show("No se puede eliminar el registro"); reader.Close(); } else { reader.Close(); string cad_delete = "DELETE FROM mant WHERE no_rep='" + criteria + "'"; MessageBox.Show(cad_delete); comando = new MySql.Data.MySqlClient.MySqlCommand(cad_delete, conexion); comando.ExecuteNonQuery(); MessageBox.Show("Registro eliminado"); //limpiar(); } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { conexion.Close(); } } El siguiente fragmento de código nos se encarga de las consultas, y cambios de la tabla mant, que reside en la base de datos cimaco. private void button4_Click(object sender, EventArgs e) { if (textBox1.Text.Trim() == "") { MessageBox.Show("El nombre de dispositivo no ha sido indicado");
  • 18. return; } string no; string nom; string app; string apm; string tel; no = textBox1.Text; nom = textBox2.Text; app = textBox3.Text; apm = textBox4.Text; tel = textBox5.Text; try { conexion = new MySql.Data.MySqlClient.MySqlConnection(cad_conexion); conexion.Open(); string cad_select = "SELECT * from mant where no_rep='" + no + "'"; comando = new MySql.Data.MySqlClient.MySqlCommand(cad_select, conexion); reader = comando.ExecuteReader(); if (!(reader.HasRows)) { MessageBox.Show("No se pueden hacer cambios"); reader.Close(); } else { reader.Close(); string cad_update = "UPDATE mant set nom_dispositivo ='" + nom + "',fecha='" + app + "',problema='" + apm + "',clave_mec ='" + tel + "' WHERE no_rep='" + no + "'"; //MessageBox.Show(cad_update); comando.CommandText = cad_update; comando.ExecuteNonQuery(); MessageBox.Show("Se actualizo el registro"); } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { conexion.Close(); } textBox1.Focus(); }
  • 19. 3.5 Mecánico En la Figura 6 se muestra la pantalla mecánico, desde la cual se realizan altas, bajas, consultas y cambios en la tabla mecanico. Fig. 6. Mecánico En el siguiente fragmento de código se puede observar el proceso de altas y consultas. private void button1_Click(object sender, EventArgs e) { if (textBox1.Text.Trim() == "") { MessageBox.Show("Ingresa la clave del mecanico"); return; } if (textBox2.Text.Trim() == "") { MessageBox.Show("Ingresa el nombre del mecanico"); return; } string cad_select = "SELECT * from mecanico"; try { conexion = new MySql.Data.MySqlClient.MySqlConnection(cad_conexion); conexion.Open();
  • 20. comando = new MySql.Data.MySqlClient.MySqlCommand(cad_select, conexion); string a = textBox1.Text, b = textBox2.Text, c = textBox3.Text; string cadins = "Insert into mecanico(clave_mec,nombre,password)"; cadins += "Values('" + a + "','" + b + "','" + c + "')"; //se ejecuta el comando de la consulta comando.CommandText = cadins; comando.ExecuteNonQuery(); MessageBox.Show("La operación finalizó con exito"); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { conexion.Close(); } } private void button3_Click(object sender, EventArgs e) { if (textBox1.Text.Trim() == "") { MessageBox.Show("La clave de reporte no ha sido indicada"); return; } try { string criteria = textBox1.Text; ////////////////////////////////////////////// conexion = new MySql.Data.MySqlClient.MySqlConnection(cad_conexion); conexion.Open(); ///////////////////////////////////////////////// string cad_select = "SELECT * from mecanico where clave_mec='" + criteria + "'"; ////////////////////////////////////////////////// comando = new MySql.Data.MySqlClient.MySqlCommand(cad_select, conexion); reader = comando.ExecuteReader(); ///////////////////////////////////////////////// if (reader.HasRows) { reader.Read(); textBox2.Text = reader.GetString(1); textBox3.Text = reader.GetString(2); } else { reader.Close();
  • 21. MessageBox.Show("no se encuentra registrada esa clave de mecanico " + criteria); textBox1.Focus(); } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { conexion.Close(); } } A continuación se despliegan los fragmentos de código que se encargan de las bajas y cambios. private void button2_Click(object sender, EventArgs e) { if (textBox1.Text.Trim() == "") { MessageBox.Show("La clave del mecanico no ha sido indicada"); return; } // validarTextBoxes(); try { string criteria = textBox1.Text; conexion = new MySql.Data.MySqlClient.MySqlConnection(cad_conexion); conexion.Open(); string cad_select = "SELECT * FROM mecanico WHERE clave_mec='" + criteria + "'"; comando = new MySql.Data.MySqlClient.MySqlCommand(cad_select, conexion); reader = comando.ExecuteReader(); if (!(reader.HasRows)) { MessageBox.Show("No se puede eliminar el registro"); reader.Close(); } else { reader.Close(); string cad_delete = "DELETE FROM mecanico WHERE clave_mec='" + criteria + "'"; MessageBox.Show(cad_delete); comando = new MySql.Data.MySqlClient.MySqlCommand(cad_delete, conexion); comando.ExecuteNonQuery(); MessageBox.Show("Registro eliminado"); //limpiar(); } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { conexion.Close(); } }
  • 22. private void button4_Click(object sender, EventArgs e) { if (textBox1.Text.Trim() == "") { MessageBox.Show("El nombre de dispositivo no ha sido indicado"); return; } string no; string nom; string app; no = textBox1.Text; nom = textBox2.Text; app = textBox3.Text; try { conexion = new MySql.Data.MySqlClient.MySqlConnection(cad_conexion); conexion.Open(); string cad_select = "SELECT * from mecanico where clave_mec='" + no + "'"; comando = new MySql.Data.MySqlClient.MySqlCommand(cad_select, conexion); reader = comando.ExecuteReader(); if (!(reader.HasRows)) { MessageBox.Show("No se pueden hacer cambios"); reader.Close(); } else { reader.Close(); string cad_update = "UPDATE mecanico set nombre='" + nom + "',password='" + app + "' WHERE clave_mec='" + no + "'"; //MessageBox.Show(cad_update); comando.CommandText = cad_update; comando.ExecuteNonQuery(); MessageBox.Show("Se actualizo el registro"); } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { conexion.Close(); } textBox1.Focus();
  • 23. 3.6 Imprime En la Figura 7 se muestra la pantalla imprime, desde la cual se pueden imprimir reportes de mantenimiento, a esta pantalla se accede desde el Menú Principal. Fig. 7. Imprime A continuación se muestra el fragmento de código perteneciente a la pantalla imprime, primero se hace una conexión con la base de datos, para luego comenzar a crear un archivo con extensión .xps, se almacena y se imprime desde dicho programa. namespace cimaco { public partial class impresion : Form { private MySqlConnection conexion = new MySqlConnection(@"User=root;password=123456;Server=localhost;Database=cim aco;"); public impresion() { InitializeComponent(); } public MySql.Data.MySqlClient.MySqlCommand comando;
  • 24. public MySql.Data.MySqlClient.MySqlDataReader reader; private void button1_Click(object sender, EventArgs e) { PrintDocument hoja = new PrintDocument(); hoja.PrintPage += new PrintPageEventHandler(this.imprime); PrintPreviewDialog ppd = new PrintPreviewDialog(); ppd.Document = hoja; ppd.ShowDialog(); } private void imprime(object sender, PrintPageEventArgs e) { int x = 50; int y = 50; Font fuente = new Font("Arial", 15); SolidBrush pluma = new SolidBrush(Color.Black); Point punto = new Point(x, y); string criteria = textBox1.Text; string consulta = "SELECT * FROM mant WHERE no_rep = '" + criteria + "'"; conexion.Open(); MySqlCommand command = new MySqlCommand(consulta, conexion); //conexion.Open(); MySqlDataReader reader = command.ExecuteReader(); // Call Read before accessing data. while (reader.Read()) { e.Graphics.DrawString("Número de Reporte:" + " " + reader[0].ToString(), fuente, pluma, punto); punto.Y += 50; e.Graphics.DrawString("Nombre de Dispositivo:" + " " + reader[1].ToString(), fuente, pluma, punto); punto.Y += 50; e.Graphics.DrawString("Fecha:" + " " + reader[2].ToString(), fuente, pluma, punto); punto.Y += 50; e.Graphics.DrawString("Problema:" + " " + reader[3].ToString(), fuente, pluma, punto); punto.Y += 50; e.Graphics.DrawString("Clave del Mecánico:" + " " + reader[4].ToString(), fuente, pluma, punto); punto.Y += 50; }