TEXTBOX - edição tipo PDV / PAF / ECF

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

TEXTBOX - edição tipo PDV / PAF / ECF

Mensagem por microvolution »

Pessoal, no meu jeito de cadastrar produtos anteriormente no clipper e também após migrado para o harbour é usando um ACHOICE.
Agora, estou testando os gráficos do FORMULÁRIO (JANELA WINDOW) da HMG (no braço sem ajuda de criação do formulário), conforme imagem:
16-0315 - compilação formWindow-1.png
Bom, observem que à direita e, abaixo do MVINFO existe um TEXTBOX. e à esquerda um enorme DRAW.
Então, não sei se abrir um novo tópico está correto e se o título do mesmo também está adequado.
Me perdoem caso tenha cometido uma ou as duas infrações acima.
O que quero é o seguinte:
- Nesse tal TEXTBOX o usuário digitar a quantidade (ou se for uma unidade apenas, já vir previamente digitado) e multiplicar com o asterisco ( * ) o código do produto a ser lançado.
- Caso ele não saiba, ou o leitor não ler o código, ele pressionar F4 que abrirá um BROWSE (no jeito antigo sei fazer e está pronto uma função que faz isso) e ao pressionar ENTER ou o BOTÃO ESQUERDO do mouse sobre o produto, o que o TEXTBOX torna-se vazio (empty) novamente aguardando nova digitação;
- No caso do primeiro e os demais produtos lançados, são impressos (transferidos para o DRAW que mencionei) através de vários LABELs ou um tipo de ACHOICE HMG.
- Ao final, o usuário pressiona ESC sobre o TEXTBOX do produto, e, aí vai aparecer as formas de pagamento e os demais LABELs/TEXTBOXs restantes necessários para a finalização do PDV.
Se tiverem links sobre os temas, pode(m) mandar que vamos testar e com certeza postar os resultados.
Portanto, se alguém, daqui dos professores, souberem e puderem nos ajudar, agradeço!
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

HMG - TEXTBOX - edição tipo PDV / PAF / ECF

Mensagem por Toledo »

microvolution escreveu:- No caso do primeiro e os demais produtos lançados, são impressos (transferidos para o DRAW que mencionei) através de vários LABELs ou um tipo de ACHOICE HMG.
Amigo, acho que seria melhor uma GRID no lugar de vários LABEL.

Veja:
C:\hmg.3.4.2\DOC\data\Grid.htm

Veja também:
C:\hmg.3.4.2\SAMPLES\Miscellaneous\PEDIDOS
C:\hmg.3.4.2\SAMPLES\Controls\Grid\GRID_07
C:\hmg.3.4.2\SAMPLES\Controls\Grid\GRID_40

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

TEXTBOX - edição tipo PDV / PAF / ECF

Mensagem por microvolution »

Toledo escreveu:C:\hmg.3.4.2\SAMPLES\Miscellaneous\PEDIDOS
Toledo, o troço tá até em portugues... topdmais...
Agora, abriu meu leque mais ainda, pois quando for a hora de consultar o que foi vendido, posso usar igualzinho ou um pouco diferente...
Bom, quanto à primeira ideia do TEXTBOX composto, tem alguma sugestão?
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

TEXTBOX - edição tipo PDV / PAF / ECF

Mensagem por microvolution »

Srs. tive um problemão aqui que perdi todos os meus fontes.
Estou retomando essa discussão novamente.
Bom, na minha primeira postagem deste tópico eu mostro uma tela com um "draw" do lado esquerdo em branco. Nele eu quero colocar os produtos que forem sendo lançados na venda. No modo "console" eu uso a função achoice() que inclusive funciona e muito bem. Bom, neste caso em modo "gráfico", alguns dos professores sabe o que vou usar para substituir e que serve de modo interativo, que se quiser eliminar algum item basta o usuário final clicar em cima dele.

Alguém tem alguma ideia funcional?
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
Avatar do usuário
HASA
Colaborador
Colaborador
Mensagens: 1088
Registrado em: 01 Set 2003 19:50
Localização: São Paulo
Contato:

TEXTBOX - edição tipo PDV / PAF / ECF

Mensagem por HASA »

:D
Boa tarde, utilize um GRID, você conseguira fazer exatamente o que pretende ok.
HASA
:)Pos
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

