sábado, 12 de julio de 2014

Todo el mundo debería Saber programar

Hoy en día se hace esta haciendo imprescindible programar, mucho más aquí en nuestro país donde la cantidad de buenos programadores son escazos. Estamos en un mundo globalizado, donde los sistemas informáticos y computadoras desde hace años atrás siguen dando grandes resultados a las pequeñas, medianas y grandes empresas... donde todo esta siendo gobernado por la información que se tiene o se deja de tener, que son puntos importantes en toda entidad sea hospitales, fabricas, Restaurantes, etc.

Todo el mundo hace uso de un computador, pero pocos saben como funcionan, sin embargo se maravillan de todo lo que un computador puede hacer. Pocas personas saben que quizá el computador sea la cosa más estúpida del universo al cual enseñamos como debe de funcionar.

Me siento orgulloso de ser un programador, y la satisfacción que uno siente al culminar elegantemente un programa es super... es como alcanzar algo imposible que pocos pueden hacerlo, pero sin embargo nosotros lo hacemos todos los días como si fuese un hobby muy importante, que a la vez es una gran labor. Quiero compartir un video que habla sobre el tema de los programadores y que me gusto mucho.


viernes, 27 de junio de 2014

Activar Visual Studio 2008 en Windows 7 sin Desinstalarlo

Me acuerdo que hace años para poder trabajar mis aplicaciones .Net tuve que instalar el Visual Studio 2008, pero en ese tiempo el sistema operativo que se usaba era el Windows XP. La instalación lo realice sin problemas siguiendo estos pasos:

  1. Instalaba el Visual Studio 2008 Profesional
  2. Una vez instalado me dirigía al Panel de Control de Windows, Agregar o Quitar Programas.
  3. Seleccionaba el Visual Studio 2008 y le daba a "Desinstalar" sin ningún miedo
  4. Luego me aparecía una pantalla de "Modo Mantenimiento", la cual me daba la opción en la parte de abajo "Actualizar a Microsoft Visual Studio 2008 (Versión Completa)", ingresaba el Serial PYHYP-WXB3B-B2CCM-V9DX9-VDY8T y listo eso era todo.
1
Pero ahora en Windows 7 al realizar estos pasos resulta que el paso 4 ya no se cumple, ya que la parte de abajo "Actualizar a Versión Completa" ya no se visualiza. Pero hay una manera de hacerla aparecer.

Es por ello que revisando en la web estuve recopilando información y muchos decían que la solución era desinstalar el Visual Studio 2008 y reinstalar con unos ligeros cambios en uno de los archivos de instalación. Aunque podía realizarlo era una opción que me demandaría tiempo desinstalar, modificar, reinstalar... entonces me encontré con una mejor opción la cual detallo a partir de ahora.

Activando el Visual Studio 2008

Para activarlo se supone que ya debemos de tener instalado nuestro Visual Studio 2008 en nuestro computador con Windows 7.

Como ya debemos de saber los controles de .Net tienen una propiedad "Visible" que en Windows 7 lo tienen en False y para ponerlo en True tenemos que usar un programa y con eso el problema estará resuelto.
  • Para esto se supone que ya se tiene instalado el Visual Studio 2008.
  • Descargamos el siguiente archivo desde este enlace http://www.anvir.com/downloads/taskpro.exe y luego procedemos a instalarlo.
  • Ahora abrimos el Panel de Control, Agregar o Quitar Programas.
  • Seleccionamos el Visual Studio 2008 y le damos a "Desinstalar" sin ningún miedo
  • Luego me aparecerá la pantalla de "Modo Mantenimiento", la dejamos de esta manera.
vsm
  • Abrimos el programa descargado en modo administrador, vamos a la pestaña Aplicaciones, click derecho en Instalación de Microsoft Visual Studio 2008 ……….., seleccionamos Información detallada.
    2

  • Luego de aparecernos la siguiente pantalla debemos de colocarnos en la sección donde muestra la pantalla, damos clic derecho en cada fila con el status en rojo, seleccionamos la opción Activar y Visible.

  • 3
    • Finalmente nos vamos a la ventana abierta del “Modo Mantenimiento” de Visual Studio y nos daremos cuenta que la opción para ingresar el serial esta activo. Solo queda ingresar el serial PYHYP-WXB3B-B2CCM-V9DX9-VDY8T y dar activar, finalizar. Listo el Visual Studio 2008 ya esta Full¡¡¡…
    4

    jueves, 26 de junio de 2014

    Agregar artículos desde una consulta de SQL server y cargarlo a un ListView - Pregunta 3 (Ex.Final LPV 4to Ciclo)

    Vamos a desarrollar la pregunta Nº 3 del examen final del curso de Lenguaje de Programación Visual (4to. Ciclo). Para el desarrollo hemos utilizado el Visual Studio 2010 (VBasic .Net). El enunciado es el siguiente:

    - Crear la tabla Artículos(codigo, nombre, precio) luego programar un formulario que permita visualizar los artículos en un combo, al seleccionar un artículo se deberá mostrar su precio y su código, para ingresar una cantidad y agregar dicho artículo al ListView a manera de detalles de venta.

    Para este caso vamos a utilizar la base de datos Universidad la cual creamos en las anteriores publicaciones. Pueden revisarlo en el siguiente enlace:.
    Solución:
    1. Abrimos nuestro SQL Server y ejecutamos las siguientes líneas de script para crear nuestra tabla Articulos con su estructura respectiva dentro de la base de datos Universidad.

    use universidad;
    Go
     create table Articulos
    (codigo varchar(5),
    nombre varchar (50),
    precio decimal(10,2)
    );
    Go
     Insert into Articulos (codigonombrepreciovalues ('A0001','LICUADORA  OSTER',150.00);
    Insert into Articulos (codigonombrepreciovalues ('A0002','MP4 SONY 4GB',120.00);
    Insert into Articulos (codigonombrepreciovalues ('A0003','TABLET AOC 4GB',229.00);
    Insert into Articulos (codigonombrepreciovalues ('A0004','COCINA MABE 4 HORNILLAS',499.00);

    Insert into Articulos (codigonombrepreciovalues ('A0005','TOSTADORA IMACO',47.00);

    2. Abrimos el Visual Studio 2010 (Visual Basic .Net) y realizamos los siguientes pasos: 
    • Archivo, nuevo, proyecto…., Visual Basic
    • Seleccionar Aplicación de Windows Forms
    • Colocar de nombre al proyecto VentaArticulos, desactivar la opción Crear directorio para la solución, aceptar.
    3. Diseñaremos la siguiente interfaz de usuario y agregaremos los controles respectivos. 
    image
    - Nos dirigimos a la ventana de propiedades y a cada objeto le asignamos sus propiedades según la siguiente tabla:
    Objeto
    Propiedad
    Valor
    Form Text
    Name
    Venta de Artículos
    frmVentaArticulos
    Label1 Text ARTICULOS:
    Label2 Text CODIGO:
    Label3 Text PRECIO:
    Label4 Text CANTIDAD:
    Label5 Name lblCodigo
    Label6 Name lblPrecio
    Label7 Text TOTAL:
    Label8 Name lblTotal
    ComboBox1 Name cboArticulos
    TextBox1 Name txtCantidad
    ListView1 Name lvwDetalle
    Button1 Text
    Name
    VENDER
    btnVender

    Procedimientos asociados a eventos de los objetos

    Objeto
    Evento
    Nombre del procedimiento
    Form Load frmVentaArticulos_Load
    cboArticulos SelectionChangeCommitted cargarCombo
    btnVender Click vender
    Definidos por el usuario --- llenarListView()

    Para crear el procedimiento o métodos ya sabemos que tenemos que dirigirnos a la ventana de propiedades y hacer un en el icono del truenito para visualizar todos los eventos asociados al objeto (control), y podemos poner un nombre específico al método asociado al evento que usaremos. 

    4. Nos dirigimos a la ventana de código (haciendo doble clic sobre el formulario) y empezamos a programar:

    Imports System.Data.SqlClient
    Public Class frmVentaArticulos
        Dim con As SqlConnection
        Dim drd As SqlDataReader
        Dim total As Decimal = 0
        Private Sub frmVentaArticulos_Load(sender As System.Object, e As System.EventArgs)Handles MyBase.Load
            con = New SqlConnection("integrated security=true;server=COMP-PCW01;database=Universidad")
            lblCodigo.Text = ""
            lblPrecio.Text = ""
            lblTotal.Text = ""
            With lvwDetalle
                .Columns.Add("Codigo", 50, HorizontalAlignment.Left)
                .Columns.Add("Producto", 190, HorizontalAlignment.Left)
                .Columns.Add("Precio", 60, HorizontalAlignment.Right)
                .Columns.Add("Cantidad", 70, HorizontalAlignment.Right)
                .Columns.Add("Importe", 100, HorizontalAlignment.Right)
                .View = View.Details
            End With
            Try
                con.Open()
                Dim cmd As SqlCommand = New SqlCommand("Select [codigo],[nombre] From Articulos", con)
                Dim bs As New BindingSource
                drd = cmd.ExecuteReader()
                bs.DataSource = drd
                If Not drd.HasRows Then
                    MsgBox("No existen Articulos para vender"MsgBoxStyle.Information)
                    cboArticulos.Focus()
                    con.Close()
                    Return
                End If
                cboArticulos.DataSource = bs
                cboArticulos.DisplayMember = "nombre"
                cboArticulos.ValueMember = "codigo"
                drd.Close()
            Catch ex As SqlException
                Dim er As SqlError
                For Each er In ex.Errors
                    MsgBox(er.Message)
                Next
            End Try
            con.Close()
        End Sub
        Private Sub llenarListView()
            Dim fila As New ListViewItem
            fila = lvwDetalle.Items.Add(lblCodigo.Text)
            fila.SubItems.Add(cboArticulos.Text)
            fila.SubItems.Add(lblPrecio.Text)
            fila.SubItems.Add(txtCantidad.Text)
            Dim Importe As Decimal = Decimal.Parse(lblPrecio.Text) *Integer.Parse(txtCantidad.Text)
            fila.SubItems.Add(String.Format(Importe, "f"))
            total += Importe
            lblTotal.Text = String.Format(total, "f")
        End Sub

        Private Sub cargarCombo(sender As System.Object, e As System.EventArgsHandlescboArticulos.SelectionChangeCommitted
            Try
                con.Open()
                Dim cmd As SqlCommand = New SqlCommand("Select [precio] From Articulos where codigo = '" + cboArticulos.SelectedValue.ToString + "'", con)
                drd = cmd.ExecuteReader()
                While drd.Read
                    lblCodigo.Text = cboArticulos.SelectedValue
                    lblPrecio.Text = drd(0).ToString
                End While
                drd.Close()
            Catch ex As SqlException
                Dim er As SqlError
                For Each er In ex.Errors
                    MsgBox(er.Message)
                Next
            End Try
            con.Close()
        End Sub

        Private Sub vender(sender As System.Object, e As System.EventArgsHandlesbtnVender.Click
            If lblCodigo.Text = "" Or Not IsNumeric(Val(txtCantidad.Text)) Or Val(txtCantidad.Text) <= 0 Then
                MsgBox("Seleccione un Articulo e Ingrese la cantidad a Vender",MsgBoxStyle.Exclamation)
                cboArticulos.Focus()
                Return
            End If
            llenarListView()
        End Sub
    End Class

    5. Para ejecutarlo debemos de seleccionar un articulo del combo, luego colocar la cantidad y finalmente hacer clic en Vender para que se cargue el ListView. El formulario en ejecución es el siguiente:

    image
    Cualquier consulta no duden en hacerlo y si les gusto entonces recomiéndenlo.

    Ojo: Nos e olviden de hacer los cambios en la cadena de conexión con los datos de su computador.

    miércoles, 25 de junio de 2014

    Agregar y Buscar registros en la tabla Alumnos de SQL Server - Pregunta 2 (Ex.Final LPV 4to Ciclo)

    Vamos a desarrollar la pregunta Nº 2 del examen final del curso de Lenguaje de Programación Visual (4to. Ciclo). Para el desarrollo hemos utilizado el Visual Studio 2010 (VBasic .Net). El enunciado es el siguiente:

    - Programar un formulario que permita agregar y buscar elementos de la tabla Alumnos(codalu, nomalu, apealu,  ciclo, turno, carrera)

    Para este caso vamos a utilizar la base de datos Universidad y la tabla Alumnos que creamos en la anterior publicación. Pueden revisar la publicación anterior en el siguiente enlace:
    Solución:
    1. Abrimos el Visual Studio 2010 (Visual Basic .Net) y realizamos los siguientes pasos:
    • Archivo, nuevo, proyecto…., Visual Basic
    • Seleccionar Aplicación de Windows Forms
    • Colocar de nombre al proyecto ConsultaInsertarAlumnos, desactivar la opción Crear directorio para la solución, aceptar.
    2. Diseñaremos la siguiente interfaz de usuario y agregaremos los controles respectivos.



    - Nos dirigimos a la ventana de propiedades y a cada objeto le asignamos sus propiedades según la siguiente tabla:

    Objeto Propiedad Valor
    Form
    Text
    Name
    Agregar y Buscar Alumnos
    frmBusquedaInsertar
    Label1
    Text
    ALUMNOS
    Label2
    Text
    CODIGO
    Label3
    Text
    APELLIDO:
    Label4
    Text
    CICLO:
    Label5
    Text
    TURNO:
    Label6
    Text
    CARRERA:
    TextBox1
    Name
    txtCodigo
    TextBox2
    Name
    txtNombre
    TextBox3
    Name
    txtApellido
    ComboBox1
    Name
    cboCiclo
    RadioButton1
    Name
    Text
    rbnManana
    Mañana
    RadioButton2
    Name
    Text
    rbnNoche
    Noche
    ComboBox2
    Name
    cboCarrera
    Button1
    Text
    Name
    Buscar
    btnBuscar
    Button2
    Text
    Name
    Agregar
    btnAgregar
    Button3
    Text
    Name
    Limpiar
    btnLimpiar

    Procedimientos asociados a eventos de los objetos

    Objeto Evento Nombre del método
    Form
    Load
    frmBusquedaInsertar_Load
    btnBuscar
    Click
    buscar
    btnAgregar
    Click
    agregar
    btnLimpiar
    Click
    limpiar
    Definidos por el usuario
    ---
    cargarDatos
    limpiarControles

    Para crear el procedimiento o métodos ya sabemos que tenemos que dirigirnos a la ventana de propiedades y hacer un en el icono del truenito para visualizar todos los eventos asociados al objeto (control), y podemos poner un nombre específico al método asociado al evento que usaremos.

    3. Nos dirigimos a la ventana de código (haciendo doble clic sobre el formulario) y empezamos a programar:

    Imports System.Data.SqlClient
    Public Class frmBusquedaInsertar
        Dim con As SqlConnection
        Dim drd As SqlDataReader
        Private Sub frmBusquedaInsertar_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            con = New SqlConnection("integrated security=true;server=COMP-PCW01;database=Universidad")
        End Sub
        Private Sub buscar(sender As System.Object, e As System.EventArgs) Handles btnBuscar.Click
            Dim codigo As Integer
            codigo = Val(txtCodigo.Text)
            If Not IsNumeric(codigo) Then
                MsgBox("Ingrese un Código númerico para la búsqueda", MsgBoxStyle.Information)
                txtCodigo.Focus()
                Return
            End If
            Try
                con.Open()
                Dim cmd As SqlCommand = New SqlCommand("Select [codalu],[nomalu],[apealu],[ciclo],[turno],[carrera] From Alumnos where codalu='" + Str(codigo) + "'", con)
                drd = cmd.ExecuteReader()
                If Not drd.HasRows Then
                    MsgBox("No existe Alumno con el Código " + Str(codigo), MsgBoxStyle.Information)
                    limpiarControles()
                    txtCodigo.Focus()
                    con.Close()
                    Return
                End If
                cargarDatos()
                drd.Close()
            Catch ex As SqlException
                Dim er As SqlError
                For Each er In ex.Errors
                    MsgBox(er.Message)
                Next
            End Try
            con.Close()
        End Sub

        Private Sub cargarDatos()
            Dim turno As String
            drd.Read()
            txtNombre.Text = drd(1).ToString
            txtApellido.Text = drd(2).ToString
            cboCiclo.Text = drd(3).ToString
            turno = drd(4).ToString
            If turno = "D" Then
                rbnManana.Checked = True
                rbnNoche.Checked = False
            Else
                rbnManana.Checked = False
                rbnNoche.Checked = True
            End If
            cboCarrera.Text = drd(5).ToString
        End Sub

        Private Sub limpiar(sender As System.Object, e As System.EventArgs) Handles btnLimpiar.Click
            limpiarControles()
        End Sub
        Private Sub limpiarControles()
            txtCodigo.Clear()
            txtNombre.Clear()
            txtApellido.Clear()
            cboCiclo.Text = ""
            cboCarrera.Text = ""
            txtCodigo.Focus()
        End Sub

        Private Sub agregar(sender As System.Object, e As System.EventArgs) Handles btnAgregar.Click
            Dim codigo As Integer
            codigo = Val(txtCodigo.Text)
            If Not IsNumeric(codigo) Then
                MsgBox("Ingrese un Código númerico para Agregarlo", MsgBoxStyle.Information)
                txtCodigo.Focus()
                Return
            End If
            If txtCodigo.Text = "" Or txtNombre.Text = "" Or txtApellido.Text = "" Or cboCiclo.Text = "" Or cboCarrera.Text = "" Or (rbnManana.Checked = False And rbnNoche.Checked = False) Then
                MsgBox("Debe de llenar todos los campos para agregar un Nuevo Alumno", MsgBoxStyle.Information)
                Return
            End If
            Try
                con.Open()
                Dim cmd As SqlCommand = New SqlCommand("Select [codalu] From Alumnos where codalu='" + Str(codigo) + "'", con)
                Dim valor As String = cmd.ExecuteScalar()
                If valor <> "" Then
                    MsgBox("Código de Alumno " + Str(codigo) + " ya existe", MsgBoxStyle.Information)
                    txtCodigo.Focus()
                    con.Close()
                    Return
                End If
                cmd = New SqlCommand("Insert into Alumnos (codalu, nomalu, apealu, ciclo, turno, carrera) values(@codalu,@nomalu,@apealu,@ciclo,@turno,@carrera)", con)
                cmd.Parameters.AddWithValue("@codalu", codigo)
                cmd.Parameters.AddWithValue("@nomalu", Trim(txtNombre.Text))
                cmd.Parameters.AddWithValue("@apealu", Trim(txtApellido.Text))
                cmd.Parameters.AddWithValue("@ciclo", Integer.Parse(cboCiclo.Text))
                Dim turno As String
                If rbnManana.Checked = True Then
                    turno = "D"
                Else
                    turno = "N"
                End If
                cmd.Parameters.AddWithValue("@turno", turno)
                cmd.Parameters.AddWithValue("@carrera", cboCarrera.Text)
                cmd.ExecuteNonQuery()
                MsgBox("Alumno Registrado con código " + Str(codigo), MsgBoxStyle.Information)
            Catch ex As SqlException
                Dim er As SqlError
                For Each er In ex.Errors
                    MsgBox(er.Message)
                Next
            End Try
            con.Close()
        End Sub
    End Class

    4. Aquí mostramos la aplicación en ejecución, para realizar una búsqueda debemos ingresar un código (1..10) y dar clic en Buscar. Para agregar debemos de rellenar todos los campos y presionar Agregar.

    interfaz2-2
    Cualquier consulta no duden en hacerlo y si les gusto entonces recomiéndenlo.

    Ojo: Nos e olviden de hacer los cambios en la cadena de conexión con los datos de su computador.