Página 1 de 1

Iniciante: Como informar quantidade com 3 casas decimais?

Enviado: 20 Set 2016 13:40
por Tomaz Edson Linhares
Olá amigos,

Eu fico estudando os exemplos do minigui e vou tentando fazer algumas modificação para aprimoramento, e agora surgiu uma nova situação que não consegui solucionar, por isso peço orientação.

no exemplo que está em \MiniGUI\SAMPLES\BASIC\DualBrowse

como eu posso informar a quantidade fracionada com até 3 casas decimais e acima de 9?
como está no original, só pode ser informado a quantidade com número inteiro de 1 a 9:

1 Air Freshener
5 CD Player
9 Floor Mat

Tentei alterar algumas funções mas sem sucesso.

Eu alterei a tabela com outros produtos e funcionou perfeitamente, mas para material de construção que vende, por exemplo, areia, pedra por m3(metro cúbico) e mangueira por m, fiquei travado no campo quantidade. pois preciso informar quantidade fracionada, tipo assim:

5.5 m3 de areia (no exemplo só aceita 5)
9.5 m3 de pedra (no exemplo só aceita até 9)
25.96 m mangueira de jardim

No exemplo não aceita numero fracionado e nem quantidade acima de 9.

não teria problema de o campo pudesse ser editado pelo usuário. Caso a quantidade apareça 10 e o ele edite para 10.5

Iniciante: Como informar quantidade com 3 casas decimais?

Enviado: 20 Set 2016 17:20
por Toledo
Amigo, o campo de quantidade é um SPINNER, que aceita apenas números inteiros, então você teria que usar um outro tipo de campo, por exemplo GETBOX ou EDITBOX.

Segue as alterações necessárias para mudar de SPINNER para GETBOX:

No arquivo DEMO.PRG procure por:

Código: Selecionar todos

WIDTHS { 218, 50, 26, 60 } ;
Troque por:

Código: Selecionar todos

WIDTHS { 218, 50, 45, 60 } ;
Procure por:

Código: Selecionar todos

FIELDS { 'WANTED->itemname', 'WANTED->itemcode', 'LTRIM( STR( aQuantity[ ASCAN( aChosenRecs, RECNO()) ], 3 ))', ;
Troque por:

Código: Selecionar todos

FIELDS { 'WANTED->itemname', 'WANTED->itemcode', 'LTRIM( STR( aQuantity[ ASCAN( aChosenRecs, RECNO()) ], 6, 2 ))', ;
Procure por:

Código: Selecionar todos

  @ 242,409 SPINNER Spin_Qty ;
    RANGE 0,20 ;
    WIDTH 60
Troque por:

Código: Selecionar todos

  @ 242,409 GETBOX Spin_Qty ;
    WIDTH 60 HEIGHT 20 ;
    VALUE 0 ;
    PICTURE "999.99"
Procure por:

Código: Selecionar todos

SelectItems.Btn_QtyOK.Show
Troque por:

Código: Selecionar todos

SelectItems.Btn_QtyOK.Show
SelectItems.Spin_Qty.SetFocus
Obs.: na verdade no código acima a primeira linha não muda, apenas a segunda que deve ser incluída.

Procure por:

Código: Selecionar todos

+ " [ " + LTRIM( STR( aQuantity[ ASCAN( aChosenRecs, RECNO()) ], 3 )) ;
Troque por:

Código: Selecionar todos

+ " [ " + LTRIM( STR( aQuantity[ ASCAN( aChosenRecs, RECNO()) ], 6, 2 )) ;
Abraços,

Iniciante: Como informar quantidade com 3 casas decimais?

Enviado: 24 Set 2016 14:20
por Tomaz Edson Linhares
Amigo, vc realmente é o Mestre. Ficou como eu queria. Obrigado!!!!!

Iniciante: Como informar quantidade com 3 casas decimais?

Enviado: 27 Set 2016 20:02
por Tomaz Edson Linhares
Amigo, porque (por exemplo) após fechar Form_2 voltando ao Form_1 anterior e entrando novamente no form_2, aparece essa mensagem mesmo colocando on key escape 'action thiswindow.release' antes de end windows ?
*
..
erro_janela.JPG