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 » 07 Fev 2018 19:23

tá mudando pra MMN? Herbalife, Forever, T.Noni, i9Life, Hinode, Racco/Oceanic, MSParis, http://escritorio.lacquadifiori.com.br/wmx
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 » 17 Fev 2018 10:40

bom dia!
sei q pra alguns será motivo de "chacota" e pra outros vontade mútua de ajudar.
Não importa, vou postar a dúvida.
Abaixo, está o código do FORM que o MSDN gentilmente nos ofereceu, com nossa adaptação:
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
   // #ifndef gt1
      // #include "HMG.CH"
   // #endif
   public _item := 1   
    public _codigo, _nome, _quantidade, _unitario, _subtotal, total_do_cupom
    total_do_cupom := 0

   DEFINE WINDOW Frm_TELA_ENTRADA ;
      AT GetDesktopRealTop(),GetDesktopRealLeft() ;
      TITLE PROGRAMA + SPACE (7) + SUB_TITULO ;
      icon 'icone';
      WIDTH GetDesktopRealWidth() HEIGHT GetDesktopRealHeight() ;
      backcolor {223,223,223};
      on init entrada();
      ON INTERACTIVECLOSE CONFIRMA4 ('Deseja Cancelar sem Concluir', 6 ,'Orçamento');       // para confirmação
      CHILD
                 /*              descrição do produto            */
                 define label label_descricao_produto_1
                       col 0
                       row 0
                       width getdesktopwidth()
                       height 30
                       value HB_AnsiToOem('DESCRIÇÃO DO PRODUTO')
                       fontname 'verdana'
                       fontsize 14
                       fontbold .F.
                       fontcolor {220,220,220}
                       backcolor {63,96,150}
                end label
                 define label label_descricao_produto_2
                       col 0
                       row 30
                       width getdesktopwidth()
                       height 70
                       value ''
                       fontname 'verdana'
                       fontsize 32
                       fontbold .T.
                       fontcolor WHITE
                       backcolor {63,96,150}
                end label
                /*
                  digitação : código, quantidade ( preço unitário, subtotal )
                */
                 define label label_codigo
                       col 705
                       row 105
                       value HB_AnsiToOem('CÓDIGO DO PRODUTO')
                       autosize .T.
                       fontname 'verdana'
                       fontsize 14
                       fontbold .F.
                       fontcolor {78,78,78}
                       backcolor {223,223,223}
                end label
                @ 130,705 textbox tbox_codigo;
                          height 50;
                          width getdesktopwidth() - 715;
                          value 0;
                          font 'courier new' size 30;
                          bold;
                          numeric;
                          backcolor {223,223,223};
                          fontcolor BLUE;
                          rightalign;
           on enter fCDPRODUTO_GUI()
                        // noborder
                define label linha_separadora_1
                       col 700
                       row 200
                       value ''
                       width 1000
                       height 4
                       backcolor {168,168,168}
                       transparent .F.
                end label
                *
                 define label label_quantidade
                       col 705
                       row 210
                       value HB_AnsiToOem('QUANTIDADE')
                       autosize .T.
                       fontname 'verdana'
                       fontsize 14
                       fontbold .F.
                       fontcolor {78,78,78}
                       backcolor {223,223,223}
                end label
                @ 235,705 textbox tbox_quantidade;
                          height 50;
                          width getdesktopwidth() - 715;
                          value 0;
                          font 'courier new' size 30;
                          bold;
                          numeric;
                          backcolor {223,223,223};
                          fontcolor BLUE;
                          rightalign;
                          on enter adiciona_cupom()
                        // noborder
                define label linha_separadora_2
                       col 700
                       row 305
                       value ''
                       width 1000
                       height 4
                       backcolor {168,168,168}
                       transparent .F.
                end label
                *
                 define label label_preco_unitario
                       col 705
                       row 315
                       value HB_AnsiToOem('PREÇO UNITÁRIO R$')
                       autosize .T.
                       fontname 'verdana'
                       fontsize 14
                       fontbold .F.
                       fontcolor {78,78,78}
                       backcolor {223,223,223}
                end label
                 define label label_preco_unitario_2
                       col 750
                       row 340
                       value ''
                       autosize .T.
                       fontname 'courier new'
                       fontsize 30
                       fontbold .T.
                       fontcolor BLUE
                       backcolor {223,223,223}
                end label
                define label linha_separadora_3
                       col 700
                       row 410
                       value ''
                       width 1000
                       height 4
                       backcolor {168,168,168}
                       transparent .F.
                end label
                *
                 define label label_subtotal
                       col 705
                       row 420
                       value HB_AnsiToOem('SUBTOTAL R$')
                       autosize .T.
                       fontname 'verdana'
                       fontsize 14
                       fontbold .F.
                       fontcolor {78,78,78}
                       backcolor {223,223,223}
                end label
                 define label label_subtotal_2
                       col 750
                       row 445
                       value ''
                       autosize .T.
                       fontname 'courier new'
                       fontsize 30
                       fontbold .T.
                       fontcolor BLUE
                       backcolor {223,223,223}
                end label
                define label linha_separadora_4
                       col 700
                       row 515
                       value ''
                       width 1000
                       height 4
                       backcolor {168,168,168}
                       transparent .F.
                end label
                /*
                  cupom fiscal
                */
                 define label label_cupom_1
                       col 0
                       row 100
                       width 700
                       height 70
                       value ''
                       backcolor {255,255,206}
                end label
                 define label label_cupom_2
                       col 210
                       row 110
                       value HB_AnsiToOem('ORÇAMENTO') // era ('CUPOM FISCAL')
                       autosize .T.
                       fontname 'courier new'
                       fontsize 26
                       fontbold .T.
                       fontcolor BLACK
                       transparent .T.
                end label
            * cabeçalho
                 define label label_cab_cupom_1
                       col 5
                       row 150
                       value HB_AnsiToOem('Ítem')
                       autosize .T.
                       fontname 'courier new'
                       fontsize 10
                       fontbold .F.
                       fontcolor BLACK
                       transparent .T.
                end label
                 define label label_cab_cupom_2
                       col 60
                       row 150
                       value HB_AnsiToOem('Código')
                       autosize .T.
                       fontname 'courier new'
                       fontsize 10
                       fontbold .F.
                       fontcolor BLACK
                       transparent .T.
                end label
                 define label label_cab_cupom_3
                       col 160
                       row 150
                       value HB_AnsiToOem('Descrição')
                       autosize .T.
                       fontname 'courier new'
                       fontsize 10
                       fontbold .F.
                       fontcolor BLACK
                       transparent .T.
                end label
                 define label label_cab_cupom_4
                       col 370
                       row 150
                       value HB_AnsiToOem('Qtd.')
                       autosize .T.
                       fontname 'courier new'
                       fontsize 10
                       fontbold .F.
                       fontcolor BLACK
                       transparent .T.
                end label
                 define label label_cab_cupom_5
                       col 430
                       row 150
                       value HB_AnsiToOem('Unitário R$')
                       autosize .T.
                       fontname 'courier new'
                       fontsize 10
                       fontbold .F.
                       fontcolor BLACK
                       transparent .T.
                end label
                 define label label_cab_cupom_6
                       col 550
                       row 150
                       value HB_AnsiToOem('SubTotal R$')
                       autosize .T.
                       fontname 'courier new'
                       fontsize 10
                       fontbold .F.
                       fontcolor BLACK
                       transparent .T.
                end label
                * grid
                define grid grid_cupom
                       col 0
                       row 170
                       width 700
                       height Frm_TELA_ENTRADA.height - 260
                       headers {'Ítem','Código','Descrição','Qtd.','Unitário R$','SubTotal R$'}
                       widths {50,100,200,50,120,120}
                       fontname 'courier new'
                       fontsize 10
                       fontbold .T.
                       backcolor {255,255,206}
                       fontcolor BLACK
                       nolines .T.
                       showheaders .F.
                end grid
            /*
              rodapé : informações
            */
                 define label label_rodape_1
                       col 0
                       row Frm_TELA_ENTRADA.height - 90
                       width getdesktopwidth()
                       height 100
                       value ''
                       backcolor BLACK
                end label
               define label label_fecha_cupom
                       col getdesktopwidth()-350
                       row getdesktopheight()-160
                      value HB_AnsiToOem('F9 :: FECHAR ORÇAMENTO')
                       autosize .T.
                        fontname 'verdana'
                        fontsize 16
                        fontbold .T.
                        fontcolor {165,0,0}
                        transparent .T.
             end label
               define label label_consulta_arquivo
                       col getdesktopwidth()-550
                       row getdesktopheight()-180
                      value HB_AnsiToOem('F4 :: CONSULTA PRODUTOS')
                       autosize .T.
                        fontname 'verdana'
                        fontsize 10
                        fontbold .T.
                        fontcolor {165,0,0}
                        transparent .T.
             end label
               define label label_cancela_item
                       col getdesktopwidth()-550
                       row getdesktopheight()-190
                      value HB_AnsiToOem('F1 :: CANCELA ÍTEM')
                       autosize .T.
                        fontname 'verdana'
                        fontsize 10
                        fontbold .T.
                        fontcolor {165,0,0}
                        transparent .T.
             end label

            /*
              data e relógio
            */
            define timer timer_relogio;
                      interval 1000;
                      action Frm_TELA_ENTRADA.label_relogio.value := time()
                      define label label_relogio
                               col getdesktopwidth()-115
                               row getdesktopheight()-85
                               value ''
                               autosize .T.
                               fontname 'courier new'
                               fontsize 14
                               fontbold .T.
                               fontcolor {100,100,100}
                               transparent .T.
                     end label
                  
                      define label label_data
                               col getdesktopwidth()-300
                               row getdesktopheight()-85
                               value HB_AnsiToOem(upper(dia_da_semana(date(),2))+','+strzero(day(date()),2)+'/'+upper(mes_do_ano(month(date()),1))+'/'+strzero(year(date()),4))
                               autosize .T.
                               fontname 'courier new'
                               fontsize 14
                               fontbold .T.
                               fontcolor {100,100,100}
                               transparent .T.
                     end label

                on key F9                         action       fecha_cupom()
            on key escape action CONFIRMA4 ('Deseja Cancelar sem Concluir', 6 ,'Orçamento')
    Frm_TELA_ENTRADA.center
    Frm_TELA_ENTRADA.activate
