ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Comanda eletrônica

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Automação Comercial
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
FABIO_1979
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 10 de Agosto de 2012
Mensagens: 299

MensagemEnviada: Seg Jun 17, 2013 12:10 pm    Assunto: Comanda eletrônica Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
Ghost_Rider
Colaborador
Colaborador


Registrado: Segunda-Feira, 6 de Outubro de 2003
Mensagens: 4437

MensagemEnviada: Seg Jun 17, 2013 1:59 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
FABIO_1979
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 10 de Agosto de 2012
Mensagens: 299

MensagemEnviada: Seg Jun 17, 2013 9:14 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
FABIO_1979
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 10 de Agosto de 2012
Mensagens: 299

MensagemEnviada: Sex Jun 21, 2013 2:36 pm    Assunto: Responder com Citação

Algum, amigo poderia me ajudar?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Ghost_Rider
Colaborador
Colaborador


Registrado: Segunda-Feira, 6 de Outubro de 2003
Mensagens: 4437

MensagemEnviada: Sex Jun 21, 2013 4:46 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
FABIO_1979
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 10 de Agosto de 2012
Mensagens: 299

MensagemEnviada: Sex Jun 21, 2013 6:08 pm    Assunto: Responder com Citação

ô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
Ver o perfil de Usuários Enviar Mensagem Particular
Ghost_Rider
Colaborador
Colaborador


Registrado: Segunda-Feira, 6 de Outubro de 2003
Mensagens: 4437

MensagemEnviada: Sex Jun 21, 2013 6:22 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
FABIO_1979
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 10 de Agosto de 2012
Mensagens: 299

MensagemEnviada: Sex Jun 21, 2013 6:33 pm    Assunto: Responder com Citação

Laughing Sim kkkk Entendi sim, obrigado! Realmente estava preso ao exemplo!

valeu fico devendo esta.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Automação Comercial Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB