none
Establecer la misma variable con diferente valor (dos formularios distintos) segun una condicion RRS feed

  • Pregunta

  • Hola, esta es la primera vez que escribo en algún foro en toda mi vida, no muy larga tengo 29, casi siempre termino resolviendo de algún modo u otro sin preguntar, pero esta vez no quise quedarme con la duda por que realmente me parece muy raro, resulta que tengo la siguiente función (dentro de un modulo)  en la cual solo sumo unos valores de un formulario u otro según cual este abierto.

    la cuestión es que si seteo dim formu = form4  fuera del if, anda perfecto.. pero cuando lo hace adentro me dice que 

    No se encuentra el miembro público 'ListView1' en el tipo 'COMANDA2'

    pero en la inspeccion posicionandome sobre formu obtengo los mismos valores en los dos casos. cuando funciona y cuando no. incluso veo listview1 dendo de formu.

      Public Function SumaCantidad()

            Dim formu ' establece la variable formu como objeto sin valor

            If Checkform(Form4) Then ' si esta abierto el formulario form4 entonces

                formu = Form4 ' setea la variable formu igual a formulario form4
            Else
                formu = COMANDA2 ' setea la variable formu igual a formulario comanda2
            End If

            For i As Integer = 0 To formu.ListView1.Items.Count - 1 'obtiene el valor de cada item 
                suma = suma + CInt(formu.ListView1.Items(i).SubItems(2).Text) ' suma el valor de cada item
            Next

            formu.TextBox8.Text = "$ " & suma 'muestra el total
            suma = 0 '  resetea suma
            If formu.CheckBox1.CheckState = CheckState.Checked Then ' si esta cheakeada la casilla abona justo entonces

                formu.TextBox9.Text = formu.TextBox8.Text 'iguala los valores del campo total  y el campo  pagacon

            End If

            Return suma
        End Function


    martes, 20 de agosto de 2019 0:04

Todas las respuestas

  • Olvide decir que asi si funciona .. pero me parecio muy desprolijo 


    Public Function SumaCantidad()
          
            Dim lv
            Dim tb8
            Dim tb9
            Dim cb1

            If Checkform(Form4) Then
                lv = Form4.ListView1
                tb8 = Form4.TextBox8
                tb9 = Form4.TextBox9
                cb1 = Form4.CheckBox1
            Else
                lv = COMANDA2.ListView1
                tb8 = COMANDA2.TextBox8
                tb9 = COMANDA2.TextBox9
                cb1 = COMANDA2.CheckBox1
            End If
            For i = 0 To lv.Items.Count - 1
                suma = suma + CInt(lv.Items(i).SubItems(2).Text)
            Next

            tb8.Text = "$ " & suma
            suma = 0
         

      If cb1.CheckState = CheckState.Checked Then
                tb9.Text = tb8.Text
            End If

            Return suma
        End Function

    • Propuesto como respuesta Pablo Rubio jueves, 22 de agosto de 2019 15:25
    • Votado como útil Brian Tierno domingo, 1 de septiembre de 2019 4:16
    martes, 20 de agosto de 2019 0:15