return

Funciona do jeito que foi proposto.
Mas, do nada, de vez em quando, assim que executamos o módulo que chama o código acima, acontece um erro Error BASE/1070 Erro nos parâmetros: == na linha 4422.
Bom, a linha 4422, nada mais é que a última linha do código acima:
    Frm_TELA_ENTRADA.activate

o programa continua em execução, mas, não aceita fazer nada.
Mas, se não clicar no erro pra encerrar, o erro continua em loop e parece que vai se multiplicando.
vejam, o tantão de tela que gerou↓:
18-0217 - error base 1070.png
ERROR BASE/1070 argumento error "=="

Para evitar de ficar incomodando os ninjas deste fórum, desde o dia q me passaram gratuita e gentilmente este fantástico código, quebrei e quebrei cabeça pra entender... o q eu sempre quis pra evitar de ser "incômodo" ou "pedra de tropeço pra alguns" é entender a lógica... que pra mim não tem lógica...
então foram vários dias/noites/madrugadas, mas, sem sucesso de entender esse erro.
Bom, se alguém puder me ajudar a entender a lógica desse novo jeito de programar na HMG 100% gráfico...
o Jquintas, acabou de postar no tópico: http://www.pctoledo.com.br/forum/viewtopic.php?f=5&t=15606&p=121693#p121693 postou um comentário dizendo que a HMG não tem nada de POO e sim a GTWVG... então, aí fico mais perdido ainda pra entender a lógica de uma coisa q só tem exemplos, e, não tem tutoriais os livros que tínhamos à vontade na era do clipper, por diversos autores.
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 NiltonGM » 26 Jul 2018 20:05

