Clipper On Line • Ver Tópico - TEXTBOX - edição tipo PDV / PAF / ECF

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

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

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

Mensagempor microvolution » 04 Dez 2017 23:36

Hasa, boa noite!

Tentei pegar trecho do programa e compilar como um novo, mas, são tantos os erros que fica grande do mesmo jeito pra eliminar os erros.

Bom, sinceramente, se alguém tiver mais uma opinião pra ajudar a entender se é erro de programação, incompatibilidade, ou qualquer que seja.
O negócio ao clicar na barra de rolagem do GRID_1, além de eliminar os itens já preenchidos nele, há uma interferência nos TEXTBOXs q param de funcionar corretamente.

vlw... Feliz Natal !
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: 1175
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 17 vezes

GRID_ com falhas

Mensagempor microvolution » 05 Dez 2017 08:11

bom dia amigos de guerra!

Alguém já passou por isso ou tem alguma outra 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: 1175
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 17 vezes

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

Mensagempor HASA » 05 Dez 2017 10:34

:-o
Amigão seguinte, na pasta da MINIGUI/HMG tem a pasta SAMPLES com vários exemplos de Grid provavelmente vc conseguira achar um parecido com o seu.
:)Pos
HASA
Avatar de usuário

HASA
Colaborador

Colaborador
 
Mensagens: 1082
Data de registro: 01 Set 2003 19:50
Cidade/Estado: São Paulo
Curtiu: 1 vez
Mens.Curtidas: 51 vezes

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

Mensagempor microvolution » 06 Dez 2017 08:41

HASA escreveu: a pasta SAMPLES com vários exemplos de Grid
sim prezado HASA... eu já testei todos.
O que preciso entender mesmo, é o que está causando esse erro de lentidão ao apenas clicar na barra de rolagem.
Se, alguém tiver mais uma dica. :)Pos
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: 1175
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 17 vezes

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

Mensagempor MSDN » 06 Dez 2017 11:06

W de Paula, estou vindo aqui responder sua questão no intuito de ajudar, por favor não entenda o contrário.
Na pasta Minigui\Samples\Aplications , tem uma pasta com o nome Super, é um sistema de pizzaria completo, funciona 100%, não é uma "Brastemp", mas para aprendizado é excelente, assim vc não fica perdido vendo exemplos isolados, e consegue entender o que é como funcionam juntos os componentes gráficos, além do mais, ele usa DBF, que vc já está acostumado.
Se eu fosse vc, olharia e testaria de trás pra frente e do avesso esse exemplo, para aí sim, quando vc vier aqui no fórum, já ter uma base boa.

Abraços
MSDN
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 741
Data de registro: 28 Nov 2003 14:55
Cidade/Estado: CWB
Curtiu: 178 vezes
Mens.Curtidas: 123 vezes

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

Mensagempor Nascimento » 08 Dez 2017 00:26

aprendi muito aqui no fórum , sobre a minigui mais o pacote que comprei do amigo MSDN foi onde
comecei a pegar os conceitos , hj tenho meu soft 95% portado
o console foi feito com as telas do miro3
e devagarzinho portando pra minigui
o mais difícil foi manter algumas características do console pois os usuários gostam mais do uso do teclado do que do mouse
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Avatar de usuário

Nascimento
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 711
Data de registro: 19 Jul 2008 12:11
Cidade/Estado: OLINDA-PE
Curtiu: 110 vezes
Mens.Curtidas: 76 vezes

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

Mensagempor rota66 » 08 Dez 2017 15:24

Isso aí Marcelo Neves;

Eu, no início estava bastante apertado com a necessidade de um grande cliente e usei o teu exemplo (sistema para pizzaria) como base para a minha aplicação. Depois fui agregando de acordo com minhas necessidades e fazendo pesquisas no próprio repositótio dos exemplos. Lá existe um exemplo pra quase tudo.

Para 90 % do que foi necessário para portar Clipper -> Harbour/Hmg extended eu encontrei em exemplos práticos no repositório. O resultado é que em menos de 3 meses portei um sistema Fiscal inteiro para Harbour 3.4/HMG-Extended/Mingw.

Aqui não é espaço para curso intensivo for dummies.
rota66
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 2
Data de registro: 19 Ago 2011 08:25
Cidade/Estado: Foz do Iguaçu
Curtiu: 3 vezes
Mens.Curtidas: 0 vez

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

Mensagempor microvolution » 12 Jan 2018 09:18

"W de Paula, estou vindo aqui responder sua questão no intuito de ajudar, por favor não entenda o contrário." absolutamente.
vou experimentar.
obrigado!
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: 1175
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 17 vezes

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

