Foros del Web » Programación para mayores de 30 ;) » .NET »

progress bar

Estas en el tema de progress bar en el foro de .NET en Foros del Web. hola...el maximo de progress bar es 100, quiere decir que si la operación que realizo es de unas 20000 veces...no se puede usar un progress ...
  #1 (permalink)  
Antiguo 14/08/2011, 18:53
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Busqueda progress bar

hola...el maximo de progress bar es 100, quiere decir que si la operación que realizo es de unas 20000 veces...no se puede usar un progress bar?
  #2 (permalink)  
Antiguo 14/08/2011, 18:56
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 8 meses
Puntos: 15
Respuesta: progress bar

No es así amigo, 100 es una representación de porcentaje entonces si tienes que hacer 2,000 procesos y vas por 500 eso representa un 25% así que le mandas al progress bar 25.

Solo debes hacer una clase util que le mandes el total de procesos, el total completados y que devuelva el resultado en porcentaje como numero entero.
  #3 (permalink)  
Antiguo 14/08/2011, 19:14
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: progress bar

Public Sub restarporcentaje()

Dim adapt As New OleDbDataAdapter
Dim setda As New DataSet
Dim com = conexion.CreateCommand
Dim total As Decimal = 0
Dim totalcelda As Decimal = 0
Dim totalfinal As Decimal = 0
Dim division As Decimal = 0
Dim a As Integer

For Each row As DataGridViewRow In DgTotales.Rows
'carga el textbox total con lo que exista en el grid
Dim s As String = CType(row.Cells(5).Value, String)

If row.Cells(0).Value Is Nothing Then
' MessageBox.Show("Estimación Finalizada", "Aviso GesDreamtpos")
ProgressBar1.Value = 0
Else
' Set the interval for the timer.
Timer1.Interval = 250
' Start the timer.
Timer1.Start()
' Increment the value of the ProgressBar a value of one each time.
ProgressBar1.Increment(1)
' Display the textual value of the ProgressBar in the StatusBar control's first panel.
Label14.Text = ProgressBar1.Value.ToString() + "% Completed"
' Determine if we have completed by comparing the value of the Value property to the Maximum value.
If ProgressBar1.Value = ProgressBar1.Maximum Then
' Stop the timer.
Timer1.Stop()
End If

''''''''''''''''''''''''''''''''''''''''''''''''''
If s = "TARJETA CREDITO" Then
'MessageBox.Show("es tarjeta")
Else
'total clda es el total que hay en la parrila linea a linea de cantidad por pts
totalcelda = CDec(Val(row.Cells(1).Value) * Val(row.Cells(2).Value))
'tota es el cálculo que hago para sacar el porcentaje que me pide el usuario
total = CDec((Val(row.Cells(1).Value) * Val(row.Cells(2).Value)) * CDbl(TxtPorcentaje.Text) / 100)
'total final es el porcentaje restado a la celda, para conseguir la cantidad deseada por el usuario
totalfinal = CDec(CStr(CDec(totalcelda - total)))
'división es el total entre la cantidad para sacar la cantidad que debe ir en la celda pts
division = CDec(totalfinal / Val(row.Cells(1).Value))
Textprueba.Text = CStr(division.ToString("#,##0.00€"))
'a lo utilizo para marcar en que celda estoy es la idcomanda
a = CInt((Val(row.Cells(11).Value)))
Textpruebafinal.Text = CStr(a)
' los textbox que utilizo aquí están ocultos tras el datagrid

com.CommandType = CommandType.Text
com.CommandText = "UPDATE IntroduccionDeVentasAhora SET Pts = ('" & Textprueba.Text & "') Where IdComanda = (" & a & ") and NombreFormaPago <> ('TARJETA CREDITO') and Fecha BETWEEN @FI AND @FF"

com.Parameters.AddWithValue("@FI", Fecha1.Value.Date.ToString("dd/MM/yyyy"))
com.Parameters.AddWithValue("@FF", Fecha2.Value.Date.ToString("dd/MM/yyyy"))

adapt.SelectCommand = com

conexion.Open()

com.ExecuteNonQuery()

conexion.Close()
End If
End If
Next
osea aquí que hago mal?¿?, veo que tu explicación se queda corta para mi entendedera...que es poca sorry
  #4 (permalink)  
Antiguo 14/08/2011, 19:16
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: progress bar

es que tampoco entiendo por que busco ejemplos y me salta el timer1....está relacionado?¿?
  #5 (permalink)  
Antiguo 15/08/2011, 03:50
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: progress bar

alguna aportación?¿?
  #6 (permalink)  
Antiguo 15/08/2011, 06:00
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: progress bar

ProgressBar no usa necesariamente un valor de 100 como máximo. El valor máximo a acumular puede ser modificado con la propiedad Maximum.
Si tu vas a procesar 123.896 objetos, y quieres representar la progresión de esos procesos, simplemente le pones al control el Maximum 123895 y comienzas con el valor 0 y le vas sumando 1 en cada proceso.
El hecho que pueda representarse un porcentual procesado no tiene nada que ver con que uses otro Maximum, sino con la forma de presentar la información.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 15/08/2011, 10:01
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: progress bar

gnzsoloyo ese problema no es exactamente el que yo tengo, primero gracias por la aportación, la situación es que tengo un datagrid al que le cambio una información linea a linea...no se cuantas líneas va a haber en el grid...por lo que necesito que me ayudeis a saber como usar maximum cuando no se sabe la cantidad de líneas que vas a tener...gracias..
  #8 (permalink)  
Antiguo 15/08/2011, 10:01
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: progress bar

osea...como cuento las líneas del grid no hay problema...yo ya se cuantas tengo...el problema es saber cuantas lleva recorridas
  #9 (permalink)  
Antiguo 15/08/2011, 10:22
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: progress bar

b = CInt((Val(row.Cells(11).Value)))
c = DgTotales.Rows.Count
If b <> a Then
ProgressBar1.Maximum = c
ProgressBar1.Minimum = 0
ProgressBar1.Value += 1

a = CInt((Val(row.Cells(11).Value)))
Textpruebafinal.Text = CStr(a)


esto que he conseguido ya sabe cuantas lineas hay y las veces que va a tener que hacer el progress bar el problema es por ejemplo,....si tengo 200 líneas llega un momento que me salta un error que dice 201 no puede realizarse debe estar entre los valores maximun y minimun
  #10 (permalink)  
Antiguo 15/08/2011, 10:33
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: progress bar

b = CInt((Val(row.Cells(11).Value)))
c = DgTotales.Rows.Count
ProgressBar1.Maximum = c
ProgressBar1.Minimum = 0
If b = a Then
Label14.Text = "100% Completo"
ElseIf b = 0 Then
Label14.Text = "100% Completo"
Exit For
Exit Sub
Else
ProgressBar1.Value += 1

a = CInt((Val(row.Cells(11).Value)))
Textpruebafinal.Text = CStr(a)

EN ESTE CASO NO CONSIGO QUE SALGA DEL FOR...sabeis por qué?

Etiquetas: bar, progress
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:54.