none
Detener Una Sub Rutina ...

    Pregunta

  • hola

    Recorro un DataGridView con un ForEach ...detro tengo una condicion con un IF ...si entra en la condicion se abre un formulario....lo que quiero hacer es detener el programa hasta que se cierre el formulario que abri.....

    Mi Codigo

      Private Sub Equivalencia()
            Try
                sql1 = "SELECT DISTINCT codplanum FROM inventario WHERE Codigo = @codigo"
                sql2 = "SELECT CAST (cantidadequiv AS FLOAT) AS cantidadequiv FROM invplanunmed WHERE codplanum=@codplanum AND unidadconver =@unidadconver"
                sql3 = "SELECT unidadequiv FROM invplanunmed WHERE codplanum=@codplanum AND unidadconver =@unidadconver"
                Dim Clase As Compras = New Compras()
                resultado = Clase.PruebaConexion()

                If (resultado) Then

                    For Each row As DataGridViewRow In DataGridView1.Rows

                        If Not IsDBNull(row.Cells("CodigoArticulo").Value) AndAlso Not String.IsNullOrEmpty(row.Cells("CodigoArticulo").Value) Then
                            codigo = CStr(row.Cells("CodigoArticulo").Value) : unidadconver = CStr(row.Cells("Medida").Value) : cant = CDbl(row.Cells("Cantidad").Value)

                            codplanum = Clase.CodPlanNum(sql1, codigo) ' Tipo de Unidad de Medida
                            cantidadequiv = Clase.CantidadEquivalente(sql2, codplanum, unidadconver) 'numero conversion
                            unidadequivalente = Clase.UnidadEquivalente(sql3, codplanum, unidadconver) 'unidad de conversion

                            cant = cant * cantidadequiv
                            If Not (cant = 0) Then
                                row.Cells("CantidadBase").Value = cant
                                row.Cells("UnidadBase").Value = unidadequivalente
                                row.Cells("Equivalencia").Value = cantidadequiv
                            Else
                                Dim Form As AgregarCodigoArt = New AgregarCodigoArt()
                                Form.Show()       /// Aqui deberia detenerse la aplicacion                                                                  
                                row.Cells("CantidadBase").Value = row.Cells("Cantidad").Value
                                row.Cells("UnidadBase").Value = unidadequivalente
                                row.Cells("Equivalencia").Value = 1

                            End If

                            If Not (codplanum = "") Then
                                row.Cells("Plan_U").Value = codplanum
                            Else
                                row.Cells("Plan_U").Value = "NO ACTUALIZADO"
                            End If
                        End If
                    Next

                    For Each col As DataGridViewColumn In DataGridView1.Columns
                        col.SortMode = DataGridViewColumnSortMode.Programmatic
                    Next

                Else
                    MessageBox.Show("CONEXION CON EL SERVIDOR FALLIDA")
                End If

            Catch ex As Exception
                MessageBox.Show("0002-A12" & ex.ToString())
            End Try

        End Sub


    EFRAIN MEJIAS C VALENCIA - VENEZUELA

    viernes, 22 de marzo de 2013 15:36

Respuestas

  • sustituye Form.Show()

    Por

    Form.ShowDialog()


    "Option Strict On" no es opcional, es necesario.

    viernes, 22 de marzo de 2013 15:54
  • hola

    creo q por hay no tengo que modificar mucho la aplicacion

    pues lo recomendaria, porque esas modificaciones aportan estabilidad al codigo


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    viernes, 22 de marzo de 2013 16:08
  • Hola:

     el bloque using te garantiza que liberas todos los recursos y destruyes todos los objetos que este dentro del bloque. Para mayor informacion lee la documentacion de la libreria de Microsoft.

    Instrucción Using (Visual Basic)

     En relacion al Option Strict, si desarrollaste tu aplicacion sin tener activado es casi se guro que recibiras demasiados error sobre todo de conversion de tipos, ya que al tener Option Strinc en On te obliga a convertir al tipo de dato correcto, pero es muy facile que corrijas los errores ya que te da suderencias de conversion.

     


    Saludos desde Monterrey, Nuevo León, México!!!

    viernes, 22 de marzo de 2013 16:36

Todas las respuestas

  • sustituye Form.Show()

    Por

    Form.ShowDialog()


    "Option Strict On" no es opcional, es necesario.

    viernes, 22 de marzo de 2013 15:54
  • hola

    Form.ShowDialog()   .....me sirve

    pero si cambio a :

    Option Strict On" no es opcional, es necesario.........Lo hice pero me salieron una cantidad de errores ...creo q por hay no tengo que modificar mucho la aplicacion


    EFRAIN MEJIAS C VALENCIA - VENEZUELA


    viernes, 22 de marzo de 2013 16:00
  • hola

    creo q por hay no tengo que modificar mucho la aplicacion

    pues lo recomendaria, porque esas modificaciones aportan estabilidad al codigo


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    viernes, 22 de marzo de 2013 16:08
  • Sin lugar a dudas, la solucion te la dio Carlos, solo que yo lo haria asi:

            Using Frm2 As New Form2
                Frm2.ShowDialog()
            End Using


    Saludos desde Monterrey, Nuevo León, México!!!

    viernes, 22 de marzo de 2013 16:18
  • Hola....

    Luis

    Sin lugar a dudas, la solucion te la dio Carlos, solo que yo lo haria asi:

            Using Frm2 As New Form2
                Frm2.ShowDialog()
            End Using

    Si lo hago a tu forma ..:Cual es la Diferencia???


    EFRAIN MEJIAS C VALENCIA - VENEZUELA

    viernes, 22 de marzo de 2013 16:24
  • Hola:

     el bloque using te garantiza que liberas todos los recursos y destruyes todos los objetos que este dentro del bloque. Para mayor informacion lee la documentacion de la libreria de Microsoft.

    Instrucción Using (Visual Basic)

     En relacion al Option Strict, si desarrollaste tu aplicacion sin tener activado es casi se guro que recibiras demasiados error sobre todo de conversion de tipos, ya que al tener Option Strinc en On te obliga a convertir al tipo de dato correcto, pero es muy facile que corrijas los errores ya que te da suderencias de conversion.

     


    Saludos desde Monterrey, Nuevo León, México!!!

    viernes, 22 de marzo de 2013 16:36
  • correcto. El using salió después de que empezara a programar en vb.net, y realmente no me acuerdo que existe y sigo a la vieja usanza:

    dim formulario as new Form2

    formulario.showDialog

    formulario.dispose

    formulario=nothing


    "Option Strict On" no es opcional, es necesario.

    viernes, 22 de marzo de 2013 16:53