Mensagempor microvolution » 12 Jan 2018 09:22

MSDN, desculpa a minha infantilidade:
"a pasta Minigui\Samples\Aplications"
você se refere à HMG (Harbour MiniGui) ou está referindo-se à HMGE (MiniGui Extend)?
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: 1175
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 17 vezes

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

Mensagempor MSDN » 12 Jan 2018 13:20

Refere-se a MiniGUI Extended.
Amigo, na boa, eu vi suas últimas postagens, mas acredite, não precisa "sofrer" tanto, eu não sou um gênio, e com certeza é raro achar um por ai, mas a gente, como programador, ainda mais do xBase, que não tem muitos por ai, tem que se esforçar sempre, ir atrás, testar, testar e testar, não pode a cada "warning" achar que o mundo acabou, a questão de vc ainda não ter acostumado com programação gráfica, é assim mesmo, eu demorei uns 3 meses até começar a ter segurança e entendimento da transição Clipper para Harbour+MiniGUI, então, tenha calma e muito esforço, conseguir vc consegue, mas....só depende única e exclusivamente de vc....
MSDN
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 741
Data de registro: 28 Nov 2003 14:55
Cidade/Estado: CWB
Curtiu: 178 vezes
Mens.Curtidas: 123 vezes

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

Mensagempor microvolution » 31 Jan 2018 18:07

MSDN escreveu:Refere-se a MiniGUI Extended.

Infelizmente não testei pois o meu é HMG, infelizmente não tenho nada da HMG-E.
São tantas as LIBs gráficas - que acho que deveria haver um consenso entre os "mantenedores" que um comando/função que se usa em cada uma serviria para todas. rsrs
É uma tal de HMG, HWGUI, HMGE, HBQT, WVG, WVW, etc... que nem sei como funcionam o básico de cada... aí se a gente for testar tudo, acaba que não dá em nada.
Por hora, estou usando a HMG 3.4.2 e a WVG (JUNTAS na IDE/HMG) para que meu sistema funcione no modo CONSOLE (já migrado pra harbour) e eu acrescente alguns botões gráficos nas telas CONSOLE (recursos estes da WVG) e as novas telas tentando criar os formulários da própria HMG, que seria o caso aqui em questão.

Se eu soubesse que teria essa tantão de problemas, adiaria a questão gráfica, pois uso o ACHOICE e é nele que estou agarrando pra mudar pra o simples GRID, e, que trava do nada.

:%
rsrsrs
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: 1175
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 17 vezes

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

Mensagempor microvolution » 03 Fev 2018 23:20

boa noite! ou melhor boa madrugada!
então, tô aqui revisando o(s) código(s) do GRID, mas, infelizmente não consigo entender o que está causando o erro - que é o mesmo desde a minha primeira postagem.
Vou explicar o que quero fazer com outras palavras:
1 - estou desenvolvendo uma tela de frente de loja 100% gráfica na lib HMG 3.4.4;
2 - o "usuário" ao fazer a venda para o "cliente", vai lançando os produtos individualmente - tipo no supermercado;
3 - cada produto que finaliza vai sendo mostrado num GRID - um após o outro. Até aí tudo bem;
4 - só que se o "usuário" - no caso euzinho aqui, clicar na barra de rolagem do GRID, o sistema fica todo doido - parece um tipo de bug;

E, aí, não consigo entender e resolver. Aí vem a "velha" questão:
- qual LIB usar?
a) pensei que GTWVW ou GTWVG me atenderiam - pois praticamente ela é estilo console, mas, pode ser 100% gráfica, 100% console, ou MIX - mas, neste caso ela não tem um GRID;
b) conheci a HMG e me apaixonei à primeira vista, pois tem uma IDE - que apesar de ser bem simples, no meu caso, facilita a compilação - que faço dentro dela, e, através dela abro os PRGs para alterações... show.
c) descobri também, que a HMG 3.4.4 já vem com a GTWVG inclusa na pasta contrib, e, aí fiquei mais animado ainda, pois posso compilar meu aplicativo com as 2 LIBs numa boa;
d) então, pensei, os novos módulos, posso tentar fazer em 100% GUI, usando a HMG. E, foi aí que tudo começou e deu pau logo numa coisa tão simples que é o/a GRID.

Por favor, socooooorro Roberto Lopez, Dr. Sotto, Bedi, sZakats, Pablo, Toledo, Sygecom, MSDN, Nascimento, Itamar, Quintas, Hasa, sei lá... alguém... quem tem uma ideia?

Vc pode perguntar: posta pra nós os códigos: qual parte? pois já postei, de repente, algo que ainda não vi...

