CJYARLEQuE-SYSTEM

domingo, 10 de octubre de 2010

Estructuras y Arreglos en vb.net

Este es un tema de VisualBasic.net  almacenando datos sin necesidad de conectarse a una Base de datos

1.-En el Modulo programar lo siguiente:

Module Module1

    Public Structure regi
        Public Cliente As String
        Public pelicula As String
        Public f_ini As String
        Public dias As String
        Public f_fin As String
        Public costo As String
        Public total As String
    End Structure
---------------------------------------------
    Public sw As Boolean
    Public indice As Integer
    Public registro() As regi
    Public registros(0) As regi
End Module

2..-En el Form1

Public Class Form1

    'Dim alqui As alquiler
    Dim i As Integer = 0
    Dim a As Integer = 10
    Public cadena As String = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZabcdefghijklmnñopqrstuvwxyzáíóúé "
    Public numeros As String = "0123456789"
    Private Structure datosalquiler
        Public Cliente As String
        Public pelicula As String
        Public f_ini As String
        Public dias As String
        Public f_fin As String
        Public costo As String
        Public total As String
    End Structure

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        sw = True
        TextBox1.Text = ""
        TextBox2.Text = ""
        TextBox3.Text = ""
        TextBox4.Text = ""
        TextBox5.Text = ""
        TextBox6.Text = ""
        DateTimePicker1.Text = ""
        DateTimePicker2.Text = ""
        TextBox1.Focus()
    End Sub

    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        End
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        If Trim(TextBox1.Text).Length = 0 Then
            MessageBox.Show("El cliente no es Nulo", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End If

        If Trim(TextBox2.Text).Length = 0 Then
            MessageBox.Show("La Pelicula no es Nulo", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End If

        'If Trim(TextBox3.Text).Length = 0 Then
        '    MessageBox.Show("Dias de alquiler no es Nulo", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        '    Exit Sub
        'End If
        'If Trim(TextBox4.Text).Length = 0 Then
        '    MessageBox.Show("costo de alquiler no es Nulo", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        '    Exit Sub
        'End If
        'If Trim(TextBox5.Text).Length = 0 Then
        '    MessageBox.Show("total de alquiler no es Nulo", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        '    Exit Sub
        'End If

        'Dim f1, f2 As Date
        'Dim d As Integer
        'f1 = CDate(DateTimePicker1.Value)
        'f2 = CDate(DateTimePicker2.Value)
        Dim hoy As DateTime = DateTime.Now
        Dim diaFinal As DateTime = hoy.AddDays(TextBox3.Text)
        DateTimePicker2.Value = diaFinal
        'd = DateDiff(DateInterval.Day, f1, f2)

        TextBox4.Text = 12.5
        TextBox5.Text = TextBox3.Text * 12.5

    End Sub

    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        Dim validarcaracter As Integer = InStr(cadena, e.KeyChar)
        If validarcaracter = 0 And AscW(e.KeyChar) <> 8 Then e.KeyChar = ""
    End Sub

    Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
        Dim validarcaracter As Integer = InStr(cadena, e.KeyChar)
        If validarcaracter = 0 And AscW(e.KeyChar) <> 8 Then e.KeyChar = ""
    End Sub

    Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress
        Dim validarnumeros As Integer = InStr(numeros, e.KeyChar)
        If validarnumeros = 0 And AscW(e.KeyChar) <> 8 Then e.KeyChar = ""
    End Sub

    Private Sub TextBox4_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox4.KeyPress
        Dim validarnumeros As Integer = InStr(numeros, e.KeyChar)
        If validarnumeros = 0 And AscW(e.KeyChar) <> 8 Then e.KeyChar = ""
    End Sub

    Private Sub TextBox5_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox5.KeyPress
        Dim validarnumeros As Integer = InStr(numeros, e.KeyChar)
        If validarnumeros = 0 And AscW(e.KeyChar) <> 8 Then e.KeyChar = ""
    End Sub


    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        TextBox6.Text = ""
        listaregistros()

    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
                Dim registro = New regi
        With registro
            .Cliente = TextBox1.Text
            .pelicula = TextBox2.Text
            .f_ini = DateTimePicker1.Value
            .dias = TextBox3.Text
            .f_fin = DateTimePicker2.Value
            .costo = TextBox4.Text
            .total = TextBox5.Text
        End With
        registros(UBound(registros)) = registro
        ' ReDim Preserve registros(UBound(registros) + 1)
        MessageBox.Show("Datos agregados...")



    End Sub
    Dim cadenar As String
    Private Sub listaregistros()
        For Each regsitro In registros
            With regsitro
                If .Cliente <> "" Then
                    cadenar &= "Cliente    : " & regsitro.Cliente & vbCrLf & _
                              "Pelicula   : " & regsitro.pelicula & vbCrLf & _
                              "F_Alquiler : " & regsitro.f_ini & vbCrLf & _
                              "Dias alqui : " & regsitro.dias & vbCrLf & _
                              "F_Entrega  : " & regsitro.f_fin & vbCrLf & _
                              "Costo alqui: " & regsitro.costo & vbCrLf & _
                              "Total alqui: " & regsitro.total & vbCrLf & vbCrLf & _
                              "------------------------------------------------------------------------------------------------" & vbCrLf
                End If
            End With
            TextBox6.Text = cadenar
        Next
    End Sub
End Class


Power Builder y Procedimientos Almacenados

Este es un Aporte se su servidor ami me fue muy dificil encontrar referencias de este tema asi q aprovechenlo


--En sql crean procedimientos almacenados Insert, Update, Delete , buscar y autogenerar codigo
mi codigo de ejemplo es usando una base datos contabilidad:

use bdcontabilidad

---EJERCICIOS

---1.- CREAR UN SP QUE PERMITA MOSTRAR LOS DATOS DE UN DETERMINADO aval.

create procedure sp_mostrar_aval
@cod char(5)
as
begin
select *  from aval where @cod=codigo
end

exec sp_mostrar_aval'A0001'


---2.- CREAR UN SP QUE PERMITA INSERTAR UN NUEVO REGISTRO EN LA TABLA AVAL.

create procedure sp_insert_aval
@codigo char(5),
@nombre varchar(60),
@direccion varchar(80),
@telefono char(9),
@banco varchar(20),
@credito decimal(8,2),
@fecha datetime
as
begin
insert into aval values(@codigo,
@nombre,
@direccion,
@telefono,
@banco,
@credito,
@fecha
)
end

exec sp_insert_aval 'A0004','carlos yarleque romero','pj puno 119 caja de agua','980625062','Continental',1500.00,'10/10/2012'



---3.- CRAR UN SP QUE PERMITA MODIFICAR O ACTUALIZAR CUALQUIER DATO DE UN AVAL.

create procedure sp_update_aval
@codigo char(5),
@nombre varchar(60),
@direccion varchar(80),
@telefono char(9),
@banco varchar(20),
@credito decimal(8,2),
@fecha datetime
as
begin
update aval set nombre=@nombre, direccion=@direccion, telefono=@telefono , banco=@banco, credito_max=@credito, fecha=@fecha
where codigo=@codigo
end
exec sp_update_aval 'A0004','carlos yarleque romero','pj puno 119 caja de agua','980625062','Continental',2500.00,'10/10/2012'


---4.- CREAR UN SP QUE PERMITA ELIMINAR UN AVAl.


create procedure sp_eliminar_aval
@codigo char(5)
as
begin
delete from aval where codigo=@codigo
end

exec sp_eliminar_aval 'A0004'


---5.- CREAR UN SP QUE PERMITA AUTOGENERAR EL CODIGO DEL AVAL.

create procedure sp_codaval_autogenerado
@codigo varchar(5) output
as
begin
declare @total int
declare @max int
select @total = count(*) from aval
if @total =0
begin
set @codigo ='A0001'
end
else
begin
select @max=MAX (right(codigo,4))+1 from aval
end
if @max >0 and @max <10
begin
set @codigo ='A000'+CONVERT (char(1),@max)
end

if @max >=10 and @max <=99
begin
set @codigo ='A00'+CONVERT (char(2),@max)
end

if @max >=100 and @max <=999
begin
set @codigo ='A0'+CONVERT (char(3),@max)
end

if @max >=1000 and @max <=9999
begin
set @codigo ='A'+CONVERT (char(4),@max)
end


print @codigo
end

declare @cod varchar(5)
exec sp_codaval_autogenerado  @cod



---6.- CREAR UN SP QUE PERMITA HACER BUSQUEDAS.

create procedure sp_filtronombre_aval
@nombre varchar(60)
as
begin
select *  from aval where nombre like  '%' + @nombre +'%'
end

exec sp_filtronombre_aval 'lu'

create procedure sp_filtrodireccion_aval
@direccion varchar(60)
as
begin
select *  from aval where direccion like  '%' + @direccion +'%'
end

exec sp_filtrodireccion_aval 'pj'

create procedure sp_filtrobanco_aval
@banco varchar(60)
as
begin
select *  from aval where banco = @banco
end

exec sp_filtrobanco_aval 'Interbank'


--El codigo en power builder es el siguiente:
delcarar una variable global
string sw

1.-Para el Boton Nuevo

string cod,codigo

sw="n"

sle_1.text=""
sle_2.text=""

sle_3.text=""
sle_4.text=""
sle_5.text=""
cbx_1.checked=false
cbx_2.checked=false
em_1.text=""
//sle_1.enabled=true
sle_2.enabled=true
sle_3.enabled=true
sle_4.enabled=true
sle_5.enabled=true
cbx_1.enabled=true
cbx_2.enabled=true
cb_2.enabled=True
cb_3.enabled=true
em_1.enabled=true
sle_2.setfocus( )


declare pb_codaval_autogenerado procedure for sp_codaval_autogenerado @codigo=:cod output;
execute pb_codaval_autogenerado;
fetch pb_codaval_autogenerado into :codigo;
close pb_codaval_autogenerado;
sle_1.text=codigo

2.-Para el Boton Guardar

integer rpta,rpta1
string banco
if sw="n" theN
cb_2.text="&Guardar"
rpta=messagebox("Aviso","Desea Grabar Los Datos Ingresados",question!,yesno!)
if rpta=1 then
if cbx_1.checked=true and cbx_2.checked=true then
messagebox ( "Aviso","Debe escojer un solo banco.")
elseif cbx_1.checked=true and cbx_2.checked=false then
banco='Interbanck'
elseif cbx_1.checked=false and cbx_2.checked=true then
banco='Continental'
elseif cbx_1.checked=false and cbx_2.checked=false then
messagebox ( "Aviso","Debe escojer un banco.")
end if
declare pb_insert_aval procedure for sp_insert_aval @codigo=:sle_1.text,@nombre=:sle_2.text,@direccion =:sle_3.text,@telefono=:sle_4.text,@banco=:banco,@credito=:sle_5.text,@fecha=:em_1.text using(sqlca);
execute pb_insert_aval;
if sqlca.sqlcode=0 then
messagebox ( "Aviso","guardado correctamente.")
elseif sqlca.sqlcode=100 then
messagebox ("Aviso", "guardado correctamente.")
elseif sqlca.sqlcode=-1 then
messagebox ("Aviso", "Error no Existe Producto ...")
end if
close pb_insert_aval;
end if
sle_2.enabled=false
sle_3.enabled=false
sle_4.enabled=false
sle_5.enabled=false
cb_2.enabled=false
cb_3.enabled=false
cb_4.enabled=false
cb_5.enabled=false

end if

if sw="m" then
cb_2.text="&Actualizar"
rpta1=messagebox("Aviso","Desea actualizar Los Datos Ingresados",question!,yesno!)
if rpta1=1 then
string codigo,nombre,direccion,telefono,credito_max,fecha
codigo=sle_6.text
nombre=sle_2.text
direccion=sle_3.text
telefono=sle_4.text
credito_max=sle_5.text
fecha=em_1.text
declare pb_update procedure for sp_update set nombre=@nombre,direccion=@direccion,telefono=@telefono,banco=@banco,credito_max=@credito,fecha=@fecha where codigo=@codigo using(sqlca) ; // set @nompro=:sle_2.text,@codcateg=:ddlb_1.text,@codprov=:ddlb_2.text,@cantuni=:sle_3.text,@precio=:sle_4.text,@stock=:sle_5.text,@f_venci=:sle_6.text where @cod=:sle_9.text using(sqlca); //:sle_2.text=@nompro,:ddlb_1.text=@codcateg,:ddlb_2.text=@codprov,:sle_3.text=@cantuni,:sle_4.text=@precio,:sle_5.text=@stock,:sle_6.text=@f_venci set :sle_9.text=@cod// using(sqlca) ;//@nompro=:sle_2.text,@codcateg=:ddlb_1.text,@codprov=:ddlb_2.text,@cantuni =:sle_3.text,@precio =:sle_4.text,@stock=:sle_5.text,@f_venci =:sle_6.text
execute pb_update;
// fetch pb_update into :sle_1.text,:sle_2.text,:ddlb_1.text,:ddlb_2.text,:sle_3.text,:sle_4.text,:sle_5.text,:sle_6.text;
//using(sqlca);
if sqlca.sqlcode=0 then
messagebox ( "Aviso","actualizado correctamente.")
elseif sqlca.sqlcode=100 then
messagebox ("Aviso", "actualizado correctamente.1")
elseif sqlca.sqlcode=-1 then
messagebox ("Aviso", "Error no Existe Producto ...")
end if
close pb_update;
end if
sle_2.enabled=false
sle_3.enabled=false
sle_4.enabled=false

sle_6.enabled=false

cb_2.enabled=false
cb_3.enabled=false
cb_4.enabled=false
cb_5.enabled=false

end if

3.-Para el Boton Modificar

sw='m'

//sle_1.enabled=true
sle_2.enabled=true
sle_3.enabled=true
sle_4.enabled=true
sle_5.enabled=true
sle_6.enabled=true
em_1.enabled=true
cb_2.enabled=True
cb_3.enabled=true
cb_4.enabled=true
cb_5.enabled=true
sle_2.setfocus( )

4.-Para el Boton Eliminar

declare pb_eliminar_aval procedure for sp_eliminar_aval @codigo=:sle_6.text using(sqlca); //,@nompro=:sle_2.text,@codcateg=:ddlb_1.text,@codprov=:ddlb_2.text,@cantuni =:sle_3.text,@precio =:sle_4.text,@stock=:sle_5.text,@f_venci =:sle_6.text
execute pb_eliminar_aval;
if sqlca.sqlcode=0 then
messagebox ( "Aviso","eliminado correctamente.")
elseif sqlca.sqlcode=100 then
messagebox ("Aviso", "eliminado correctamente.")
elseif sqlca.sqlcode=-1 then
messagebox ("Aviso", "Error no Existe Producto ...")
end if
close pb_eliminar_aval;
sle_1.text=""
sle_2.text=""
sle_3.text=""
sle_4.text=""
sle_5.text=""
sle_6.text=""
em_1.text=""
//sle_1.enabled=true
sle_2.enabled=false
sle_3.enabled=false
sle_4.enabled=false
sle_5.enabled=false
sle_6.enabled=false
em_1.enabled=false

cb_2.enabled=false
cb_3.enabled=false
cb_4.enabled=false

5.-Para el Boton Salir

close(w_ejericio1)

6.-Para el Sle que representa el Buscar(Programar en el Other)

if wparam=13 then
string cod,codigo,nombre,direccion,banco,telefono
decimal credito_max
datetime fecha
cod=sle_6.text
cb_1.enabled=false
cb_2.enabled=true
cb_3.enabled=true
cb_4.enabled=true
cb_5.enabled=true
// if banco='Interbank' then
// cbx_1.checked=true and cbx_2.checked=false
//elseif banco='Continental' then
// cbx_1.checked=false and cbx_2.checked=true
// end if
//
declare pb_mostrar_aval procedure for sp_mostrar_aval @cod=:cod using(sqlca);
execute pb_mostrar_aval;
fetch pb_mostrar_aval into :codigo,:nombre,:direccion,:telefono,:banco,:credito_max,:fecha;

if sqlca.sqlcode=0 then

sle_1.text =codigo
sle_2.text =nombre
sle_3.text =direccion
sle_4.text =telefono
if banco="Interbank" then
cbx_1.checked=true and cbx_2.checked=false
end if
if banco="Continental" then
cbx_2.checked=true and cbx_1.checked=false
end if
sle_5.text =string(credito_max)
em_1.text =string(fecha)
fetch pb_mostrar_aval into :codigo,:nombre,:direccion,:telefono,:banco,:credito_max,:fecha;
elseif sqlca.sqlcode=100 then
messagebox ( "Aviso","Aval no Existe ...")
elseif sqlca.sqlcode=-1 then
messagebox ("Aviso", "Error no Existe Aval ...")
end if
close pb_mostrar_aval;
end if