Help.... naum consigo mudar NTX p/CDX (Clippeiros me ajudem)

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Marcio Antonio Ril
Usuário Nível 1
Usuário Nível 1
Mensagens: 42
Registrado em: 13 Set 2005 11:55

Help.... naum consigo mudar NTX p/CDX (Clippeiros me ajudem)

Mensagem por Marcio Antonio Ril »

Galera, olha eu aqui mais uma vez.
Naum sei o que pode estar errado, mais estou tentando mudar meus indices de NTX para CDX mais naum está dando certo, alguem poderia dar uma olhadinha nessa rotina abaixo e me disser o que esta errado.
Tenho uma bases de clientes com mais de 1400 registros, mas quando vou incluir mais um cliente naum está incrementando, sem cai no registro 000001. Tb preciso usar essa mesma rotina em rede, quais mudanças seriam necessarias.

Obrigado,

Marcio Ril

* PROGRAMA : CLIENTE.PRG
* COMENTARIO : CADASTRO DE CLIENTE

SELECT 1
USE CLIENTE
INDEX ON COD_CLI TAG IND1 TO INDCLI
INDEX ON NOME_CLI TAG IND2 TO INDCLI
SET INDEX TO INDCLI

SET DELETED ON
DO WHILE .T.

MENSAGEM("Tecle <ESC> para retornar")

WCOD_CLI := 0
WNOME_CLI := SPACE(40)
WEND_CLI := SPACE(40)
WBAIRRO_CLI := SPACE(15)
WCID_CLI := SPACE(20)
WUF_CLI := SPACE(02)
WCEP_CLI := SPACE(10)
WFONE_CLI := SPACE(13)
WDTNAS_CLI := CTOD("99/99/9999")
WRG_CLI := SPACE(12)
WCPF_CLI := SPACE(14)
WPAI_CLI := SPACE(30)
WMAE_CLI := SPACE(30)
WCASA_CLI := SPACE(01)
WEMPREG_CLI := SPACE(30)
WTEMPO_CLI := SPACE(15)
WFONEMP_CLI := SPACE(13)
WSITUA_CLI := "S"
WLIMITE_CLI := 0
WDADOS1_CLI := SPACE(40)
WDADOS2_CLI := SPACE(40)
WDADOS3_CLI := SPACE(40)
WDTCAD_CLI := DATAATU
WCONF :="S"

JANELA(03,03,19,76,"Cadastro de Clientes")
COR("MENU")

@ 05,05 SAY "Codigo Cliente:"
@ 06,05 SAY "Nome..........:"
@ 07,05 SAY "Endereco......:"
@ 08,05 SAY "Cidade........:"
@ 08,46 SAY "Bairro.....:"
@ 09,05 SAY "Estado........:"
@ 09,46 SAY "Cep........:"
@ 10,05 SAY "Fone..........:"
@ 10,46 SAY "Dt Nascim..:"
@ 11,05 SAY "N§ Identidade.:"
@ 11,46 SAY "N§ CPF.....:"
@ 12,05 SAY "Nome do PAI...:"
@ 13,05 SAY "Nome da MAE...:"
@ 14,05 SAY "Emprego Atual.:"
@ 15,05 SAY "Fone..........:"
@ 15,46 SAY "Tempo Serv.:"
@ 16,05 SAY "Casa Propria..: [SIM/Nao]"
@ 16,46 SAY "Dt.Cadastro:"
@ 17,05 SAY "Libera Credito: [SIM/Nao]"
@ 17,46 SAY "Lim.Credito:"

JANELA(03,63,10,76," MENU ")

COR("MENU")

@ 05,65 PROMPT " Inclusao "
@ 06,65 PROMPT " Alteracao "
@ 07,65 PROMPT " Consulta "
@ 08,65 PROMPT " Delecao "

MENU TO OP

IF LASTKEY() = 27
EXIT
CLS
ENDIF