help-me!!!
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: 1175
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 17 vezes

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

Mensagempor microvolution » 04 Fev 2018 00:17

BOM, agora já é 01:11h da matina.
Uma coisa "tal tola" mas cheguei à conclusão.
Os itens são lançados no GRID à medida que os produtos "são passados no PDV";
Então, percebi que o GRID após ser criado ele:
1 - está sem nenhuma informação;
2 - como está sem informação, não há a barra de rolagem - rolar o quê?;
3 - quando é lançado no GRID o primeiro item, surge então a barra de rolagem;
4 - interessante que com apenas um 1 item, ao clicar (e segurar o click do botão esquerdo) na barra de rolagem ela não trava;
5 - com isso o sistema continua funcionando perfeita;
6 - mas, ao adicionar um novo item/produto, ele aparece na segunda linha do GRID;
7 - se não clicar no barra de rolagem posso continuar lançando produtos que tudo dá certo;
8 - mas, se após o segundo item lançado se clicar na barra de rolagem, aí o sistema "fica doidão" - mamonas assassinas, rsrrs;

Então, não sei o que fazer.
Quando começo a empolgar e concluir que a HMG junto com a GTWVG é o que resolverá meus problemas, percebo que volto à estaca zero.
Aí dá vontade de "esquecer que um dia aprendi programação - há 31 anos atrás" e voltar no passado e virar pedreiro, carpinteiro, contabilista, etc...

ah! se existisse "máquina do tempo" rsrsrs
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: 1175
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 17 vezes

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

Mensagempor Claudio Soto » 04 Fev 2018 00:52

microvolution escreveu:BOM, agora já é 01:11h da matina.
Uma coisa "tal tola" mas cheguei à conclusão.
Os itens são lançados no GRID à medida que os produtos "são passados no PDV";
Então, percebi que o GRID após ser criado ele:
1 - está sem nenhuma informação;
2 - como está sem informação, não há a barra de rolagem - rolar o quê?;
3 - quando é lançado no GRID o primeiro item, surge então a barra de rolagem;
4 - interessante que com apenas um 1 item, ao clicar (e segurar o click do botão esquerdo) na barra de rolagem ela não trava;
5 - com isso o sistema continua funcionando perfeita;
6 - mas, ao adicionar um novo item/produto, ele aparece na segunda linha do GRID;
7 - se não clicar no barra de rolagem posso continuar lançando produtos que tudo dá certo;
8 - mas, se após o segundo item lançado se clicar na barra de rolagem, aí o sistema "fica doidão" - mamonas assassinas, rsrrs;

Então, não sei o que fazer.
Quando começo a empolgar e concluir que a HMG junto com a GTWVG é o que resolverá meus problemas, percebo que volto à estaca zero.
Aí dá vontade de "esquecer que um dia aprendi programação - há 31 anos atrás" e voltar no passado e virar pedreiro, carpinteiro, contabilista, etc...

ah! se existisse "máquina do tempo" rsrsrs

Por favor postear el código de un ejemplo donde se presenta el problema.
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar de usuário

Claudio Soto
Colaborador

Colaborador
 
Mensagens: 555
Data de registro: 27 Ago 2012 12:31
Cidade/Estado: Uruguay
Curtiu: 35 vezes
Mens.Curtidas: 166 vezes

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

Mensagempor microvolution » 04 Fev 2018 15:34

