"Crie um crud de produto em harbour"
Espera que ele me responde-se, que não tinha informação suficiente para gerar o programa.
Demorou uns 5 segundos e para minha surpresa a resposta foi:
Para criar um CRUD de produto em Harbour, é necessário seguir alguns passos básicos:
Definir a estrutura da tabela de produtos
Criar as telas de entrada de dados (formulários) e listagem (relatórios)
Implementar as funções de criar, ler, atualizar e excluir produtos
Vamos ver cada um desses passos em mais detalhes:
1 - Definir a estrutura da tabela de produtos
Antes de começar a criar as telas e funções, é importante definir a estrutura da tabela de produtos. Ela pode ser criada em um banco de dados, mas para fins de exemplo, vamos criar uma tabela simples em memória usando um array.
Código: Selecionar todos
PRIVATE aProdutos := {}
aProdutos[1] := { id := 1, nome := "Produto 1", preco := 10.0 }
aProdutos[2] := { id := 2, nome := "Produto 2", preco := 20.0 }
2 - Criar as telas de entrada de dados (formulários) e listagem (relatórios)
Para criar as telas de entrada de dados e listagem, podemos usar o comando READ para ler dados do usuário e o comando LIST para mostrar os produtos cadastrados. Vamos criar dois formulários simples: um para cadastrar um novo produto e outro para editar um produto existente.
Código: Selecionar todos
PROCEDURE CadastroProduto()
LOCAL nId, cNome, nPreco
CLS
@ 1, 10 SAY "Cadastro de Produto" COLOR "W+/B"
@ 3, 2 SAY "Nome do Produto:" GET cNome SIZE 50
@ 5, 2 SAY "Preço do Produto:" GET nPreco SIZE 10
nId := Len(aProdutos) + 1
aProdutos[nId] := { id := nId, nome := cNome, preco := nPreco }
ALERT("Produto cadastrado com sucesso!")
RETURN
PROCEDURE EditaProduto(nProduto)
LOCAL nId, cNome, nPreco
CLS
@ 1, 10 SAY "Edição de Produto" COLOR "W+/B"
@ 3, 2 SAY "Nome do Produto:" GET cNome SIZE 50
@ 5, 2 SAY "Preço do Produto:" GET nPreco SIZE 10
aProdutos[nProduto].nome := cNome
aProdutos[nProduto].preco := nPreco
ALERT("Produto atualizado com sucesso!")
RETURN
Código: Selecionar todos
PROCEDURE ListaProdutos()
LOCAL nProduto
CLS
@ 1, 10 SAY "Listagem de Produtos" COLOR "W+/B"
FOR nProduto := 1 TO Len(aProdutos)
@ nProduto + 2, 2 SAY aProdutos[nProduto].id
@ nProduto + 2, 6 SAY aProdutos[nProduto].nome
@ nProduto + 2, 40 SAY aProdutos[nProduto].preco
NEXT
SET COLOR "W+/B"
@ nProduto + 3, 2 SAY "Pressione ESC para voltar"
READ
RETURN
---------------------------------------------------------------------------
Tem alguns erros de array, mas se continuar neste ritmo, logo logo vai acertar.


