sr. Quintas..
Obrigado pelo conselho
JoséQuintas escreveu:A questão é:
O que quer que o método faça?
Não dá pra criar um método sem saber pra que vai servir.
método é igual uma função, se sabe criar função, é só fazer o método igual.
Eu consegui construir o fonte... mas acabei pegando o seu exemplo pra deixar mais organizado
JoséQuintas escreveu:Da parte que se sabe o que quer....
//programa cadastra e exclui arquivos de uma tabela dbf
# include "hbclass.ch"
# include "inkey.ch"
REQUEST DBFCDX
procedure main()
LOCAL oClasse := Cadastro():New()
config()
oClasse:Execute()
RETURN
CREATE CLASS cadastro
VAR nOpc INIT 1
METHOD Execute()
METHOD Tela()
METHOD Menu()
METHOD Inclui()
METHOD Exclui()
ENDCLASS
//configurações de inicialização
FUNCTION config()
SET DELETE ON // excluir elemento de uma tabela
SET ESCAPE ON // Esc para fechar a tela a qualquer momento
SET DATE BRITISH // converte data para a versao dd/mm/yy
SET CENTURY ON // exibe o ano em quatro digitos
SET delimiters on// ativa os delimitadores
SET delimiters to "::" // informa como serao os delimitadores
SET wrap on // quando chega no ultimo prompt ele volta ao primeiro
SET message to MaxRow() center // exibe menssagem na ultima linha
use cadastro alias registros
index on codigo to registros
set index to registros
RETURN
//menu opções
METHOD Execute() CLASS cadastro
::tela()
DO WHILE .T.
::menu()
DO CASE
CASE LastKey() == K_ESC; EXIT
CASE ::nOpc == 1; ::Inclui()
CASE ::nOpc == 2; ::Exclui()
CASE ::nOpc == 3; EXIT
ENDCASE
ENDDO
RETURN NIL
//tela de apresentação
METHOD Tela() CLASS cadastro
@ 0, 0 to 3, maxcol () DOUBLE
@ 1, 2 say "SISTEMA DE CADASTRO PARA PESSOAS FISICAS"
@ 1, maxcol () -15 say "Data:"+Dtoc(date())
@ 2, maxcol () -15 SAY "Hora:"+Time()
@ 2, 2 say "cadastro de clientes"
@ 4, 0 to MaxRow(), maxcol ()
RETURN NIL
//opções do menu
METHOD menu() CLASS cadastro
::tela()
@ 13, 24 to 20, 50 DOUBLE
@ 14, 26 prompt " Efetuar cadastrando " message "preencher formulario para cadastro"
@ 16, 26 prompt " excluir cadastro " message "apagar clientes da tabela"
@ 18, 26 prompt " sair " message "fechar programa"
Menu to ::nOpc
RETURN NIL
//incluindo um cliente na tabela
METHOD Inclui() CLASS cadastro
local cNome := space(30)
local nTele := 0
local cCpf := 0
local dDate := ctod( "//" )
local cod := 0
CLS
DbGoBottom()
cod := codigo
cod++
read
::tela()
//formulário para preencher
@ 07, 05 SAY "Digite seu nome....:" get cNome
@ 09, 05 SAY "Numero para contato:" get nTele
@ 11, 05 say "numero de cpf......:" get cCpf
@ 13, 05 say "Data de nascimento.:" get dDate
read
CLS
//salvando na tabela
append blank
REPLACE NOME WITH cNome, ;
CONTATO WITH nTele, ;
DATE WITH dDate, ;
CPF WITH cCpf , ;
codigo WITH cod
wait "cadastro efetuado com sucesso!"
CLS
RETURN NIL
//excluindo arquivo da tabela
METHOD Exclui() CLASS cadastro
public codCli := 0
CLS
::tela()
@ 07, 05 say "digite o codigo do cliente:" get codCli
read
if DbSeek( codCli )
DELETE
wait "Registro apagado com sucesso"
else
wait "ESSE REGISTRO NAO EXISTE !"
endif
CLS
RETURN NIL
E aqui esta a pequena tabela que criei tbm
request DBFCDX
procedure main()
registros := { ;
{ "codigo" , "N", 03, 0 }, ;
{ "NOME" , "C", 30, 0 }, ;
{ "CONTATO" , "N", 12, 0 }, ;
{ "DATE" , "D", 08, 0 }, ;
{ "CPF" , "N", 12, 0 } ;
}
DbCreate( "cadastro", registros, "DBFCDX", "MYALIAS" )
Browse()
RETURN
agradeço muito a vcs
vcs são feras :-Y :))