|
Mostrar Temas
|
Páginas: [1]
|
2
|
Programación / .NET (C#, VB.NET, ASP) / (ayuda vb2008)
|
en: 14 Diciembre 2011, 15:54 pm
|
Hola como están?... quería ver si no podrían aclararme una duda... estoy trabajando en un formulario de Vb .net conectado a una base de datos en Oracle... el tema es que cuando se realice una modificación en una de las filas de la grilla guarde la fecha y la hora de dicha modificación en los campos correspondientes, ya hice una clase para dicho proceso pero tengo problemas para que se guarde en la grilla disculpen mi ignorancia soy algo nuevo en esto Desde ya gracias El codigo en el formulario #Region "para modificar" Private Function dt_modificar() As DataTable Dim myDataTable As DataTable = New DataTable()
Dim myDataColumn As DataColumn
myDataColumn = New DataColumn() myDataColumn.DataType = Type.GetType("System.String" ) myDataColumn.ColumnName = "cod_empresa" myDataTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn() myDataColumn.DataType = Type.GetType("System.String" ) myDataColumn.ColumnName = "nro_perfil" myDataTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn() myDataColumn.DataType = Type.GetType("System.String" ) myDataColumn.ColumnName = "fecha_creacion" myDataTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn() myDataColumn.DataType = Type.GetType("System.String" ) myDataColumn.ColumnName = "cod_persona" myDataTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn() myDataColumn.DataType = Type.GetType("System.String" ) myDataColumn.ColumnName = "nro_matricula" myDataTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn() myDataColumn.DataType = Type.GetType("System.String" ) myDataColumn.ColumnName = "usr_alta" myDataTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn() myDataColumn.DataType = Type.GetType("System.String" ) myDataColumn.ColumnName = "usr_modif" myDataTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn() myDataColumn.DataType = Type.GetType("System.String" ) myDataColumn.ColumnName = "fec_modif" myDataTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn() myDataColumn.DataType = Type.GetType("System.String" ) myDataColumn.ColumnName = "observacion" myDataTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn() myDataColumn.DataType = Type.GetType("System.String" ) myDataColumn.ColumnName = "carga_operacion" myDataTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn() myDataColumn.DataType = Type.GetType("System.String" ) myDataColumn.ColumnName = "tipo_documento" myDataTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn() myDataColumn.DataType = Type.GetType("System.String" ) myDataColumn.ColumnName = "nro_documento" myDataTable.Columns.Add(myDataColumn)
Return myDataTable End Function
Private Function add_dt_modificar(ByVal cod_empresa As String, ByVal nro_perfil As String, ByVal cod_persona As String, ByVal nro_matricula As String, ByVal usr_modif As String, ByVal fec_modif As Date, ByVal observacion As String, ByVal carga_operacion As String, ByVal tipo_documento As String, ByVal nro_documento As String, ByVal myTable As DataTable) Dim row As DataRow row = myTable.NewRow() row("cod_empresa" ) = cod_empresa row("nro_perfil" ) = nro_perfil
row("cod_persona" ) = cod_persona row("nro_matricula" ) = nro_matricula
row("usr_modif" ) = usr_modif row("fec_modif" ) = fec_modif row("observacion" ) = observacion row("carga_operacion" ) = carga_operacion row("tipo_documento" ) = tipo_documento row("nro_documento" ) = nro_documento
myTable.Rows.Add(row) Return 0 End Function
Private Sub CargarTablaActualizar() If txt_nro_perfil.Text <> String.Empty And txt_cod_persona.Text <> String.Empty And txt_nro_matricula.Text <> String.Empty And txt_observacion.Text <> String.Empty And txt_carga_operacion.Text <> String.Empty And cb_tipo_documento.SelectedValue <> String.Empty And txt_nro_documento.Text <> String.Empty And My.Settings.validacion = 3 Then
Dim va As Boolean = False If para_modificar.Rows.Count < -1 Then add_dt_modificar(My.Settings.cod_empresa.Trim(), Me.txt_nro_perfil.Text.Trim(), Me.txt_cod_persona.Text.Trim(), Me.txt_nro_matricula.Text.Trim(), Me.txt_usr_modif.Text.Trim(), Me.txt_fec_modif.Text.Trim(), Me.txt_observacion.Text.Trim(), Me.txt_carga_operacion.Text.Trim(), Me.cb_tipo_documento.SelectedValue.ToString(), Me.txt_nro_documento.Text.Trim(), para_modificar) Else For i = 0 To para_modificar.Rows.Count - 1 If va = False Then If para_modificar.Rows(i)("nro_perfil" ).ToString() = txt_nro_perfil.Text Then
para_modificar.Rows(i)("cod_persona" ) = txt_cod_persona.Text para_modificar.Rows(i)("nro_matricula" ) = txt_nro_matricula.Text
para_modificar.Rows(i)("usr_modif" ) = txt_usr_modif.Text para_modificar.Rows(i)("fec_modif" ) = txt_fec_modif.Text para_modificar.Rows(i)("observacion" ) = txt_observacion.Text para_modificar.Rows(i)("carga_operacion" ) = txt_carga_operacion.Text para_modificar.Rows(i)("tipo_documento" ) = cb_tipo_documento.SelectedValue para_modificar.Rows(i)("nro_documento" ) = txt_nro_documento.Text va = True End If End If Next If va = False Then add_dt_modificar(My.Settings.cod_empresa.Trim(), Me.txt_nro_perfil.Text.Trim(), Me.txt_cod_persona.Text.Trim(), Me.txt_nro_matricula.Text.Trim(), Me.txt_usr_modif.Text.Trim(), Me.txt_fec_modif.Text.Trim(), Me.txt_observacion.Text.Trim(), Me.txt_carga_operacion.Text.Trim(), Me.cb_tipo_documento.SelectedValue, Me.txt_nro_documento.Text.Trim(), para_modificar) End If End If End If End Sub #End Region
' El proceso de guardar
ElseIf para_modificar.Rows.Count - 1 > -1 Or My.Settings.validacion = 3 Then Try Dim listas As List(Of ClassLibrary1.DLL.ClsSysDate) = SqlBSPERSOC.SysData() txt_usr_modif.Text = My.Settings.cod_usuario txt_fec_modif.DataBindings.Clear() txt_fec_modif.DataBindings.Add("Text", listas, "mSysDate" ) Actualizar() mensaje() My.Settings.validacion = 0 txt_nro_perfil.Text = String.Empty CargarDatos() Catch ex As Exception para_modificar.Rows.Clear()
End Try End If 'en todos los casos txt_nro_perfil.Focus()
End Sub
' El Sub actualizar
Private Sub Actualizar() Dim lista As String = ClassLibrary1.DAL.DataAccess.SqlPermisos.Pre_Update(My.Settings.vderecho) If Not lista.Equals("S", StringComparison.OrdinalIgnoreCase) Then MessageBox.Show(lista.ToString, "Problemas de Permiso", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1) Else Try For i = 0 To para_modificar.Rows.Count - 1
SqlBSPERSOC.Modificar(My.Settings.cod_empresa, para_modificar.Rows(i)("nro_perfil" ).ToString, para_modificar.Rows(i)("cod_persona" ).ToString, para_modificar.Rows(i)("nro_matricula" ).ToString, para_modificar.Rows(i)("usr_modif" ).ToString, para_modificar.Rows(i)("fec_modif" ).ToString, para_modificar.Rows(i)("observacion" ).ToString, para_modificar.Rows(i)("carga_operacion" ).ToString, para_modificar.Rows(i)("tipo_documento" ).ToString, para_modificar.Rows(i)("nro_documento" ).ToString) Next para_modificar.Rows.Clear() Catch ex As Exception Throw New Exception End Try End If End Sub
El Sql #Region "Modificar" Public Shared Function Modificar(ByVal cod_empresa As String, ByVal nro_perfil As String, ByVal cod_persona As String, ByVal nro_matricula As String, ByVal usr_modif As String, ByVal fec_modif As Date, ByVal observacion As String, ByVal carga_operacion As String, ByVal tipo_documento As String, ByVal nro_documento As String) As Integer Dim filas As Integer = 0 Try Dim cmd As New OracleCommand("PKG_BASE.MBSPERSOC", conn) cmd.Parameters.Add("p_cod_empresa", cod_empresa) cmd.Parameters.Add("p_nro_perfil", nro_perfil) cmd.Parameters.Add("p_cod_persona", cod_persona) cmd.Parameters.Add("p_nro_matricula", nro_matricula) cmd.Parameters.Add("p_usr_modif", usr_modif) cmd.Parameters.Add("p_fec_modif", fec_modif) cmd.Parameters.Add("p_observacion", observacion) cmd.Parameters.Add("p_carga_operacion", carga_operacion) cmd.Parameters.Add("p_tipo_documento", tipo_documento) cmd.Parameters.Add("p_nro_documento", nro_documento)
cmd.Parameters.Add(New OracleParameter("p_mensaje", OracleDbType.NVarchar2, ParameterDirection.Output, "", ParameterDirection.Output)) cmd.CommandType = CommandType.StoredProcedure conn.Open() filas = cmd.ExecuteNonQuery() If (conn.State <> ConnectionState.Closed) Then conn.Close() End If Catch ex As Exception MessageBox.Show(ex.Message, "Error en Actualización", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1) conn.Close() Throw New Exception Finally End Try Return filas End Function
#End Region
El Cls Namespace DLL
Public Class ClsBSPERSOC Dim f As Nullable(Of Date) Private cod_empresa As String Private nro_perfil As String Private fecha_creacion As Date Private cod_persona As String Private nro_matricula As String Private usr_alta As String Private usr_modif As String Private fec_modif As Date Private observacion As String Private carga_operacion As String Private tipo_documento As String Private nro_documento As String
Public Property mcod_empresa() Get Return cod_empresa End Get Set(ByVal value) cod_empresa = value End Set End Property
Public Property mnro_perfil() Get Return nro_perfil End Get Set(ByVal value) nro_perfil = value End Set End Property
Public Property mfecha_creacion() Get Return If(fecha_creacion.ToString("dd/MM/yyyy" ) = "01/01/0001", f.ToString, fecha_creacion.ToString("dd/MM/yyyy" )) End Get Set(ByVal value) fecha_creacion = value End Set End Property
Public Property mcod_persona() Get Return cod_persona End Get Set(ByVal value) cod_persona = value End Set End Property
Public Property mnro_matricula() Get Return nro_matricula End Get Set(ByVal value) nro_matricula = value End Set End Property
Public Property musr_alta() Get Return usr_alta End Get Set(ByVal value) usr_alta = value End Set End Property
Public Property musr_modif() Get Return usr_modif End Get Set(ByVal value) usr_modif = value End Set End Property
Public Property mfec_modif() Get Return If(fec_modif.ToString("dd/MM/yyyy" ) = "01/01/0001", f.ToString, fec_modif.ToString("dd/MM/yyyy" )) End Get Set(ByVal value) fec_modif = value End Set End Property
Public Property mobservacion() Get Return observacion End Get Set(ByVal value) observacion = value End Set End Property
Public Property mcarga_operacion() Get Return carga_operacion End Get Set(ByVal value) carga_operacion = value End Set End Property
Public Property mtipo_documento() Get Return tipo_documento End Get Set(ByVal value) tipo_documento = value End Set End Property
Public Property mnro_documento() Get Return nro_documento End Get Set(ByVal value) nro_documento = value End Set End Property
Sub New() fecha_creacion = Now()
End Sub
Sub New(ByVal cod_empresa As String, ByVal nro_perfil As String, ByVal fecha_creacion As String, ByVal cod_persona As String, ByVal nro_matricula As String, ByVal usr_alta As String, ByVal usr_modif As String, ByVal fec_modif As String, ByVal observacion As String, ByVal carga_operacion As String, ByVal tipo_documento As String, ByVal nro_documento As String) Me.cod_empresa = cod_empresa Me.nro_perfil = nro_perfil Me.fecha_creacion = fecha_creacion Me.cod_persona = cod_persona Me.nro_matricula = nro_matricula Me.usr_alta = usr_alta Me.usr_modif = usr_modif Me.fec_modif = fec_modif Me.observacion = observacion Me.carga_operacion = carga_operacion Me.tipo_documento = tipo_documento Me.nro_documento = nro_documento
End Sub End Class End Namespace
El Procedure del PL/SQL
Procedure MBSPERSOC( p_cod_empresa in Varchar2, p_nro_perfil in Number, p_cod_persona in Varchar2, p_nro_matricula in Varchar2, p_usr_modif in Varchar2, p_fec_modif in Date, p_observacion in Varchar2, p_carga_operacion in Varchar2, p_tipo_documento in Varchar2, p_nro_documento in Varchar2, p_mensaje Out Varchar2) Is
vcod_empresa Varchar2(5) := p_cod_empresa; vnro_perfil Number := p_nro_perfil; vcod_persona Varchar2(15) := p_cod_persona; vnro_matricula Varchar2(15) := p_nro_matricula; vusr_modif Varchar2(40) := p_usr_modif; vfec_modif Date := p_fec_modif; vobservacion Varchar2(1000) := p_observacion; vcarga_operacion Varchar2(1) := p_carga_operacion; vtipo_documento Varchar2(1) := p_tipo_documento; vnro_documento Varchar2(15) := p_nro_documento;
Begin Update BS_PERFIL_CABECERA Set cod_persona = vcod_persona, nro_matricula = vnro_matricula, usr_modif = vusr_modif, fec_modif = vfec_modif, observacion = vobservacion, carga_operacion = vcarga_operacion, tipo_documento = vtipo_documento, nro_documento = vnro_documento
Where cod_empresa = vcod_empresa and nro_perfil = vnro_perfil;
If sql%Rowcount = 0 Then p_mensaje := ('No se ha actualizado ningún registro. '); Rollback; End If; Exception When Others Then p_mensaje := ('Error durante la actualización del registro. '||Sqlerrm); End;
|
|
|
3
|
Programación / Programación Visual Basic / Como hacer tu propio instalador (Setup.exe) en vb 6 y 2008
|
en: 4 Septiembre 2011, 23:04 pm
|
Bienvenidos...En este post les doy los códigos y enseño como hacer un instalador sencillo en visual basic 6.0 o visual basic 2008, ya que e visto tantas personas preguntando la misma cosa ¿Como hago un instalador en Visual Basic?bueno esto yo me lo pille solo (si es repost avisen)Primero con el visual basic 2008:Necesitamos 3 formsform1: 2 botones (Siguiente, Cancelar)código del botón Siguiente:On Error GoTo labela GetAttr( "Dirección de tu programa" ) If MsgBox( "El Programa se encuentra instalado. Desea reinstalarlo?", vbInformation + vbYesNo, "Setup Info" ) = vbYes Then Form2.Show() Me.Hide() Else MsgBox( "Se a cancelado la instalacion", vbInformation, "Setup end" ) End End If Exit Sub labela: Form2.Show() Me.Hide()
En donde dice "GetAttr("Dirección de tu programa" ) , en vez de Dirección de tu programa ponle la dirección de tu programa pero no le quiten las comillas (recomiendo que no le pongan en disco local c: ya que yo no pude hacerlo asi, por que a la hora de instalar me manda un error)Código Botón Cancelar:If MsgBox( "Esta seguro que desea cancelar la instalacion?", vbInformation + vbYesNo, "Instalacion de Nombre de Tu Programa" ) = vbYes Then End Else End If
Form2: 2 botones (Instalar y Cancelar)Código Botón Instalar:FileCopy( "Nombre Completo del Programa", "D:Nombre Completo del Programa" ) en donde dise Nombre Completo del Programa ponle el nombre completo de tu programa mas la extención. Ej.: "MyPrograma.exe"y donde dice "D:Nombre Completo del Programa" ponganle la dirección de donde va a instalar o compiar el programaal igual que al anterior ponganle el nombre completo del programa mas extensión, y la D: se le puede cambiar con la dirección del programa,pero como antes mencione, no le pongan en el disco C ya que a veces producen erroreseste codigo se alarga dependiendo de los archivos ejemplo:FileCopy( "Nombre Completo del Programa", "D:Nombre Completo del Programa" ) FileCopy( "Otros archivos mas extensión", "D:Otros archivos mas extensión" ) al final de los códigos le ponemos el siguiente código:y si quieren que el cursor (flechita del mouse) cambie al modo de cargando o algo por el estilo el siguiente codigo ensima del código anteriory el codigo terminaria siendo asi:me.cursor = 11 FileCopy( "Nombre Completo del Programa", "D:Nombre Completo del Programa" ) FileCopy( "Otros archivos mas extensión", "D:Otros archivos mas extensión" ) me.hide form2.show Código Botón Cancelar:If MsgBox( "Esta seguro que desea cancelar la instalacion?", vbInformation + vbYesNo, "Instalacion de Nombre de Tu Programa" ) = vbYes Then End Else End If
Form3: 1 Botón (Salir), 1 CheckedBox(Abrir el Programa al Salir)botón salir:If CheckBox1.CheckState = CheckState.Checked Then Shell("Dirección en donde se instalo el programa mas su extensión y nombre" ) Me.Close() Else Me.Close() End If Para generar su proyecto en los menus busca "Generar" y darle click en Generar "Mas nombre de tu proyecto"bueno una vez que generamos el proyecto vamos a la carpeta de release y copiamos los archivos del instalador y lo pegamos junto a la carpetade los archivos a instalarahora pasamos al visual basic 63 formsform1: 2 comandbuttons o botones (siguiente y cancelar)código boton siguiente:On Error GoTo labela a = GetAttr( "Dirección de tu programa" ) If MsgBox( "El Programa se encuentra instalado. Desea reinstalarlo?", vbInformation + vbYesNo, "Setup Info" ) = vbYes Then Form2.Show Unload Me Else a = MsgBox( "Se a cancelado la instalacion", vbInformation, "Setup end" ) End End If Exit Sub labela: Form2.Show Unload Me En donde dice "GetAttr("Dirección de tu programa" ) , en vez de Dirección de tu programa ponle la dirección de tu programa pero no le quiten las comillaseste si acepta guardar los archivos en disco local c: y en cualquier carpeta de ella menos por supuesto los que ni siquiera el usuario tiene permiso a entrarBotón Cancelar:If MsgBox( "Esta seguro que desea cancelar la instalacion?", vbInformation + vbYesNo, "Instalacion de Nombre de Tu Programa" ) = vbYes Then End Else End If
Form2: 2 command (Instalar y Cancelar)Botón Instalar: Me.MousePointer = 11 On Error Resume Next FileCopy App.Path + "Nombre de Tu programa con extención", "Dirección mas Nombre de Tu programa con extención" Unload Me Form3.Show En donde dice "Nombre de Tu programa con extención" ingresa el nombre de tu programa mas extenció. Ej.: MiPrograma.exey donde dice "Dirección mas Nombre de Tu programa con extención" ponle la dirección de tu programa mas su nombre ej.: "C : Program FilesMiPrograma.exe"y en ninguna de las dos quiten las comillas ya que asi el código no funciona.y como el anterior este tambien se puede duplicar con la cantidad de archivos ej.: Me.MousePointer = 11 On Error Resume Next FileCopy App.Path + "Nombre de Tu programa con extención", "Dirección mas Nombre de Tu programa con extención" FileCopy App.Path + "Otros Archivos", "Dirección mas Otros Archivos con extención" Unload Me Form3.Show botón cancelar:If MsgBox( "Esta seguro que desea cancelar la instalacion?", vbInformation + vbYesNo, "Instalacion de Nombre de Tu Programa" ) = vbYes Then End Else End If
Y por último el Form3 : 1 comand (Salir) y un CheckBox(Abrir el Programa al Salir)Código del Botón Salir:If Check1.Value = Checked Then Shell("Dirección en donde se instalo el programa mas su extensión y nombre" ) Unload Me Else Unload Me End If Para guardar en un .exe (ejecutable) van a archivo y guardar o generar "mas el nombre de su proyecto o programa"Esto va lo mismo lo generan y guardan en la carpeta de donde quedan los archivos a instalarBueno Ahora a por un truquillo Para sus programas a instalar.este código sirve para que cuando el programa no este instalado salte un error y que diga que el programa no esta instaladoCódigo para Vb 2008 (esto deben pegarlo en el codigo del form o class form ) : On Error GoTo labela GetAttr( "Dirección de tu programa" ) Me.Show() Exit Sub labela: MsgBox("El Programa no se encuentra Instalado en su Sistema", vbCritical, "Error" ) End Y para el VB 6 (esto lo pegan en el codigo del form o ensima del codigo del form ) :On Error GoTo labela a = GetAttr( "Dirección de tu programa" ) Me.Show Exit Sub labela: a = MsgBox( "El Programa no se encuentra Instalado en su Sistema", vbCritical, "Error" ) End Bueno espero haberles servido en algo
Perdonen por que el post no este tan decorado es que lo hice primero en un bloc de notas
---------------------------------------------------------------------------------------------------
Fuente: http://www.taringa.net/posts/hazlo-tu-mismo/10598125/Como-hacer-tu-propio-instalador-_Setup_exe_-en-vb-6-y-2008.html
|
|
|
|
|
|
|