Control msflexgrid

Quisiera un pequeño empujoncito tengo un punto de venta los datos que busco en los text son agregados al msflex grid los datos que tengoi son artículos al cual tengo un text donde ingreso la cantidad y esa cantidad es multiplicada por el precio unitario y el resultado salee en importe todo eso lo tengo bien el problema es que así agrego un articulo llamado ratón con cantidad 12 osea que comprare 12 ratones y luego agrego otro producto diferente.. Bueno y si el cliente me dice que quiere otros 12 ratones entonces busco el articulo ratón y en cantidad le pongo docee y lo agrego y se me agrega en otra fila diferente entonces lo que quiero es que al agregar más ratones se vallan agregando en la misma filaa donde ia existe una cierta cantidad de ratones y que cada ves que agrega más ratones se agreguen en la misma filaa donde ia existe y la cantidad vaia incrementando ovioo al irse incrementando serán más articuloss y se necesita que también se vaian sumando espero y me enitendas y me puedas ayudar lo más pronto posible bueno para todo esto usooo un comand1 lamado agregar con el siguiente código Private Sub Command1_Click()
Dim A As Integer
Dim b As Integer
A = MSFlexGrid1.Rows
b = MSFlexGrid1.Cols
If A = 0 Then
   MSFlexGrid1.Rows = 1
   A = MSFlexGrid1.Rows
Else
   MSFlexGrid1.Rows = A + 1
   A = MSFlexGrid1.Rows
End If
MSFlexGrid1.Row = A - 1
MSFlexGrid1.Col = 0
MSFlexGrid1.Text = Text1.Text
MSFlexGrid1.Col = 1
MSFlexGrid1.Text = Text2.Text
MSFlexGrid1.Col = 2
MSFlexGrid1.Text = Text6.Text + (Text6.Text)
MSFlexGrid1.Col = 3
MSFlexGrid1.Text = Text3.Text
MSFlexGrid1.Col = 4
MSFlexGrid1.Text = Text6 * Text3
Label12 = Format(TuNumero, "#,###.#0")
Dim suma As Currency
Dim I As Integer
Dim total As Integer
Dim iva As Integer
total = 0
iva = 0
suma = 0
For I = 1 To MSFlexGrid1.Rows - 1
suma = suma + Val(MSFlexGrid1.TextMatrix(I, 4))
iva = 0.15 * suma
total = iva + suma
Next
Label12 = suma
Label13 = iva
Label14 = total
End Sub

1 respuesta

Respuesta
1
Antes de agregar el registro, en la grilla, debes buscarlo, si lo encuentras simplemente actualizas la cantidad y el valor.
Esto lo haces recorriendo el MSFlexGrid con un for cada una de las filas que tenga.
Hola de nuevo
Si entiendo lo que me dices pero no se como aserloo es lo que pensé que tenia que recorrer todas las filas con un for pero el problema esta en que el codigoo no se como aserloo te agradecería demasiado si me ayudaras con el codigoo el que deje arriba es el que tengo para agregar los datos al msflexgrid
for i = 0 to MSFlexGrid1.Rows.Count
MSFlexGrid1.Row=i
MSFlexGrid1.Col = 0
If MSFlexGrid1.Rows = text1.text then
MSFlexGrid1.Col = 2
MSFlexGrid1.Text = Text6.Text + (Text6.Text)
end if
next
aa ia lo ingrese pero me marca calificador no válido y se marca en la linea del for en msflexgrid1.rows.count y se marca rows y así es como lo implemenbtee checamelo por favor deja te explico lo que quiero am por decir agregamos 10 artículos diferentes al msflexgrid con cantidad cada uno de 2 osea dos artículos entonces por decir el cliente me pide que le agregue otros dos artículos más de uno que ya esta en el msflexgrid y entonces sla momento de agregar si ia tenia la cantidad 2 ese articulo que al momento de agregar otros dos se agreguen al mismo que sera que se cambiara a cantidad 4 y no que se agregara a otra fila diferente
Private Sub Command1_Click()
Dim A As Integer
A = MSFlexGrid1.Rows
If A = 0 Then
   MSFlexGrid1.Rows = 1
   A = MSFlexGrid1.Rows