DO CASE
CASE OP=1
DO WHILE .T.
MENSAGEM("Tecle <ESC> para retornar")

WCOD_CLI := 0
WNOME_CLI := SPACE(40)
WEND_CLI := SPACE(40)
WBAIRRO_CLI := SPACE(15)
WCID_CLI := SPACE(20)
WUF_CLI := SPACE(02)
WCEP_CLI := SPACE(10)
WFONE_CLI := SPACE(13)
WDTNAS_CLI := CTOD("99/99/9999")
WRG_CLI := SPACE(12)
WCPF_CLI := SPACE(14)
WPAI_CLI := SPACE(30)
WMAE_CLI := SPACE(30)
WCASA_CLI := SPACE(01)
WEMPREG_CLI := SPACE(30)
WTEMPO_CLI := SPACE(15)
WFONEMP_CLI := SPACE(13)
WSITUA_CLI := "S"
WLIMITE_CLI := 0
WDADOS1_CLI := SPACE(40)
WDADOS2_CLI := SPACE(40)
WDADOS3_CLI := SPACE(40)
WDTCAD_CLI := DATAATU
WCONF :="S"

JANELA(03,03,19,76,"Cadastro de Clientes")
COR("MENU")

@ 05,05 SAY "Codigo Cliente:"
@ 06,05 SAY "Nome..........:"
@ 07,05 SAY "Endereco......:"
@ 08,05 SAY "Cidade........:"
@ 08,46 SAY "Bairro.....:"
@ 09,05 SAY "Estado........:"
@ 09,46 SAY "Cep........:"
@ 10,05 SAY "Fone..........:"
@ 10,46 SAY "Dt Nascim..:"
@ 11,05 SAY "N§ Identidade.:"
@ 11,46 SAY "N§ CPF.....:"
@ 12,05 SAY "Nome do PAI...:"
@ 13,05 SAY "Nome da MAE...:"
@ 14,05 SAY "Emprego Atual.:"
@ 15,05 SAY "Fone..........:"
@ 15,46 SAY "Tempo Serv.:"
@ 16,05 SAY "Casa Propria..: [SIM/Nao]"
@ 16,46 SAY "Dt.Cadastro:"
@ 17,05 SAY "Libera Credito: [SIM/Nao]"
@ 17,46 SAY "Lim.Credito:"

SELECT 1
SET ORDER TO 1
GO BOTTOM
WCOD_CLI := COD_CLI + 1
WCOD1_CLI :=WCOD_CLI

@ 05,21 GET WCOD_CLI VALID (WCOD_CLI>0) PICT "999999"
READ

IF WCOD_CLI > WCOD1_CLI
MENSAGEM("C¢digo anterior nao utilizado")
INKEY(0)
LOOP
ENDIF

IF LASTKEY() = 27
EXIT
CLS
ENDIF

SELECT 1
SEEK WCOD_CLI
IF FOUND()
WNOME_CLI := NOME_CLI
WEND_CLI := END_CLI
WCID_CLI := CID_CLI
WBAIRRO_CLI := BAIRRO_CLI
WUF_CLI := UF_CLI
WCEP_CLI := CEP_CLI
WFONE_CLI := FONE_CLI
WDTNAS_CLI := DTNAS_CLI
WRG_CLI := RG_CLI
WCPF_CLI := CPF_CLI
WPAI_CLI := PAI_CLI
WMAE_CLI := MAE_CLI
WCASA_CLI := CASA_CLI
WEMPREG_CLI := EMPREG_CLI
WTEMPO_CLI := TEMPO_CLI
WFONEMP_CLI := FONEMP_CLI
WSITUA_CLI := SITUA_CLI
WDTCAD_CLI := DTCAD_CLI
WLIMITE_CLI := LIMITE_CLI
WDADOS1_CLI := DADOS1_CLI
WDADOS2_CLI := DADOS2_CLI
WDADOS3_CLI := DADOS3_CLI

