Clipper On Line • Ver Tópico - Editbox em pdv frente de caixa

Editbox em pdv frente de caixa

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

Editbox em pdv frente de caixa

Mensagempor Claudio Soto » 21 Out 2020 23:00

El problema de usar VK_DOWN es que asume que el cursor esta en la primera linea.

No lo probé, pero el codigo sería algo así:
#define CRLF HB_OsNewLine()
aLines := HB_ATOKENS( cText, CRLF )
nPos := 0
nLine := 3 // linea a buscar
FOR i = 1 TO LEN( aLines ) - 1
   IF i < nLine
      nPos += LEN( aLines[i] ) + LEN( CRLF )
   ENDIF
NEXT
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

Editbox em pdv frente de caixa

Mensagempor asimoes » 22 Out 2020 09:15

Dr. Claudio, o código que você postou como posicionar o valor de nPos?

Seria isso?
GoToLine( ThisForm:oEdit:handle, nPos )

Testei aqui, até posiciona na linha mas não não primeira coluna.

É complicado mesmo trabalhar com string

HB_FUNC ( GOTOLINE )
{
   HWND hWnd = hb_parnl (1);
   int iLen = hb_parnl(2);
   SendMessage( hWnd, EM_SETSEL, iLen, iLen );
   SendMessage( hWnd, EM_LINEINDEX, iLen , 0 ) ;
}
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Editbox em pdv frente de caixa

Mensagempor asimoes » 22 Out 2020 09:34

Fiz essa modificação, agora funcionou

nPos += Len( aLines[i] ) + 1 //Len( CRLF )
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Editbox em pdv frente de caixa

Mensagempor Claudio Soto » 22 Out 2020 14:33

asimoes escreveu:Fiz essa modificação, agora funcionou

nPos += Len( aLines[i] ) + 1 //Len( CRLF )

Me alegro que lo hayas solucionado, si usas Unicode cambia ese Len() por HB_ULEN()
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

Editbox em pdv frente de caixa

Mensagempor asimoes » 22 Out 2020 14:47

Dr Claudio obrigado pelas dicas, pode ser útil para os nossos colegas.
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Editbox em pdv frente de caixa

Mensagempor Poka » 23 Out 2020 12:53

Obrigado.

Poka
Avatar de usuário

Poka
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 513
Data de registro: 25 Out 2004 21:26
Cidade/Estado: Leme/SP
Curtiu: 0 vez
Mens.Curtidas: 23 vezes

Editbox em pdv frente de caixa

Mensagempor rochinha » 26 Out 2020 15:04

Amiguinhos,

O bloco onde se apresenta os itens pode se usar grid, browse, tbrowse ou textbox. O Textbox seria o mais indicado pois ele não chama foco. Desta forma o foco se mantem no get que pega o código do produto.

Esta tela pode ter preenchida de textboxes para apresentar valores e listas, 1 editbox/get para pegar o codigo e 1 imagebox para apresentar fotos dos produtos.

Como acabou a era da concomitância para pdvs então se pode usar para apresentar os itens um grid ou similar que permita navegar entre os itens e excluir ou alterar alguma informação. Tal recurso, dependendo do cliente, pode ser desabilitado para permitir inclusões mais rápidas e sem intervenção.

pdv.png


No meu caso sempre usei browse e a partir dele disparo todas rotinas e funções.

Estou para fazer uma tela mais simples usando textboxes para apresentar informações de valor, hora, usuario, cupom e um editbox/get para receber a captura de digitação ou leitor.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4547
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 807 vezes
Mens.Curtidas: 246 vezes

Editbox em pdv frente de caixa

Mensagempor Itamar M. Lins Jr. » 26 Out 2020 18:04

Olá!
No meu caso sempre usei browse e a partir dele disparo todas rotinas e funções.

Fiz da mesma forma. Como vamos apagar um item por exemplo ?
Falta dar um "tapa" no visual para ficar assim, mais "smart"!

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6951
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 312 vezes
Mens.Curtidas: 507 vezes

Editbox em pdv frente de caixa

Mensagempor rochinha » 27 Out 2020 20:35

Amiguinhos,

Fiz da mesma forma. Como vamos apagar um item por exemplo ?


Como usei um browse, ele é o foco central de controle, então enquanto se vende apos inserir um item pode-se navegar com setas para cima e para baixo.

Posicionando sobre um item posso fazer qualquer coisa.

As famosas teclas INS e DEL são as metáforas mais indicadas e de fácil memorização pelo fuçuário.

Os botões existentes na interface, podem ser acionados mas sempre retornam o foco para o browse.

Numa tela de venda onde o foco for em um editbox/get para excluir um item eu indicaria inserção de um código de barras especial do gerente de caixa que muda o modo de trabalho do caixa que ao invés de incluir itens permite excluir itens passando o código de barras do produto indesejado.

Não implementei esta idéia, me veio a cabeça durante uma visita ao trono.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4547
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 807 vezes
Mens.Curtidas: 246 vezes

Editbox em pdv frente de caixa

Mensagempor asimoes » 28 Out 2020 18:17

Mais uma pergunta sobre RichEdit, como pegar o texto selecionado?
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Editbox em pdv frente de caixa

Mensagempor Claudio Soto » 28 Out 2020 18:42

asimoes escreveu:Mais uma pergunta sobre RichEdit, como pegar o texto selecionado?


//       cText = RichEditBox_GetText ( hWndControl , lSelect )
HB_FUNC ( RICHEDITBOX_GETTEXT )
{
   HWND hWndControl = (HWND) HMG_parnl (1);
   BOOL lSelect     = (BOOL) hb_parl  (2);

   GETTEXTLENGTHEX  GTL;
   GTL.flags = GTL_PRECISE;
   #ifdef UNICODE
       GTL.codepage = CP_UNICODE;
   #else
       GTL.codepage = CP_ACP;
   #endif
   LONG nLength = SendMessage ( hWndControl, EM_GETTEXTLENGTHEX, (WPARAM) &GTL, 0 );
   TCHAR cBuffer [ nLength ];

   GETTEXTEX  GT;
   GT.cb = sizeof (cBuffer);
   GT.flags =  ( lSelect ? GT_SELECTION : GT_DEFAULT );
   #ifdef UNICODE
      GT.codepage = CP_UNICODE;
   #else
      GT.codepage = CP_ACP;
   #endif
   GT.lpDefaultChar = NULL;
   GT.lpUsedDefChar = NULL;

   SendMessage ( hWndControl, EM_GETTEXTEX, (WPARAM) &GT, (LPARAM) &cBuffer );
   HMG_retc ( cBuffer );
}


Cambiar HMG_parnl por hb_parnl y HMG_retc por hb_retc
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

Editbox em pdv frente de caixa

Mensagempor asimoes » 28 Out 2020 20:04

Dr. Claudio, perfeito, algum problema quando eu fiz, CTRL-V, aqui chamamos de copy/paste do inferno
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Editbox em pdv frente de caixa

Mensagempor rubens » 02 Nov 2020 10:05

Bom dia...
Tá na seção harbour então vale falar de qualquer lib...
Faço na minigui com browse também.. Usando um dbf temporário na memória que é criado qdo entra no form de vendas..
Mas o controle fica no textbox código... que é onde será digitado/lido o código. Na saída deste textbox fica o validador das regras de negócio, se é código de balança, qual a qtde de itens.
Daí para apagar um item setei F10 que joga o foco no browse.. aí éh pressionar delete apagar o registro, e atualizar o browse e recalcular totais usando os labels/text mesmo.. praticamente sem controle de variáveis...
Fica menos controle de teclas e variáveis...
E o posicionamento dos itens/linhas do browse, é facilmente manuseado pela função _Browsend() que posiciona o cursor na última linha do browse.
A manipulação dos itens fica mais simples e contralada pelo dbf e atualização do browse.
Att..
Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar de usuário

rubens
Colaborador

Colaborador
 
Mensagens: 1518
Data de registro: 16 Ago 2003 09:05
Cidade/Estado: Nova Xavantina - MT
Curtiu: 77 vezes
Mens.Curtidas: 104 vezes

Editbox em pdv frente de caixa

Mensagempor marcosLP » 13 Nov 2020 10:49

Tem muitas opções de cada programador que usa eu gosto mais de exibir uma GRID em que vai sendo alimentada cfe. o codigo da mercadoria foi inserida. Mas como já disse antes existem "N" soluções e a melhor sempre será a que vc desenvolver e poder muda-la sempre que desejar.
Avatar de usuário

marcosLP
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 35
Data de registro: 13 Nov 2020 10:24
Cidade/Estado: guarpauava/pr
Curtiu: 41 vezes
Mens.Curtidas: 4 vezes

Anterior



Retornar para Harbour

Quem está online

Usuários vendo este fórum: Google [Bot] e 7 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