Else
   MSFlexGrid1.Rows = A + 1
   A = MSFlexGrid1.Rows
End If
   For I = 0 To MSFlexGrid1.Rows.Count
MSFlexGrid1.Row = I
MSFlexGrid1.Col = 0
If MSFlexGrid1.Rows = Text1.Text Then
MSFlexGrid1.Col = 2
MSFlexGrid1.Text = Text6.Text + (Text6.Text)
End If
Next
MSFlexGrid1.Row = A - 1
MSFlexGrid1.Col = 0
MSFlexGrid1.Text = Text1.Text
MSFlexGrid1.Col = 1
MSFlexGrid1.Text = Text2.Text
MSFlexGrid1.Col = 2
MSFlexGrid1.Text = Text6.Text + (Text6.Text)
MSFlexGrid1.Col = 3
MSFlexGrid1.Text = Text3.Text
MSFlexGrid1.Col = 4
MSFlexGrid1.Text = Text6 * Text3
Label12 = Format(TuNumero, "#,###.#0")
Dim suma As Currency
Dim I As Integer
Dim total As Integer
Dim iva As Integer
total = 0
iva = 0
suma = 0
For I = 1 To MSFlexGrid1.Rows - 1
suma = suma + Val(MSFlexGrid1.TextMatrix(I, 4))
iva = 0.15 * suma
total = iva + suma
Next
Label12 = suma
Label13 = iva
Label14 = total
End Sub
Esto: "for i = 0 to MSFlexGrid1.Rows.Count" lo que queire significar es el numero de lineas o filas que tiene el control, cambialo como debe ser.
Ok ia lo ice y solo tengo en rows 1 y le puse 1 .. al momento de ir ingresando datos al felxgrid se va añadiento una fila am y le quite el count pero al momento de ir agregando si agregue dos en cantidadad de agrega 22 no se como aserle iaa para que funcione como quiero espero y puedas ayudarme
Tienes que convertir la propiedad .TEXT a valor para que funcione la sumatoria
Sigue sin funcionarme le quite el count y me marca error en msflexgrid1.row=z
le cambia la letra porque la otra ia existiaa o no se que y ovio la puse en dim z as integer
si por decir agrego si el producto en los textbox es lápiz y le pongo en cantidad que quiero 10 lápiz los agrego y se agregan al msflex grid y quiero agregar otros 10 lapices para que sean 20 y vuelboo a agregar me aparecen dos lineas con el mismo prodducto y con la cantidad que le di osea cada procuto me aparece con cantidad 10 y no quiero eso quiero que si ia tengo 10 lápiz y quiero agregar otros diez la piz que se agreguen en la misma linea osea que al aplanarle agregar que la cantidad aumente a 20 y que se quede en en la misma linea del producto ia existente estoy locoo no se ni como aserlee ayudame con el codigoo o si puedes corregirmele cosas al codigoo asloo lo que quiero es que me funcione como lo desea la maestraaaa no como io quiero por mi así quedariaa de todos modos la compra se ase bien
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman; font-size: small;">Aquí estaa mi punto de veta<span style="mso-spacerun: yes;">  </span>mira es el mismo producto el cliente lo copmpra 30 veses oseaa lo pude aver puesto de primero las 30 veses pero el cliente compro primero 10 y las agregue peor se dio cuentaa que ocupaba otras 10 y las agregue y se dio cuenta que ocupaba otras 10 ubiese queridoo que al momento de agregar mas articulos aumentara la cantidad <span style="mso-spacerun: yes;"> </span>no que se agregaraa otra ves el productoo </span>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: Times New Roman; font-size: small;"> </span>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">
C:\Documents and Settings\Renato\Mis documentos\msflexgrid.htm
Debes hacer la búsqueda del producto, si existe, adicionas el valor al registro y NO lo agregas, si no existe lo agregas.
andalee asi lo quieroo pero no se como aserle en el codigooo me podrias ayudar cn esoo porfavor ya te pase el codigio que uso para agregar los articulos al msflexgrid io creoq ue bara que modificarle algoo pero no se quee porfas ayudame cn esoo te agradeceria si me pasas codigoo
dim loencontro as boolean
for i=0 to to MsflexGrid.rows
If MSFlexGrid1.Rows = text1.text then
loencontro=true
' Sumar la cantidad al registro encontrado
endif
next
if not  loencontro then
' la rutina que tienes para agregar el registro
end if
olaa
Ok
asi lo apliquee y me aparece y me marca que se requiere un objeto en la linea For z = 1 To MSFlexGrid.Rows como le ago ahoraa creo que ia namas esoo i empiesa a jalar pero no se como me marca errorrr en la linea que iaa mencionee en las propiedades del msflexgrid tengo rows 1 y asi es como le toi diciendoo espero respuesta
Private Sub Command1_Click()
Dim loencontro As Boolean
Dim z As Integer
z = 0
For z = 1 To MSFlexGrid.Rows
If MSFlexGrid1.Rows = Text1.Text Then
loencontro = True
End If
Next
If Not loencontro Then
Dim A As Integer
A = MSFlexGrid1.Rows
If A = 0 Then
   MSFlexGrid1.Rows = 1
   A = MSFlexGrid1.Rows
