Como fazer para rolar venda no caixa
Moderador: Moderadores
- Gilberto M Silva
- Usuário Nível 3

- Mensagens: 230
- Registrado em: 13 Mar 2007 18:00
- Localização: Natal-RN / Parelhas(RN) / Natal(RN)
- Contato:
Como fazer para rolar venda no caixa
Amigos uso o clipper 5.3
estou precisando fazer um programa de caixa (vendas) que quando o usuário fazer uma venda, ao lado ir aparecendo em sequencia a venda efetuada, como em um supermercado. Se alguem poder me explicar com detalhes fico grato.
/desde já obrigado.
estou precisando fazer um programa de caixa (vendas) que quando o usuário fazer uma venda, ao lado ir aparecendo em sequencia a venda efetuada, como em um supermercado. Se alguem poder me explicar com detalhes fico grato.
/desde já obrigado.
Gilberto[]
A cada conversasão realizada conquistamos mais amigos, isto é um lucro inestimável
Clip5.2 DBFCDX
marcolinosilva@click21.com.br gmarcolinosilva@hotmail.com / Skype:gilberto.marcolino
A cada conversasão realizada conquistamos mais amigos, isto é um lucro inestimável
Clip5.2 DBFCDX
marcolinosilva@click21.com.br gmarcolinosilva@hotmail.com / Skype:gilberto.marcolino
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Caro Gilberto, eu acho que não vai encontrar dificuldades alguma em fazer isso. Se utilizar uma função de procura de item e exibição dentro de um do while. Acho que a principio tudo deve estar cadastrado com um código de barras para localizar cada produto. Eu fiz agora improvisado só pra ter uma idéia:
Claro que esse exemplo pode ser melhorado. Mas acredito que utilizar código de barras é a melhor opção quando se tem vários itens cadastrados. A margem de erro, se torna bem menor ou nula se tiverem bem cadastrados todos os titens. Sabe que o leitor de codigo de barras é apenas uma reprodução do que é digitado no teclado, assim que não será dificil implementar.... Boa sorte colega !.
Código: Selecionar todos
CLS
VLN:=2
VTOT:=0.00
@ 01,01 TO 22,32
DO WHILE .T.
CODVAR:=SPACE(13)
@ 12,38 SAY "Digite o codigo: "
@ 12,55 GET CODVAR PICT "@9" VALID PROCURA(CODVAR)
READ
IF LASTKEY()=27
EXIT
ENDIF
ENDDO
FUNCTION PROCURA(CODVAR)
// SELE 1
// SEEK CODVAR
VRET:=.T.
VVLR:=2.99
VPROD:="BOLACHA DE MAIZENA "+TRANSFORM(VVLR,"@E 999,999.99")
IF VRET=.T.
// IF FOUND()
VRET:=.T.
MOSTRA(VPROD,VVLR)
ELSE
VRET:=.F.
// MENSAGEM("Codigo nao cadastrado !",5)
ENDIF
RETURN VRET
FUNCTION MOSTRA(VPROD,VVAL)
VTOT:=VTOT+VVAL
@ VLN,02 SAY VPROD
@ VLN+1,02 SAY SPACE(20)+"----------"
@ VLN+2,02 SAY SPACE(20)+TRANSFORM(VTOT,"@E 999,999.99")
IF VLN+3>21
VLN:=2
ELSE
VLN:=VLN+1
ENDIF
RETURNUm clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Gilberto, segue mais um exemplo do que você pode fazer...
Para imprimir o cupom despois você pode até usar a variável mCupom, que é um campo memo.
Abraços,
Código: Selecionar todos
CLEAR
SET SCOREBOARD OFF
@ 00,00 TO 24,79
@ 02,34 TO 22,77
@ 02,53 SAY "[ CUPOM ]"
@ 02,02 TO 04,32
@ 03,04 SAY "Codigo..:"
@ 06,02 TO 08,32
@ 06,04 SAY "[Descricao Produto]"
@ 09,02 TO 11,32
@ 10,04 SAY "Quantidade...:"
@ 12,02 TO 14,32
@ 13,04 SAY "Vr.Unitario..:"
@ 16,02 TO 18,32
@ 17,04 SAY "Sub-Total....:"
@ 21,04 SAY "F5 - Consulta Cupom"
PRIV aProd:={{1,"MICRO PENTIUM 4",2000.00},;
{2,"MOUSE OPTICO",70.00},;
{3,"CD-R SONY",1.60}}
nCod=0
nQtde=1
nUnit=0
nSubTot=0
mCupom=SPAC(10)
MEMOEDIT(mCupom,03,35,21,76,.F.,.F.)
SET KEY -4 TO CON_CUPOM()
vInicia:=.T.
DO WHILE .T.
@ 3,14 GET nCod PICT "9999" VALID (nCod>0.and.nCod<4)
READ
IF LASTKEY()=27
EXIT
ENDIF
@ 7,4 SAY aProd[nCod,2]
@ 13,19 SAY TRANS(aProd[nCod,3],"@E 9,999.99")
nUnit=aProd[nCod,3]
@ 10,19 GET nQtde PICT "9999"
READ
nSubTot=aProd[nCod,3]*nQtde
@ 17,19 SAY TRANS(nSubTot,"@E 9,999.99")
IF vInicia
mCupom:=" SUA EMPRESA S/A"+chr(13)+chr(10)
mCupom+=" Rua Fulano de Tal, 123 - Cidade - SP"+chr(13)+chr(10)
mCupom+=" CNPJ 99.999.999/9999-99"+chr(13)+chr(10)
mCupom+="========================================"+chr(13)+chr(10)
mCupom+="Codigo/Descricao Produto"+chr(13)+chr(10)
mCupom+="Qtde - Vr.Unit. = Sub-Total"+chr(13)+chr(10)
mCupom+="========================================"+chr(13)+chr(10)
vInicia=.F.
ENDIF
mCupom+=STRZERO(nCod,4)+"/"+aProd[nCod,2]+chr(13)+chr(10)
mCupom+=TRANS(nQtde,"9999")+" - "+TRANS(aProd[nCod,3],"@E 9,999.99")+;
" = "+TRANS(nSubTot,"@E 9,999.99")+chr(13)+chr(10)
MEMOEDIT(mCupom,03,35,21,76,.F.,.F.)
ENDDO
RETU
PROC CON_CUPOM()
MEMOEDIT(mCupom,03,35,21,76,.F.,"EDITAR")
RETU
FUNC EDITAR
IF LASTKEY()=27
RETU 23
ENDIF
RETU 0
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Legal este exemplo que o Toledo deu porque além de possibilitar a exibição do cupom por inteiro (através do MEMOEDIT) possibilitaria a impressão do cupom através de arquivo gerado. O que eu achei também interessante, é mostrar o sub-total bem visível, podendo até ser exibido com letras maiores. Também seria bom colocar o campo de valor de pagamento, para indicar o valor de troco na tela.
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
- Gilberto M Silva
- Usuário Nível 3

