Página 1 de 4

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

Enviado: 15 Mar 2016 17:53
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!

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

Enviado: 15 Mar 2016 18:14
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,

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

Enviado: 15 Mar 2016 19:17
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?

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

Enviado: 17 Nov 2017 16:02
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?

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

Enviado: 17 Nov 2017 16:41
por HASA
:D
Boa tarde, utilize um GRID, você conseguira fazer exatamente o que pretende ok.
HASA
:)Pos

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

Enviado: 23 Nov 2017 18:02
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!

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

Enviado: 24 Nov 2017 13:42
por HASA
:-O
Post a função additem{....} do seu grid é ai o problema.
:xau
HASA

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

Enviado: 28 Nov 2017 16:58
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...

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

Enviado: 28 Nov 2017 22:55
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.

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

Enviado: 30 Nov 2017 13:45
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

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

Enviado: 30 Nov 2017 15:11
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)?

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

Enviado: 30 Nov 2017 16:13
por HASA
:-O
Creio que funcione nas 2, mas... uso a Extend.
:)Pos
HASA

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

Enviado: 01 Dez 2017 00:18
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 4620 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 4620 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!!! *-)

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

Enviado: 01 Dez 2017 09:07
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

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

Enviado: 04 Dez 2017 23:09
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?