@ 06,21 SAY WNOME_CLI PICT "@!"
@ 07,21 SAY WEND_CLI PICT "@!"
@ 08,21 SAY WCID_CLI PICT "@!"
@ 08,59 SAY WBAIRRO_CLI PICT "@!"
@ 09,21 SAY WUF_CLI PICT "@!"
@ 09,59 SAY WCEP_CLI PICT "99.999-999"
@ 10,21 SAY WFONE_CLI PICT "@!"
@ 10,59 SAY WDTNAS_CLI PICT "@D"
@ 11,21 SAY WRG_CLI PICT "@!"
@ 11,59 SAY WCPF_CLI PICT "999.999.999-99"
@ 12,21 SAY WPAI_CLI PICT "@!"
@ 13,21 SAY WMAE_CLI PICT "@!"
@ 14,21 SAY WEMPREG_CLI PICT "@!"
@ 15,21 SAY WFONEMP_CLI PICT "@!"
@ 15,59 SAY WTEMPO_CLI PICT "@!"
@ 16,21 SAY WCASA_CLI PICT "@!"
@ 16,59 SAY WDTCAD_CLI PICT "@D"
@ 17,21 SAY WSITUA_CLI PICT "@!"
@ 17,59 SAY WLIMITE_CLI PICT "@E 99,999.99"

BEEP()
MENSAGEM("Cliente j  Cadastrado",2)
LOOP

ELSE

@ 06,21 GET WNOME_CLI PICT "@!"
@ 07,21 GET WEND_CLI PICT "@!"
@ 08,21 GET WCID_CLI PICT "@!"
@ 08,59 GET WBAIRRO_CLI PICT "@!"
@ 09,21 GET WUF_CLI PICT "@!"
@ 09,59 GET WCEP_CLI PICT "99.999-999"
@ 10,21 GET WFONE_CLI PICT "@!"
@ 10,59 GET WDTNAS_CLI PICT "@D"
@ 11,21 GET WRG_CLI PICT "@!"
@ 11,59 GET WCPF_CLI PICT "999.999.999-99"
@ 12,21 GET WPAI_CLI PICT "@!"
@ 13,21 GET WMAE_CLI PICT "@!"
@ 14,21 GET WEMPREG_CLI PICT "@!"
@ 15,21 GET WFONEMP_CLI PICT "@!"
@ 15,59 GET WTEMPO_CLI PICT "@!"
@ 16,21 GET WCASA_CLI PICT "@!"
@ 16,59 GET WDTCAD_CLI PICT "@D"
@ 17,21 GET WSITUA_CLI PICT "@!" VALID WCONF $ "SN"
@ 17,59 GET WLIMITE_CLI PICT "@E 99,999.99"
READ

IF LASTKEY() = 27
EXIT
CLS
ENDIF

JANELA(07,19,13,62," Outras Informa‡äes ")
COR("MENU")

@ 09,21 GET WDADOS1_CLI PICT "@!"
@ 10,21 GET WDADOS2_CLI PICT "@!"
@ 11,21 GET WDADOS3_CLI PICT "@!"
READ

IF LASTKEY() = 27
EXIT
CLS
ENDIF

IF WNOME_CLI = SPACE(40)
BEEP()
MENSAGEM("Nome Cliente nÆo pode ser em branco",2)
EXIT
CLS
ENDIF

MENSAGEM("Confirma (S/N):")
@ 24,48 GET WCONF PICT "@!" VALID WCONF $ "SN"
READ

IF WCONF = "S"
SELECT 1
IF! FOUND()
APPEND BLANK
ENDIF
REPLACE COD_CLI WITH WCOD_CLI
REPLACE NOME_CLI WITH WNOME_CLI
REPLACE END_CLI WITH WEND_CLI
REPLACE CID_CLI WITH WCID_CLI
REPLACE BAIRRO_CLI WITH WBAIRRO_CLI
REPLACE UF_CLI WITH WUF_CLI
REPLACE CEP_CLI WITH WCEP_CLI
REPLACE FONE_CLI WITH WFONE_CLI
REPLACE DTNAS_CLI WITH WDTNAS_CLI
REPLACE RG_CLI WITH WRG_CLI
REPLACE CPF_CLI WITH WCPF_CLI
REPLACE PAI_CLI WITH WPAI_CLI
REPLACE MAE_CLI WITH WMAE_CLI
REPLACE EMPREG_CLI WITH WEMPREG_CLI
REPLACE TEMPO_CLI WITH WTEMPO_CLI
REPLACE CASA_CLI WITH WCASA_CLI
REPLACE FONEMP_CLI WITH WFONEMP_CLI
REPLACE DTCAD_CLI WITH WDTCAD_CLI
REPLACE SITUA_CLI WITH WSITUA_CLI
REPLACE LIMITE_CLI WITH WLIMITE_CLI
REPLACE DADOS1_CLI WITH WDADOS1_CLI
REPLACE DADOS2_CLI WITH WDADOS2_CLI
REPLACE DADOS3_CLI WITH WDADOS3_CLI
ELSE
MENSAGEM("InclusÆo nÆo Efetuada",1)
LOOP
ENDIF
ENDIF
ENDDO
Pedro Junior
Usuário Nível 1
Usuário Nível 1
Mensagens: 34
Registrado em: 20 Ago 2003 00:54
Localização: Recife/PE

Mensagem por Pedro Junior »

Antes de você gerar os indices vc precisa informar qual RDD vai ser usado

REQUEST DBFCDX
RDDSETDEFAULT("DBFCDX")

ind1 := "CLIENTE.CDX"

SELECT 1
USE CLIENTE SHARED NEW
IF !FOUND(IND1)
INDEX ON COD_CLI TAG INDICE1 TO (IND1)
INDEX ON NOME_CLI TAG INDICE2 TO (IND1)
ENDIF
SET INDEX TO (IND1)


Quando for linkar tem que usar as libs Dbfcdx.lib e _dbfcdx.lib
Um abraço
Pedro Junior
Avatar do usuário
Ale SB
Usuário Nível 3
Usuário Nível 3
Mensagens: 201
Registrado em: 20 Jul 2004 17:30
Localização: Campo Grande / MS

Mensagem por Ale SB »

Marcio, dê uma olhada neste Tópico:

https://pctoledo.org/forum/viewtopic.php?t=3151

Outra coisa, vc só vai Linkar com a LIB _dbfcdx.lib, se estiver usando o CL 53, senao eh só o dbfcdx.lib, uma dica, o CL 53, trabalha melhor com arquivos CDX.

Qulaquer duvida, eh só chamar, blz.

@braços Ale
Imagemr]
Marcio Antonio Ril
Usuário Nível 1
Usuário Nível 1
Mensagens: 42
Registrado em: 13 Set 2005 11:55

Ainda nuam incrementa

Mensagem por Marcio Antonio Ril »

Amigo Pedro, fiz a modificações e mesmo assim ainda naum está incrementando, estou usando o GO BOTTOM, veja abaixo.

SELECT 1
SET ORDER TO 1
GO BOTTOM
WCOD_CLI := COD_CLI + 1
WCOD1_CLI :=WCOD_CLI

Deveria ir ao final do arquivo, pegar o ultimo resgistro cadastrado e incrementar + 1, mais naum faz isso de jeito nenhum, já revirei o codigo e naum vejo nada errado.

Atenciosamente,

MArcio Ril
Avatar do usuário
lgr
Usuário Nível 1
Usuário Nível 1
Mensagens: 25
Registrado em: 06 Set 2005 00:02
Localização: Rio de Janeiro-RJ

Mensagem por lgr »

Tenta assim:
INDEX ON strzero(COD_CLI) TAG IND1 TO INDCLI
Responder