Claudio Soto escreveu:Por favor postear el código de un ejemplo donde se presenta el problema.
Dr. Soto, pra mim é uma honra tê-lo aqui no meu humilde tópico.
Bom, já postei desde o início deste tópico, mas, para não lhe cansar muito vou postar novamente, e aproveito pra acrescentar outras partes do código deste PRG que ainda "euzinho" não tinha julgado como necessário.
Todas as linhas deste PRG foram aproveitadas de outro PRG que faz a mesma coisa em MODO CONSOLE e que usa o ACHOICE pra fazer o que eu quero. Neste caso fiz modificações nas linhas, comentei muitas, e, eliminei outras partes que percebi não serem necessárias. Ah! pelo que entendi o ACHOICE é substituído pelo GRID, e, é isso que preciso que funcione.
Eis as linhas iniciais - não todas pra não ficar muito grande, deste PRG↓:
set cursor on
// set delimiters to DELIMITADORES // eliminado temporariamante por usar HMG em modo GUI 7/12/17W
// set delimiters on // eliminado temporariamante por usar HMG em modo GUI 7/12/17W
// set intensity on // eliminado temporariamante por usar HMG em modo GUI 7/12/17W
// set key TECLA_HELP to HELP_CAMPO // modificado pela linha abaixo 7/12/17w
// on key TECLA_HELP of HELP_CAMPO
// TELA_PADRAO (procname (),'Or‡amento FDL GUI',COR_PADRAO) // esta fun‡ao foi desabilitada e tudo ‚ feito em TELA_ENTRADA_GUI() // 6/11/17w
// setcolor (COR_PADRAO) // eliminado temporariamante por usar HMG em modo GUI 7/12/17W
ABERTURA ()
select ('DCI10016')
INICIALIZA_CAMPOS ()
// MsgInfo('Ap¢s ABERTURA() e INICIALIZA_CAMPOS')
ATUALIZA_CONTEUDO_ANTERIOR ()
// do while .not. (FIM)
     // INICIALIZA_CAMPOS ()
     // TELA_ENTRADA ()
     // TELA_ENTRADA_GUI ()
     TELA_ENTRADA_GUI (procname (),'Orçamento FDL GUI',COR_PADRAO)
     // MsgInfo('Ap¢s TELA_ENTRADA_GUI')
     // TRATA_CAMPOS ()
     // EXIT // PROVISŸRIO 14/3/16w.
     // TRATA_CAMPOS_GUI () // integrei essa fun‡ao ao TELA_ENTRADA_GUI // 6/11/17w
     // MsgInfo('Ap¢s TRATA_CAMPOS_GUI')
     // 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

Observe-se acima que comentei ("//" ou com "/* */" ou com "**" ou simplesmente "*") por entender que em 100% GUI não são necessárias.
As linhas abaixo são da função que cria o formulário:
static function TELA_ENTRADA_GUI (PROGRAMA,SUB_TITULO,COR,ELEMENTO)
   hb_Default(@ELEMENTO, space(1)  )
   mCD_VENDED := mCDOPERADO
   Private fColor := { || if ( This.CellRowIndex/2 == int(This.CellRowIndex/2) , { 0,0,255 } , { 0,255,0 } ) }   

   mI := 1 // coloquei pra nao dar erro de limite de array 22/11/17w

   DEFINE WINDOW Frm_TELA_ENTRADA ;
      AT GetDesktopRealTop(),GetDesktopRealLeft() ;
      WIDTH GetDesktopRealWidth() HEIGHT GetDesktopRealHeight() ;
      TITLE PROGRAMA + SPACE (7) + SUB_TITULO ;
      CHILD ;
      ON INTERACTIVECLOSE CONFIRMA4 ('Deseja Cancelar sem Concluir', 6 ,'SiCCA v3.6.04 - Orçamento')       // para confirmação
      // TITLE 'Or‡amento FDL GUI' ;
      // AT 0,0 ;
      // WIDTH 800 ;
      // HEIGHT 600 ;
      // VIRTUAL WIDTH 1300 ;
      // VIRTUAL HEIGHT 800 ;

     
                        @ 410 ,  20 LABEL Label_0 ; // t¡tulo sub-total
                           VALUE 'SUBTOTAL' ;
                           AUTOSIZE // ;

                        @ 495 , 100 LABEL Label_0A ; // Informe o produto para o usu rio digitar
                           VALUE 'Informe o Produto...' ;
                           FONTCOLOR { 255, 0, 0 } ;
                           FONT "Arial" SIZE 24    BOLD ;
                           AUTOSIZE // ;

                        @ 250 , 460 LABEL Label_0B ; // nome da MVinfo
                           VALUE 'MVinfo Sistemas' ;
                           FONTCOLOR { 255, 0, 0 } ;
                           FONT "Arial" SIZE 24    BOLD ;
                           AUTOSIZE // ;
                       
                        @ 290 , 460 LABEL Label_0C ; // telefone da MVinfo
                           VALUE 'Fone(31) xxxx-xxxx' ;
                           AUTOSIZE // ;

                        // @ 310 , 460 LABEL Label_0D ;
                        // VALUE 'www.mvinfo.wmx.net.br' ;
                        // AUTOSIZE // ;

                        @ 10 ,  10 LABEL Label_1 ; // nome do operador do computador/sistema
                           VALUE 'Operador : '  + transform ( mCDOPERADO , pCDOPERADO ) ;
                           AUTOSIZE // ;

                        @ 10 , 150 LABEL Label_2 ; // nome do vendedor
                           VALUE 'Vendedor : ' + strzero( mCD_VENDED ) ;
                           AUTOSIZE // ;

                        @ 10 , 300 LABEL Label_3 ; // no or‡amento anterior
                           AUTOSIZE ;
                           VALUE HB_AnsiToOem('Orçamento Anterior : ') +  transform ( aNU_VENDA  , pNU_VENDA ) // ;

                        @ 10 , 600 LABEL Label_4 ; // data do or‡amento
                           AUTOSIZE ;
                           VALUE HB_AnsiToOem('Data do Orçamento: ') + transform ( mDT_VENDA  , pDT_VENDA ) // ;
                       
                        @ 375, 479 LABEL Label_5 ; // aqui vai o nome do produto mNMPRODUTO 6/11/17w
                           VALUE '';
                           FONTCOLOR { 255, 200, 100 } ;
                           AUTOSIZE // ;
                           /*FONT "Arial" SIZE 14    BOLD ;*/

                        @ 375, 670 LABEL Label_6 ; // aqui vai o valor unit rio do produto mVRPRODUTO 6/11/17w
                           VALUE '';
                           FONTCOLOR { 255, 100, 200 } ;
                           AUTOSIZE // ;
                        /*FONT "Arial" SIZE 14    BOLD ;*/
                       
                        @ 325, 479 LABEL Label_7 ; // c¢digo do produto
                           AUTOSIZE ;
                           VALUE HB_AnsiToOem('Código do Produto') // acrescentado para informar ao usu rio que ‚ pra digitar o CàDIGO do produto

                        @ 325, 700 LABEL Label_8 ; // quantidade do produto a ser lan‡ado na nota
                           AUTOSIZE ;
                           VALUE 'Quant' // acrescentado para informar ao usu rio que ‚ pra digitar o CàDIGO do produto

                        @ 342 , 650 LABEL Label_11 ; // "x" que representa a multiplica‡ao do produto
                           VALUE 'X' ;
                           FONTCOLOR { 255, 0, 0 } ;
                           FONT "Arial" SIZE 24    BOLD ;
                           AUTOSIZE // ;

                        @ 430 , 20 LABEL Label_12 ; // para usar com mVT_MERCAD 14/11/17w
                           VALUE '' ;
                           FONT "Arial" SIZE 14    BOLD ;
                           AUTOSIZE

                        @ 450 , 20 LABEL LABEL_13 ; // para usar com mVR_DESCON 14/11/17w
                           AUTOSIZE ;
                           FONT "Arial" SIZE 14    BOLD ;
                           VALUE ''

                        @ 470 , 20   LABEL LABEL_14 ; // para usar com mVT_VENDA 14/11/17w
                           AUTOSIZE ;
                           FONT "Arial" SIZE 14    BOLD ;
                           VALUE ''

                        define GRID grid_1
                           row 50
                           col 08
                           WIDTH 440
                           HEIGHT 350
                           HEADERS {HB_AnsiToOem('Código'),HB_AnsiToOem('Descrição do Produto'),'Gr','Qte','Vr.Unit.','Total'}  // codigo=numeric | descri‡ao=textbox | gr=textbox | qte=numeric | vr.unit=numeric | total=numeric
                           WIDTHS {100,240,30,50,100,120}
                           ColumnCONTROLS { {'TEXTBOX','NUMERIC', '999999999999'} , 'TEXTBOX' , 'TEXTBOX' , 'TEXTBOX' , 'TEXTBOX' , 'TEXTBOX' }
                           DYNAMICFORECOLOR { fColor , fColor , fColor , fColor , fColor , fColor }
                     // VIRTUAL .t.
                     // ITEMCOUNT 1
                           // lines .f.
                           // cellnavigation .t.
                           // EDITOPTION GRID_EDIT_DEFAULT
                           // allowedit .t.
                        end GRID
                           // EDIT
                       

                       
                        @ 345 , 470 TEXTBOX txtCDPRODUTO  WIDTH 150 HEIGHT 30 FONTCOLOR BLUE BOLD NUMERIC MAXLENGTH 13  FONT "Arial" SIZE 14  ON ENTER { || fCDPRODUTO_GUI () }  // INPUTMASK '9999999999999' FORMAT 'E' PARENT Frm_TELA_ENTRADA
                        @ 345 , 700 TEXTBOX txtQT_VENDA   PARENT Frm_TELA_ENTRADA WIDTH  50 HEIGHT 30 FONTCOLOR BLUE BOLD NUMERIC  MAXLENGTH 07 FONT "Arial" SIZE 16  ON ENTER { || fQT_VENDA_GUI ()  }  // INPUTMASK pQT_VENDA FORMAT 'E'
                        // MsgInfo('dentro do CAD_PRODUTOS_GUI() ap¢s do textbox txtQT_VENDA')

      DEFINE STATUSBAR PARENT Frm_TELA_ENTRADA
         STATUSITEM " MVinfo Sistemas e Automação - www.mvinfo.wmx.net.br | microvolution@hotmail.com | (31) xxxx-xxxx "
         STATUSITEM "clock"
      END STATUSBAR
     
      DEFINE TIMER tempo PARENT Frm_TELA_ENTRADA ;
         INTERVAL 1000                 ;
         ACTION ShowTime()

      // OPCOES_CAMPOS ()  // eliminado temporariamante por usar HMG em modo GUI 7/12/17W
      // TRATA_DADOS_GUI () // substitu¡ para CAD_PRODUTOS_GUI 7/11/17w
      // MsgInfo('antes do CAD_PRODUTOS_GUI()') // linha tempor ria 10/11/17w
      // CAD_PRODUTOS_GUI()

    END WINDOW
      Frm_TELA_ENTRADA.txtCDPRODUTO.SetFocus

      CENTER WINDOW   Frm_TELA_ENTRADA
      ACTIVATE WINDOW Frm_TELA_ENTRADA
