You are on page 1of 6

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DESHABILITAR LOS CONTROLES DE UN FORM EN VARIOS NIVELES
Public Sub DeshabilitarGrabar()
'///// deshabilita todos los controles de un form hasta tres niveles, pa
ra determinados controles./////////
'creo objetos para tres niveles, en el form, en paneles y en otro panel
contenido en el panel1
Dim controlcito As Control
Dim controlChild As Control
Dim controlChild_1 As Control
'primer nivel
For Each controlcito In Me.Controls
If TypeOf controlcito Is TextBox Or TypeOf controlcito Is ComboBox O
r TypeOf controlcito Is DataGridView Or TypeOf controlcito Is NumericUpDown Or T
ypeOf controlcito Is Button Then
controlcito.Enabled = False
ElseIf controlcito.HasChildren Then
'segundo nivel
For Each controlChild In controlcito.Controls
If TypeOf controlChild Is TextBox Or TypeOf controlChild Is
ComboBox Or TypeOf controlChild Is DataGridView Or TypeOf controlChild Is Numeri
cUpDown Or TypeOf controlcito Is Button Then
controlChild.Enabled = False
ElseIf controlChild.HasChildren Then
'tercer nivel
For Each controlChild_1 In controlChild.Controls
If TypeOf controlChild_1 Is TextBox Or TypeOf contro
lChild_1 Is ComboBox Or TypeOf controlChild_1 Is DataGridView Or TypeOf controlC
hild_1 Is NumericUpDown Or TypeOf controlChild_1 Is Button Then
controlChild.Enabled = False
End If
Next
End If
Next
End If
Next
'deshabilito el cmd que agrega
Me.cmdGrabarInspeccion.Enabled = False
'habilito cmd para imprimir y salir
'Me.cmdImprimir.Enabled = True
'Me.btnSalir.Enabled = True
End Sub
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SELECCIONAR LA ULTIMA FILA DE UN DATAGRIDVIEW
Se puede obtener la ltima fila del DataGridView con la propiedad count:
Dim UltimaFila as Integer
UltimaFila = DataGridView1.Rows.Count - 1 'Aqu saco el nmero de filas del DataGrid
View, y le resto uno porque los indces comienzan a contar en cero

Luego selecciono la fila as:
DataGridView1.Rows(UltimaFila).Selected = true 'Selecciono la fila con el ltimo nd
ice
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
RECORRER GRILLA
'buscar si tiene certificado/s de redeterminacion
For Each fila As DataGridViewRow In Me.grdCertificados.Rows
' se produce un error de que d.Cells(...) es Nothing
If fila.Cells("col_tipo_certificado").Value Is Nothing OrElse fila.Cells I
s Nothing Then
Continue For
End If
' control de que el valor de la celda que contiene el id sea igual a la va
riable que contiene el id enviado
If CStr(fila.Cells("col_tipo_certificado").Value).Trim = "REDETERMINACION"
Then
'si tiene ver el ultimo y sumar 1
NuevoNumCertRedet = CInt(fila.Cells("col_numero_certificado").Value) +
1
TieneCertRet = True
Else
'si no tiene poner cert. N 1
If TieneCertRet = False Then
NuevoNumCertRedet = 1
End If
End If
Next


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ALINEAR EL TEXTO DEL ENCABEZADO DE LA COLUMNA Y NO PERMITIMOS QUE ORDENE CUAND
O HACEMOS CLICK EN EL ENCABEZADO
For num_columna As Integer = 0 To gridExpedientes.Columns.Count - 1
gridExpedientes.Columns(num_columna).HeaderCell.Style.Alignment = DataGrid
ViewContentAlignment.MiddleCenter
'gridExpedientes.Columns(num_columna).SortMode = DataGridViewColumnSortMod
e.NotSortable
Next


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
CONTROL DE NULOS
If e.Value IsNot Nothing Then