TEXTBOX - edição tipo PDV / PAF / ECF

Mensagem por microvolution »

HASA escreveu:Boa tarde, utilize um GRID
olá grande professor HASA, eu estou tentando utilizar essa ferramenta GRID, mas, pelo que percebo, o conceito de GUI realmente é muito complexo. A gente q veio dos anos 1986 acostumado com linguagem procedural tá demorando pra entender o POO...

Mas, já consegui alguma coisa com o GRID, mas, no meu windows 10/64 (não sei se é com ele ou com minhas linhas de digitação), quando clico na barra de rolagem dele os dados do GRID somem e fica lento o sistema....

Não sei o que está acontecendo...
mas, se tiver mais dicas, serão bem vindas!
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
Avatar do usuário
HASA
Colaborador
Colaborador
Mensagens: 1088
Registrado em: 01 Set 2003 19:50
Localização: São Paulo
Contato:

TEXTBOX - edição tipo PDV / PAF / ECF

Mensagem por HASA »

:-O
Post a função additem{....} do seu grid é ai o problema.
:xau
HASA
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

TEXTBOX - edição tipo PDV / PAF / ECF

Mensagem por microvolution »

HASA escreveu:Post a função additem
ah! sim... o GRID é criado primeiro sem usar a palavra ITEMS no início...
à medida que vai sendo adicionado produtos é que vai se criando os items... e por incrível que parece vai preenchendo perfeitamente a lista...
mas se eu clicar na barra de rolagem horizontal pra ver todos os campos da tabela/dbf aí o sistema trava...
bom, vou postar e lhe reportar o quanto antes...
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

TEXTBOX - edição tipo PDV / PAF / ECF

Mensagem por microvolution »

HASA escreveu:Post a função additem{....} do seu grid é ai o problema.
... opa voltei.
por favor, veja o código abaixo e tente descobrir o que estou fazendo de errado:

Código: Selecionar todos

define window frm_main
(...)
                        define GRID grid_1
                           row 50
                           col 08
                           WIDTH 440 
                           HEIGHT 350 
                           HEADERS {'Cd','Nome Prd','Qt','Vr.Un.','Vr.Total'} 
                           WIDTHS {100,240,30,50,100,120}
                           ColumnCONTROLS { {'TEXTBOX','NUMERIC', '999999999999'} , 'TEXTBOX' , 'TEXTBOX' , 'TEXTBOX' , 'TEXTBOX' } 
                           DYNAMICFORECOLOR { fColor , fColor , fColor , fColor , fColor } 
                           cellnavigation .t.
                           EDITOPTION GRID_EDIT_DEFAULT
                           allowedit .t.
                        end GRID
(...)
end window
As linhas acima são da criação do GRID.
Agoras as abaixo são da matriz 1x5 que recebe os itens e os adiciona ao GRID através de ADDITEM.
Veja:

Código: Selecionar todos

     Frm_Main.Grid_1.AddItem ( { prod[01,01] , prod[01,02] , prod[01,03], prod[01,04], prod[01,05] } )
Bom, diante do código acima, ainda tenho algumas questões que não entendo:
1 - No TEXTBOX posso usar o picture (tipo STRZERO do clipper) que coloca "zeros" à esquerda. é possível? lembram?
2 - Quando clico em qualquer coluna do COLUMNCONTROLS gostaria que editasse apenas o item QT (quantidade) e se fosse possível aumentar ou diminuir a quantidade. Caso seja "zero" o item deve ser excluído da venda/orçamento, sem perder a sequência... como é feito nas grandes redes de supermercados. Exemplo:
o cliente cancela o item 2 da nota, aí ele permanece ali e ao final da lista de itens que já comprou é feito um novo item "negativo" histórico tipo "cancelado item 2" e o valor e quantidade em negativo. É possível?

Bom, mas, não vamos com muita sede ao poço... o que puderem responder já estará de bom tamanho pra início.
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
Avatar do usuário
HASA
Colaborador
Colaborador
Mensagens: 1088
Registrado em: 01 Set 2003 19:50
Localização: São Paulo
Contato:

TEXTBOX - edição tipo PDV / PAF / ECF

Mensagem por HASA »

- Boa tarde, desculpe a demora mas... ta meio corrido aqui, vou respondendo a medida que conseguir visitar o forum ok.