******** FORMUL†RIO PADRŽO DO WINDOWS PARA HARBOUR 5/3/15W ***********************************
**********************************************************************************************
return         


Dr. Soto, esta é a tela do formulário criado e sem nenhum lançamento↓:
18-0204 - tela antes do erro.png
GRID sem nenhum lançamento ainda


Agora a tela abaixo já é no momento em que digito o código do primeiro produto - no caso código 17 pressionado já o ENTER e digitado a quantidade - UMA no caso, e, só esperando o ENTER pra ser enviado o produto para o GRID↓:
18-0204 - tela antes do erro2.png
GRID ainda sem nenhuma informação... mas após o ENTER as informações do produto digitado serão lançadas nele

A próxima tela já mostra o produto transferido para o GRID após o ENTER ↓:
18-0204 - tela antes do erro3.png
GRID já com o produto lançado nele

Agora a tela abaixo é exatamente no momento de se clicar com o botão esquerdo (isso mesmo), segurar e arrastar a barra de rolagem pra gente ver mais detalhes do produto. De madrugada, cheguei a pensar que só acontecia após o lançamento do segundo produto, mas, não, já a partir do primeiro produto, o, GRID some o que já foi lançado e trava o FORMULÁRIO (não por completo, mas, os TEXTBOXs param de funcionar, etc) ↓:
18-0204 - tela antes após o erro1.png
GRID travado e os dados somem - não importa quantos já tenham sido lançados, todos somem dele

Agora, o código abaixo, pertence à função que trata o TEXTBOX de digitação do CÓDIGO DO PRODUTO↓:
static function fCDPRODUTO_GUI ()
     local ARQUIVO := select ()
   
     mCDPRODUTO := Frm_TELA_ENTRADA.txtCDPRODUTO.value // mudei para o final da fun‡ao 22/11/17w
          if empty(Frm_TELA_ENTRADA.txtCDPRODUTO.value)
               MsgExclamation ('Preenchimento obrigat¢rio','Or‡amento FDL GUI - SiCCA v3.6.04')
               CONSULTA_ARQUIVO ('','','MCDPRODUTO')
               select (ARQUIVO)
               return (.f.)
          endif
          if Frm_TELA_ENTRADA.txtCDPRODUTO.value < 1 .or. Frm_TELA_ENTRADA.txtCDPRODUTO.value > 9999999999999
               MsgInfo ('C¢digo do Produto deve estar entre 1 e 9999999999999 inclusive','Or‡amento FDL GUI - SiCCA v3.6.04') // era 3.6.03 em 31/5/16w
               select (ARQUIVO)
               return (.f.)
          endif
          select ('DCI10010')
          if .not. EXISTE (str (mCDPRODUTO,13))
               MsgExclamation ('C¢digo do Produto n„o cadastrado','Or‡amento FDL GUI - SiCCA v3.6.04') // era 3.6.03 em 31/5/16w
               CONSULTA_ARQUIVO ('','','MCDPRODUTO')
               select (ARQUIVO)
               return (.f.)
          endif
          mDSPRODUTO := left (DSPRODUTO,32)       // Modificado p/Walcledson em 09/05/01 p/func. mt, cm, kg, etc.
          mVR_UNITAR := VR_PREVEN*(1+(mVR_PERJUR/100))
          Frm_TELA_ENTRADA.Label_5.value := mDSPRODUTO
               mCD_GRADE := DSUNIDADE       // Acrescentado em 27/1/3w para puchar uma grade b sica na venda.
          keyboard chr(13)
          select (ARQUIVO)
     mLINHA[mI,01] := mCDPRODUTO
     mLINHA[mI,02] := mDSPRODUTO
     mLINHA[mI,03] := mCD_GRADE
     Frm_TELA_ENTRADA.txtQT_VENDA.Enabled    := .t.
     Frm_TELA_ENTRADA.txtQT_VENDA.SetFocus
