Gostaria de colocar no início do programa uma tela de senha, onde teria o nome usuário e a senha, quando o programa fosse aberto pela 1ª vez, o usuário teria de se cadastrar e depois, em algum menu, poderia trocar a senha e até cadastrar outros usuários.
Outra Dúvida:
Estou comecando a me complicar no Summer87. E o seguinte:
Tenho um banco de dados com os seguintes campos:
Emissão – data
Codcli – Caracter – espaco 6
CodPro – Caracter – Espaço 5
Tem mais campo, mas não vem ao caso no momento.
Eu gostaria de fazer o seguinte:
Digitar o código e aparece o nome do cliente
Digitar a data da emissão
Digitar o código do produto e aparecer o nome do produto
Agora que vem o problema!!!!
Quando eu digitar a data, o sistema procura se o cliente pegou o produto e que data ele apanhou. Eu gostaria q se o cliente pegou o mesmo produto antes de 30 dias, o sistema me avisasse: “ Cliente pegou esse produto em ___/___/___.””
Exemplo: Suponhamos que o cliente de código nº 001251 pegou o produto nº 21524 no dia 21/01/2005, so q o mesmo cliente 001251 quer pegar o produto 21524 em 15/02/2005, ai que vêm o aviso: Cliente pegou esse produto em 21/01/2005.”
Ai vai o código fonte:
Código: Selecionar todos
set intensity off
set confirm off
set color to w+/b+
@ 3, 1 to 3, 78 double
@ 21, 1 to 21, 78
select (1)
use paciente index codpaci, paciente, datanasc
select (2)
use saidas index codcli3, codpaci1, indemis
select (3)
use marpec index codigo, produto
select (4)
use estoque index estoque1, estoque2, estoque3
set color to gr++/b+
@ 2, 1 clear to 2, 78
do alinha with ' S A I D A S D E M E D I C A M E N T O S ', 2
do mensagem with ' '
set color to gr++/b+
@ 4, 1 clear to 20, 78
@ 6, 1 say 'Pront...........: '
@ 8, 1 say 'Paciente .......: '
@ 10, 1 say 'Data da Saida ..: '
@ 12, 1 say 'Cod.Medicamento : '
@ 14, 1 say 'Medicamento ....: '
@ 16, 1 say 'Quant. da Saida : Quantidade Atual: '
save screen to telasaida
do while .t.
restore screen from telasaida
set delimiters off
do mensagem with '<F1> Consulta, <ENTER> Sai ou entre com o Codigo'
set color to r/w
cod = space (6)
select (1)
set key 28 to hcliente
set color to r/w
@ 6, 19 get cod picture '@K 999999'
read
if lastkey () = 27
close all
return
endif
if cod <= '000000' .or. cod = space (6)
close all
return
endif
find (cod)
if eof ()
aviso = 'PACIENTE não CADASTRADO!!'
do aviso
set cursor on
loop
endif
xpaci = paciente
set color to r/w
@ 8, 19 say xpaci
xemi = ctod (' ')
@ 10, 19 get xemi
read
if xemi = ctod (' ')
@ 18, 14 to 20, 58 double
@ 19, 15 clear to 19, 57
set color to r/w
sn1 = ' '
@ 19, 15 say 'CAMPO DA DATA ESTA EM BRANCO. PROSSEGUIR?' get sn1 valid (sn1$"SNsn")
tone (600, 2)
read
if sn1 = 'N' .or. sn1 = 'n'
loop
else
set color to gr++/b+
@ 18, 14 clear to 20, 58
endif
endif
save screen to telasaida2
do while .t.
restore screen from telasaida2
select (3)
set key 28 to hmercad1
set color to r/w
xcod = space (5)
@ 12, 19 get xcod picture '99999'
read
if lastkey () = 27
close all
return
endif
if xcod <= '00000'
exit
endif
find (xcod)
prod = produto
xdesc = descricao
xcodtipo = tipo
xqatual = qatual
if eof ()
aviso = 'CODIGO não CADASTRADO'
do aviso
set delimiters off
set intensity on
set deleted on
set cursor on
set color to r/w
loop
endif
@ 14, 19 say prod
select (2)
busca = cod + xcod + dtoc(Xemi)
find (busca)
dias = xemi - emissao
save screen to telasaida1
if dias <= 30
set cursor off
set color to r/w
@ 18, 15 clear to 19, 65
@ 17, 14 to 20, 66 double
set color to r*/w
@ 18, 15 say ' PACIENTE JA PEGOU O MEDICAMENTO NO DIA ' + dtoc (emissao) + ' '
tone (600, 2)
set color to r/w
set cursor on
xsn = ' '
@ 19, 15 say 'Prosseguir (S/N):' get xsn picture '@!' valid (xsn$"SNsn")
set color to r/b+
read
set color to r/w
set cursor on
if xsn = 'N'
restore screen from telasaida2
loop
endif
restore screen from telasaida1
endif
set order to 1
do while .t.
qun = 0
@ 16, 19 get qun picture '99999'
@ 16, 48 say xqatual
read
if lastkey () = 27
exit
endif
if qun <= 0
exit
endif
if qun > xqatual
aviso = 'Quantidade Superior ao Estoque '
do aviso
set cursor on
exit
endif
select (3)
xquan = qatual - qun
set color to gr++/b+
set delimiters on
sn = ' '
@ 22, 10 say space (69)
@ 22, 11 say 'Confirma a Saida (S/N):' get sn picture '@!' valid (sn$"SNsn")
read
if upper (sn) = 'S'
select (2)
append blank
replace codcli with cod
replace codpro with xcod
replace quantidade with qun
replace emissao with xemi
replace codtipo with xcodtipo
replace produto with prod
replace paciente with xpaci
replace descricao with xdesc
select (4)
append blank
replace codigo with xcod
replace saidas with qun
replace dataestoq with substr (dtoc (xemi), 4, 7)
replace produto with prod
replace estoqant with xqatual
select (3)
replace qatual with xquan
exit
else
select (2)
delete
endif
enddo
enddo
enddo
close all
return:-O