acreceste isso:

Código: Selecionar todos

Frm_Main.GRID_1.DisableUpdate
DELETE ITEM ALL FROM GRID_1 OF Frm_Main

Frm_Main.Grid_1.AddItem ( { prod[01,01] , prod[01,02] , prod[01,03], prod[01,04], prod[01,05] } ) && essa já tá lá

Frm_Main.GRID_1.REFRESH()
Frm_Main.GRID_1.EnableUpdate
Veja se estabiliza, caso não, se quiser envie um pequeno prg ( tipo DEMO.PRG ) que eu baixo e devolvo funcionando ok, Detalhe uso MINIGUI EXTEND.
:)Pos
HASA
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

TEXTBOX - edição tipo PDV / PAF / ECF

Mensagem por microvolution »

HASA escreveu:acreceste isso:
Então, HASA, só pra evitar confusão em minha "caixola"...
o código q vc passou é pra HMG (minigui) ou HMGE (minigui Extented)?
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
Avatar do usuário
HASA
Colaborador
Colaborador
Mensagens: 1088
Registrado em: 01 Set 2003 19:50
Localização: São Paulo
Contato:

TEXTBOX - edição tipo PDV / PAF / ECF

Mensagem por HASA »

:-O
Creio que funcione nas 2, mas... uso a Extend.
:)Pos
HASA
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

TEXTBOX - edição tipo PDV / PAF / ECF

Mensagem por microvolution »

HASA escreveu::-O
Creio que funcione nas 2
prezado... aceitar o código a HMG aceitou...
agora funcionar? :%
vou postar a tela antes de clicar na barra de rolagem... ↓
pdv-erro1.png
pdv-erro1.png (10.85 KiB) Exibido 4623 vezes
Agora a próxima imagem é de quando se clica na barra de rolagem. por favor vejam ↓
pdv-erro2.png
pdv-erro2.png (8.09 KiB) Exibido 4623 vezes
Além de acontecer de sumir os produtos já listados ali, o TEXTBOX de digitação do código do produto e o TEXTBOX da quantidade ficam estranhos e as teclas (ENTER e TAB) parecem que não mais são aceitas...

O que na verdade, acho que está acontecendo na minha "leiguisse" é que como estou ainda com a minha mente acostumada com o modo CONSOLE que a gente programava e sabia que o sistema ia descendo linha a linha, e, não precisava nem de DEBUG pra descobrir erros... pois sabíamos onde realmente estávamos...

Agora em POO ou GUI, o conceito é diferente e, eu mesmo, sinceramente, não consigo entender onde o sistema fica esperando um comando...
No modo CONSOLE a gente sabe que o sistema só pára em 2 lugras ou mais alguns:
- READ
- do while .t.
- etc

Em Orientação a Objeto, fico na sensação que não para em lugar nenhum ou que tudo se executa ao mesmo tempo...
Então - como disse na minha "leiguisse", concluo que as minhas funções antigas de CONSOLE devem ser repensadas pra funcionar corretamente em GUI... Mas, se conseguirei refazê-las ou não, é se alguém conseguir me explicar de uma forma simples, prática e bem didática com exemplos do dia a dia...
ah!
por exemplo, vejam parte do código CONSOLE (que adaptei para GUI) abaixo:

Código: Selecionar todos

do while .not. (FIM)
     INICIALIZA_CAMPOS ()
     TELA_ENTRADA_GUI (procname (),'Vendas GUI',COR_PADRAO)
     if .not. FIM
          PEDE_OPCAO ()
     endif
enddo
close all
set (_SET_CURSOR,SALVA_CURSOR)
set (_SET_DELIMITERS,SALVA_DELIMITERS)
set (_SET_INTENSITY,SALVA_INTENSITY)
setcolor (SALVA_COR)
restscreen (0,0,maxrow (),maxcol (),SALVA_TELA)
return
Bom, vou tentar em poucas palavras explicar como é isso aqui em CONSOLE pra ver se alguém consegue me explicar como devo mudar isso para GUI/POO, aliás a rotina acima no original e que funciona perfeitamente é:

Código: Selecionar todos

do while .not. (FIM)
     INICIALIZA_CAMPOS ()
     TELA_ENTRADA ()
     TRATA_CAMPOS ()
     if .not. FIM
          PEDE_OPCAO ()
     endif