return (SAIDA_VALIDA ())

Já as linhas abaixo são da função que trata da quantidade de produto na venda ↓:
static function fQT_VENDA_GUI ()
     select ('DCI10016')
     if mQT_ESTOQ2 = nil
          mQT_ESTOQ2 := DCI10014->QT_ESTTOT     // Esta linha busca do estoque da grade atual. 28/9/2w
     endif

     mQT_VENDA := Frm_TELA_ENTRADA.txtQT_VENDA.value // mudei para o final da linha 22/11/17w
     ON KEY F6     OF Frm_TELA_ENTRADA                     ACTION ALT_QUANT_ESTOQUE_GUI()

          if Frm_TELA_ENTRADA.txtQT_VENDA.value < 0.001 .or. Frm_TELA_ENTRADA.txtQT_VENDA.value > 999.999
               MsgInfo ('Quantidade deve estar entre 0.001 e 999.999 inclusive','Or‡amento FDL GUI - SiCCA v3.6.04') // era 3.6.03 em 31/5/16w
               return (.f.)
          endif

     if Frm_TELA_ENTRADA.txtQT_VENDA.value > 0 .and. Frm_TELA_ENTRADA.txtQT_VENDA.value > mQT_ESTOQ2
          MsgInfo ('Quantidade de venda n„o pode ser maior que quantidade em estoque!...','Or‡amento FDL GUI - SiCCA v3.6.04') // era 3.6.03 em 31/5/16w
          return (.f.)
     endif

     set key K_F6 to
     // release key K_F6 on Frm_TELA_ENTRADA
     release mQT_ESTOQ2
     mLINHA[mI,04] := mQT_VENDA
     mLINHA[mI,05] := mVR_UNITAR
     mLINHA[mI,06] := mLINHA[mI,05] * mLINHA[mI,04] // vr.unit rio x qt 22/11/17w

     Frm_TELA_ENTRADA.Label_6.value          := mVR_UNITAR
     Frm_TELA_ENTRADA.txtCDPRODUTO.Value     := 0
     Frm_TELA_ENTRADA.txtQT_VENDA.Enabled    := .f.
     Frm_TELA_ENTRADA.txtCDPRODUTO.Enabled   := .t.
     Frm_TELA_ENTRADA.txtCDPRODUTO.SetFocus
     Frm_TELA_ENTRADA.Grid_1.AddItem ( { mLINHA[mI,01] , mLINHA[mI,02] , mLINHA[mI,03], mLINHA[mI,04], mLINHA[mI,05], mLINHA[mI,06] } )      mI += 1 // total de produtos na venda/or‡amento 22/11/17w
     keyboard K_ENTER
return (SAIDA_VALIDA ())

Bom, pelo pouco que entendi desse processo do GRID, a única coisa que faz em RUN-TIME para que os produtos aparecem nele é a única linha que está na função fQT_VENDA_GUI acima, que re-escrevo-a aqui pra sua apreciação:
     Frm_TELA_ENTRADA.Grid_1.AddItem ( { mLINHA[mI,01] , mLINHA[mI,02] , mLINHA[mI,03], mLINHA[mI,04], mLINHA[mI,05], mLINHA[mI,06] } )      mI += 1 // total de produtos na venda/or‡amento 22/11/17w

Minhas observações que tenho a fazer:
1 - talvez está dando pau, pois, não sei como reagir ao modo GUI que é 100% controlado por EVENTOS - e isso ainda não entrou em minha mente, pois a gente que veio de CLIPPER fica sempre esperando um ENTER, ou ESC ou F1-F12 pra que o processador execute alguma tarefa;
2 - talvez o GRID não seja a solução que eu preciso para substituir o ACHOICE;
3 - talvez a maneira com que a ARRAY mLINHA[X,X] seja a causadora do problema;
4 - talvez as linhas que chamam funções na linguem"C" bem no início é que estão causando a "pane" ou "bug" no GRID, as quais coloco-as abaixo para sua apreciação:
         **************************************************************************************************************
         ** linhas abaixo acrescentadas para funcionar corretamente os BOXES PANEL/BOX 18/6/15w
         #xcommand DRAW PANEL IN WINDOW <parent> ;
            AT <frow>,<fcol> ;
            TO <trow>,<tcol> ;
            =>;
            DrawWindowBoxRaised( <"parent">, <frow>, <fcol>, <trow>, <tcol> )

         #xcommand DRAW BOX IN WINDOW <parent> ;
            AT <frow>,<fcol> ;
            TO <trow>,<tcol> ;
            =>;
            DrawWindowBoxIn( <"parent">, <frow>, <fcol>, <trow>, <tcol> )
         ** linhas acima acrescentadas para funcionar corretamente os BOXES PANEL/BOX 18/6/15w
         **************************************************************************************************************

