Enviado: 14 Ago 2007 15:08
me ajudem por favor
Código: Selecionar todos
USE CLIENTE
index on cod to xNcli
index on client to xCcli
SET INDEX TO xNcli,XCcli
SET ORDER TO 1
DO WHILE .T.
dbgotop()
RESTSCREEN(00,00,23,80,TELA1)
VCOD=0
VFORN=SPACE(35)
VCPF=SPACE(13)
VIE=space(15)
VEND=SPACE(30)
VCIDADE=SPACE(50)
VESTADO=SPACE(02)
VBAIRRO=SPACE(50)
VCEP=0
VFONE=0
VFAX=0
VDATCAD=CTOD('')
VEMAIL=SPACE(50)
VSITE=SPACE(50)
VOBS=SPACE(50)
vdatcad=date()
@24,08 SAY padc('[ ESC ] CANCELA - [F8] SAIR ',60) COLOR('G+/B')
set color to ('gr+/b','b-/g-')
opc=0
@02,02 PROMPT 'CADASTRAR'
@04,10 PROMPT 'ALTERAR/EXCLUIR'
MENU TO OPC
IF OPC=1
INCLUIR2()
loop
elseIF OPC=2
ALTEXCLU2()
LOOP
ENDIF
IF LASTKEY()=27
RESTSCREEN(00,00,24,80,TELA1)
RETURN .T.
ENDIF
ENDDO
***************************<FUNCAO INCLUSAO>**********************
FUNCTION INCLUIR2()
DO WHILE .T.
CLEAR GETS
PRIV VCOD:=VCEP:=VFONE:=VFAX:=0
PRIV VFORN:=SPACE(35)
PRIV VCPf:=SPACE(13)
PRIV VIE:=space(15)
PRIV VEND:=SPACE(30)
PRIV VESTADO:=SPACE(02)
PRIV VDATCAD:=CTOD('')
PRIV VEMAIL:=VSITE:=VOBS:=VCIDADE:=VBAIRRO:=SPACE(50)
PRIV vdatcad:=date()
restscreen(00,00,25,80,tela1)
setcolor('W+/b')
@07,01 clear to 21,78
DISPBOX(07,1,21,78)
@02,03 SAY 'COD. CLIENTE:' COLOR('Gr+/B')
@24,10 SAY padc('NOVO CADASTRO',60) COLOR('G+*/B')
@08,04 SAY 'CLIENTE..............'
@09,04 SAY 'CPF..................'
@09,49 SAY 'IE.:' color('w+/b')
@10,04 SAY 'ENDERECO.............'
@11,04 SAY 'BAIRRO...............'
@12,04 SAY 'CIDADE...............'
@13,04 SAY 'ESTADO...............'
@14,04 SAY 'CEP..................'
@15,04 SAY 'FONE.................'
@16,04 SAY 'FAX..................'
@17,04 SAY 'DATA DE CADASTRO.....'
@18,04 SAY 'SITE.................'
@19,04 SAY 'E-MAIL...............'
@20,04 SAY 'INFO. ADICIONAL......'
dbgobottom()
VCOD=cod
VCOD++
SETCOLOR('W/B')
@08,25 CLEAR TO 20,77
@02,17 SAY VCOD PICT '999'
@08,25 GET VFORN PICT '@!' COLOR('GR+/B')
READ
IF LASTKEY()=27
RETURN .T.
ENDIF
IF EMPTY(VFORN)
RETURN
ENDIF
@09,49 SAY 'IE.:' color('GR+/b')
@09,25 GET VCPF PICT '@R 999.999.999-99' valid CPF(vcPF)COLOR('GR+/B')
@09,53 GET VIE PICT '999.999.999.999' COLOR('GR+/B')
@10,25 GET VEND PICT '@!' COLOR('GR+/B')
@11,25 GET VBAIRRO PICT '@!' COLOR('GR+/B')
@12,25 GET VCIDADE PICT '@!' COLOR('GR+/B')
@13,25 GET VESTADO PICT '@!' COLOR('GR+/B')
@14,25 GET VCEP PICT '99-999-999' COLOR('GR+/B')
@15,25 GET VFONE PICT '(99)9999-9999' COLOR('GR+/B')
@16,25 GET VFAX PICT '(99)9999-9999' COLOR('GR+/B')
@17,25 SAY VDATCAD PICT '99/99/9999' COLOR('GR+/B')
@18,25 GET VSITE PICT '@!' COLOR('GR+/B')
@19,25 GET VEMAIL PICT '@!' COLOR('GR+/B')
@20,25 GET VOBS PICT '@!' COLOR('GR+/B')
READ
tela_sav=""
tela_sav=savescreen(18,29,21,47,tela_sav)
set color to ('n/gb','gb/n')
@18,29 clear to 21,47
dispbox(18,29,21,47)
opc=0
@19,30 SAY('confirma inclusao')
@20,32 prompt(" sim ")
@20,40 prompt(" nao ")
menu to opc
set color to ('n/gb','b-/g-')
if ! lastkey()=27
IF opc=1
APPEND BLANK
REPLA COD WITH VCOD
REPLA CLIENT WITH VFORN
REPLA CPF WITH VCPF
REPLA IE WITH VIE
REPLA END WITH VEND
REPLA BAIRRO WITH VBAIRRO
REPLA CIDADE WITH VCIDADE
REPLA ESTADO WITH VESTADO
REPLA CEP WITH VCEP
REPLA FONE WITH VFONE
REPLA FAX WITH VFAX
REPLA EMAIL WITH VEMAIL
REPLA DATCAD WITH VDATCAD
REPLA SITE WITH VSITE
REPLA EMAIL WITH VEMAIL
REPLA OBS WITH VOBS
DBCOMMIT()
return .t.
restscreen(18,29,21,47,tela_sav)
else
restscreen(18,29,21,47,tela_sav)
LOOP
endif
ENDIF
RETURN
ENDDO
***********************<ALTERA EXCLUI>**************************
FUNCTION ALTEXCLU2()
RESTSCREEN(00,00,24,80,TELA1)
@02,03 SAY 'COD. CLIENTE:'COLOR("GR+/B")
@02,17 GET VCOD PICT '999' COLOR("w+/B") when mensagem("[ENTER] - pesquisa")
@24,08 SAY padc('[ ESC ] CANCELA - [F8] SAIR ',60) COLOR('G+/B')
READ
if ! lastkey()=27
IF EMPTY(VCOD)
PESQ2()
RESTSCREEN(00,00,24,80,TELA1)
endif
endif
SET ORDER TO 1
IF DBSEEK(VCOD)
VCOD=COD
VFORN=CLIENT
VCPF=CPF
VIE=IE
VEND=END
VBAIRRO=BAIRRO
VCIDADE=CIDADE
VESTADO=ESTADO
VCEP=CEP
VFONE=FONE
VFAX=FAX
VDATCAD=DATCAD
VSITE=SITE
VEMAIL=EMAIL
VOBS=OBS
setcolor('w+/b')
@07,01 clear to 21,78
DISPBOX(07,1,21,78)
@02,03 SAY ("NOME CLIENTE:") PICT '@!' COLOR ("GR+/B")
@08,04 SAY 'CLIENTE..............'
@09,04 SAY 'CPF..................'
@10,04 SAY 'ENDERECO.............'
@11,04 SAY 'BAIRRO...............'
@12,04 SAY 'CIDADE...............'
@13,04 SAY 'ESTADO...............'
@14,04 SAY 'CEP..................'
@15,04 SAY 'FONE.................'
@16,04 SAY 'FAX..................'
@17,04 SAY 'DATA DE CADASTRO.....'
@18,04 SAY 'SITE.................'
@19,04 SAY 'E-MAIL...............'
@20,04 SAY 'INFO. ADICIONAL......'
@24,08 SAY padc('[F2] - ALTERA [F3] - EXCLUI',60) COLOR('G+/B')
SETCOLOR('W/B')
@08,25 CLEAR TO 20,77
@02,17 SAY STRZERO(VCOD) PICT '999'
@08,25 SAY VFORN PICT '@!'
@09,25 SAY VCPF PICT '@R 999.999.999-99'
@09,53 SAY VIE PICT '999.999.999.999'
@09,49 SAY 'IE.:' color('w+/b')
@10,25 SAY VEND PICT '@!'
@11,25 SAY VBAIRRO PICT '@!'
@12,25 SAY VCIDADE PICT '@!'
@13,25 SAY ESTADO PICT '@!'
@14,25 SAY VCEP PICT '99-999-999'
@15,25 SAY VFONE PICT '(99)9999-9999'
@16,25 SAY VFAX PICT '(99)9999-9999'
@17,25 SAY VDATCAD PICT '99/99/9999'
@18,25 SAY VSITE PICT '@!'
@19,25 SAY VEMAIL PICT '@!'
@20,25 SAY VOBS PICT '@!'
VTECLA=INKEY(0)
IF VTECLA= -1
@08,25 GET VFORN PICT '@!' COLOR('GR+/B')
@09,25 GET VCPF PICT '@R 999.999.999-99' valid CPF(VCPF) COLOR('GR+/B')
@09,53 GET VIE PICT '999.999.999.999' COLOR('GR+/B')
@10,25 GET VEND PICT '@!' COLOR('GR+/B')
@11,25 GET VBAIRRO PICT '@!' COLOR('GR+/B')
@12,25 GET VCIDADE PICT '@!' COLOR('GR+/B')
@13,25 GET VESTADO PICT '@!' COLOR('GR+/B')
@14,25 GET VCEP PICT '99-999-999' COLOR('GR+/B')
@15,25 GET VFONE PICT '(99)9999-9999' COLOR('GR+/B')
@16,25 GET VFAX PICT '(99)9999-9999' COLOR('GR+/B')
@17,25 SAY VDATCAD PICT '99/99/9999' COLOR('GR+/B')
@18,25 GET VSITE PICT '@!' COLOR('GR+/B')
@19,25 GET VEMAIL PICT '@!' COLOR('GR+/B')
@20,25 GET VOBS PICT '@!' COLOR('GR+/B')
READ
if ! lastkey()=27
OPC={'SIM','NAO'}
OPC2=ALERT('CONFIRMA ALTERACAO ?',OPC,'N/GB,')
IF opc2=1
REPLA COD WITH VCOD
REPLA CLIENT WITH VFORN
REPLA CPF WITH VCPF
REPLA IE WITH VIE
REPLA END WITH VEND
REPLA BAIRRO WITH VBAIRRO
REPLA CIDADE WITH VCIDADE
REPLA ESTADO WITH VESTADO
REPLA CEP WITH VCEP
REPLA FONE WITH VFONE
REPLA FAX WITH VFAX
REPLA EMAIL WITH VEMAIL
REPLA DATCAD WITH VDATCAD
REPLA SITE WITH VSITE
REPLA EMAIL WITH VEMAIL
REPLA OBS WITH VOBS
DBCOMMIT()
DBUNLOCK()
RETURN
ELSE
RETURN
ENDIF
endif
ELSEIF VTECLA=-2
alert('DESEJA RELAMENTE EXCLUIR?;;SE ISSO FOR FEITO OS DADOS;JAMAIS PODERAO SER RECUPERADOS',,'n/gb')
OPC={'SIM','NAO'}
OPC2=ALERT('CONFIRMA EXCLUSAO ?',OPC,'N/GB,')
IF opc2=1
DELE
RETURN
ELSEIF OPC2=2
RETURN
ENDIF
ENDIF
ENDIF
RETURN
********************<PESQUISA>***********************
FUNCTION PESQ2()
SET ORDER TO 2
setcolor('w+/b')
GO TOP
VNOME=SPACE(30)
@24,08 SAY PADC ('PESQUISA NO BANCO DE DADOS',60) COLOR('G+*/B')
@02,03 SAY 'NOME CLIENTE:'COLOR('GR+/B')
@02,18 GET VNOME PICT '@!' COLOR('GR+/B')
READ
IF LASTKEY()=27
RESTSCREEN(00,00,25,80,TELA1)
RETURN .f.
ENDIF
IF EMPTY(VNOME)
if ! lastkey()=27
dispbox(07,03,21,76)
dbedit(08,04,20,75)
vCOD=COD
return
endif
ENDIF
VNOME=ALLTRIM(VNOME)
if dbseek(vNOME)
if ! lastkey()=27
dispbox(06,03,20,76)
dbedit(07,04,19,75,)
VNOME=CLIENT
VCOD1=COD
VCOD=VCOD1
return
endif
else
return
endif
return
***********************<VALIDAR CPF>**************************
FUNCTION CPF(vcpf)
LOCAL i,ii,soma,controle,digito,num
cpf = IF(VALTYPE(Vcpf)="U","",Vcpf)
IF EMPT(Vcpf)
RETURN(.F.)
ELSE
IF LEN(Vcpf) < 11
RETURN(.F.)
ENDIF
ENDIF
controle=""
num=10
FOR ii=1 TO 2
soma=0
FOR i=1 TO 9
soma+=(VAL(SUBSTR(Vcpf,i,1))*num)
num--
NEXT
IF ii=2
soma+=(2*VAL(controle))
ENDIF
digito=soma - (INT(soma/11)*11)
IF digito=0 .OR. digito=1
controle=controle+"0"
ELSE
controle=controle+STR(11-digito,1)
ENDIF
num=11
NEXT
IF controle!=SUBST(Vcpf,10,2)
TONE(1001,3)
ALERT("CPF INVALIDO")
RETURN(.F.)
ENDIF
RETURN(.T.)
Ajudou bastante...Stanis Luksys escreveu:hehhehe!!!
Primeiro programa e já ta na onda do "func main()"?/ rsrs
Deixa disso, escrever "function" não cai a mão de ninguém.
Mas a função do fórum não é dar curso. É tirar dúvida. É o que está sendo feito, não?gera som djs escreveu:Tambem naum tem ninguem pra me ensinar
o que eu tenho pra fazer passo a passo se tivese alguem eu naum taria postando essas perguntas idiotas no forum e tirando o tempo de vcis. :|<
Código: Selecionar todos
campos DBF
COD
CLIENT
CPF
IE
END
BAIRRO
CIDADE
ESTADO
CEP
FONE
FAX
DATCAD
SITE
EMAIL
OBS
Código: Selecionar todos
USE CLIENTE
index on cod to xNcli //indice por campo "Cod" NUmerico
index on client to xCcli //indice por campo "NOME" caracter
SET INDEX TO xNcli,XCcli //abre os indices em ordem numerico, caracter
SET ORDER TO 1 // seta a ordem para começar com indice numérico xNcliCódigo: Selecionar todos
COD
CLIENT
CPF
IE
END
BAIRRO
CIDADE
ESTADO
CEP
FONE
FAX
DATCAD
SITE
EMAIL
OBS
Código: Selecionar todos
USE CLIENTE
index on cod to xNcli //indice por campo "Cod" NUmerico
index on client to xCcli //indice por campo "NOME" caracter
SET INDEX TO xNcli,XCcli //abre os indices em ordem numerico, caracter
SET ORDER TO 1 // seta a ordem para começar com indice numérico xNcli Ajudei sim. Embora a linguagem permita a sintaxe de abreviação, não é de bom costume isso. E é de principante que se pega vícios como esses, que de fato em nada colaboram para o desenvolvimento da aprendizagem e do aplicativo.sygecom escreveu:Ajudou bastante...Stanis Luksys escreveu:Primeiro programa e já ta na onda do "func main()"?/ rsrsDeixa disso, escrever "function" não cai a mão de ninguém.
Pode usar o Func como function tanto faz...isso não vai lhe diferenciar agora.....
Ual...Calma ...isso é um Forum amiguinho e não competição ou algo semelhante...espero que saiba o que é isso !!! e fique a vontade de selecionar os seus post !!Antes de julgar se ajudei ou não, escolha 15 dos meus piores 50 posts, e compare com 15 dos seus 1000 melhores.
Tche, isso pra min é desculpa....por favor...para quem quiser sair xBase sai e pronto...nd que um curso,faculdade, apostilas e um outros que não posso dar um empuranzinho.É por essas e outras que a maioria dos "clipperos" não sairão do círculo xBase (clipper/xharbour) nunca. Depois de tantos vícios de linguagem, é muito difícil se adaptar numa sintaxe mais criteriosa com um compilador mais severo.