Caindo de para-queda aqui, sem entrar a fundo no que foi feito, mas somente sobre as multiplas mensagens de erros, quando vc usa o Timer, sempre que entrar na Procedure definida em ACTION do timer, vc tem que pausar o Timer até concluir toda a operação, senão enquanto a Procedure está executando o Timer chama ela recursivamente.
Exemplo:
            #define DOIS_SEGUNDOS 500
            DEFINE TIMER Timer_1_Main INTERVAL DOIS_SEGUNDOS ACTION MainTimer1()
...
Procedure MainTimer1()

            // Ao entrar nesta procedure, pausar o Timer até finalizar a rotina
            Main.Timer_1_Main.Enabled := .F.

            codigo....

            // Antes de sair da Procedure, liga o Timer novamente
            Main.Timer_1_Main.Enabled := .T.
           
Nilton Medeiros
nilton@sistrom.com.br
Avatar de usuário

NiltonGM
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 393
Data de registro: 05 Jun 2014 23:47
Cidade/Estado: Caieiras/SP
Curtiu: 249 vezes
Mens.Curtidas: 24 vezes

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

Mensagempor syslink » 28 Jul 2018 10:14

Vc acha que o travamento que o microvolution apresentou é devido a o time reserva?
syslink
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 132
Data de registro: 20 Fev 2018 13:13
Cidade/Estado: joinvile/sc
Curtiu: 3 vezes
Mens.Curtidas: 3 vezes

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

Mensagempor syslink » 28 Jul 2018 10:21

Digo TIMER.
syslink
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 132
Data de registro: 20 Fev 2018 13:13
Cidade/Estado: joinvile/sc
Curtiu: 3 vezes
Mens.Curtidas: 3 vezes

Anterior



Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online 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