GeneXus - Como totalizar valor de uma variavel na grid? For Each Line não está funcionando

 
Vista:
sin imagen de perfil

Como totalizar valor de uma variavel na grid? For Each Line não está funcionando

Publicado por dll (10 intervenciones) el 26/02/2023 17:44:20
Estou começando usar Genexus e estou tentando fazer um sistema simples de vendas. Não estou conseguindo somar uma variavel.

aTjxE

Tentei de várias formas, segue meu código usando For Each Line In Grid
Meu SubTotal funciona perfeitamente mas o Total fica errado quando uso os botões '+' e '-' (podem notar na imagem).

Segue o código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Event GridProduct.Load
 For Each Product
  &ProductPicture= ProductPicture
  &ProductPrice = ProductPrice
  GridProduct.Load()
 EndFor
Endevent
 
Event 'BtnPlus'
 &ProductQty= &ProductQty + 1
 Do 'SubTotal'
 Do 'Total'
EndEvent
 
Event 'BtnMinus'
 &ProductQty= &ProductQty - 1
 Do 'SubTotal'
 Do 'Total'
EndEvent
 
Event 'SubTotal'
 &ProductSubTotal = &ProductPrice * &ProductQty
 GridProduct.Load()
EndEvent
 
Event 'Total'
 &ProductTotal = 0
 For Each line in GridProduct
  &ProductTotal = &ProductTotal + &ProductSubTotal
 EndFor
 GridProduct.Load()
EndEvent
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Como totalizar valor de uma variavel na grid? For Each Line não está funcionando

Publicado por dll (10 intervenciones) el 14/03/2023 21:15:42
Obrigado Alejandro pela ajuda. Já tinha tentado sua sugestão. Mas ainda não consegui solucionar o problema.

Realmente o problema está nos botões, eu estou usando a aplicação sem os botões '+' e '-'.

Eu acho que a solução seria usar um SDT mas eu tenho outros eventos usando a variável &ProductQty e não é possível usa-las em SDT.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Como totalizar valor de uma variavel na grid? For Each Line não está funcionando

Publicado por dll (10 intervenciones) el 26/03/2023 20:33:28
Eu resolvi esse problema usando 2 tipos de situações:
Para totalizar usando os botões + e -:

1
2
3
4
5
6
7
8
9
10
11
Event 'BtnPlus'
 &ProductQty = &ProductQty + 1
 &ProductTotal = &ProductTotal - &ProductPrice
 GridProduct.Load()
EndEvent
 
Event 'BtnLess'
 &ProductQty = &ProductQty - 1
 &ProductTotal = &ProductTotal - &ProductPrice
 GridProduct.Load()
EndEvent

E quando o cliente digita a quantidade em &ProductQty:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Event &ProductQty.ControlValueChanging(&ProductQtyValue)
    do 'SubTotal'
    do 'Total'
EndEvent
 
Sub 'SubTotal'
 &ProductSubTotal = &ProductPrice * &ProductQty
EndSub
 
Sub 'Total'
 &ProductTotal = 0
 For Each line in GridProduct
  &ProductTotal = &ProductTotal + &ProductSubTotal
 EndFor
EndSub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar