140 likes | 307 Views
Desarrollo de Proyectos con Visual Basic. Guillermo M. Castro – Universidad Nacional de La Rioja. Encuentro Informático Estudiantil 2007. ¿Por qué VB Classic?. Programación de alto nivel. Soluciones rápidas para problemas simples. Reduce tiempos y costos de implementación y mantenimiento.
E N D
Desarrollo de Proyectos con Visual Basic Guillermo M. Castro – Universidad Nacional de La Rioja Encuentro Informático Estudiantil 2007
¿Por qué VB Classic? • Programación de alto nivel. • Soluciones rápidas para problemas simples. • Reduce tiempos y costos de implementación y mantenimiento. • Codificación rápida y sencilla. • Amplia compatibilidad en cualquier S.O. Microsoft Windows®. • Excelente herramienta para tomar de base. • A pesar de tener muchísimos años, sigue siendo una herramienta práctica al momento de trabajar/estudiar.
Iniciar un proyecto • Realizar Entrevistas en el ambiente administrativo como operativo de la empresa. • Realizar un relevamiento detallado. • Familiarizarse con el sistema utilizado hasta el momento (si lo hubiera). • Responderse estas preguntas: • ¿El cliente tiene en claro lo que desea? • ¿Qué acciones debe realizar nuestro sistema? • ¿Cuánto tiempo dispongo para realizarlo? • Determinar/aclarar los términos del desarrollo.
Base vs. Banco de Datos • Estructura de datos y relaciones. • Tamaño del proyecto. • Tamaño de la información. • Portabilidad. • Independización. • Considerar que una vez puesto en marcha la base de datos debe permanecer inalterable.
Normalización • Normalizar solo lo justo y necesario. • Manejar hasta la tercera forma normal. Base No Normalizada Base Normalizada (Artículos, Ventas, Compras, etc.)
Controles vs. Código • Recordar que la programación en VB Classic es secuencial. • No hay que complicar el diseño. • Una organización correcta optimiza nuestro trabajo.
Consultas SQL • Manejar nuestras consultas SQL de la manera más simple posible. • Crear consultas consecutivas. • Cargar resultados, después analizarlos y finalmente mostrar. DesdeWk = Mid(FechaDesde.Text, 4, 2) & "/" & Mid(FechaDesde.Text, 1, 2) & "/" & Mid(FechaDesde.Text, 7, 4) HastaWk = Mid(FechaHasta.Text, 4, 2) & "/" & Mid(FechaHasta.Text, 1, 2) & "/" & Mid(FechaHasta.Text, 7, 4) '************************************************************ '********* Proceso para caja de dos dias *********** If FechaH = (FechaD + 1) Then 'Ventas del primer dia seleccionado en pantalla LstCaja.Database.Execute "INSERT INTO LstCaja ( FechaVenta, NroOperacion, NumeroRegistro, NumeroTroquel, PrecioUnitario, Cantidad, SubTotal, PorcObraSocial, DescuentoItem, ImpDescuento, TipoIva, ImpIVA, ImpNetoTotal, HoraVenta, cuit, DocumentoCliente, ApellidoRazonSocial, Sexo, CodObrasocial, NroFarmacia, Usuario, TipoVta, Tarjeta ) SELECT Ventas.FechaVenta, Ventas.NroOperacion, Ventas.NumeroRegistro, Ventas.NumeroTroquel, Ventas.PrecioUnitario, Ventas.Cantidad, Ventas.SubTotal, Ventas.PorcObraSocial, Ventas.DescuentoItem, Ventas.ImpDescuento, Ventas.TipoIva, Ventas.ImpIVA, Ventas.ImpNeto, Ventas.HoraVenta, Ventas.cuit, Ventas.DocumentoCliente, Ventas.ApellidoRazonSocial, Ventas.Sexo, Ventas.CodObrasocial, Ventas.NroFarmacia, Ventas.Usuario, Ventas.TipoVta, Ventas.Tarjeta From Ventas WHERE (((Ventas.FechaVenta)=#" & DesdeWk & "#));" var = "SELECT LstCaja.* From LstCaja; " LstCaja.RecordSource = var LstCaja.Refresh While LstCaja.Recordset.EOF = False LstCaja.Recordset.Edit LstCaja.Recordset!HoraVentaNum = Mid(LstCaja.Recordset!HoraVenta, 1, 2) & Mid(LstCaja.Recordset!HoraVenta, 4, 2) LstCaja.Recordset.Update LstCaja.Recordset.MoveNext Wend var = "SELECT LstCaja.* From LstCaja; " LstCaja.RecordSource = var LstCaja.Refresh Set rst = DBS_VENTAS.OpenRecordset("SELECT * FROM VENTAS WHERE TIPO_COMP <> 0 AND FECHAH >= #" + FECHA_YANQUI(Me.MB_DESDEF.Text) + " " + Me.MB_DESDEH.Text + "# AND FECHAH <= #" + FECHA_YANQUI(Me.MB_HASTAF.Text) + " " + Me.MB_HASTAH.Text + ":59# AND SERVICIO = FALSE " + TEMPSTR) Set rst2 = DBS_COMPRAS.OpenRecordset("SELECT * FROM COMPRAS WHERE FECHAH >= #" + FECHA_YANQUI(Me.MB_DESDEF.Text) + " " + Me.MB_DESDEH.Text + "# AND FECHAH <= #" + FECHA_YANQUI(Me.MB_HASTAF.Text) + " " + Me.MB_HASTAH.Text + ":59# AND MERCADERIA = True " + TEMPSTR2) Set rst3 = DBS_COMPRAS.OpenRecordset("SELECT * FROM COMPRAS WHERE FECHAH >= #" + FECHA_YANQUI(Me.MB_DESDEF.Text) + " " + Me.MB_DESDEH.Text + "# AND FECHAH <= #" + FECHA_YANQUI(Me.MB_HASTAF.Text) + " " + Me.MB_HASTAH.Text + ":59# AND MERCADERIA = False " + TEMPSTR2) Set rst4 = DBS_VENTAS.OpenRecordset("SELECT * FROM VENTAS WHERE FECHAH >= #" + FECHA_YANQUI(Me.MB_DESDEF.Text) + " " + Me.MB_DESDEH.Text + "# AND FECHAH <= #" + FECHA_YANQUI(Me.MB_HASTAF.Text) + " " + Me.MB_HASTAH.Text + ":59# AND SERVICIO = TRUE " + TEMPSTR)
Las buenas costumbres • Evitar el exceso de copiar y pegar. • Crear funciones comunes. • Usar comentarios en el código. • Colocar un prefijo a los nombres de control. • Evitar supuestos. • El cliente opera el sistema, no la base de datos. • Evitar el uso de la fuente MS Sans Serif.
Las buenas costumbres • Definir correctamente los tipos de datos a usar. • No usar directorios estáticos. • El uso de Me nos permitirá desempeñarnos más rápido. • Usar MZ-Tools para optimizar nuestro código. • La simplicidad debe ser SIEMPRE más para el usuario/operador que para el programador.
Distribución y Mantenimiento • La instalación debe ser lo menos compleja posible. • Recordar la premisa cliente-programador. • Crear asistentes de instalación para mejorar la interfaz. • Se pueden crear aplicaciones que no necesitan instalación. • El término del mantenimiento se define al principio del proyecto. • La actualización/reparación se debe aplicar fundamentalmente a la aplicación. • Considerar todas las justificaciones de error del cliente.
DataReports vs. Crystal Reports • Ambos requieren de archivos externos para funcionar. • Se pueden crear base de datos de manera dinámica. • Crystal Reports nos permite exportación. • No es necesario complicar el diseño para mostrar algo.
Profesionales VB • Guillermo SomGuillermo Som, más conocido como "el Guille", es Microsoft MVP (Most Valuable Professional) de Visual Basic desde 1997. También es autor de varios libros, revistas y otros medios especializados en programación. También es miembro de Ineta Speakers Bureau Latin América y Mentor Asociado de Solid Quality Learning Iberoamericana. • http://www.elguille.info • https://mvp.support.microsoft.com /profile/Guillermo.Som “Lo mejor tiene dos letras...”
Profesionales VB • Jorge SerranoEs MVP de Visual Basic y trabaja activamente con la comunidad de desarrollo en España. Mantiene el sitio web www.portalvb.com y es escritor de multitud de libros sobre tecnologías de desarrollo Microsoft además de colaborador asiduo de las revistas especializadas del sector. • https://mvp.support.microsoft.com/profile/Jorge • Para más información sobre los Profesionales Más Valiosos (MVP) visite http://mvp.support.microsoft.com
Vínculos interesantes • http://vbasic.wordpress.com/2006/08/08 /aprender-visual-basic-vale-la-pena/ • http://blog.velneo.com/web/p.pro?vdis=4&p=25764 • http://www.elguille.info • http://www.recursosvisualbasic.com.ar • http://www.vbforums.com • http://www.vbsiglo21.net • http://www.solotuweb.com/VisualBasic.html • Contacto (E-Mail/MSN): gmclarioja@yahoo.com.ar