none
MshFlexGrid RRS feed

  • Pregunta

  • Hola a todos una consulta cuando resto en mshflexgrid en el texbox me sale con signo negativo les muestro el código:

    Dim tPagar As Double
    Dim i As Integer
      
      With flex
        If .Rows = 2 Then
          .Rows = .Rows + 1
          Lleno = False
        End If
         
        If .Row > 0 Then .RemoveItem (.Row)
        
        For i = 1 To .Rows - 1
          tPagar = tPagar - .TextMatrix(i, 6)
        Next
        txtTotalPagar.Text = tPagar
      End With

    Nota : Si resta bien pero sale con signo negativo.


    Pedro Avila

    domingo, 17 de junio de 2012 16:07

Respuestas

  • Tendrias dos formas de Hacerlo

    1. Antes de eliminar el registro, coges el valor de txtTotalPagar.text y le resta el valor del registro que vas a eliminar, quita el for

     txtTotalPagar.Text = txtTotalPagar.Text  -  .TextMatrix(.row, 6)

    2. Como lo estas haciendo, eliminas el registro y vuelves a contar todos registros, pero en este caso tienes que hacer la suma

        For i = 1 To .Rows - 1
              tPagar = tPagar + .TextMatrix(i, 6)
        Next

        txtTotalPagar.Text = tPagar



    • Editado ToniAG lunes, 18 de junio de 2012 0:47
    • Marcado como respuesta Pedro Ávila lunes, 18 de junio de 2012 0:52
    lunes, 18 de junio de 2012 0:46

Todas las respuestas

  • Hola

    Te sale negativo porque restas al 0. el valor tPagar vale 0. ejemplo

     tPagar = tPagar - CeldaGrilla(1000)  es igual a    0 = 0 - 1000   es igual a   -1000

    no se si me explico, tal vez tendrias que aplicar la suma


    • Editado ToniAG domingo, 17 de junio de 2012 16:16
    domingo, 17 de junio de 2012 16:16
  • Hola Toni, gracias por responder como lo haría si puedo escoger cualquier registro.



    Pedro Avila


    • Editado Pedro Ávila domingo, 17 de junio de 2012 22:54 faltaba
    domingo, 17 de junio de 2012 22:53
  • Hola

    Lo siento no se que quieres decir, puedes poner un ejemplo

    domingo, 17 de junio de 2012 23:56
  • Dim tPagar As Double
    Dim i As Integer
      
      With flex
        If .Rows = 2 Then
          .Rows = .Rows + 1
          Lleno = False
        End If
         
        If .Row > 0 Then .RemoveItem (.Row)
        
        For i = 1 To .Rows - 1
          tPagar = tPagar - .TextMatrix(i, 6)
        Next
        txtTotalPagar.Text = tPagar
      End With

    Nota : Si resta bien pero sale con signo negativo.

    En una grilla(MshFlexGrid) tengo varios item que me suman un total ejm. formatear CPU 25, formatear laptop 35 el total a pagar me suma 60 pero si en la grilla yo escojo un item por ejemplo formatear laptop y lo elimino entonces tengo que restar y en total a pagar me debe quedar 25.00

    Lo que pasa que ami me sale con signo negativo y tu me dijistes pq? 


    Pedro Avila

    El total a pagar lo tengo en un texbox
    • Editado Pedro Ávila lunes, 18 de junio de 2012 0:37 faltaban datos
    lunes, 18 de junio de 2012 0:36
  • Tendrias dos formas de Hacerlo

    1. Antes de eliminar el registro, coges el valor de txtTotalPagar.text y le resta el valor del registro que vas a eliminar, quita el for

     txtTotalPagar.Text = txtTotalPagar.Text  -  .TextMatrix(.row, 6)

    2. Como lo estas haciendo, eliminas el registro y vuelves a contar todos registros, pero en este caso tienes que hacer la suma

        For i = 1 To .Rows - 1
              tPagar = tPagar + .TextMatrix(i, 6)
        Next

        txtTotalPagar.Text = tPagar



    • Editado ToniAG lunes, 18 de junio de 2012 0:47
    • Marcado como respuesta Pedro Ávila lunes, 18 de junio de 2012 0:52
    lunes, 18 de junio de 2012 0:46
  • Gracias, Toni

    Pedro Avila

    lunes, 18 de junio de 2012 0:53