Página 1 de 1

Num banco de dados só aceitar até dois lançamentos por turno

Enviado: 03 Ago 2007 18:38
por Ricardo Sales Ribeiro
Ola Pessoal
Boa Noite


Estou com uma certa dificuldade para montar uma rotina, é o seguinte:

Tenho um Dbf, com os seguintes campos: Equipe:=Space(01), Turno:=Space(01), NrOser:=Space(10), pois bem, o cliente quer digitar apenas duas Ordem de serviços por equipe e por turno, ou seja:

Equipe = A
Turno = Manhã
Data 03-08-2007
Os: 00001

Equipe = A
Turno = Manhã
Data 03-08-2007
Os: 00002

Esta equipe A, nesta data, neste turno manhã, não pode mas ser digitado nada para ela.

Pergunta. Como posso bloquear a rotina para não permitir q o usuário digite outra Os no mesmo dia e turno, então seria duas os. por turno e equipe.

Se alguem puder me ajudar, eu agradeço desde já.
Grande abraço

Enviado: 03 Ago 2007 19:42
por Eolo
Indexe por Equipe / Turno / Data.
E use o Seek com um contador:

Código: Selecionar todos

use arquivo
index on equipe+turno+dtos(data) to arquivo
set index to arquivo
Vequipe="A"
Vturno="M"
Vdata=ctod("03/08/2007")
conta=0
seek Vequipe+Vturno+dtos(Vdata)
do whil .t.
  if Vequipe=equipe .and. Vturno=turno .and. Vdata=data
     conta++
  else
     exit
  endi
  skip
endd
wait conta // veja a seguir
Se conta<2, então vc pode emitir outra OS para a equipe "A" + Turno "M". Se conta=2, não pode.

Enviado: 03 Ago 2007 21:43
por Ricardo Sales Ribeiro
Valeu meu amigo Eolo

Já vou incrementar minha rotina, obrigado

Boa noite

Enviado: 04 Ago 2007 08:43
por Eolo
Depois conte se deu certo.