enddo
close all
set (_SET_CURSOR,SALVA_CURSOR)
set (_SET_DELIMITERS,SALVA_DELIMITERS)
set (_SET_INTENSITY,SALVA_INTENSITY)
setcolor (SALVA_COR)
restscreen (0,0,maxrow (),maxcol (),SALVA_TELA)
return
- todas as telas do meu sistema (CONSOLE) basicamente possuem essa mesma sequência de linhas dentro do LOOP;
- o loop verifica se a variável lógica FIM está em .f. (que é o padrão desde o início deste PRG);
- a função INICIALIZA_CAMPOS() faz uma atribuição de todos os campos da tabela (.dbf) para as variáveis de memória;
- TELA_ENTRADA() cria a tela com todas as variáveis de memória e os SAYs necessários;
- TRATA_CAMPOS() cria e coloca em funcionamento todos os GETs e o READ necessários;
- if .NOT. (FIM) (variável que contém o tempo todo .f.) sempre aciona a função PEDE_OPCAO()
- agora se em algum momento for GRAVADO, EXCLUÍDO ou pressionado ESC/ENTER no teclado a variável FIM que está em .f. recebe .t. e o sistema chega ao fim...
simples assim...
Agora voltando ao POO/GUI
Então, observem que mudei apenas 2 linhas, ou seja, eliminei a linha TRATA_CAMPOS() que era a que criava os GETs e os coloquei dentro da função TELA_ENTRADA que agora chama-se TELA_ENTRADA_GUI((procname (),'Vendas GUI',COR_PADRAO) onde estão os substitutos dos SAYs (LABELs) e dos GETs que são os TEXTBOXs.

Então, meus caros colegas, o que não sei lidar é com o que fazer com - por exemplo:
DO WHILE .NOT. (FIM)
Pois no modo CONSOLE eu sei que se eu não fizer isso, o sistema encerra-se de forma incorreta.
Então, eu uso - não sei os senhores, em modo CONSOLE esse "loop" pra segurar o programa, até a hora certa dele ser encerrado.

Agora, em GUI/POO, como faria isso?
Portanto, o que gostaria de entender é como realmente o modo GUI/POO realmente funciona, pois assim, eliminaria mais um montão de funções inúteis ou desnecessárias em ambiente GUI/POO/WINDOWS nativo.

e tome :% estou pedindo socooooorroooooo!!! alguém aí pra atender um velho e bom telefone? :f
rsrsrs... só pra descontrair...
assim como o telefone fixo está em extinção, se nós - os que ainda não migraram pra gráfico, não fizermos alguma coisa urgente, deixaremos de existir!!! *-)
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
Avatar do usuário
HASA
Colaborador
Colaborador
Mensagens: 1088
Registrado em: 01 Set 2003 19:50
Localização: São Paulo
Contato:

TEXTBOX - edição tipo PDV / PAF / ECF

Mensagem por HASA »

:? :-O

- Bom dia, infelizmente o raciocínio console você aos poucos vai ter que deixar de lado na cabeça ( as vezes vai precisar dele, não é para esquecer ) mas... aprenderas novos conceitos. No modo Gui não temos um GET que fica paradinho esperando a digitação e o ENTER para iniciar uma sequencia e retornar ao ponto inicial. A principio os TEXTBOX ( tem outros ) são os get´s mas... não é porque colocamos um valor nele que acontecerá alguma coisa depende dos eventos que você quer que dispare, validação do campo, ir para o próximo campo somente, ir para uma pequena janela, etc...

Mas... não se preocupe também não é tanto assim olha eu ai tentando de ensinar alguma coisa ´o) .

Como disse, crie uma pequena janela do tipo HELLO WORLD, somente com o seu problema prg + dbf compacte e coloque aqui, amanhã estarei de plantão e pego seu zip para deixar funcionando ok.

:)Pos

HASA
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

TEXTBOX - edição tipo PDV / PAF / ECF

Mensagem por microvolution »

HASA escreveu:crie uma pequena janela do tipo HELLO WORLD, somente com o seu problema prg + dbf compacte e coloque aqui
olá HASA, não o fiz ainda, porque sinceramente, não entendi o que vc quer dizer, blz?
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
Responder