 |
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
FABIO_1979 Aprendiz

Registrado: Sexta-Feira, 10 de Agosto de 2012 Mensagens: 299
|
Enviada: Seg Jun 17, 2013 12:10 pm Assunto: Comanda eletrônica |
|
|
Amigos como fazer a pesquisa, do microterminal para o bd do sistema?
E como se dá multiplos microterminais conectados?
No exemplo que baixei usando um timer esta assim:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
for conjunto:=0 to 0 do
begin
canal:=100;
if (getcnt ( dado,canal,conjunto ))=1 then
begin
if dado='ABC..123' THEN
BEGIN
dado:='123456789A123456789B123456789C123456789'+chr(10)+chr(13);
//dado:=dado+'Linha p/ impressora Linha p/ impressora'+chr(10)+chr(13);
//dado:=dado+'Linha p/ impressora Linha p/ impressora'+chr(10)+chr(13);
//dado:=dado+'Linha p/ impressora Linha p/ impressora'+chr(10)+chr(13);
//dado:=dado+'Linha p/ impressora Linha p/ impressora'+chr(10)+chr(13);
x:=envtimp (0,canal,dado);
x:=envtimp (0,canal,dado);
x:=envtimp (0,canal,dado);
x:=envtimp (0,canal,dado);
x:=envtimp (0,canal,dado);
x:=envtimp (0,canal,dado);
x:=envtimp (0,canal,dado);
x:=envtimp (0,canal,dado);
x:=envtimp (0,canal,dado);
x:=envtimp (0,canal,dado);
x:=envtimp (0,canal,chr(10)+chr(13));
x:=envtimp (0,canal,chr(10)+chr(13));
x:=envtimp (0,canal,chr(10)+chr(13));
x:=envtimp (0,canal,chr(10)+chr(13));
x:=envtimp (0,canal,chr(10)+chr(13));
x:=envtimp (0,canal,chr(10)+chr(13));
x:=envtimp (0,canal,chr(10)+chr(13));
x:=envtimp (0,canal,chr(10)+chr(13));
x:=envtimp (0,canal,chr(10)+chr(13));
dado:=' ';
END;
str ( canal,scanal );
str ( conjunto,sconjunto );
form1.edit2.text := dado +'- Canal: '+ scanal+ ' - Conjunto: '+sconjunto ;
str (canal,stcan);
{envtmsg (conjunto,canal,'Recebido-Canal '+stcan);}
{envbeep (conjunto,canal,1);}
if ted[canal+1]=4 then
begin
if dado='1' then envtmsg (conjunto,canal,'Coca-cola')
else if dado='2' then envtmsg (conjunto,canal,'Guarana')
else if dado='3' then envtmsg (conjunto,canal,'Fanta-uva')
else
begin
// envbeep (conjunto,canal,1);
// envtmsg (conjunto,canal,'Obrigatorio. 1.Cliente ');
envtmsg (conjunto,canal,'Nao cadastrado');
envbeep (conjunto,canal,3);
envcldisp (conjunto,canal);
envtmsg (conjunto,canal,(mensagem[ted[canal+1]-1]));
exit;
end
end;
if ted[canal+1]=3 then
begin
if dado='1' then envtmsg (conjunto,canal,'Tom Jobim')
else if dado='2' then envtmsg (conjunto,canal,'Baden Powell')
else if dado='3' then envtmsg (conjunto,canal,'Chico Buarque')
else
begin
envtmsg (conjunto,canal,'Nao cadastrado');
envbeep (conjunto,canal,3);
envtmsg (conjunto,canal,(mensagem[ted[canal+1]-1]));
exit;
end
end;
Alguém já programou para microterminal? |
|
Voltar ao Topo |
|
 |
Ghost_Rider Colaborador

Registrado: Segunda-Feira, 6 de Outubro de 2003 Mensagens: 4437
|
Enviada: Seg Jun 17, 2013 1:59 pm Assunto: |
|
|
Cara, micro terminal é um terminal burro...na verdade vc digita o código, e se ele encontrar o código ele retorna para que você conclua a venda... |
|
Voltar ao Topo |
|
 |
FABIO_1979 Aprendiz

Registrado: Sexta-Feira, 10 de Agosto de 2012 Mensagens: 299
|
Enviada: Seg Jun 17, 2013 9:14 pm Assunto: |
|
|
certo, mas como eu nunca trabalhei com isto antes resta algumas dúvidas:
Por exemplo: como fazer a pesquisa através do terminal ? Como seria isso em termos de código como faze uma select que presquise a tabela de produtos através do terminal?
se puder me passar um exemplo amigo, será de muita ajuda.
desde já muito obrigado
PS: Consegui por exemplo enviar um código para um edit através do terminal mas no caso o PDV ficaria em uso como fazer tudo isto através do terminal sem comprometer a tela de vendas? E como funciona no caso de haver mais de um terminal? |
|
Voltar ao Topo |
|
 |
FABIO_1979 Aprendiz

Registrado: Sexta-Feira, 10 de Agosto de 2012 Mensagens: 299
|
Enviada: Sex Jun 21, 2013 2:36 pm Assunto: |
|
|
Algum, amigo poderia me ajudar? |
|
Voltar ao Topo |
|
 |