- Mensagens: 230
- Registrado em: 13 Mar 2007 18:00
- Localização: Natal-RN / Parelhas(RN) / Natal(RN)
- Contato:
- Gilberto M Silva
- Usuário Nível 3

- Mensagens: 230
- Registrado em: 13 Mar 2007 18:00
- Localização: Natal-RN / Parelhas(RN) / Natal(RN)
- Contato:
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Gilberto:
Segue abaixo um exemplo....
Obs:Sempre que tiver uma duvida pode postar em um novo post...
e seja bem vindo...
Abraços
Leonardo Machado
Segue abaixo um exemplo....
Código: Selecionar todos
nInicio := timetosec(time())
nFim := timetosec(time())
@ 06,10 say "Tempo"+sectotime(nFim-nInicio)
e seja bem vindo...
Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Tchê Leonardo, você pensou que o colega estava perguntando como fazer intervalos de horas ?.sygecom escreveu:Código: Selecionar todos
nInicio := timetosec(time()) nFim := timetosec(time()) @ 06,10 say "Tempo"+sectotime(nFim-nInicio)
Desculpe, mas isto ja aconteceu há tempos atrás novamente (e se não me engano por vocês mesmos), mas é que:
Faz parte da assinatura do colega.... hihihihicomo fazer calculo com a hora?
Ex: hor1 := time()
hor2 := time()
hor3 := hor2 - hor1
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Tche, eu não pensei...ele realmente esta perguntando....só acho que ele não soube postar....Tchê Leonardo, você pensou que o colega estava perguntando como fazer intervalos de horas ?.
Desculpe, mas isto ja aconteceu há tempos atrás novamente (e se não me engano por vocês mesmos), mas é que:
Eu sei disso....e colega que esta chegando agora é novo...e não deve saber...Faz parte da assinatura do colega.... hihihihi
Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
Em fóruns e grupos de notícias algumas pessoas tem o hábito de postar dicas em suas assinaturas. Não é muito comum, mas é louvável. 
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Desculpa, Leonardo, isto ja aconteceu antes, mas com outro colega... hihihisygecom escreveu:Tche, eu não pensei...ele realmente esta perguntando....só acho que ele não soube postar....
Encontrei a mensagem que eu mencionava: Veja aqui
Tudo bem, fazer uma menção até entendo. Eu mesmo coloquei várias mensagens com GIF animado para destacar algo. Mas fazer uma pergunta dentro da assinatura (desculpa Gilberto) mas causa confusão...Maligno escreveu:Em fóruns e grupos de notícias algumas pessoas tem o hábito de postar dicas em suas assinaturas.
Mas tudo bem... ninguém morre por isso ! Só causou-me graça porque realmente parece que fosse outro questionamento.
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
- Gilberto M Silva
- Usuário Nível 3

