Página 2 de 2

Editbox em pdv frente de caixa

Enviado: 21 Out 2020 23:00
por Claudio Soto
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í:

Código: Selecionar todos

#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

Editbox em pdv frente de caixa

Enviado: 22 Out 2020 09:15
por asimoes
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

Código: Selecionar todos

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 ) ;
}

Editbox em pdv frente de caixa

Enviado: 22 Out 2020 09:34
por asimoes
Fiz essa modificação, agora funcionou

nPos += Len( aLines ) + 1 //Len( CRLF )

Editbox em pdv frente de caixa

Enviado: 22 Out 2020 14:33
por Claudio Soto
asimoes escreveu:Fiz essa modificação, agora funcionou

nPos += Len( aLines ) + 1 //Len( CRLF )

Me alegro que lo hayas solucionado, si usas Unicode cambia ese Len() por HB_ULEN()

Editbox em pdv frente de caixa

Enviado: 22 Out 2020 14:47
por asimoes
Dr Claudio obrigado pelas dicas, pode ser útil para os nossos colegas.

Editbox em pdv frente de caixa

Enviado: 23 Out 2020 12:53
por Poka
Obrigado.




Poka

Editbox em pdv frente de caixa

Enviado: 26 Out 2020 15:04
por rochinha
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.

Editbox em pdv frente de caixa

Enviado: 26 Out 2020 18:04
por Itamar M. Lins Jr.
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.

Editbox em pdv frente de caixa

Enviado: 27 Out 2020 20:35
por rochinha
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.

Editbox em pdv frente de caixa

Enviado: 28 Out 2020 18:17
por asimoes
Mais uma pergunta sobre RichEdit, como pegar o texto selecionado?

Editbox em pdv frente de caixa

Enviado: 28 Out 2020 18:42
por Claudio Soto
asimoes escreveu:Mais uma pergunta sobre RichEdit, como pegar o texto selecionado?

Código: Selecionar todos

//       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

Editbox em pdv frente de caixa

Enviado: 28 Out 2020 20:04
por asimoes
Dr. Claudio, perfeito, algum problema quando eu fiz, CTRL-V, aqui chamamos de copy/paste do inferno

Editbox em pdv frente de caixa

Enviado: 02 Nov 2020 10:05
por rubens
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

Editbox em pdv frente de caixa

Enviado: 13 Nov 2020 10:49
por marcosLP
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.