If IsDBNull(e.Value) Then
'
Else
e.CellStyle.BackColor = Color.Gold
e.CellStyle.ForeColor = Color.Red
End If
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
CONTROL SI ES VALOR NUMERICO
If IsNumeric(cmbMinisterios.SelectedValue) Then
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
CONEXION PARA TEXTO NO SP
_sqlcon = New Librerias.Clases.Conexion(Librerias.Clases.Conexion.BdCon.Obras_b
d)
'conexion a la BD
Dim sqlComm As New SqlClient.SqlCommand()
sqlComm.CommandType = CommandType.Text
sqlComm.Connection = _sqlcon.SqlConn
sqlComm.Connection.Open()
'actualiza la cantidad, el costo, el subtotal, el total y la incidencia cuando e
s item
sqlComm.CommandText = "UPDATE computos SET orden = " & CStr(row.Cells(Me.col_or
den_computo.Index).Value) & ", ordenshow = '" & CStr(row.Cells(Me.col_orden_show
.Index).Value) & "',costo = " & CStr(row.Cells(Me.col_costo.Index).Value) & " ,
cantidad = " & CStr(row.Cells(Me.col_cantidad.Index).Value) & ", rubro = " & CSt
r(row.Cells(Me.col_id_rubro_computo.Index).Value) & ", subtotal = " & CStr(row.C
ells(Me.col_subtotal.Index).Value) & ", total = " & CStr(row.Cells(Me.col_costo_
total.Index).Value) & ", incidencia = " & CStr(row.Cells(Me.col_incidencia.Index
).Value) & " WHERE id = " & CStr(row.Cells(Me.col_id.Index).Value)
sqlComm.ExecuteNonQuery()
sqlComm.Connection.Close()


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
CONEXION PARA SP
_sqlcon = New Librerias.Clases.Conexion(Librerias.Clases.Conexion.BdCon.Obras_b
d)
Dim sqlComm As New SqlClient.SqlCommand()
sqlComm.CommandType = CommandType.StoredProcedure
sqlComm.Connection = _sqlcon.SqlConn
sqlComm.Connection.Open()
'pa
sqlComm.CommandText = String.Format("AgregaRubroalComputo")
'parametros
sqlComm.Parameters.AddWithValue("id_rubro", grdRubros.Rows(e.RowIndex).Cells(grd
Rubros.Columns("col_id_rubro").Index).Value) '2
sqlComm.Parameters.AddWithValue("id_tipologia", Me.cmbTipologia.SelectedValue)
'inserta rubro en Computo
sqlComm.ExecuteNonQuery()
'cierra conexion
sqlComm.Connection.Close()
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
CONEXION SIN CLASE
Dim sqlComm As New SqlClient.SqlCommand()
sqlComm.CommandType = CommandType.StoredProcedure
sqlComm.Connection = New SqlConnection("Server=webserver;DataBase=obras_bd; user
id=sa_webserver;password=sistemas2013") '_sqlcon.SqlConn
sqlComm.Connection.Open()
'pa
sqlComm.CommandText = String.Format("carga_costos_comput_plan_avance")
'parametros
sqlComm.Parameters.AddWithValue("id_obra", Id_obra)
sqlComm.Parameters.AddWithValue("ruta", ruta)
'inserta rubro en Computo
sqlComm.ExecuteNonQuery()
'cierra conexion
sqlComm.Connection.Close()
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MENSAJE CON VALORES DE PARAMETROS SQL
MessageBox.Show(sqlComm.Parameters.Item(1).Value.ToString.Trim + "-" + sqlComm.P
arameters.Item(3).Value.ToString.Trim + "-" + sqlComm.Parameters.Item(8).Value.T
oString.Trim)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
RECORRER LA GRILLA , SELECCIONAR Y MARCAR UNA FILA
'recorrer la grilla con los rubros, grdRubros
For Each fila As DataGridViewRow In Me.grdRubros.Rows
'selecciono y marco la fila de los rubros
grdRubros.Rows(fila.Index).Selected = True
grdRubros.CurrentCell = grdRubros.Rows(fila.Index).Cells(0)
fila.Cells("col_check").Value = True

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
CONEXION PARA CARGAR TABLA
'muestra el periodo de inspeccion a procesar
_sqlcon = New Librerias.Clases.Conexion(Librerias.Clases.Conexion.BdCon.
Obras_bd)
Dim sqlComm As New SqlClient.SqlCommand()
Dim dset As DataSet
sqlComm.CommandType = CommandType.StoredProcedure
sqlComm.Connection = _sqlcon.SqlConn
sqlComm.CommandText = String.Format("consUltimoPlanTrabajo")
'parametros
sqlComm.Parameters.AddWithValue("obra", Me.Id_obra)
sqlComm.Parameters.AddWithValue("activo", 1)
Dim sqlDa As New SqlClient.SqlDataAdapter(sqlComm)
Dim dt As New DataTable
dset = New DataSet
sqlDa.Fill(dset, "planes")
If dset.Tables(0).Rows.Count > 0 Then ' If dsCantVivObra IsNot Noth
ing AndAlso dsCantVivObra.Tables.Count <> 0 Then
Me.Numero_plan_trabajo = CInt(dset.Tables(0).Rows(0).Item("numero"))
Else
'buscar ultimo numero plan con activo = 0 y sumarle uno
'crear un nuevo parametro en el sp, para que sirva tanto para planes
activos como inactivos @activo = 1 o cero
'muestra el periodo de inspeccion a procesar
_sqlcon = New Librerias.Clases.Conexion(Librerias.Clases.Conexion.Bd
Con.Obras_bd)
Dim sqlComm1 As New SqlClient.SqlCommand()
Dim dset1 As DataSet
sqlComm1.CommandType = CommandType.StoredProcedure
sqlComm1.Connection = _sqlcon.SqlConn
sqlComm1.CommandText = String.Format("consUltimoPlanTrabajo")
'parametros
sqlComm1.Parameters.AddWithValue("obra", Me.Id_obra)
sqlComm1.Parameters.AddWithValue("activo", 0)
Dim sqlDa1 As New SqlClient.SqlDataAdapter(sqlComm1)
Dim dt1 As New DataTable
dset1 = New DataSet
sqlDa1.Fill(dset1, "planes1")
If dset1.Tables(0).Rows.Count > 0 Then
Me.Numero_plan_trabajo = CInt(dset1.Tables(0).Rows(0).Item("nume
romax")) + 1
Else
Me.Numero_plan_trabajo = 1
End If
End If
_sqlcon.SqlConn.Close()
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
INSTANCIAR FILAS Y COLUMNAS A UNA TABLA
'control que el dsCasaRepetida tenga datos
If dsCasaRepetida IsNot Nothing AndAlso dsCasaRepetida.Tables.Count <> 0
Then ' AndAlso dsCasaRepetida.Tables.Count <> 0
'si hay datos, creo datatable, datacolumn y datarow , para ver el va
lor del campo
Dim dtCasaRepetida As DataTable = dsCasaRepetida.Tables(0)
Dim col_tipologia As DataColumn = dtCasaRepetida.Columns("tipologia"
)
'control que la tabla tenga filas, antes de verificar si est repetida
If dtCasaRepetida IsNot Nothing AndAlso dtCasaRepetida.Rows.Count <>
0 Then
'instancio la fila
Dim row As DataRow = dtCasaRepetida.Rows(0)
'almaceno el nombre de la tipologia en una variable para mostrar
la
Dim tipologia_casa As String
tipologia_casa = CStr(row.Item(col_tipologia))
'mensaje con la tipologia donde esta la casa
MessageBox.Show("La casa N: " & CStr(Me.nudCasa_obra.Value) & CCh
ar(ChrW(13)) & "ya existe en la tipologa: " + tipologia_casa, Me.Text, MessageBox
Buttons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1)
nudCasa_obra.Focus()
End If
End If

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

RECORRER OBJETO

'obtener datos de la tipologia y almacenarlos en el objeto MiTipologia
'Tipologias = New Entidades.Tipologias
Tipologias = Neg.Negocio.ObtenerTipologias1(CInt(Me.txtCodObra.Text)
)
Dim contador_tipo As Integer = 0
For Each tipologia In Tipologias
If Tipologias.Item(contador_tipo).Id = CInt(cmbTipologia.Selecte
dValue) Then
MiTipologia = New Entidad.Tipologia
MiTipologia.Dos_cinco_decimales = Tipologias.Item(contador_t
ipo).Dos_cinco_decimales
End If
contador_tipo = contador_tipo + 1
Next


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

ALMACENAR VALORES DE UN COMBO EN UNA LISTA


Dim strString(ComboBox1.Items.Count - 1) As String
For i As Integer = 0 To ComboBox1.Items.Count - 1
ComboBox1.SelectedIndex = i
strString(i) = ComboBox1.Text
Next



+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

MESSAGEBOX OPCIONES
MessageBox.Show("Dot Net Perls is the best.", "Critical Warning", Mess
ageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1
,
MessageBoxOptions.RightAlign, True)

You might also like