- Mensagens: 230
- Registrado em: 13 Mar 2007 18:00
- Localização: Natal-RN / Parelhas(RN) / Natal(RN)
- Contato:
como pode ser feito para que os itens listados na tela quando encher a tela, o ultimo listado ficar sempre visivel, isto é, o relatorio na tela ficar rolando a medida que sempre um novo item seja adicionado.
Gilberto[]
A cada conversasão realizada conquistamos mais amigos, isto é um lucro inestimável
Clip5.2 DBFCDX
marcolinosilva@click21.com.br gmarcolinosilva@hotmail.com / Skype:gilberto.marcolino
A cada conversasão realizada conquistamos mais amigos, isto é um lucro inestimável
Clip5.2 DBFCDX
marcolinosilva@click21.com.br gmarcolinosilva@hotmail.com / Skype:gilberto.marcolino
Confusão nenhuma. Você que se distraiu e acabou não entendendo. Ele fez como se faz em FAQs. Uma pergunta e sua resposta na seqüência. Absolutamente normal.Pablo César escreveu:Mas fazer uma pergunta dentro da assinatura (desculpa Gilberto) mas causa confusão...
Aliás, ele tirou a dica da assinatura. Gilberto, minha sugestão: coloque de volta e vá trocando as dicas de tempos em tempos. Fica bem legal.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
- Gilberto M Silva
- Usuário Nível 3

- Mensagens: 230
- Registrado em: 13 Mar 2007 18:00
- Localização: Natal-RN / Parelhas(RN) / Natal(RN)
- Contato:
O explo do Toledo tá perfeito qual seria o camando para rolar o itens listados a medida que fossem adicionados novos itens.
Gilberto[]
A cada conversasão realizada conquistamos mais amigos, isto é um lucro inestimável
Clip5.2 DBFCDX
marcolinosilva@click21.com.br gmarcolinosilva@hotmail.com / Skype:gilberto.marcolino
A cada conversasão realizada conquistamos mais amigos, isto é um lucro inestimável
Clip5.2 DBFCDX
marcolinosilva@click21.com.br gmarcolinosilva@hotmail.com / Skype:gilberto.marcolino