Ghost_Rider Colaborador

Registrado: Segunda-Feira, 6 de Outubro de 2003 Mensagens: 4437
|
Enviada: Sex Jun 21, 2013 4:46 pm Assunto: |
|
|
Vamos lá...
Baixei o exemplo do site, baseado no modelo que você me enviou, e é muito simples de se trabalhar com esse coletor amigo, vamos lá...
Entenda uma coisa, o leitor é "burro", ou seja, ele apenas vai ler o que você digitar e mandar para o computador, mais nada...
Seu computador tem que ficar lendo um ou vários coletores, através da função getcnt, essa função vai te enviar qual terminal mandou a mensagem e qual mensagem foi recebida.
A sequencia que eu usaria seria,
- o terminal abre a comanda, mandando o código da comanda.
- o computador entende que é abertura de comanda e abre a comanda e manda a mensagem pro terminal com a mensagem de permissão para poder passar o produto.
- o terminal le o código de barras e manda pro computador
- como a comanda para aquele terminal já foi aberta, ele entende isso e faz o select no banco com aquele código.
- o computador acha o valor do item e a descrição, e devolve para o terminal que o item foi achado e adicionado, e esperando que o terminal digite um comando para fechamento da comanda.
- fechada a comanda, o computador entende que aquele terminal esta apto para abrir outra ficha.
Observe que o terminal não faz absolutamente nada, ele apenas colhe o que você digitar e manda para o computador valores...
Quem gerencia o que significa o que o terminal mandou é o computador, sempre criando variáveis para controlar em que estado esta determinado terminal.
Ou seja, é simples de controlar o terminal, mas complexo no sentido de gerenciamento desses terminais no computador...
Entendeu a lógica amigo ??? |
|
Voltar ao Topo |
|
 |
FABIO_1979 Aprendiz

Registrado: Sexta-Feira, 10 de Agosto de 2012 Mensagens: 299
|
Enviada: Sex Jun 21, 2013 6:08 pm Assunto: |
|
|
ôpa valeu Ghost.
Entendi, mas é justamente na parte em que você diz:
"mas complexo no sentido de gerenciamento desses terminais no computador... "
Como fazer para através do terminal pesquisar comanda, produto, minha dúvida é "apenas" essa.
Pensei aliás, em fazer um programinha à parte que ficaria próximo ao relógio
e em oculto ele iria fazer assim:
Apertou F1
abre terminal
DIGITA COMANDA E PRESSIONA "E"
Edit => Verfica bd comanda achou? Sim
tECLA E
vai para edit2 pesquisa produto achou? Sim
fecha teminal
Mas ai, pensei não seria gambiarra demais? Não há uma forma de se fazer uma select que ficaria na própria aplicação e se fosse pressionado uma tecla do terminal tipo F1 ai abriria e ficaria posicionada na select comanda por exeplo.
Depois de apertar E se positivo o código ai iria para a outra etapa...
Isso sem precisar usar Edit para estanciar em onchage.
Estou certo amigo? Ou há uma outra maneira? Se sim, como você faria? |
|
Voltar ao Topo |
|
 |
Ghost_Rider Colaborador

Registrado: Segunda-Feira, 6 de Outubro de 2003 Mensagens: 4437
|
Enviada: Sex Jun 21, 2013 6:22 pm Assunto: |
|
|
Amigo, vc ta comendo bronha..ta ficando preso ao exemplo....
Vamos lá...
não tem edit, tem o timer que fica lendo os terminais...é no evento do timer que tudo acontece...
Outra coisa...não é tudo feito de uma vez...são passos que tem que ser realizados...
- o terminal le a comanda e manda o numero da mesma...
- o computador (dentro do timer) verifica qual terminal mandou o numero da comanda, e verifica no banco de dados se existe alguma comanda aberta para aquele terminal. Se não existir, dai abre uma comanda para o terminal e manda uma frase para o terminal aguardando a leitura do produto
- nesse momento o atendente le que pode passar o produto, e passa o código de barras,
- o computador (dentro do timer), verifica qual terminal chamou, e verifica se existe comanda aberta, se existir (nesse exemplo existe), ele verifica o produto (tai ai o seu select) e pega o preço e descrição do mesmo. Caso o produto seja pesado (exemplo pão) ele já faz o calculo do produto e lança na comanda.
Nesse momento, ou você manda um comando para o terminal para ele confirmar o preço e produto, ou só manda uma frase pro terminal, indicando que o produto passou.
Nesse momento, ou o terminal passa mais produtos, seguindo a logica do primeiro, ou entao pressiona qualquer coisa, que indique que seja pra fechar a comanda...
Entendeu agora ? |
|
Voltar ao Topo |
|
 |
FABIO_1979 Aprendiz

Registrado: Sexta-Feira, 10 de Agosto de 2012 Mensagens: 299
|
Enviada: Sex Jun 21, 2013 6:33 pm Assunto: |
|
|
Sim kkkk Entendi sim, obrigado! Realmente estava preso ao exemplo!
valeu fico devendo esta. |
|
Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|