Else
   MSFlexGrid1.Rows = A + 1
   A = MSFlexGrid1.Rows
End If
MSFlexGrid1.Row = A - 1
MSFlexGrid1.Col = 0
MSFlexGrid1.Text = Text1.Text
MSFlexGrid1.Col = 1
MSFlexGrid1.Text = Text2.Text
MSFlexGrid1.Col = 2
MSFlexGrid1.Text = Text6.Text
MSFlexGrid1.Col = 3
MSFlexGrid1.Text = Text3.Text
MSFlexGrid1.Col = 4
MSFlexGrid1.Text = Text6 * Text3
End If
Label12 = Format(TuNumero, "#,###.#0")
Dim suma As Currency
Dim I As Integer
Dim total As Integer
Dim iva As Integer
total = 0
iva = 0
suma = 0
For I = 1 To MSFlexGrid1.Rows - 1
suma = suma + Val(MSFlexGrid1.TextMatrix(I, 4))
iva = 0.15 * suma
total = iva + suma
Next
Label12 = suma
Label13 = iva
Label14 = total
End Sub
¿Por qué repites letras? No entiendo lo que ue escribes es muy difícil leer lo que eu pretendes comunicar
Debes recorrer los registros del flegrid, lo que yo coloco es un ejemplo, no siempre vaa funcionar pues no puedo ejecutar tu código.
Debes buscar la forma en que te de el número de filas que tiene al grilla para que el for recorra y llegue hasta el final.
Perdón batallo mucho para volver a escribir no se porque
mira la vdd he tenido muchas tareas que no me dejan pensar para checar esto que me falta peor no entiendo cual es el objeto que me falta para que funcione y el msflexgrid solo inicia con una sola linea que es donde tengo los campos y al ir agregando se agrega el producto con una linea ala vez y la "z" la escribí porque me marcaba un duplicado y si esa letra ia la tenia abajo io se que no me puedes hacer todo y de todos modos te agradezco mucho eres el único que eme ayuda espero y puedas hacerlo oritaa si no deverdadq ue no ai problema y sigo buscando información y ayudas :)
Hay una manera de saber cuantas filas tiene el msflexgrid, investiga cual es, yo no lo se porque ya vb6 es muy viejo y no se utiliza
Cuando resuelvas eso ya el for te va a funcionar.
eiii estoi muy agradecidoo me sirvio de algo tu codigo lo adapte ami sistema y lo pude aser funcionar como queria muchas graciass abrire ahora otra preguntaa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas