Projeto Cadastro Simples

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

jvcfigueiredo
Usuário Nível 1
Usuário Nível 1
Mensagens: 5
Registrado em: 14 Jun 2025 17:57
Localização: Carmo de Minas

Projeto Cadastro Simples

Mensagem por jvcfigueiredo »

boa noite
estou tentando compilar esse codigo mas está dando erro sou novo em programação, se alguem puder me ajudar

Código: Selecionar todos

// Arquivo: cadastro.prg

#include "inkey.ch" // Para teclas
#include "setcurs.ch" // Para o cursor

REQUEST DBFCDX // Para usar o driver de índice CDX

//----------------------------------------------------------------------------//
FUNCTION Main()
//----------------------------------------------------------------------------//

   LOCAL nOpcao := 0

   SETMODE( 25, 80 ) // Define modo de tela
   SETCURSOR( SC_NONE ) // Oculta o cursor padrão

   // Abre ou cria o arquivo de dados
   IF ! ( "DADOS" $ SET( _SET_DBF_AREAS ) ) // Verifica se a area de trabalho DADOS esta aberta
      IF ! FILE( "DADOS.DBF" ) // Se o arquivo nao existe, cria
         DBCREATE( "DADOS.DBF", { ;
                  { "NOME",    "C", 50, 0 }, ;
                  { "CPF",     "C", 14, 0 }, ;
                  { "BAIRRO",  "C", 50, 0 }, ;
                  { "RUA",     "C", 50, 0 }, ;
                  { "NUMERO",  "N",  6, 0 } } )
         USE DADOS NEW ALIAS DADOS EXCLUSIVE VIA "DBFCDX" // Abre o arquivo recem criado
         INDEX ON CPF TAG CPF UNIQUE TO DADOS ALIAS DADOS // Cria indice por CPF
         INDEX ON NOME TAG NOME TO DADOS ALIAS DADOS      // Cria indice por Nome
      ELSE
         USE DADOS NEW ALIAS DADOS VIA "DBFCDX" // Abre o arquivo existente
         // Verifica se os indices existem, se nao, cria
         IF ! INDEXKEY(1) == "CPF"
             INDEX ON CPF TAG CPF UNIQUE TO DADOS ALIAS DADOS
         ENDIF
         IF ! INDEXKEY(2) == "NOME"
             INDEX ON NOME TAG NOME TO DADOS ALIAS DADOS
         ENDIF
      ENDIF
   ENDIF

   DO WHILE nOpcao != 5
      CLS // Limpa a tela
      @ 02, 25 SAY "--- SISTEMA DE CADASTRO SIMPLES ---" COLOR "W+/B"
      @ 04, 30 SAY "1. Cadastrar"
      @ 05, 30 SAY "2. Pesquisar"
      @ 06, 30 SAY "3. Alterar Cadastro"
      @ 07, 30 SAY "4. Excluir Cadastro"
      @ 08, 30 SAY "5. Sair"
      @ 10, 25 SAY "Escolha uma opção: " GET nOpcao PICTURE "9" VALID ( nOpcao >= 1 .AND. nOpcao <= 5 )
      READ

      DO CASE
         CASE nOpcao == 1
            Cadastrar()
         CASE nOpcao == 2
            Pesquisar()
         CASE nOpcao == 3
            AlterarCadastro()
         CASE nOpcao == 4
            ExcluirCadastro()
      ENDCASE

   ENDDO

   CLOSE ALL // Fecha todos os arquivos abertos
   CLS
   @ MAXROW()/2, MAXCOL()/2 - 10 SAY "Obrigado por usar!"
   WAIT ""

RETURN NIL

//----------------------------------------------------------------------------//
Editado pela última vez por Jairo Maia em 14 Jun 2025 18:13, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Projeto Cadastro Simples

Mensagem por Jairo Maia »

Olá jvcfigueiredo,

Que tipo de erro? Seja mais específico. É na compilação? Ou compila e dá erro ao rodar? etc...
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Projeto Cadastro Simples

Mensagem por Itamar M. Lins Jr. »

Olá!

Bem vindo ao forum!
Cadê o erro ?
Não sei. Mas não pega código de IA, e cola sem informar(não sei se foi de IA)
SET( _SET_DBF_AREAS ) -> Esse é novidade. Nunca vi.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
jvcfigueiredo
Usuário Nível 1
Usuário Nível 1
Mensagens: 5
Registrado em: 14 Jun 2025 17:57
Localização: Carmo de Minas

Projeto Cadastro Simples

Mensagem por jvcfigueiredo »

Eu peguei algumas coisas da IA para me ajudar, como disse sou novo em programação, ao tentar compilar ele dá erro
jvcfigueiredo
Usuário Nível 1
Usuário Nível 1
Mensagens: 5
Registrado em: 14 Jun 2025 17:57
Localização: Carmo de Minas

Projeto Cadastro Simples

Mensagem por jvcfigueiredo »

Se alguém puder me ajudar é um cadastro bem simples mesmo em harbour
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Projeto Cadastro Simples

Mensagem por JoséQuintas »

Entendi menos ainda, se cadastrar, e já enviar mensagem particular pedindo ajuda.

Código: Selecionar todos

IF ! ( "DADOS" $ SET( _SET_DBF_AREAS ) ) // Verifica se a area de trabalho DADOS esta aberta
Nunca vi isso, não sei se existe.
Se o fonte chama outras rotinas, e as rotinas não existem, vai dar erro na compilação.
É normal isso.
Ou cria as rotinas, ou não faz chamada para o que não existe.

Código: Selecionar todos

 DO CASE
	         CASE nOpcao == 1
	            Cadastrar()
	         CASE nOpcao == 2
	            Pesquisar()
	         CASE nOpcao == 3
	            AlterarCadastro()
	         CASE nOpcao == 4
	            ExcluirCadastro()
	      ENDCASE
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
jvcfigueiredo
Usuário Nível 1
Usuário Nível 1
Mensagens: 5
Registrado em: 14 Jun 2025 17:57
Localização: Carmo de Minas

Projeto Cadastro Simples

Mensagem por jvcfigueiredo »

É que sou novo em programação, ai peguei algumas coisas de IA para me ajudar. ,mas ao tentar compilar dar erro
seria um cadastro bem simples mesmo em harbour
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Projeto Cadastro Simples

Mensagem por Itamar M. Lins Jr. »

Olá!
É que sou novo em programação, ai peguei algumas coisas de IA para me ajudar. ,mas ao tentar compilar dar erro
seria um cadastro bem simples mesmo em harbour
Tem tantos prontos. Veja algum livro antigo, ou procure os fontes prontos na internet.
Assim, vc não vai aprender, pq será nós aqui consertando IA. E vamos ficar correndo atraz de IA e de vc e é muito cansativo.
Vc precisa colocar o erro e dizer pq não entendeu. O que vc não entendeu ?
Não é ficar colocando código de IA pra consertamos sem vc entender nada.
Tem coisa ai que não existe. Vc precisa ser mais específico. Tudo de vez, vc não vai aprender com esse pequeno código.
Faça perguntas simples.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Projeto Cadastro Simples

Mensagem por JoséQuintas »

Talvez outras questões:

Porque harbour ?
O que exatamente instalou pra testar ?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
jvcfigueiredo
Usuário Nível 1
Usuário Nível 1
Mensagens: 5
Registrado em: 14 Jun 2025 17:57
Localização: Carmo de Minas

Projeto Cadastro Simples

Mensagem por jvcfigueiredo »

Bom eu sempre gostei de sistemas antigos, uma vez fiz estágio em uma empresa que usava o clipper, porém como não entendia muito mal sabia o que era, na verdade ainda não sei, estou tentando usar a IA para poder fazer um sistema de cadastro simples, gostei do harbour pois é um avanço do clipper, já fiz alguns programinhas em BAT, mas queria algo mais complexo, estou usando IA sim pois nem entendo muita coisa, seria mais uma curiosidade do que realmente aprender ponto a ponto até pq não teria muito tempo pra isso.
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Projeto Cadastro Simples

Mensagem por Jairo Maia »

Tente então compilar esse exemplo, e estude a partir dele, ok?

NOTA: Se você pegou esse exemplo por IA, provavelmente também tem as funções: Cadastrar(), Pesquisar(), AlterarCadastro() e ExcluirCadastro(), elas precisam ser colocadas no arquivo do exemplo.

Código: Selecionar todos

// Arquivo: cadastro.prg

#include "inkey.ch" // Para teclas
#include "setcurs.ch" // Para o cursor

REQUEST HB_CODEPAGE_PT850  // Coloca a CodePage em OEM Português
REQUEST HB_LANG_PT  // Coloca as mensagens de erros em Português

REQUEST DBFCDX // Para usar o driver de índice CDX

//----------------------------------------------------------------------------//
FUNCTION Main()
//----------------------------------------------------------------------------//

   LOCAL nOpcao := 0
   
   SET SCOREBOARD OFF  // habilita uso da linha 0
 
   SET AUTOPEN ON      // abre automaticamente o indice de mesmo nome do dbf (sem a extensão)
   SET AUTORDER TO 1   // aloca a ordem 1 como corrente, se omitir, o padrão é 0 (zero)
   
   SET DATE BRIT  // define datas no formato "britanico/brasileiro"
   
   SET CENTURY ON  // Habilita data com ano de 4 dígitos
   
   RDDSETDEFAULT( "DBFCDX" )
   DBSETDRIVER( "DBFCDX" )
   
   HB_LANGSELECT( "PT" )
   HB_CDPSELECT( "PT850" )
   
   SETMODE( 25, 80 ) // Define modo de tela

   IF ! FILE( "DADOS.DBF" ) // Se o arquivo nao existe, cria
   
      DBCREATE( "DADOS.DBF", { ;
               { "NOME",    "C", 50, 0 }, ;
               { "CPF",     "C", 14, 0 }, ;
               { "BAIRRO",  "C", 50, 0 }, ;
               { "RUA",     "C", 50, 0 }, ;
               { "NUMERO",  "N",  6, 0 } } )
               
      USE DADOS NEW ALIAS DADOS EXCLUSIVE VIA "DBFCDX" // Abre o arquivo recem criado
      
      INDEX ON ( CPF ) TAG CPF TO "DADOS"  // Cria indice por CPF
      
      INDEX ON ( NOME ) TAG NOME TO "DADOS"  // Cria indice por Nome
      
   ELSEIF SELECT( "DADOS" ) = 0
   
      USE ( "DADOS.DBF" ) ALIAS "DADOS" EXCLUSIVE NEW
      SET INDEX TO "DADOS"
   
   ENDIF

   DO WHILE nOpcao != 5
   
      CLS // Limpa a tela
      
      @ 02, 25 SAY "--- SISTEMA DE CADASTRO SIMPLES ---" COLOR "W+/B"
      @ 04, 30 SAY "1. Cadastrar"
      @ 05, 30 SAY "2. Pesquisar"
      @ 06, 30 SAY "3. Alterar Cadastro"
      @ 07, 30 SAY "4. Excluir Cadastro"
      @ 08, 30 SAY "5. Sair"
      @ 10, 25 SAY "Escolha uma opção: " GET nOpcao PICTURE "9" VALID ( nOpcao >= 1 .AND. nOpcao <= 5 )
      READ

      DO CASE
         CASE nOpcao == 1
            Hb_Alert( "Colocar a função Cadastrar()")
            //Cadastrar()
         CASE nOpcao == 2
            Hb_Alert( "Colocar a função Pesquisar()")
            //Pesquisar()
         CASE nOpcao == 3
            Hb_Alert( "Colocar a função AlterarCadastro()")
            //AlterarCadastro()
         CASE nOpcao == 4
            Hb_Alert( "Colocar a função ExcluirCadastro()")
            //ExcluirCadastro()
      ENDCASE

   ENDDO

   CLOSE ALL // Fecha todos os arquivos abertos
   CLS
   @ MAXROW()/2, MAXCOL()/2 - 10 SAY "Obrigado por usar!"
   WAIT ""

RETURN NIL

//----------------------------------------------------------------------------//
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Projeto Cadastro Simples

Mensagem por sygecom »

De uma olhada nesse documento do Vladimir que ajuda muito para quem está iniciando.
https://sagierp.com.br/devel/aulas/Harbour2ed.pdf
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder