En esta nueva lección vamos se trabaja la parte de insertar nuevos controles en el formulario de Datos de la Empresa y darle estilos, agregué un control Image para el logo de la empresa.
Para la selección del logo se utiliza un control Common Dialog que no hemos utilizado, en el el vídeo explico su uso.
Este logo se utilizará más adelante para la impresión de la factura de ventas y para otros informes.
Vamos a implementar primeramente el código de la seleccionan del logo de la empresa para ello se utiliza el siguiente código:
Botón Abrir Imagen
En el evento Clic el botón cmdAbrirImage del Formulario frmDatosEmpresa queda de la siguiente manera:
Private Sub cmdAbrirImage_Click() CommonDialog1.Filter = "Archivo de Imagen|*.jpg|*.jpeg" CommonDialog1.ShowOpen If CommonDialog1.FileName <> "" Then txtLogo.Text = CommonDialog1.FileName imgLogo.Picture = LoadPicture(txtLogo.Text) Else txtLogo.Text = "" End If End Sub
Si notamos en el código anterior la propiedad Filter nos indica que tipo de archivo vamos a buscar: “Archivo de Imagen|*.jpg|*.jpeg” con esto le estamos indicando que solo busque imágenes JPG o JPEG.
CommonDialog1.ShowOpen Le indicamos a CommonDialog que se abra.
AL cerrar el CommonDialog se ejecuta el código siguiente que sería el condicional donde validamos que el nombre del archivo sea diferente a vació de esta manera sabemos si se seleccionó o no un archivo.
Botón Guardar
El siguiente método se utiliza para Guardar o Actualizar los datos de la empresa, este código estará ubicado el módulo mod_Consultas:
Código:
Sub GuardarDatosEmpresa(Nombre As String, Propie As String, Nit As String, _ Telefono As String, Direcc As String, logo As String, _ Descrip As String, Regimen As Integer, Resoluc As String, _ FechaAp As Date, Rango1 As String, Rango2 As String, IniciarEn As String) Dim RecorsetTemp As New ADODB.RecordSet Dim sql As String sql = "Select IdEmpresa from tblDatosEmpresa where IdEmpresa = 1 " RecorsetTemp.Open sql, ConexionADO If RecorsetTemp.RecordCount > 0 Then sql = "Update tblDatosEmpresa SET NombreEmpresa ='" & Nombre _ & "', Propietario = '" & Propie & "',Nit='" & Nit & "',Telefonos='" & Telefono _ & "', Direccion='" & Direcc & "',Logo='" & logo & "',Descripcion='" & Descrip _ & "', Regimen=" & Regimen & ", Resolucion='" & Resoluc & "', FechaResol= '" & FechaAp _ & "', Rango1=" & Rango1 & ",Rango2=" & Rango2 & ",IniciarEn = " & IniciarEn & _ " where IdEmpresa = 1" Else sql = "Insert Into tblDatosEmpresa (IdEmpresa, NombreEmpresa, Propietario, Nit, Telefonos, " _ & " Direccion,Logo,Descripcion, Regimen, Resolucion,FechaResol, Rango1,Rango2,IniciarEn) " _ & " Values (1, '" & Nombre & "' , '" & Propie & "', '" & Nit & "', '" & Telefono _ & "', '" & Direcc & "', '" & logo & "', '" & Descrip & "', " & Regimen & ", '" & Resoluc _ & "', '" & FechaAp & "', " & Rango1 & ", " & Rango2 & ", " & IniciarEn & " ) " End If ConexionADO.Execute sql MsgBox "Datos Guardados", vbInformation, "Guardar" End Sub
El método anterior es llamado desde un nuevo procedimiento que cree llamado GuardarDatos del formulario frmDatosEmpresa:
Y este a su ves es llamado por el evento Clic del botón Guardar:
Private Sub cmdGuardar_Click() Call GuardarDatos Call DesabilitarControles End Sub
Si se nota en el código anterior desde este mismo evento llamo a otro procedimiento llamado DesabilitarControles que como su nombre lo indica se utiliza para deshabilitar Controles luego de haber guardado.
Al igual que cree el procedimiento para deshabilitar Controles también cree uno para habilitarlos llamado HabilitarControles que al contrario del anterior se utiliza para habilitar todos los controles esto servirá para cuando se vaya a editar los datos de la Empresa.
Sub DesabilitarControles() txtNombreEmpresa.Enabled = False txtPropietario.Enabled = False txtNit.Enabled = False txtTelefono.Enabled = False txtDireccion.Enabled = False cmdAbrirImage.Enabled = False txtDescripcion.Enabled = False cmdTipoRegimen.Enabled = False txtResolucion.Enabled = False txtFechaApro.Enabled = False txtRango1.Enabled = False txtRango2.Enabled = False txtFacturarDesde.Enabled = False cmdGuardar.Enabled = False cmdModificar.Enabled = True End Sub Sub HabilitarControles() txtNombreEmpresa.Enabled = True txtPropietario.Enabled = True txtNit.Enabled = True txtTelefono.Enabled = True txtDireccion.Enabled = True cmdAbrirImage.Enabled = True txtDescripcion.Enabled = True cmdTipoRegimen.Enabled = True If cmdTipoRegimen.ListIndex = 1 Then txtResolucion.Enabled = True txtFechaApro.Enabled = True txtRango1.Enabled = True txtRango2.Enabled = True txtFacturarDesde.Enabled = True End If cmdGuardar.Enabled = True End Sub
ComboBox Tipo Régimen
Este dato servirá para determinar si la empresa debe pagar o no impuestos si es Si cuando se ingresen los productos hay que especificar el valor del porcentaje de los impuestos, pero esto se verá más adelante.
Para lo anterior en el Evento Clic del ComboBox Régimen se utilizará el siguiente código, que lo que hace es habilitar o deshabilitar los campos de régimen, si la propiedad ListIndex = 0 se deshabilitan los controles de lo contrario se habilitan los controles.
Tenga presente que el ComboBox cmdTipoRegimen debe tener la propiedad Style = 2 – Dropdowm List
Nota: el código siguiente tiene algunas correcciones que no aparecen en el vídeo.
Private Sub cmdTipoRegimen_Click() If cmdTipoRegimen.ListIndex = 0 Then txtResolucion.Enabled = False txtFechaApro.Enabled = False txtRango1.Enabled = False txtRango2.Enabled = False txtFacturarDesde.Enabled = False txtResolucion.Text = "0" txtRango1.Text = "0" txtRango2.Text = "0" txtFacturarDesde.Text = "0" txtFechaApro.Mask = "" txtFechaApro.Text = "" Else If cmdTipoRegimen.Enabled = True Then txtResolucion.Enabled = True txtFechaApro.Enabled = True txtRango1.Enabled = True txtRango2.Enabled = True txtFacturarDesde.Enabled = True txtFechaApro.Mask = "##/##/####" End If End If End Sub
Para finalizar en el Evento Load del formulario Datos Empresa debemos llamar a la función DesabilitarControles y el ComboBox Régimen dele tener su propiedad ListIndex = 0 luego de esto llamo al procedimiento LlenarDatos que me trae toda la información que tengo guardad en la base de datos.
El Evento Load del formulario queda de la siguiente manera:
Private Sub Form_Load() Call DesabilitarControles cmdTipoRegimen.ListIndex = 0 Call LlenarDatos End Sub
Siguiente Lección Parte 10 – Validación Form Datos Empresa y Creacion del Form Perfil de Usuario