|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - elultimoguerrero
Páginas: [1]
1
« en: Martes 16 de Marzo de 2010, 00:09 »
APROVECHO PARA DEJARLES OTRA DUDA QUE TENGO, EL BOTÓN DE GUARDAR YA ME GUARDA EN LA BASE DE DATOS, LA CUAL ES MYSQL Y ESTOY PROGRAMANDO EN VISUAL BASIC 2005, PERO AL MOMENTO DE GUARDAR ME HACE 2 REGISTROS, UNO CON LA CLAVE 0 (QUE NO DEBE DE CREARSE) EN DONDE SE ALOJAN LOS CAMPOS DEL DATAGRIDVIEW Y LA CLAVE 1 DONDE SE ALOJAN LOS CAMPOS QUE SON DE LOS TEXTBOX, SE QUE ESTO LO HACE PORQUE ESTOY ADAPTANDO DOS NEW MYSQLDATAADAPTER DISTINTOS, PERO HE TRATADO DE ADAPTARLOS A UN SOLO REGISTRO Y NO ME SALE, SI ME PUEDEN AYUDAR SE LOS AGRADECERÉ.
Dim dat As New MySqlDataAdapter Dim dag As New MySqlDataAdapter Dim ds As New DataSet Dim dr As DataRow Dim cb As New MySqlCommandBuilder Dim cm As New MySqlCommand dat = New MySqlDataAdapter("select * from asistencia order by Clave asc;", con) dat.Fill(ds, "asistencia") cb = New MySqlCommandBuilder(dat) If ds.Tables("asistencia").Rows.Count > 0 Then dr = ds.Tables("asistencia").Rows(ds.Tables("asistencia").Rows.Count - 1) tclave.Text = Val(dr("Clave")) + 1 Else tclave.Text = "1" End If dr = ds.Tables("asistencia").NewRow dr("Titulo_clase") = ttitulo.Text dr("Fecha") = dfecha.Text dr("Profesor") = tprofesor.Text dr("Clave") = tclave.Text dr("Visitas") = Val(tvisitas.Text) dr("Total_presentes") = Val(ttotalpresentes.Text) dr("Total_tareas") = Val(ttotaltareas.Text) dr("Total_participaciones") = Val(ttotalparticipaciones.Text) ds.Tables("asistencia").Rows.Add(dr) dat.Update(ds.Tables("asistencia")) ds.AcceptChanges() dag = New MySqlDataAdapter("select * from asistencia order by Clave asc;", con) dag.Fill(ds, "asistencia") cb = New MySqlCommandBuilder(dag) For i As Integer = 0 To DataGridView1.Rows.Count - 1 If DataGridView1.Rows(i).Cells(0).Value <> "" Then dr = ds.Tables("asistencia").NewRow dr("No") = DataGridView1.Rows(i).Cells(0).Value dr("Nombre") = DataGridView1.Rows(i).Cells(1).Value dr("Presente") = DataGridView1.Rows(i).Cells(2).Value dr("Tarea") = DataGridView1.Rows(i).Cells(3).Value dr("Participacion") = DataGridView1.Rows(i).Cells(4).Value ds.Tables("asistencia").Rows.Add(dr) dag.Update(ds.Tables("asistencia")) ds.AcceptChanges() End If Next deshabilitarcajas() bnuevo.Enabled = True bguardar.Enabled = False bimprimir.Enabled = True bbuscar.Enabled = True bmodificar.Enabled = True bguardarmodificacion.Enabled = False beliminar.Enabled = False bcancelar.Enabled = False
2
« en: Lunes 15 de Marzo de 2010, 23:55 »
HOLA AMIGOS DEL FORO, ESPERO ME PUEDAN AYUDAR CON LA SIGUIENTE DUDA:
TENGO UNA APLICACIÓN EN VISUAL BASIC 2005 QUE CONSTA DE UN DATAGRIDVIEW CON 3 CAMPOS, LOS CUALES ESTAN DENTRO DEL DATAGRIDVIEW PERO EN DATAGRIDVIEWCHECKBOXCOLUMN; LOS CAMPOS SON LOS SIGUIENTES: PRESENTE, TAREAS Y PARTICIPACIÓN, LO QUE QUIERO HACER ES QUE AL MOMENTO DE SELECCIONAR LOS CHECKBOXS DEL CAMPO PRESENTE ESTOS SE SUMEN Y ME MUESTRE EL TOTAL DE SELECCIONADOS EN UN TEXTBOX AL CUAL HE PUESTO DE NOMBRE TTOTALPRESENTES.TEXT, DE LA MISMA FORMA SEA PARA EL CAMPO TAREAS Y PARTICIPACIÓN, ESPERO ME PUEDAN AYUDAR, GRACIAS.
3
« en: Martes 26 de Enero de 2010, 01:52 »
Hola amigos del foro, tengo la siguiente duda, espero me puedan ayudar.
Necesito imprimir un reporte por fechas, es decir, al seleccionar una fecha de un DataTimePickera a otra fecha de otro DataTimePicker, estoy trabajando con un visual basic 2005 y mysql, todo lo que imprimo los estoy haciendo en un CrystalReports, espero me me puedan hechar la mano, gracias.
4
« en: Domingo 27 de Septiembre de 2009, 19:29 »
HOLA COMPAÑEROS DEL SITIO, ESPERO ME PUEDAN AYUDAR CON ESTA DUDA QUE TENGO, EN UN FORMULARIO NORMAL (SIN QUE SEA MDIPARENT) ESTE CÓDIGO FUNCIONA CORRECTAMENTE, CUANDO YO DOY CLIC EN CUALQUIER PARTE DEL FORMULARIO SE OCULTAN LOS MENÚS Y SUBMENÚS, PERO CUANDO YO CONVIERTO ESTE FORMULARIO EN MDIPARENT YA NO OCULTA LOS MENÚS Y SUBMENÚS, HÉ INTENTADO DE TODO Y NOMÁS NADA, LES DEJO EL CÓDIGO, ESPERO ME PUEDAN AYUDAR CON ESTA DUDA, GRACIAS.
Public Class forma
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If Label1.Visible = False Then Label1.Visible = True Else Label1.Visible = False End If If Label2.Visible = False Then Label2.Visible = True Else Label2.Visible = False End If Label3.Visible = False Label4.Visible = False End Sub
Private Sub Label1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label1.MouseMove Label3.Visible = True End Sub
Private Sub Label2_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label2.MouseMove Label4.Visible = True End Sub
Private Sub forma_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click Label1.Visible = False Label2.Visible = False Label3.Visible = False Label4.Visible = False End Sub End Class
5
« en: Miércoles 23 de Septiembre de 2009, 18:53 »
Ok Boxcarpilot, un módulo lo agregas de esta forma, agregar... módulo, esta función yo la utilizo en este ejemplo como una variable global, es decir, imagínate que tengas 5, 10, 20 ó más formularios donde tengas que convertir numeros a letras, yo este módulo lo delcaro como una variable global, es decir que todos esos 5 módulos la podrán utilizar, lo único que estaría poniendo en cada módulo es el código de la caja de texto a la que le di doble clic, si yo lo hiciera de manera individual tendría que agregar un módulo por cada formulario, obviamente existen otras códigos que hacen este tipo de conversiones pero la verdad no los tengo a la mano, mi programación está orientada a objetos, los formularios, cajas de textos, bases de datos, etc, espero te haya ayudado con tus dudas, seguimos colaborando.
6
« en: Miércoles 23 de Septiembre de 2009, 02:24 »
Boxcarpilot, en el código que te mandé se le da doble clic a la caja con el nombre de tnumeros y no a la tletras, lo que pasa es que tuve un error de escritura y me equivoqué, hay para que lo corrijas, saludos.
7
« en: Miércoles 23 de Septiembre de 2009, 02:14 »
Que tal Boxcarpilot, lo que yo entiendo que tu quieres hacer es que cuando introduzcas un número el sistema te muestra la cantidad en letras, es muy sencillo hacerlo, nuestro compañero sagma te ha proporcionado una buena solución, yo lo hago de la siguente forma, espero te pueda ayudar. Vamos a poner dos cajas de texto en nuestro formulario a una la llamaremos tnumeros y a otra tletras, damos doble clic a la caja tletras y escribimos el siguiente código:
Try If IsNumeric(Me.tnumeros.Text) Then Me.tletras.Text = Modletras.Convertir( _ CLng(Me.tnumeros.Text), False) Else Me.tletras.Text = "" End If Catch Me.tletras.Text = "Error." End Try
Para esto vamos a agregar un módulo al que llamaremos Modletras (esta es una variable global para que no tengas que hacerlo en cada uno de los formularios) y agregamos el siguiente código:
Option Explicit On Option Strict On
Module Modletras Public Function Convertir(ByVal Valor As Int64, Optional ByVal esCorto As Boolean = False) As String
REM aUnidades ' Unidades REM a1DecenasL ' Decenas Largo 10 REM a1DecenasC ' Decenas Corto 10 REM a2DecenasE ' Decenas Exact 20-90 REM a2DecenasL ' Decenas Largo 20-90 REM a2DecenasC ' Decenas Corto 20-90 REM aCentenas ' Centenas REM aMillares ' Millares
Dim aUnidades As String() = {"", "UNO", "DOS", "TRES", "CUATRO", "CINCO", "SEIS", "SIETE", "OCHO", "NUEVE"} Dim a1DecenasL As String() = {"DIEZ", "ONCE", "DOCE", "TRECE", "CATORCE", "QUINCE", "DIEZ Y SEIS", "DIEZ Y SIETE", "DIEZ Y OCHO", "DIEZ Y NUEVE"} Dim a1DecenasC As String() = {"DIEZ", "ONCE", "DOCE", "TRECE", "CATORCE", "QUINCE", "DIECISEIS", "DIECISIETE", "DIECIOCHO", "DIECINUEVE"} Dim a2DecenasE As String() = {"", "->ERROR<-", "VEINTE", "TREINTA", "CUARENTA", "CINCUENTA", "SESENTA", "SETENTA", "OCHENTA", "NOVENTA"} Dim a2DecenasL As String() = {"", "->ERROR<-", "VEINTE Y ", "TREINTA Y ", "CUARENTA Y ", "CINCUENTA Y ", "SESENTA Y ", "SETENTA Y ", "OCHENTA Y ", "NOVENTA Y "} Dim a2DecenasC As String() = {"", "->ERROR<-", "VEINTI", "TREINTI", "CUARENTI", "CINCUENTI", "SESENTI", "SETENTI", "OCHENTI", "NOVENTI"} Dim aCentenas As String() = {"", "CIENTO", "DOSCIENTOS", "TRESCIENTOS", "CUATROCIENTOS", "QUINIENTOS", "SEISCIENTOS", "SETECIENTOS", "OCHOCIENTOS", "NOVECIENTOS"} Dim aMillares As String() = {"", " MIL ", " MILLONES ", " MIL MILLONES ", " BILLONES ", " MIL BILLONES ", " TRILLONES ", " MIL TRILLONES ", "->ERROR<-", "->ERROR<-"}
Dim CadenaFinal As String = "" Dim CadenaTemp As String = ""
Dim Numero As Int64 = Valor Dim Millon As Integer = 0
Dim Unidades As Integer Dim Decenas As Integer Dim Centenas As Integer
Do While Numero > 0 CadenaTemp = ""
Unidades = CInt(Numero Mod 10) Decenas = CInt((Numero 10) Mod 10) Centenas = CInt((Numero 100) Mod 10)
'Centenas If Centenas <> 0 Then If Centenas = 1 And Decenas + Unidades = 0 Then CadenaTemp &= "CIEN" ElseIf Decenas + Unidades = 0 Then CadenaTemp &= aCentenas(Centenas) Else CadenaTemp &= aCentenas(Centenas) & " " End If End If
'Decenas If Decenas <> 0 Then If esCorto Then If Decenas = 1 Then CadenaTemp &= a1DecenasC(Unidades) ElseIf Unidades > 0 Then CadenaTemp &= a2DecenasC(Decenas) Else CadenaTemp &= a2DecenasE(Decenas) End If Else If Decenas = 1 Then CadenaTemp &= a1DecenasL(Unidades) ElseIf Unidades > 0 Then CadenaTemp &= a2DecenasL(Decenas) Else CadenaTemp &= a2DecenasE(Decenas) End If End If End If
'Unidades If Unidades <> 0 Then If Decenas <> 1 Then If Unidades = 1 And Millon <> 0 Then CadenaTemp &= "UN" Else CadenaTemp &= aUnidades(Unidades) End If End If End If
'Millares If Centenas + Decenas + Unidades <> 0 Then If Centenas + Decenas = 0 And Unidades = 1 And (Millon = 2 Or Millon = 4 Or Millon = 6) Then Select Case Millon Case Is = 2 CadenaTemp &= " MILLON " Case Is = 4 CadenaTemp &= " BILLON " Case Is = 6 CadenaTemp &= " TRILLON " End Select Else CadenaTemp &= aMillares(Millon) End If End If
CadenaFinal = CadenaTemp & CadenaFinal Numero = 1000 Millon += 1 Loop
Return CadenaFinal End Function End Module
Existen muchas formas de lograr esta función, pero yo me adapté mucho a esta porque la uso para muchos formularios, estudia la solución de sagma y tu ya decidirás cual te conviene más, saludos.
8
« en: Miércoles 23 de Septiembre de 2009, 01:53 »
Hola hugo1983, en cuanto a lo que yo se, cuando tu hagas cambios en cualquier parte del formulario ó código, no es necesario que depures ó guardes estos cambios, el sistema guarda todos tus actualizaciones de manera automática cuando tu corrres el sistema, inténtalo, cuando hagas cambios en el formulario ó código corre tu programa y en ese momento el sistema de visual basic ya ha guardado los cambios de manera automática, espero te haya ayudado a resolver tu duda, seguimos en contacto, saludos.
9
« en: Miércoles 23 de Septiembre de 2009, 01:48 »
Hola compañeros del foro, mil disculpas ya que no me había podido conectar al foro por cuestiones de trabajo y no haber respondido a la ayuda que ustedes me han brindado, hace unos minutos, después de haber batallado y comparado códigos encontré la solución al problemita que tenía y aquí con mucho gusto la comparto con ustedes, el código si cambia un buen en cuanto a las órdenes dadas ya que se agregaron variables y demás, espero los comparen y los comprueben para que puedan entender su funcionamiento, seguimos colaborando con el foro, saludos.
Imports MySql.Data.MySqlClient Imports System.Data
Public Class accesoausuarios Dim con As New MySqlConnection() Dim da As New MySqlDataAdapter() Dim ds As New DataSet() Dim dr As DataRow Dim dt As DataTable
Private Sub bvalidar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bvalidar.Click con = New MySqlConnection("server=xxx;database=xxx;uid=xxx;pwd=xxx;") da = New MySqlDataAdapter("select Usuario, Contrasena from registrodeusuarios where Usuario = '" & tusuario.Text & "' and Contrasena = '" & tcontrasena.Text & "'", con) da.Fill(ds, "registrodeusuarios") Me.dt = Me.ds.Tables("registrodeusuarios") For Each Me.dr In Me.dt.Rows If tusuario.Text = Me.dr("Usuario") And tcontrasena.Text = Me.dr("Contrasena") Then Dim fvideohome As New videohome fvideohome.Show() Me.Hide() Else MsgBox("Verifique el nombre de usuario y la contraseña.", MsgBoxStyle.Information, "Operación cancelada.") End If Next End Sub
Private Sub bcancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bcancelar.Click End End Sub
Private Sub tusuario_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tusuario.KeyPress If Asc(e.KeyChar) = 13 Then e.Handled = True SendKeys.Send("{tab}") End If End Sub End Class
10
« en: Viernes 18 de Septiembre de 2009, 04:27 »
Hola amigos, espero me puedan ayudar con la siguente duda que tengo, estoy haciendo una aplicación en la cual al ejecutar un sistema me pide el nombre de usuario y contraseña para poder acceder al sistema, ya tengo lo que son los registros de usuarios, lo que no se hacer es que cuando yo agregue otro usuario y este sea de igual nombre a otro usuario registrado me diga con un mensaje que ese nombre ya está ocupado, también algo que he observado es que cuando yo ingreso el nombre de usuario y la contraseña en el acceso de usuarios no respeta mayúsculas ó minúsculas con las que fueron registrados, acepta combinación de ambas y eso no debería de ser, utilizo visual basic 2005 edición express y mysql este es mi código:
Imports MySql.Data.MySqlClient Imports System.Data
Public Class accesoausuarios Dim con As New MySqlConnection() Dim da As New MySqlDataAdapter() Dim ds As New DataSet()
Private Sub bvalidar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bvalidar.Click con = New MySqlConnection("server=xxx;database=xxx;uid=xxx;pwd=xxx;") da = New MySqlDataAdapter("select Usuario, Contrasena from registrodeusuarios where Usuario = '" & tusuario.Text & "' and Contrasena = '" & tcontrasena.Text & "'", con) da.Fill(ds, "registrodeusuarios") If ds.Tables("registrodeusuarios").Rows.Count > 0 Then Dim fvideohome As New videohome fvideohome.Show() Me.Hide() Else MsgBox("Verifique el nombre de usuario y la contraseña.", MsgBoxStyle.Information, "Operación cancelada.") End If End Sub
Private Sub bcancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bcancelar.Click End End Sub
Private Sub tusuario_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tusuario.KeyPress 'Al presionar la tecla enter nos posiciona en la siguiente caja de texto. If Asc(e.KeyChar) = 13 Then e.Handled = True SendKeys.Send("{tab}") End If End Sub End Class
Espero me puedan ayudar ya que lo hé intentado mucho y no encuentro mucha ayuda en la red con lo que es mysql y visual basic, se los agradeceré mucho.
11
« en: Viernes 18 de Septiembre de 2009, 04:06 »
Hola dlplenin, amigos del foro, te agradezco dlplenin por ese nuevo código que me mandastes, se ve mejor el estilo, lo probé y definitivamente lo voy a dejar así, gracias por ayudarme, seguimos en contacto compareos, saludos.
12
« en: Miércoles 16 de Septiembre de 2009, 20:00 »
Compañero plenin, estuve estudiando y poniendo a prueba tu código y realmente funciona, pero solo tengo una pequeña observación, cuando inicia el formulario de las búsquedas me aparece por default en el combo el nombre de un usuario, por estética, no debería de aparecer, estuve tratando de hacer que fuera así y no pude, por lo que compilé tu código con el que un servidor tenía y lo pude lograr, te comparto a tí y a los usuarios del foro el resultado final y esto es lo que me mostro, de cualquier manera te agradezco mucho tu ayuda porque sin ella no lo ubiese logrado, ya que a partir de tu código lo pude lograr, espero que si puedes en el código que tu me mandastes puedas ayudarme a resolver la duda que tuve para así aprender ha tener otra solución diferente y con menos código, gracias y seguimos colaborando.
Imports MySql.Data.MySqlClient Imports System.Data
Public Class busquedadeclientes Dim con As New MySqlConnection() Dim da As New MySqlDataAdapter() Dim ds As New DataSet() Dim dr As DataRow
Private Sub busquedadeclientes_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim I As Integer con = New MySqlConnection("server=xxx;database=xxx;uid=xxx;pwd=xxx;") da = New MySqlDataAdapter("select concat(Apellido_paterno,' ', Apellido_materno,' ', Nombres) as na, No_credencial from registrodeclientes order by Apellido_paterno asc;", con) da.Fill(ds, "registrodeclientes") If ds.Tables("registrodeclientes").Rows.Count > 0 Then For I = 0 To ds.Tables("registrodeclientes").Rows.Count - 1 dr = ds.Tables("registrodeclientes").Rows(I) Me.cselecciondelcliente.Text = "" Me.cselecciondelcliente.DataSource = ds.Tables("registrodeclientes").DefaultView cselecciondelcliente.ValueMember = "No_credencial" cselecciondelcliente.DisplayMember = "na" Next End If End Sub
Private Sub bbuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bbuscar.Click Me.tnocredencial.Text = Me.cselecciondelcliente.SelectedValue End Sub
Private Sub bsalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bsalir.Click Me.Close() End Sub End Class
13
« en: Miércoles 16 de Septiembre de 2009, 06:00 »
Holadlplenin, te agradezco tu atención y ayuda a mi duda, lo probaré y te avisaré de los resultados, gracias y estamos colaborando en el foro, saludos.
14
« en: Lunes 14 de Septiembre de 2009, 03:29 »
Hola amigos de solocodigo, tengo esta duda, espero me puedan ayudar a resolverla: tengo un formulario de búsquedas, el cual consta de un combobox(cselecciondelcliente), una caja de texto(tnocredencial) y un botón de buscar(bbuscar), al darle clic a la flechita del combobox me muestra una lista de todos los usuarios que se encuentran registrados en una tabla llamada registrodeclientes, hasta allí el programa funciona de manera correcta.
El código que yo necesito es que cuando yo seleccione un nombre y le de clic al botón de buscar me muestre en la caja de texto su número de credencial, utilizo visual basic 2005 edición express y mysql, estos son los valores de los campos: Apellido_paterno, Apellido_materno y Nombres todos varchar(20) y No_credencial int(10) clave primaria.
Este es el código que utilizo en el formulario (como pueden ver los apellidos y el nombre del usuario los tengo concatenados):
Imports MySql.Data.MySqlClient Imports System.Data
Public Class busquedadeclientes Dim con As New MySqlConnection() Dim da As New MySqlDataAdapter() Dim ds As New DataSet() Dim dr As DataRow
Private Sub busquedadeclientes_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim I As Integer con = New MySqlConnection("server=xxx;database=xxx;uid=xxx;pwd=xxx;") da = New MySqlDataAdapter("select concat(Apellido_paterno,' ', Apellido_materno,' ', Nombres) as na from registrodeclientes order by Apellido_paterno asc;", con) da.Fill(ds, "registrodeclientes") If ds.Tables("registrodeclientes").Rows.Count > 0 Then For I = 0 To ds.Tables("registrodeclientes").Rows.Count - 1 dr = ds.Tables("registrodeclientes").Rows(I) cselecciondelcliente.Items.Add(dr("na")) Next End If End Sub
Private Sub bbuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bbuscar.Click
End Sub
Private Sub bsalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bsalir.Click Me.Close() End Sub End Class
Espero y me puedan ayudar, gracias.
15
« en: Lunes 14 de Septiembre de 2009, 00:08 »
Hola chispin, este un sistemita de un control de inventarios en una forma de clientes, todo está basado en visual basic 2005 express y mysql, aquí podrás ver como se almacenan registros en las tablas de datos y como puedes hacer búsquedas de las mismas, espero te sea de utilidad:
Imports MySql.Data.MySqlClient Imports System.Data
Public Class clientes Dim con As New MySqlConnection Dim cnn1 As New MySqlDataAdapter Dim ds1 As New DataSet Dim fila As DataRow Dim sinc As New MySqlCommandBuilder Dim col1(0) As DataColumn
Private Sub clientes_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load con = New MySqlConnection("server=xx;database=xx;uid=xx;pwd=xx") 'aquí tienes que poner los datos a los que te conectas tu. cnn1 = New MySqlDataAdapter("select * from clientes;", con) cnn1.Fill(ds1, "clientes") col1(0) = ds1.Tables("clientes").Columns("Clave") ds1.Tables("clientes").PrimaryKey = col1 sinc = New MySqlCommandBuilder(cnn1) End Sub
Private Sub bguardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bguardar.Click Dim n As String Dim n2 As Integer If ds1.Tables("clientes").Rows.Count > 0 Then fila = ds1.Tables("clientes").Rows(ds1.Tables("clientes").Rows.Count - 1) n = Mid$(fila("Clave"), 2, 3) n2 = Val(n) + 1 Select Case Len(CStr(n2)) Case 1 : tclave.Text = "C00" & CStr(n2) Case 2 : tclave.Text = "C0" & CStr(n2) Case 3 : tclave.Text = "C" & CStr(n2) End Select Else tclave.Text = "C001" End If fila = ds1.Tables("clientes").NewRow fila("Clave") = tclave.Text fila("Nombres") = tnombres.Text fila("Apellido_paterno") = tapellidopaterno.Text fila("Apellido_materno") = tapellidomaterno.Text fila("Calle") = tcalle.Text fila("Colonia") = tcolonia.Text fila("Ciudad") = tciudad.Text fila("Estado") = testado.Text fila("Codigo_postal") = tcodigopostal.Text fila("RFC") = trfc.Text fila("Telefono") = ttelefono.Text fila("Telefono_celular") = ttelefonocelular.Text fila("Fax") = tfax.Text fila("E_mail") = temail.Text fila("Contacto") = tcontacto.Text ds1.Tables("clientes").Rows.Add(fila) cnn1.Update(ds1, "clientes") ds1.AcceptChanges() tnombres.Enabled = False tapellidopaterno.Enabled = False tapellidomaterno.Enabled = False tcalle.Enabled = False tcolonia.Enabled = False tciudad.Enabled = False testado.Enabled = False tcodigopostal.Enabled = False trfc.Enabled = False ttelefono.Enabled = False ttelefonocelular.Enabled = False tfax.Enabled = False temail.Enabled = False tcontacto.Enabled = False bnuevo.Enabled = True bguardar.Enabled = False bbuscar.Enabled = True bmodificar.Enabled = True bguardarmodificacion.Enabled = False beliminar.Enabled = False bcancelar.Enabled = False bimprimir.Enabled = True bayuda.Enabled = True End Sub
Private Sub bbuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bbuscar.Click Dim b As String b = InputBox("Introduzca la clave del cliente que desea buscar", "Búsqueda de clientes.") fila = ds1.Tables("clientes").Rows.Find(b) If fila Is Nothing Then MsgBox("El cliente no existe.", MsgBoxStyle.Information, "Búsqueda de clientes.") bnuevo.Enabled = True bguardar.Enabled = False bbuscar.Enabled = True bmodificar.Enabled = False bguardarmodificacion.Enabled = False beliminar.Enabled = False bcancelar.Enabled = False bimprimir.Enabled = False bayuda.Enabled = True Else tclave.Text = fila("Clave") tnombres.Text = fila("Nombres") tapellidopaterno.Text = fila("Apellido_paterno") tapellidomaterno.Text = fila("Apellido_materno") tcalle.Text = fila("Calle") tcolonia.Text = fila("Colonia") tciudad.Text = fila("Ciudad") testado.Text = fila("Estado") tcodigopostal.Text = fila("Codigo_postal") trfc.Text = fila("RFC") ttelefono.Text = fila("Telefono") ttelefonocelular.Text = fila("Telefono_celular") tfax.Text = fila("Fax") temail.Text = fila("E_mail") tcontacto.Text = fila("Contacto") 'Habilita y deshabilita los botones correspondientes. bnuevo.Enabled = False bguardar.Enabled = False bbuscar.Enabled = True bmodificar.Enabled = True bguardarmodificacion.Enabled = False beliminar.Enabled = True bcancelar.Enabled = True bimprimir.Enabled = True bayuda.Enabled = True End If End Sub End Class
16
« en: Domingo 13 de Septiembre de 2009, 23:50 »
Hola ems_oviedo, mira, este es un código en el que utilicé el toolbar, está compuesto de 3 botones que son nuevo, guardar e imprimir, espero te sea de utilidad:
Private Sub tbotones_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles tbotones.ButtonClick Select Case tbotones.Buttons.IndexOf(e.Button) Case 0 tnombre.Enabled = True tpaterno.Enabled = True tmaterno.Enabled = True rm.Enabled = True rf.Enabled = True dnacimiento.Enabled = True tedad.Enabled = True tcurp.Enabled = True tgrado.Enabled = True tgrupo.Enabled = True cnacimiento.Enabled = True cnacimiento.Checked = False cprimaria.Enabled = True cprimaria.Checked = False cfotografias.Enabled = True cfotografias.Checked = False cconducta.Enabled = True cconducta.Checked = False csalud.Enabled = True csalud.Checked = False cparcial.Enabled = True cparcial.Checked = False tcalle.Enabled = True tcolonia.Enabled = True tnumero.Enabled = True tdelegacion.Enabled = True tmunicipio.Enabled = True testado.Enabled = True tcodigopostal.Enabled = True tprocedencia.Enabled = True tpadre.Enabled = True tparticular.Enabled = True tmovil.Enabled = True toficina.Enabled = True temail.Enabled = True tsanguineo.Enabled = True tmedico.Enabled = True tafiliacion.Enabled = True rsi.Enabled = True rno.Enabled = True tenfermedad.Enabled = True borrarcajas() tnombre.Focus() bnuevo.Enabled = False bguardar.Enabled = True bimprimir.Enabled = True Case 1 Dim I As Integer Dim nc As String 'Validar Datos. If tnombre.Text = "" Then MsgBox("Es necesario que ingreses el nombre del alumno.", MsgBoxStyle.Information, "Operación Cancelada") Exit Sub End If 'Calcula la clave a asignar. If dsalumnos.Tables("matriculas").Rows.Count > 0 Then finv = dsalumnos.Tables("matriculas").Rows(dsalumnos.Tables("matriculas").Rows.Count - 1) nc = Format(Val(Mid$(finv("matricula"), 3, 3)) + 1, "000") tmatricula.Text = Mid$(DateTime.Now.Year.ToString(), 3, 2) & nc Else tmatricula.Text = Mid$(DateTime.Now.Year.ToString(), 3, 2) & "001" End If finv = dsalumnos.Tables("matriculas").NewRow finv("matricula") = tmatricula.Text finv("nombre") = tnombre.Text finv("paterno") = tpaterno.Text finv("materno") = tmaterno.Text If rm.Checked = True Then finv("sexo") = 1 Else finv("sexo") = 2 finv("nacimiento") = dnacimiento.Text finv("edad") = Val(tedad.Text) finv("curp") = tcurp.Text finv("grado") = Val(tgrado.Text) finv("grupo") = tgrupo.Text If cnacimiento.Checked = True Then finv("documento1") = 1 Else finv("documento1") = 0 If cprimaria.Checked = True Then finv("documento2") = 1 Else finv("documento2") = 0 If cfotografias.Checked = True Then finv("documento3") = 1 Else finv("documento3") = 0 If cconducta.Checked = True Then finv("documento4") = 1 Else finv("documento4") = 0 If csalud.Checked = True Then finv("documento5") = 1 Else finv("documento5") = 0 If cparcial.Checked = True Then finv("documento6") = 1 Else finv("documento6") = 0 finv("calle") = tcalle.Text finv("colonia") = tcolonia.Text finv("numero") = tnumero.Text finv("delegacion") = tdelegacion.Text finv("municipio") = tmunicipio.Text finv("estado") = testado.Text finv("codigopostal") = Val(tcodigopostal.Text) finv("procedencia") = tprocedencia.Text finv("padre") = tpadre.Text finv("particular") = tparticular.Text finv("movil") = tmovil.Text finv("oficina") = toficina.Text finv("email") = temail.Text finv("sanguineo") = tsanguineo.Text finv("medico") = tmedico.Text finv("afiliacion") = Val(tafiliacion.Text) If rsi.Checked = True Then finv("padecimiento") = 1 Else finv("padecimiento") = 2 finv("enfermedad") = tenfermedad.Text dsalumnos.Tables("matriculas").Rows.Add(finv) tnombre.Enabled = False tpaterno.Enabled = False tmaterno.Enabled = False rm.Enabled = False rf.Enabled = False dnacimiento.Enabled = False tedad.Enabled = False tcurp.Enabled = False tgrado.Enabled = False tgrupo.Enabled = False cnacimiento.Enabled = False cprimaria.Enabled = False cfotografias.Enabled = False cconducta.Enabled = False csalud.Enabled = False cparcial.Enabled = False tcalle.Enabled = False tcolonia.Enabled = False tnumero.Enabled = False tdelegacion.Enabled = False tmunicipio.Enabled = False testado.Enabled = False tcodigopostal.Enabled = False tprocedencia.Enabled = False tpadre.Enabled = False tparticular.Enabled = False tmovil.Enabled = False toficina.Enabled = False temail.Enabled = False tsanguineo.Enabled = False tmedico.Enabled = False tafiliacion.Enabled = False rsi.Enabled = False rno.Enabled = False tenfermedad.Enabled = False bnuevo.Enabled = True bguardar.Enabled = False bimprimir.Enabled = True cnalumnos.Update(dsalumnos.Tables("matriculas")) dsalumnos.Tables("matriculas").AcceptChanges() cncalif = New MySqlDataAdapter("select * from calificaciones where matricula='" & tmatricula.Text & "';", con1) cncalif.Fill(dscalif, "calificaciones") sinc2 = New MySqlCommandBuilder(cncalif) Try dsplan.Clear() Catch End Try cnplan = New MySqlDataAdapter("select * from planestudios;", con1) cnplan.Fill(dsplan, "planestudios") If dsplan.Tables("planestudios").Rows.Count > 0 Then For I = 0 To dsplan.Tables("planestudios").Rows.Count - 1 fplan = dsplan.Tables("planestudios").Rows(I) fcalif = dscalif.Tables("calificaciones").NewRow() fcalif("matricula") = tmatricula.Text fcalif("clavemat") = fplan("clavemat") fcalif("materia") = fplan("materia") fcalif("grado") = fplan("grado") dscalif.Tables("calificaciones").Rows.Add(fcalif) Next cncalif.Update(dscalif.Tables("calificaciones")) dscalif.AcceptChanges() End If Case 2 rep1 = New crinscripciones() rep1.SetDataSource(dsalumnos.Tables("matriculas")) Dim frep As New reportes() frep.Show() End Select End Sub
Te recomiendo que programes en una versión 2005 ó versión 2008, donde ya tienes una opción de toolstrip, en la cual cada botón depende de sí mismo, su código es de manera individual, espero te ayude.
17
« en: Domingo 13 de Septiembre de 2009, 23:29 »
Hola foru, mira, lo primero que tienes que hacer es declarar un módulo como una variable global, es decir, agrega un módulo y ponle el nombre que gustes, por ejemplo globales.vb ya que serán variables que te servirán para todos los proyectos de reportes, ¿ok?, después de eso da doble clic a ese módulo y escribe el siguiente código:
Imports CrystalDecisions.CrystalReports.Engine.ReportDocument Module Globales Public rep As New CrystalDecisions.CrystalReports.Engine.ReportDocument() End Module
A continuación vamos a agregar un formulario nuevo en nuestro proyecto, te suguiero que le pongas de nombre reportes.vb para que lo tengas identificado ó el que gustes, dentro de este formulario ve al cuadro de herramientas y arrastra la herramienta de CrystalReportViewer1 y agrega el siguiente código:
Public Class reportes Inherits System.Windows.Forms.Form
Private Sub CrystalReportViewer1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CrystalReportViewer1.Load CrystalReportViewer1.ReportSource = rep End Sub End Class Ahora lo que tenemos que hacer es agregar un dataset, el cual va a contener los datos que tengas en tus bases de datos, vamos a manejar el siguiente ejemplo, supongamos que tenemos una tabla llamada clientes vamos a agregar a nuestro proyecto un formulario Conjunto de datos al cual le pondremos de nombre dsclientes.xsd, cuando nos abra ese formulario, del cuadro de herramientas vamos a seleccionar la opción Data Table y la arrastramos en el formulario, damos un clic en el encabezado y de título le vamos a poner el nombre de la tabla que vamos a agregar, por ejemplo clientes, damos clic derecho y agragamos el número de campos que tienes nuestra tabla, por ejemplo, nombre, direccion telefono, tal cual los tenemos en la tabla de clientes, en el campo que sea la clave principaldamos clic derecho y agregamos la clave principal, damos clic a lo que te diga, ahora de nuesto lado derecho tenemos que configurar el tipo de dato dentro de cada uno de esos campos, es decir, si son string, double, int32, char, etc, eso depende de tos campos, así como si son valores nulos, etc.
Ok, después de hacer todo esto, vamos a agregar un Crystal Reports al cual vamos a llamar crclientes.rpt, en la parte izquierda superior de ese formulario, vamos a ver campos de bases de datos, damos clic derecho y asistente de bases de datos, abrimos la carpeta datos del proyecto, abrimos la carpeta ADO.NET DataSets, seleccionamos el dataset que necesitamos en tal caso y lo agregamos a las tablas seleccionadas, ahora en la parte superior izquierda en campos de bases de datos ya nos aparece el nombre de nuestro dataset abrimos el campo del signo de más y arrastramos los campos dentro de la sección 3 detalles, ta apareceran dos campos iguales uno con el identificador encabezado de campo y el otro contendrá el valor de la tabla de clientes, tu los ordenarás y le darás el formato que gustes y los acomodarás en la sección que gustes, ese será tu estilo.
Bueno, en nuestro formulario de clientes debemos de tener un botón de imprimir, en el damos doble clic y agregamos el siguiente código:
Private Sub limprimir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles limprimir.Click rep = New crclientes rep.SetDataSource(ds.Tables("clientes")) Dim freportes As New reportes freportes.Show() End Sub
Si tu formulario principal es un MdiContainers deja el código del botón de imprimir tal cual te lo puse, si no es MdiContainers elimina las últimas dos líneas de código, espero sea de utilidad este pequeño tutorial, de cualquier forma sigue escribiendo tus dudas, yo checaré este sunto más adelante, gracias.
18
« en: Domingo 13 de Septiembre de 2009, 22:30 »
Hola amigos de solocodigo.com, después de intentar varios códigos hé encontrado la solución a la duda que tenía sobre como modificar los registros de un datagrid y guardarlos en su respectiva base de datos, el código sólo tenía un par de líneas de código incorrecto, así que sólo les pongo el código de guardar modificación, espero les sea de utilidad:
Private Sub lguardarmodificacion_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lguardarmodificacion.Click Dim cnrm As New MySqlDataAdapter Dim cnrd As New MySqlDataAdapter Dim dsrentas As New DataSet Dim filarentas As DataRow Dim sincrentas As New MySqlCommandBuilder Dim comrentas As New MySqlCommand cnrm = New MySqlDataAdapter("select * from rentadepeliculas_maestro where folio=" & tfolio.Text & " order by Folio;", con) cnrm.Fill(dsrentas, "rentadepeliculas_maestro") sincrentas = New MySqlCommandBuilder(cnrm) filarentas = dsrentas.Tables("rentadepeliculas_maestro").Rows(0) filarentas.BeginEdit() filarentas("No_credencial") = tnocredencial.Text filarentas("Folio") = tfolio.Text filarentas("Fecha") = dfecha.Text filarentas("Nombre") = tnombre.Text filarentas("Direccion") = tdireccion.Text filarentas("Telefono") = ttelefono.Text filarentas("Cantidad_letra") = tcantidadconletra.Text filarentas("Subtotal") = Val(tsubtotal.Text) filarentas("Iva") = Val(tiva.Text) filarentas("Total") = Val(ttotal.Text) filarentas.EndEdit() cnrm.Update(dsrentas.Tables("rentadepeliculas_maestro")) dsrentas.AcceptChanges() cnrd = New MySqlDataAdapter("select * from rentadepeliculas_detalle where folio=" & tfolio.Text & " order by Num;", con) cnrd.Fill(dsrentas, "rentadepeliculas_detalle") sincrentas = New MySqlCommandBuilder(cnrd) For i As Integer = 0 To DataGridView1.Rows.Count - 1 If DataGridView1.Rows(i).Cells(1).Value <> "" Then filarentas = dsrentas.Tables("rentadepeliculas_detalle").Rows(i) filarentas.BeginEdit() filarentas("Folio") = tfolio.Text filarentas("Ean") = DataGridView1.Rows(i).Cells(0).Value filarentas("Titulo") = DataGridView1.Rows(i).Cells(1).Value filarentas("Formato") = DataGridView1.Rows(i).Cells(2).Value filarentas("Contenido") = CDbl(DataGridView1.Rows(i).Cells(3).Value) filarentas("Precio") = CDbl(DataGridView1.Rows(i).Cells(4).Value) filarentas("Copias") = CDbl(DataGridView1.Rows(i).Cells(5).Value) filarentas("Importe") = CDbl(DataGridView1.Rows(i).Cells(6).Value) filarentas.EndEdit() cnrd.Update(dsrentas.Tables("rentadepeliculas_detalle")) dsrentas.AcceptChanges() End If Next deshabilitarcajas() lnuevo.Enabled = True lguardar.Enabled = False limprimir.Enabled = True lbuscar.Enabled = True lmodificar.Enabled = True lguardarmodificacion.Enabled = False leliminar.Enabled = False lcancelar.Enabled = False End Sub
19
« en: Lunes 7 de Septiembre de 2009, 06:12 »
Hola amigos de solocodigo, espero me puedan ayudar con la siguiente duda: Estoy haciendo un sistema de control de inventario de un videoclub en visual basic 2005 y mysql, mis registros los guarda a la perfección pero si yo quiero modificar esos datos y doy clic al botón guardar modificación no me permite hacerlo, allí dejé mi código de guardar modificación en comentarios, espero me puedan ayudar a formular el código correcto, gracias.
Imports MySql.Data.MySqlClient Imports System.Data
Public Class rentadepeliculas Dim con As New MySqlConnection Dim ds As New DataSet Private Sub borrarcajas() tnocredencial.Text = "" tfolio.Text = "" dfecha.Value = Date.Now tnombre.Text = "" tdireccion.Text = "" ttelefono.Text = "" DataGridView1.Rows.Clear() DataGridView1.Rows.Add(10) tcantidadconletra.Text = "" tsubtotal.Text = "" tiva.Text = "" ttotal.Text = "" End Sub Private Sub habilitarcajas() tnocredencial.Enabled = True dfecha.Enabled = True DataGridView1.Enabled = True End Sub Private Sub deshabilitarcajas() tnocredencial.Enabled = False dfecha.Enabled = True DataGridView1.Enabled = False End Sub
Private Sub rentadepeliculas_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load con = New MySqlConnection("server=X;database=bdX;uid=X;pwd=XXXXX") con.Open() DataGridView1.Rows.Add(10) End Sub
Private Sub lguardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lguardar.Click Dim cnrm As New MySqlDataAdapter Dim cnrd As New MySqlDataAdapter Dim dsrentas As New DataSet Dim filarentas As DataRow Dim sincrentas As New MySqlCommandBuilder Dim comrentas As New MySqlCommand cnrm = New MySqlDataAdapter("select * from rentadepeliculas_maestro order by Folio;", con) cnrm.Fill(dsrentas, "rentadepeliculas_maestro") sincrentas = New MySqlCommandBuilder(cnrm) If tnocredencial.Text = "" Then MsgBox("Es necesario que ingrese el número de credencial.", MsgBoxStyle.Information, "Operación cancelada.") Exit Sub End If For i As Integer = 0 To DataGridView1.Rows.Count - 1 If DataGridView1.Rows(i).Cells(0).Value = "" And DataGridView1.Rows(i).Cells(4).Value = "" And DataGridView1.Rows(i).Cells(5).Value = "" And tcantidadconletra.Text = "" And tsubtotal.Text = "" And tiva.Text = "" And ttotal.Text = "" Then MsgBox("No puede realizar un registro de renta con campos en blanco.", MsgBoxStyle.Information, "Operación cancelada.") Exit Sub End If Next If dsrentas.Tables("rentadepeliculas_maestro").Rows.Count > 0 Then filarentas = dsrentas.Tables("rentadepeliculas_maestro").Rows(dsrentas.Tables("rentadepeliculas_maestro").Rows.Count - 1) tfolio.Text = Val(filarentas("Folio")) + 1 Else tfolio.Text = "1" End If filarentas = dsrentas.Tables("rentadepeliculas_maestro").NewRow filarentas("No_credencial") = tnocredencial.Text filarentas("Folio") = tfolio.Text filarentas("Fecha") = dfecha.Text filarentas("Nombre") = tnombre.Text filarentas("Direccion") = tdireccion.Text filarentas("Telefono") = ttelefono.Text filarentas("Cantidad_letra") = tcantidadconletra.Text filarentas("Subtotal") = Val(tsubtotal.Text) filarentas("Iva") = Val(tiva.Text) filarentas("Total") = Val(ttotal.Text) dsrentas.Tables("rentadepeliculas_maestro").Rows.Add(filarentas) cnrm.Update(dsrentas.Tables("rentadepeliculas_maestro")) dsrentas.AcceptChanges() cnrd = New MySqlDataAdapter("select * from rentadepeliculas_detalle order by Num;", con) cnrd.Fill(dsrentas, "rentadepeliculas_detalle") sincrentas = New MySqlCommandBuilder(cnrd) For i As Integer = 0 To DataGridView1.Rows.Count - 1 If DataGridView1.Rows(i).Cells(1).Value <> "" Then filarentas = dsrentas.Tables("rentadepeliculas_detalle").NewRow filarentas("Folio") = tfolio.Text filarentas("Ean") = DataGridView1.Rows(i).Cells(0).Value filarentas("Titulo") = DataGridView1.Rows(i).Cells(1).Value filarentas("Formato") = DataGridView1.Rows(i).Cells(2).Value filarentas("Contenido") = CDbl(DataGridView1.Rows(i).Cells(3).Value) filarentas("Precio") = CDbl(DataGridView1.Rows(i).Cells(4).Value) filarentas("Copias") = CDbl(DataGridView1.Rows(i).Cells(5).Value) filarentas("Importe") = CDbl(DataGridView1.Rows(i).Cells(6).Value) dsrentas.Tables("rentadepeliculas_detalle").Rows.Add(filarentas) cnrd.Update(dsrentas.Tables("rentadepeliculas_detalle")) dsrentas.AcceptChanges() End If Next deshabilitarcajas() lnuevo.Enabled = True lguardar.Enabled = False limprimir.Enabled = True lbuscar.Enabled = True lmodificar.Enabled = True lguardarmodificacion.Enabled = False leliminar.Enabled = False lcancelar.Enabled = False End Sub
Private Sub lbuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lbuscar.Click Dim cnrentas As New MySqlDataAdapter Dim dsrent As New DataSet Dim filarent As DataRow Dim x As String x = InputBox("Introduzca el número de folio que desea buscar.") If x = "" Then Exit Sub cnrentas = New MySqlDataAdapter("select * from rentadepeliculas_maestro where Folio = " & x & ";", con) cnrentas.Fill(dsrent, "rentadepeliculas_maestro") If dsrent.Tables("rentadepeliculas_maestro").Rows.Count > 0 Then filarent = dsrent.Tables("rentadepeliculas_maestro").Rows(0) tnocredencial.Text = filarent("No_credencial") tfolio.Text = filarent("Folio") dfecha.Text = filarent("Fecha") tnombre.Text = filarent("Nombre") tdireccion.Text = filarent("Direccion") ttelefono.Text = filarent("Telefono") tcantidadconletra.Text = filarent("Cantidad_letra") tsubtotal.Text = filarent("Subtotal") tiva.Text = filarent("Iva") ttotal.Text = filarent("Total") Else MsgBox("Folio no encontrado.", MsgBoxStyle.Information, "Operación cancelada.") borrarcajas() lnuevo.Enabled = True lguardar.Enabled = False limprimir.Enabled = False lbuscar.Enabled = True lmodificar.Enabled = False lguardarmodificacion.Enabled = False leliminar.Enabled = False lcancelar.Enabled = False Exit Sub dsrent.Clear() dsrent.Dispose() cnrentas.Dispose() End If DataGridView1.Rows.Clear() DataGridView1.Rows.Add(10) cnrentas = New MySqlDataAdapter("select * from rentadepeliculas_detalle where Folio =" & x & ";", con) cnrentas.Fill(dsrent, "rentadepeliculas_detalle") If dsrent.Tables("rentadepeliculas_detalle").Rows.Count > 0 Then For i As Integer = 0 To dsrent.Tables("rentadepeliculas_detalle").Rows.Count - 1 filarent = dsrent.Tables("rentadepeliculas_detalle").Rows(i) DataGridView1.Rows(i).Cells(0).Value = filarent("Ean") DataGridView1.Rows(i).Cells(1).Value = filarent("Titulo") DataGridView1.Rows(i).Cells(2).Value = filarent("Formato") DataGridView1.Rows(i).Cells(3).Value = filarent("Contenido") DataGridView1.Rows(i).Cells(4).Value = filarent("Precio") DataGridView1.Rows(i).Cells(5).Value = filarent("Copias") DataGridView1.Rows(i).Cells(6).Value = filarent("Importe") lnuevo.Enabled = False lguardar.Enabled = False limprimir.Enabled = True lbuscar.Enabled = True lmodificar.Enabled = True lguardarmodificacion.Enabled = False leliminar.Enabled = True lcancelar.Enabled = True Next End If dsrent.Clear() dsrent.Dispose() cnrentas.Dispose() End Sub
Private Sub lmodificar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lmodificar.Click habilitarcajas() tnocredencial.Focus() lnuevo.Enabled = False lguardar.Enabled = False limprimir.Enabled = False lbuscar.Enabled = False lmodificar.Enabled = False lguardarmodificacion.Enabled = True leliminar.Enabled = False lcancelar.Enabled = True End Sub
Private Sub lguardarmodificacion_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lguardarmodificacion.Click 'Dim cnrm As New MySqlDataAdapter 'Dim cnrd As New MySqlDataAdapter 'Dim dsrentas As New DataSet 'Dim filarentas As DataRow 'Dim sincrentas As New MySqlCommandBuilder 'Dim comrentas As New MySqlCommand 'cnrm = New MySqlDataAdapter("select * from rentadepeliculas_maestro order by Folio;", con) 'cnrm.Fill(dsrentas, "rentadepeliculas_maestro") 'sincrentas = New MySqlCommandBuilder(cnrm) 'filarentas = dsrentas.Tables("rentadepeliculas_maestro").NewRow 'filarentas.BeginEdit() 'filarentas("No_credencial") = tnocredencial.Text 'filarentas("Folio") = tfolio.Text 'filarentas("Fecha") = dfecha.Text 'filarentas("Nombre") = tnombre.Text 'filarentas("Direccion") = tdireccion.Text 'filarentas("Telefono") = ttelefono.Text 'filarentas("Cantidad_letra") = tcantidadconletra.Text 'filarentas("Subtotal") = Val(tsubtotal.Text) 'filarentas("Iva") = Val(tiva.Text) 'filarentas("Total") = Val(ttotal.Text) 'filarentas.EndEdit() 'cnrm.Update(dsrentas.Tables("rentadepeliculas_maestro")) 'dsrentas.AcceptChanges() 'cnrd = New MySqlDataAdapter("select * from rentadepeliculas_detalle order by Num;", con) 'cnrd.Fill(dsrentas, "rentadepeliculas_detalle") 'sincrentas = New MySqlCommandBuilder(cnrd) 'For i As Integer = 0 To DataGridView1.Rows.Count - 1 ' If DataGridView1.Rows(i).Cells(1).Value <> "" Then ' filarentas = dsrentas.Tables("rentadepeliculas_detalle").NewRow ' filarentas.BeginEdit() ' filarentas("Folio") = tfolio.Text ' filarentas("Ean") = DataGridView1.Rows(i).Cells(0).Value ' filarentas("Titulo") = DataGridView1.Rows(i).Cells(1).Value ' filarentas("Formato") = DataGridView1.Rows(i).Cells(2).Value ' filarentas("Contenido") = CDbl(DataGridView1.Rows(i).Cells(3).Value) ' filarentas("Precio") = CDbl(DataGridView1.Rows(i).Cells(4).Value) ' filarentas("Copias") = CDbl(DataGridView1.Rows(i).Cells(5).Value) ' filarentas("Importe") = CDbl(DataGridView1.Rows(i).Cells(6).Value) ' filarentas.EndEdit() ' cnrm.Update(dsrentas.Tables("rentadepeliculas_detalle")) ' dsrentas.AcceptChanges() ' End If 'Next 'deshabilitarcajas() 'lnuevo.Enabled = True 'lguardar.Enabled = False 'limprimir.Enabled = True 'lbuscar.Enabled = True 'lmodificar.Enabled = True 'lguardarmodificacion.Enabled = False 'leliminar.Enabled = False 'lcancelar.Enabled = False End Sub
Private Sub tnocredencial_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tnocredencial.KeyPress Dim cncliente As New MySqlDataAdapter Dim dscliente As New DataSet Dim filacliente As DataRow ''If Asc(e.KeyChar) = Keys.Return Then If Asc(e.KeyChar) = 13 Then cncliente = New MySqlDataAdapter("select Nombres, Apellido_paterno, Apellido_materno, Colonia, Calle, Ciudad, Telefono from registrodeclientes where No_credencial='" & tnocredencial.Text & "';", con) cncliente.Fill(dscliente, "registrodeclientes") If dscliente.Tables("registrodeclientes").Rows.Count > 0 Then filacliente = dscliente.Tables("registrodeclientes").Rows(0) tnombre.Text = filacliente("Nombres") & " " & filacliente("Apellido_paterno") & " " & filacliente("Apellido_materno") tdireccion.Text = filacliente("Colonia") & " " & filacliente("Calle") & " " & filacliente("Ciudad") ttelefono.Text = filacliente("Telefono") Else MsgBox("Cliente no encontrado.", MsgBoxStyle.Information, "Búsqueda de clientes.") tnocredencial.Text = "" tnombre.Text = "" tdireccion.Text = "" ttelefono.Text = "" End If dscliente.Clear() dscliente.Dispose() cncliente.Dispose() 'dscliente.Tables("registrodeclientes").Clear() End If End Sub
Private Sub DataGridView1_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit Dim cnpel As New MySqlDataAdapter Dim dspel As New DataSet Dim filapel As DataRow Dim ean As String Dim precio As Double Dim copias As Double Dim vsubt As Double = 0 Dim vean As String = "" Dim vlinea As Integer Select Case e.ColumnIndex Case 0 vean = DataGridView1.CurrentCell.Value vlinea = DataGridView1.CurrentRow.Index For i As Integer = 0 To DataGridView1.Rows.Count - 1 If vean = DataGridView1.Rows(i).Cells(0).Value And i <> vlinea Then MsgBox("No puede introducir un mismo ean.", MsgBoxStyle.Information, "Operación cancelada.") DataGridView1.CurrentCell.Value = "" SendKeys.Send("{up}") Exit Sub End If Next ean = DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(0).Value cnpel = New MySqlDataAdapter("select Titulo, Formato, Contenido from registrodepeliculas where Ean='" & ean & "';", con) cnpel.Fill(dspel, "regpeliculas") If dspel.Tables("regpeliculas").Rows.Count > 0 Then filapel = dspel.Tables("regpeliculas").Rows(0) DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(1).Value = filapel("titulo") DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(2).Value = filapel("formato") DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(3).Value = filapel("contenido") Else DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(1).Value = "" End If dspel.Clear() dspel.Dispose() cnpel.Dispose() SendKeys.Send("{up}") SendKeys.Send("{tab}") SendKeys.Send("{tab}") SendKeys.Send("{tab}") SendKeys.Send("{tab}") Case 4 copias = CDbl(DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(4).Value) If copias > 0 Then SendKeys.Send("{up}") SendKeys.Send("{tab}") Else SendKeys.Send("{up}") End If Case 5 precio = CDbl(DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(4).Value) copias = CDbl(DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(5).Value) If precio > 0 And copias > 0 Then DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(6).Value = precio * copias For i As Integer = 0 To DataGridView1.Rows.Count - 1 vsubt = vsubt + CDbl(DataGridView1.Rows(i).Cells(6).Value) Next tsubtotal.Text = vsubt tiva.Text = vsubt * 0.15 ttotal.Text = CDbl(tsubtotal.Text) + CDbl(tiva.Text) SendKeys.Send("{up}") SendKeys.Send("{tab}") SendKeys.Send("{tab}") End If End Select End Sub End Class
Páginas: [1]
|
|
|