Escolar Documentos
Profissional Documentos
Cultura Documentos
INTRODUCCIN
DATOS GENERALES DE LA EMPRESA
La empresa VERSUS RISK, S.A de C.V se encuentra ubicada en la Avenida Isla de
Tris No. 20 Int. 8 Planta Alta, Col. Aeropuerto, C.P. 24080. Es una empresa del
Sector Privado y el giro al cual se dedica es el de Servicios de Ingeniera. La estada
la realic en el Departamento de Corporativo fungiendo como mi asesor empresarial
el Ing. David Alberto Herrera Martnez y como representante legal de la empresa el
Ing. David Alberto Herrera Martnez.
PLANTEAMIENTO Y DELIMITACIN DEL PROBLEMA
En esta Memoria Estada se explica a grandes rasgos el funcionamiento del sistema
(SISFA) y como fue implementado a la empresa que dio la oportunidad de ejercer las
prcticas laborales, de igual manera se explica detalladamente la funcionalidad de
los formularios y la implementacin del cdigo en dicho sistema elaborado, de igual
manera se explicar todo referente a la base de datos, que en esta ocasin est
elaborado en un manejador de base de datos con el nombre de SQL SERVER 2008,
esto sirve para poder almacenar grandes cantidades de informacin aadidas
mediante una conexin hecha mediante mdulos en Visual Basic y manipulado por
medio de los formularios.
En esta Memoria tambin se explicar cmo fuimos elaborando el sistema paso a
paso, mediante una plataforma de programacin bsica en el mbito de la
programacin en general, que se encarga de realizar proyectos en escritorio, web,
dispositivos mviles, etc., llamado Microsoft Visual Studio 2010.
Describiremos todos los componentes utilizados en dichos programas, explicremos
el mdulo de conexin, a la base de datos ya elaborada en SQL SERVER 2008, la
funcionalidad de cada formulario.
En resumen se explicar
prcticas de estada hechas en las compaa Versus Risk, S.A. de C.V., as como
todo el funcionamiento en general, implementacin del sistema en las mquinas de la
oficina, y manejo del sistema de facturas (SISFA), la explicacin de formularios por
separados, para la mayor comprensin, las herramientas utilizadas para la
realizacin de los formularios, explicaremos todos los botones, funcionalidad y el
cdigo del mismo.
Dentro de la empresa Versus Risk S.A. de C.V. existen algunos problemas con el
control de las facturas y esto ocasiona prdidas de dinero, y conflicto cuando se
requiere buscar algn dato de la factura como por ejemplo en qu fecha fue emitida,
esto da como resultado que la empresa tenga ciertas deficiencias, ya que no estara
teniendo un buen nivel administrativo desequilibro que es necesario solucionar.
Por lo cual se deber crear una aplicacin que tenga un control sobre las facturas
que pueda dar de baja, alta, modificar, buscar y lleve un control de todas las facturas
que se reciben diariamente.
Hoy en da en la empresa Versus Risk, S.A. de C.V., slo se utilizan tablas en Excel
para poder controlar las facturas, pero si se necesita buscar los datos de una factura
en especfica por algn problema que surja es muy tardado buscarla y una compaa
no puede permitirse eso, debe de estar en un buen rango a nivel administrativo.
A continuacin la problemtica planteada anteriormente se expresa en interrogantes,
las cuales guiarn el proyecto:
Pregunta Principal:
Qu estrategias se pueden aplicar, para poder llevar un control de las facturas y
resolver los problemas planteados?
Preguntas especficas:
1. Cules recursos o mtodos se pueden utilizar para la creacin de una
aplicacin que pueda llevar el control sobre las facturas?
2. Qu software nos ayudara para crear un control sobre las facturas?
3. Qu Sistema Gestor de Base de Datos podra ayudarnos en la creacin de
una aplicacin para el control de las facturas?
4. En qu entorno se podr crear la aplicacin que lleve un control sobre las
facturas?
2. JUSTIFICACIN Y OBJETIVO
JUSTIFICACIN
En cualquier compaa siempre hay un momento en que se tiene un desorden de
documentos, archivos, facturas, etc. En este caso le pondremos atencin a las
facturas, y los problemas que pueden llegar a ocasionar si no se tiene un control
sobre ellas, sin duda alguna el problema ms importante que puede presentarse al
no llevar un buen control con las facturas son, en algunos momentos la prdida de
cantidades de dinero para la empresa.
Por lo tanto se requiere llevar un control sobre las facturas que se reciben en la
empresa, esto ayudara a tener un mejor control sobre los gastos que se realizan
mes con mes y aceleraran la bsqueda de alguna factura en el momento que se
necesita para verificar algn dato sobre ella, se podr dar de baja alguna factura en
el momento que se quiera eliminar, dar de alta y registrar la informacin importante
acerca de la factura que se est registrando en el momento, modificaciones del
mismo, y as evitar la prdida de informacin manipulada por varias personas, el
sistema ayudar a que una sola persona se haga cargo de l y le sea fcil de usar,
por lo cual cuenta con la seguridad de la contrasea.
Dado esta situacin el sistema SISFA reducira drsticamente estos problemas con el
control y la prdida de cantidades de dinero, adems de reducir los tiempos de
respuesta, ya que de cada factura se capturara directamente a como se vayan
recibiendo dentro de las interfaces del sistema.
Adems el empleado que sea encargado de almacenar la informacin tendra pocos
mrgenes de error, y se le facilitara el registro de las facturas ya que el sistema ser
fcil de usar y se tendr la seguridad que slo las personas autorizadas podrn tener
acceso al manejo del sistema una vez que cuenten con la contrasea.
OBJETIVO
Objetivo general:
Este programa tiene como objetivo principal llevar el control de las facturas que se
reciben
programa se podr dar de alta a las nuevas facturas que se reciban diariamente, en
caso de que se necesite cambiar una factura y ya no se necesita la que este dada
de alta el sistema permitir dar de baja o modificar algunos campos de la informacin
de la factura sin eliminarla por completa, tambin se podr buscar por nombre de
institucin que emite la factura.
Objetivos especficos:
1. Analizar el uso e implementacin de un sistema conectado a una base de
datos para controlar las facturas recibidas.
2. Una aplicacin diseada en un entorno de programacin conectada a una
base de datos diseada en algn Sistema Gestor de Base de Datos nos
ayudara para tener un buen control.
3. En SQL Server 2008 se podrn crear las tablas para la base de datos que se
necesita.
4. En Microsoft Visual Studio 2010 podrn crear la aplicacin y hacer la conexin
con la base de datos.
3. DESARROLLO TERICO
CAPTULO I. METODOLOGA PARA LA ELABORACIN DE UN
SOFTWARE LIBRE Y FIABLE
1.1 METODOLOGA
Para elaborar un buen software capaz de generar muchos beneficios y retribuir
ganancias al programador se deben seguir una serie de pasos, estos pasos pueden
ser modificados dependiendo las necesidades del cliente pero la idea principal es la
misma tal y como se describen aqu mismo.
1.2 ELABORACIN DE UN SOFTWARE FIABLE
Para elaborar un buen software capaz de generar muchos beneficios y retribuir
ganancias al programador se deben seguir una serie de pasos (Microsoft, 2007),
estos pasos pueden ser modificados dependiendo las necesidades del cliente pero la
idea principal es la misma tal y como se describen aqu mismo, estos pasos se
realizan de esta manera por el motivo de que estoy implementando el modelo de
prototipo, en dado caso que hubiese utilizado otro tipo de modelo traen sus
referencias de cmo ir elaborando el proyecto o sistemas.
1.2.1 Pasos para la elaboracin de un software fiable:
Paso1:
En esta etapa evalu la peticin del software, ver si era factible o no llevar a cabo la
elaboracin del proyecto, en esta etapa es importante que el cliente, en este caso el
dueo de la compaa Versus Risk, S.A. de C.V., aporte ideas de cmo quiere el
proyecto, por ejemplo qu acciones tendr, o para qu ser utilizado en la empresa
ese proyecto, en qu departamento ser empleado el mismo, para poder dar una
idea de la que vamos hacer. Y as mismo para que quede el programa al gusto del
cliente y no haya ningn inconveniente.
Paso 2:
Despus de verificar que el software es candidato fiable y factible dependiendo las
necesidades del cliente (esto es importante hablarlo muy bien con el cliente por algn
desacuerdo que tenga, para hacer modificaciones antes de que el prototipo sea
En primera parte antes de todo, aunque algunos programadores no toman esta parte
del proyecto con mucha importancia, porque se enfocan ms en la funcionalidad del
proyecto que tambin es importante, pero tambin igual de importante es el diseo
del programa, por eso en este proyecto cree un formulario de presentacin al
programa SISFA. ( ver figura 1)
presentacin con el contador y se acord elegir la imagen que dise con el logo de
la empresa y del color del rea de contadura en Photoshop CS5.5, como es
presentacin este formulario no tiene botones, caja de textos, tampoco etiquetas. As
que tal vez te preguntars dnde se codifica, es muy sencillo, se codifica dentro del
formulario dndole doble clic en medio del formulario, ah se redirige al espacio de
trabajo para empezar la codificacin del formulario, como es slo una simple
presentacin se codificar para que el formulario haga la accin de ocultarse y se
redirige al formulario de contrasea, ya dicho esto mostraremos el cdigo.
A Continuacin mostraremos un poco del cdigo utilizado en la realizacin del
formulario de presentacin:
Public Class Presentacion
Public CONTADOR As Byte = 4
Private Sub ProgressBar1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ProgressBar1.Click
ProgressBar1.Value = 0.0
ProgressBar1.Maximum = 100
Timer1.Interval = 40
Timer1.Enabled = True
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Timer1.Tick
If ProgressBar1.Value = 100 Then
Me.Opacity = -0.07
If Me.Opacity = 0.0 Then
Me.Hide()
clave.Show()
Timer1.Enabled = False
10
End If
Else
ProgressBar1.Value += 4
If ProgressBar1.Value = CONTADOR Then
Label1.Text = "INICIANDO........"
Else
If ProgressBar1.Value = CONTADOR + 16 Then
Label1.Text = ""
CONTADOR += 20
End If
If ProgressBar1.Value = 28 Then
End If
End If
End If
End Sub
11
solicitado por el director ya que slo quiere que maneje el sistema l y la contadora
o persona que sea autorizada.
Este formulario cuenta con un Groupbox, dos etiquetas, en este caso es, usuario y
contrasea, dos cajas de texto, dos botones, (Iniciar y Salir) y un progressbar,
tambin se puso la imagen de presentacin de fondo del formulario para darle
presentacin al formulario. ( ver figura 2)
conta = conta + 1
If txtusiario.Text = "versus" And txtcontra.Text = "risk" Then
Dim formulario As New menu
formulario.Show()
Me.Finalize()
ElseIf conta >= 3 Then
MsgBox("Despus de 3 intentos el programa se cerrara automaticamente")
Presentacion.ActiveForm.Close()
Else
MsgBox("Contrasea incorrecta vuelve a intentarlo")
txtusiario.Text = ""
txtcontra.Text = ""
End If
End Sub
Private Sub clave_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
End Sub
End Class
iniciar,
declaramos lo que va ser el nombre del usuario que este caso es versus y la
contrasea que ser risk, todo lo dems del cdigo nos sirve para que funcione la
variable conta, esto nos sirve para ir aumentan las veces que intentas ingresar al
programa y mande un mensaje cada vez que no se ponga correctamente la
14
contrasea o el nombre del usuario y que al tercer intento errneo te bote el sistema,
de lo contrario si ingresaste correctamente los datos te mostrar un mensaje de
contrasea incorrecta y que vuelvas a intentarlo. ( ver figura 3)
es
solamente
mucho
razonamiento
lgico,
aprenderse
que
herramientas son muy fcil de usar, la que ms nos interesa es el Menustrip este
sirve para crear pestaas en el formulario, por ejemplo nosotros tenemos otros 3
formularios y para no estar corriendo uno por uno los mandamos a llamar desde este
formulario adems de agregar la opcin para poder salir por completo del sistema,
slo se codifican las pestaas que pueden ser editadas directamente desde el
diseo, no a fuerzas tiene que ser por cdigo aunque nosotros codificaremos estas
pestaas para que manden a llamar los formularios realizados en el sistema.
Primero explicaremos cmo convertimos el formulario en contenedor, para esto
seleccionamos el formulario, despus en la barra de propiedades que est al lado
derecho de su pantalla buscamos la propiedad IsMdiContainer por default la est en
False pero para convertirlo en contenedor cambiemos la propiedad a True, se
pueden dar cuenta que realizamos correctamente esto fijndose en el formulario, se
darn cuenta que ya ha cambiado de color a un gris oscuro, en esa parte gris se
contendr los formularios que mandas a llamar con el toolbar.( ver figura 5)
Figura 5: Men.
Fuente: Elaboracin propia
Bueno ahora le presentar el cdigo utilizado para mandar a llamar los otros
formularios desde el MenuStrip, en el MenuStrip se aadir las pestaas de Guardar,
Modificar, Buscar y la pestaa de Salir del sistema. ( ver figura 6)
17
End Sub
18
End Class
Esta parte del cdigo sirve para poner la hora, minutos y segundos actuales en que
se abra el sistema con formato de a.m. y p.m. , se aclara que este parte del timer se
mostrar dentro del StatusStrip que se encuentra en la parte inferior izquierda del
men. ( ver figura 7)
Voy a dejar en claro esta estas lneas de cdigo empezando con el timer
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Timer1.Tick
StatusStrip1.Items(0).Text = Format(Now, "hh:mm:ss tt")
StatusStrip1.Items(1).Text = Mid(StatusStrip1.Items(1).Text, 2) +
Microsoft.VisualBasic.Left(StatusStrip1.Items(1).Text, 1)
End Sub
Esta parte es para el mensaje que va pasando una y otra vez seguidamente que en
este caso dice el nombre de la empresa, se encuentra a un lado de la hora en la
parte inferior del men, esta parte de igual manera va dentro del StatusStrip. ( ver
figura 8)
20
21
22
cajas(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
TextBox1.Text = base.numeracion("numero")
TextBox1.Focus()
End Sub
Para explicar ms detalladamente esta parte tengo que explicarle qu son
subrutinas, las subrutinas son bloques de cdigo creadas afuera de los botones
(Fundacin Wikimedia, Inc., 2005), para ya despus nada ms mandarlos a llamar en
los botones con una simple variable, se preguntarn porqu les estoy explicando
esto, se los estoy explicando por qu dentro del cdigo hay dos subrutinas botones
y cajas estas 2 subrutinas sirven para activar los botones y las cajas de texto que
estn en el formulario para poder manipularlos directo de la interfaz.
La subrutina botones esta creada con este cdigo:
Public Sub botones(ByVal b1 As Boolean, ByVal b2 As Boolean, ByVal b3 As
Boolean)
Button1.Enabled = b1
Button5.Enabled = b2
Button5.Enabled = b3
End Sub
Esta codificacin se hace muy aparte de la dems codificacin, se declara un clase
pblica llamada botones se le declara la variable y el valor de cada botn por ejemplo
b1 as boolean, y as se van declarando dependiendo para qu utilizars los botones
y de cuntos botones deseas alterar, despus se pone el nombre del botn, en este
caso es Button1, despus se le pone la accin que va realizar y se pone la propiedad
Enabled que esto sirva para habilitar o deshabilitar el objeto que este caso es el
botn y ya eso se lo agregamos a la variable de arriba por ejemplo b1 y asi le
hacemos con todos los botones que tengamos y a lo ltimo cerramos la subrutina
con el End sub.
24
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
TextBox6.Text = ""
TextBox7.Text = ""
TextBox8.Text = ""
TextBox9.Text = ""
TextBox11.Text = ""
End If
End Sub
Aqu igual creamos una clase pblica llamada cajas, declaramos la variable que
quieras, en este caso es h, le ponemos su propiedad boolean y otra variable L con la
misma propiedad boolean, despus de esto escribimos una condicin, If h then y
todas las cajas de textos que tengas en tu formulario, por ejemplo yo tengo
TextBox1.Enabled = False, TextBox1 es el nombre de la caja de texto la propiedad
enabled que es para habilitar o deshabilitar la caja de texto y false que es para
deshabilitar la caja hacemos esto con todas las cajas de texto, si no se cumple esa
opcin se pasa a la otra que para eso es el Else, la otra opcin es limpiar todas las
cajas de texto.
Ya explicado lo de las subrutinas explicaremos todo el cdigo completo para su
mayor comprensin empecemos con botones(1, 1, 0, 1, 1, 1, 1, 1 ,1 ,1 ,1) este cdigo
se utiliza para habilitar las cajas de texto, esto funciona s llamas la subrutina o
subclase botones y los nmeros son los bits 1 es igual a habilitado y 0 es igual a
deshabilitado dependiendo la formacin de los nmero es el botn que se
deshabilitar, por ejemplo aqu el botn que este posicionado en el lugar 3 se
deshabilitar al dar clic en el botn nuevo.
Pasa lo mismo con esta lnea de cdigo cajas (1, 1) habilita y deshabilita las cajas,
26
Despus sigue esta lnea de cdigo que esta lnea ya est haciendo funcin con la
base de datos:
TextBox1.Text = base.numeracion("numero")
TextBox1 es el nombre de la caja de texto, lo que esto quiere decir es que la caja de
texto es igual a lo que se encuentra en la base de datos y la numeracin que es el
contador, sea igual a lo que se encuentra en el campo nmero, y ya esto hace una
consulta con la base de datos y ve cul es el ltimo id agregado a la base de datos y
se le agrega uno, por ejemplo si el ltimo registro ingresado esta con el id nmero
50, al dar el botn de nuevo har la consulta y ver que es 50 y se le agregar el 50
ms 1 en otras palabras que el siguiente registro ser 51.
Ahora empezaremos con la explicacin del botn cerrar, su mismo nombre dice para
que sirve este botn pero tambin explicar la funcionalidad y el cdigo del botn ya
que esto te hace posible cerrar nicamente la ventana que se tiene abierta, en este
caso es la de guardar y para que no cierre por completo la aplicacin cuando lo crea
necesario, bueno en realidad este botn siempre ser utilizado en cualquier tipo de
programacin, en cualquier tipo de plataforma de programacin en cualquier
lenguaje, ya sea java c++ o visual entre otros, pero que quede bien claro que podr
ser la misma funcin en cualquier tipo de programacin pero muy rara vez es la
misma lgica, ya que es diferente la forma de trabajar de cada programador, ya
dejado en claro esto empezar a explicar la funcionalidad del botn.(ver figura 11)
27
En el momento que se da clic al botn cerrar aparece un cuadro de dilogo con una
leyenda que dice as Desea cerrar la ventana guardar? (ver figura 11) y en el
mismo cuadro de dilogo aparecen 2 botones, para que escojas la opcin de si o
no, al darle clic a lo opcin si automticamente se cierra nicamente la ventana en
la que estamos que es la de guardar, al darle clic al botn no se cierra el cuadro de
dilogo que nos sali y regresa al formulario en el que estabas trabajando, ya
explicada la funcionalidad del botn, pasar a explicar el cdigo que hace posible
todas estas funciones que anteriormente expliqu:
Donde empieza el private y donde acaba donde dice Button2.click, aparece por
default cuando le damos click al botn, eso no se programa, se empieza a programar
desde if hasta donde dice close(), bueno empecemos a explicar en realidad la
programacin de este botn, es muy fcil, ya que es slo una condicin if, msgbox es
la del cuadro de dilogo ya mencionado anteriormente, lo que est entre comillas es
el mensaje que saldr en el cuadro de dilogo, ojo, esto puede ser modificado a
gusto del programador, msgstyle es el estilo del cuadro de dilogo en esta ocasin
ser un cuadro de dilogo de dos opciones si y no, lo que est entre comillas
aparecer arriba del cuadro de dilogo, msgboxresult yes then me.close esto quiere
decir que si damos la opcin de si la aplicacin se cerrar automticamente y el end
sub es para cerrar el bloque.
A continuacin mostraremos el cdigo utilizado en la realizacin del botn cerrar:
Private
Sub
Button2_Click(ByVal
sender
As
System.Object,
ByVal
28
As
DataGridView1.ColumnHeadersBorderStyle =
D+ataGridViewHeaderBorderStyle.None
DataGridView1.CellBorderStyle =
DataGridViewCellBorderStyle.SingleHorizontal
DataGridView1.GridColor = Color.Black
DataGridView1.Columns(0).Width = 60
DataGridView1.Columns(0).HeaderText = "numero"
DataGridView1.Columns(1).Width = 210
DataGridView1.Columns(1).HeaderText = "RFC"
DataGridView1.Columns(2).Width = 80
DataGridView1.Columns(2).HeaderText = "nombre"
DataGridView1.Columns(3).Width = 80
DataGridView1.Columns(3).HeaderText = "Concepto"
DataGridView1.Columns(4).Width = 80
DataGridView1.Columns(4).HeaderText = "ciudad"
DataGridView1.Columns(5).Width = 80
DataGridView1.Columns(5).HeaderText = "IVA"
DataGridView1.Columns(6).Width = 80
DataGridView1.Columns(6).HeaderText = "subtotal"
DataGridView1.Columns(7).Width = 80
DataGridView1.Columns(7).HeaderText = "total"
DataGridView1.Columns(8).Width = 80
DataGridView1.Columns(8).HeaderText = "por"
DataGridView1.Columns(9).Width = 80
DataGridView1.Columns(9).HeaderText = "status"
DataGridView1.Columns(10).Width = 80
DataGridView1.Columns(10).HeaderText = "fecha"
Dim fila(11) As String
base.consultar("select*from Factura")
While myreader.Read()
31
fila(0) = myreader.GetValue(0)
fila(1) = myreader.GetString(1)
fila(2) = myreader.GetString(2)
fila(3) = myreader.GetString(3)
fila(4) = myreader.GetString(4)
fila(5) = myreader.GetValue(5)
fila(6) = myreader.GetValue(6)
fila(7) = myreader.GetString(7)
fila(8) = myreader.GetString(8)
fila(9) = myreader.GetString(9)
fila(10) = myreader.GetString(10)
fila(5) = myreader.GetValue(5)
DataGridView1.Rows.Add(fila)
End While
base.cerrar()
End Sub
Las primeras 10 lneas de cdigo sirve para el diseo fsico del datagridview que est
en el formulario de guardar, ah le ponemos cuantas filas y columnas quieres el
tamao, el color que quieres poner en las celdas y las filas etc. En pocas palabras
modifica todo lo que es el diseo del datagridview.
Las siguientes lneas de cdigo, sirven para mandar a llamar todos los registros que
estn guardados en la base de datos y mostrarlos en el datagridview, por esto es
importante poner mucha atencin, ya que si cometemos el mnimo error no corre el
programa, ya que se est manejando con la base de datos, que es muy sensible a
errores por ejemplo, en esta lnea de cdigo:
DataGridView1.Columns(0).HeaderText = "numero"
DataGridView1.Columns(1).Width = 210
32
33
34
35
If (TextBox1.Text <> "" And TextBox2.Text <> "" And TextBox3.Text <> "" And
TextBox4.Text <> "" And TextBox5.Text <> "" And TextBox6.Text <> "" And
TextBox7.Text <> "" And TextBox8.Text <> "" And TextBox9.Text <> "" And
TextBox10.Text <> And TextBox11 <> "") Then
base.ejecutar("update Facturas set numero= " & TextBox1.Text & ",RFC='" &
TextBox2.Text & "',nombre='" & TextBox3.Text & "',Concepto='" & TextBox4.Text &
"',ciudad='" & TextBox5.Text & "',IVA='" & TextBox6.Text & "',subtotal='" &
TextBox7.Text & "',total='" & TextBox8.Text & "',por='" & TextBox9.Text & "',status='" &
TextBox10.Text & "',fecha='" & TextBox11.Text & "")
MessageBox.Show("Datos Guardados Correctamente", "Transaccion
Exitosa", MessageBoxButtons.OK, MessageBoxIcon.Information)
cargar()
If DataGridView1.RowCount >= 1 Then
TextBox1.Text = DataGridView1.CurrentRow.Cells(0).Value
TextBox2.Text = DataGridView1.CurrentRow.Cells(1).Value
TextBox3.Text = DataGridView1.CurrentRow.Cells(2).Value
TextBox4.Text = DataGridView1.CurrentRow.Cells(3).Value
TextBox5.Text = DataGridView1.CurrentRow.Cells(4).Value
TextBox6.Text = DataGridView1.CurrentRow.Cells(5).Value
TextBox7.Text = DataGridView1.CurrentRow.Cells(6).Value
TextBox8.Text = DataGridView1.CurrentRow.Cells(7).Value
TextBox9.Text = DataGridView1.CurrentRow.Cells(8).Value
TextBox10.Text = DataGridView1.CurrentRow.Cells(9).Value
TextBox11.Text = DataGridView1.CurrentRow.Cells(10).Value
End If
botones(1, 1, 1, )
cajas(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
cargar()
End If
36
End If
End Sub
De este modo se termina la codificacin de unos de los botones ms importantes de
este formulario, como se pudieron dar cuenta es bastante cdigo, pero muy
necesaria cada lnea de cdigo si quieres que tu programa funcione correctamente.
Se puede reducir el cdigo, si no ponemos mensajes de alertas o ponemos
sentencias simples, pero ese no es el caso, si vas a realizar un programa que se
complet para que tu trabajo se reconocido, porque si entregas un trabajo psimo no
te tomarn en cuenta en trabajos futuros.
2.1.5 Creacin del formulario modificar
Este formulario est diseado para modificar los registros que ya se guardaron desde
la ventana guardar, se podr modificar algn dato de los registro o tambin se podr
eliminar del sistema algn registro por completo de la base de datos y para poder
realizar todas estas operaciones ser necesario utilizar la funcin de buscar, ya que
por ejemplo se buscar primero los datos de la factura que se quiera visualizar para
despus realizar la modificacin que se desee ya sea eliminar o modificar algn dato.
Este formulario cuenta con cinco botones que vamos a codificar uno por uno; esto se
explicar por separado para una mejor comprensin, cuenta tambin con once cajas
de texto, once etiquetas, un groupbox y un datagridview (ver figura 12), los botones
nos sirven para que hagan las funciones del formulario ya que sin ellos sera
imposible interactuar con l, por eso cada botn lleva su codificacin individual, las
cajas de texto es para ingresar los datos que vamos a modificar a la base de datos,
las etiquetas sirve como referencia para que veas qu campo va en las cajas de
texto, el groupbox sirve para darle una mejor presentacin u ordenamiento al
formulario para separar partes dentro del mismo formulario, y el datagridview sirve
para reflejar los registros que se van a buscar y aparezca nicamente ese registro y
a la hora de modificarlo se pueda observar que se modific correctamente dentro de
la base de datos como deseamos. ( ver figura 12)
37
38
El botn cerrar ya sabemos cmo funciona de igual manera que el que empleamos
en el formulario de guardar, para que slo cierre la ventana en este caso slo cerrara
la ventana de modificar:
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
If MsgBox("Desea cerrar la ventana modificar ?", MsgBoxStyle.YesNo,
"Confirmar") = MsgBoxResult.Yes Then Me.Close()
End Sub
Ahora veremos el botn modificar, este botn lo nico que hace es mandar lo que
este en el datagridview a las cajas de texto y ya poder modificar los registros que
estn en la base de datos y ya se le da guardar y ya se modifica el registro ahora
presentaremos algo del cdigo que hace posible lo que ya describimos, le damos
doble clic al botn y codificamos ah dentro esto:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
g=2
botones(0, 1, 1, 0, 1, 1)
cajas(1, 0)
TextBox1.Text = DataGridView1.CurrentRow.Cells(0).Value
TextBox2.Text = DataGridView1.CurrentRow.Cells(1).Value
TextBox3.Text = DataGridView1.CurrentRow.Cells(2).Value
TextBox4.Text = DataGridView1.CurrentRow.Cells(3).Value
TextBox5.Text = DataGridView1.CurrentRow.Cells(4).Value
TextBox6.Text = DataGridView1.CurrentRow.Cells(5).Value
TextBox7.Text = DataGridView1.CurrentRow.Cells(6).Value
TextBox8.Text = DataGridView1.CurrentRow.Cells(7).Value
TextBox9.Text = DataGridView1.CurrentRow.Cells(8).Value
TextBox10.Text = DataGridView1.CurrentRow.Cells(9).Value
39
TextBox11.Text = DataGridView1.CurrentRow.Cells(10).Value
End Sub
Como lo pueden observar volvemos a utilizar las subrutinas botones y cajas de igual
manera como ya lo habamos explicado anteriormente y ya saben el procedimiento y
la funcin de esto, por esto solo explicare la segunda parte del cdigo.
TextBox1.Text = DataGridView1.CurrentRow.Cells(0).Value
Esto sirve para que los datos que estn en el datagridview se muestren en las cajas
de texto, para que hace sea posible editarlos y as modificar el registro y asi poder
guardarlo por ejemplo, si ingresaste un registro y no te diste cuenta que tipiaste su
nombre o direccin mal y lo guardaste, para eso sirve toda esas lneas de cdigo, y
as no tener que eliminar el registro completo y volverlo a tipiar esto es una gran
ayuda a las personas que manejan grandes cantidades de informacin que por lo
mismo de manejar mucha informacin se confunden al tipiar algn registro y as nada
mas con el botn de modificar se resuelve ese problema. Y como ya lo saben se
cierra con:
End Sub
Ya que si no lo cierran marcara un error y ser imposible poder correr el programa.
Ahora es el turno de explicar el botn eliminar, este botn es uno de los ms
importantes en todo el formulario ya que sin este botn sera imposible eliminar.
A continuacin mostraremos un poco del cdigo utilizado en la realizacin del botn
eliminar:
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button4.Click, Button1.Click
40
Me.FacturasTableAdapter.FillBy1(Me.SISFADataSet.Facturas, TextBox3.Text)
If MessageBox.Show(" REALMENTE DESEA ELIMINAR AL REGISTRO
SELECCIONADO", "CONFIRMAR", MessageBoxButtons.YesNo,
MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
base.ejecutar("update ingreso_empleados set status=0 where id_empleado =
" & DataGridView1.CurrentRow.Cells(0).Value)
MessageBox.Show("Estado Eliminado u.u!!", "EXITO",
MessageBoxButtons.OK, MessageBoxIcon.Information)
cargar()
If DataGridView1.RowCount >= 1 Then
TextBox1.Text = DataGridView1.CurrentRow.Cells(0).Value
TextBox2.Text = DataGridView1.CurrentRow.Cells(1).Value
TextBox3.Text = DataGridView1.CurrentRow.Cells(2).Value
TextBox4.Text = DataGridView1.CurrentRow.Cells(3).Value
TextBox5.Text = DataGridView1.CurrentRow.Cells(4).Value
TextBox6.Text = DataGridView1.CurrentRow.Cells(5).Value
TextBox7.Text = DataGridView1.CurrentRow.Cells(6).Value
TextBox8.Text = DataGridView1.CurrentRow.Cells(7).Value
TextBox9.Text = DataGridView1.CurrentRow.Cells(8).Value
TextBox10.Text = DataGridView1.CurrentRow.Cells(9).Value
TextBox11.Text = DataGridView1.CurrentRow.Cells(10).Value
Else
End If
End If
End Sub
En esta parte del sistema tambin se manda a llamar otra vez subrutina que se
llama cargar que ya sabemos cmo trabaja.
41
DataGridView1.Rows.Clear()
42
DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
DataGridView1.ColumnCount = 11
DataGridView1.ColumnHeadersDefaultCellStyle.BackColor = Color.White
DataGridView1.ColumnHeadersDefaultCellStyle.ForeColor = Color.Black
DataGridView1.ColumnHeadersDefaultCellStyle.Font = New
Font(DataGridView1.Font, FontStyle.Bold)
DataGridView1.ColumnHeadersBorderStyle =
DataGridViewHeaderBorderStyle.None
DataGridView1.CellBorderStyle =
DataGridViewCellBorderStyle.SingleHorizontal
DataGridView1.GridColor = Color.Black
DataGridView1.Columns(0).Width = 60
DataGridView1.Columns(0).HeaderText = "numero"
DataGridView1.Columns(1).Width = 210
DataGridView1.Columns(1).HeaderText = "RFC"
DataGridView1.Columns(2).Width = 80
DataGridView1.Columns(2).HeaderText = "nombre"
DataGridView1.Columns(3).Width = 80
DataGridView1.Columns(3).HeaderText = "Concepto"
DataGridView1.Columns(4).Width = 80
DataGridView1.Columns(4).HeaderText = "ciudad"
DataGridView1.Columns(5).Width = 80
DataGridView1.Columns(5).HeaderText = "IVA"
DataGridView1.Columns(6).Width = 80
DataGridView1.Columns(6).HeaderText = "subtotal"
DataGridView1.Columns(7).Width = 80
DataGridView1.Columns(7).HeaderText = "total"
DataGridView1.Columns(8).Width = 80
DataGridView1.Columns(8).HeaderText = "por"
DataGridView1.Columns(9).Width = 80
DataGridView1.Columns(9).HeaderText = "status"
43
DataGridView1.Columns(10).Width = 80
DataGridView1.Columns(10).HeaderText = "fecha"
Dim fila(11) As String
base.consultar("select*from Factura")
While myreader.Read()
fila(0) = myreader.GetValue(0)
fila(1) = myreader.GetString(1)
fila(2) = myreader.GetString(2)
fila(3) = myreader.GetString(3)
fila(4) = myreader.GetString(4)
fila(5) = myreader.GetValue(5)
fila(6) = myreader.GetValue(6)
fila(7) = myreader.GetString(7)
fila(8) = myreader.GetString(8)
fila(9) = myreader.GetString(9)
fila(10) = myreader.GetString(10)
fila(5) = myreader.GetValue(5)
DataGridView1.Rows.Add(fila)
End While
base.cerrar()
End Sub
Este cdigo es relativamente largo porque en el botn se hacen muchas
operaciones, se realiza la bsqueda a la base de datos. Se implementa el diseo del
datagridview tambin te los muestra en el data gridview, te muestra si el empleado no
se encontr, abre y cierra la base de datos, limpia las cajas de texto, habilita y
deshabilita los botones que no se estn usando en el momento que est realizando
la bsqueda, etc.
44
4. CONCLUSIONES
La aplicacin creada dentro de la empresa VERSUS RISK, S.A. de C.V. se dise
por un problema planteado, que era el de llevar un control sobre los datos que las
facturas que se van recibiendo, ya que al no tener un buen control sobre esto
existan algunos problemas planteados como el de perdida de dinero.
Cuando la aplicacin que fue diseada para la empresa, se termin por completo, se
empez a revisar sus alcances y se pudo observar que alcanz sus objetivos
planteados desde el principio.
de esta manera es ms rpido buscar alguna factura por su folio y una vez buscada
se podra modificar algn campo que se desee de ella.
Este sistema cuenta con una seguridad de inicio de sesin para que slo las
personas autorizadas puedan acceder a ella y de una manera sencilla de funcionar
para que el momento que se desee se puede capacitar a una persona que los ayude
con el registro de las facturas, el Director de la empresa qued muy satisfecho con el
sistema.
45
5. FUENTES DE INFORMACIN
46
6. ANEXOS
47