Agora, tirando o GRID, tenho outras observações no geral a fazer que ainda não sei resolver:
1 - o INTERACTIVEONCLOSE do formulário↓:
      ON INTERACTIVECLOSE CONFIRMA4 ('Deseja Cancelar sem Concluir', 6 ,'SiCCA v3.6.04 - Orçamento')       // para confirmação

até pede confirmação, mas, não aparece em primeiro plano - fica escondido atrás do formulário, sendo necessário um ALT+TAB pra que ele venha para a frente;
2 - Comentei diversas linhas pertencentes à criação do GRID (do exemplo que peguei na pasta SAMPLES), por não entender bem o que elas fazem ↓:
            // VIRTUAL .t.
            // ITEMCOUNT 1
                           // lines .f.
                           // cellnavigation .t.
                           // EDITOPTION GRID_EDIT_DEFAULT
                           // allowedit .t.

3 - observer-se que no TEXTBOX também comentei algumas funções pois não sei porque está dando erro de sintaxe ↓:
                        @ 345 , 470 TEXTBOX txtCDPRODUTO  WIDTH 150 HEIGHT 30 FONTCOLOR BLUE BOLD NUMERIC MAXLENGTH 13  FONT "Arial" SIZE 14  ON ENTER { || fCDPRODUTO_GUI () }  // INPUTMASK '9999999999999' FORMAT 'E' PARENT Frm_TELA_ENTRADA 

no caso acima, são o INPUTMASK, o FORMAT e o PARENT. Já tentei de tudo, mas, eles não dão certo.
4 - Ao final da criação do WINDOW com o END WINDOW e antes do CENTER/ACTIVATE WINDOW, coloco a linha onde dá direciona o SETFOCUS ↓:
END WINDOW
[b]      Frm_TELA_ENTRADA.txtCDPRODUTO.SetFocus[/b]
      CENTER WINDOW   Frm_TELA_ENTRADA
      ACTIVATE WINDOW Frm_TELA_ENTRADA

5 - se eu movimentar o mouse (ponteiro) por toda a tela, apresenta o seguinte erro na linha 4013:
ERROR BASE/1070 Erro nos Parâmetros: ==
Veja a tela do erro, por favor:
18-0204 - tela erro2.png
erro de RUN-TIME

A linha 4013, contém apenas:
ACTIVATE WINDOW Frm_TELA_ENTRADA

6 - Talvez seja este o causador do problema. Um loop de ATIVAÇÃO do WINDOW Frm_TELA_ENTRADA que não sei donde vem. Só sei que nem sempre ele aparece. Mas, quando aparece é pelo movimento do ponteiro do mouse nalguma parte do WINDOW Frm_TELA_ENTRADA.

Bom, voltando ao GRID, pra facilitar o entendimento da array/matriz mLINHA[X,X] explico-a com mais detalhes:
- ela é no formato n,6 elementos (onde "n" é limitado ao máixmo de 16), representando a quantidade máxima de produtos na venda. Neste caso, 16 produtos. Já o segundo parâmetro dela, são os itens do produto, que são:
- mLINHA[n,01] := "armazena o CÓDIGO DO PRODUTO. No nosso exemplo aqui = 17"
- mLINHA[n,02] := "armazena o NOME DO PRODUTO. No nosso exemplo = KIT EMBREAGEM
- mLINHA[n,03] := "armazena a GRADE - exemplo: UN, PC, PT etc
- mLINHA[n,04] := "quantidade de itens do produto lançado
- mLINHA[n,05] := "valor unitário do produto - preço de venda"
- mLINHA[n,06] := mLINHA[n,05] * mLINHA[n,04] = "valor total deste produto: VALOR DELE X QUANTIDADE"

Bom, espero que não lhe tenha cansado muito, mas, que o Sr. Dr. Soto, ou demais colegas, possam me dar uma luz no "fim do túnel" e euzinho saia deste problemão de uma coisa que parece ser tão simples.
Meu comentário final!!!

Talvez por ser simples e por estar acostumado com PROCEDURES esperando alguma coisa do TECLADO é que seja a chave pra abrir a porta e ver a luz no fim do túnel.
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: 1175
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 17 vezes

Anterior Próximo



Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Google [Bot] e 6 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro