Uma vez, li no livro ( Clipper 5.2 - Ferramentas Poderosas - Stephen Straley ), alguma coisa sobre relacionamento entre DBFs, alguem sabe me explicar como fazer, como funciona exatamente etc
Isso cabe mais por uma questão de curiosidade mesmo!!
Moderador: Moderadores


Código: Selecionar todos
PROCEDURE Main()
LOCAL aStruct1 := { ;
{ "CODIGO", "C", 3, 0 }, ;
{ "NOME" , "C",30, 0 }}
LOCAL aStruct2 := { ;
{ "DATA" , "D", 8, 0 }, ;
{ "NOTA" , "C", 5, 0 }, ;
{ "COD_CLI" , "C", 5, 0 }}
CLS
/* Criando os DBF */
DbCreate( "clientes", aStruct1 )
DbCreate( "vendas", aStruct2 )
/* abrindo o arquivo CLIENTES e incluindo alguns registros */
Use clientes New
index on CODIGO to cli1
Clientes->( DbAppend() )
REPLACE codigo WITH "001", nome WITH "PAULO TOLEDO"
Clientes->( DbAppend() )
REPLACE codigo WITH "002", nome WITH "ALEXANDRE SANTOS"
Clientes->( DbAppend() )
REPLACE codigo WITH "003", nome WITH "ALEXANDRE BENCZ"
/* abrindo o arquivo VENDAS e incluindo alguns registros */
Use vendas New
index on DTOS(data) to vends1
vendas->( DbAppend() )
REPLACE data WITH DATE()-10, nota WITH "00101", cod_cli WITH "002"
vendas->( DbAppend() )
REPLACE data WITH DATE()-9, nota WITH "00102", cod_cli WITH "003"
vendas->( DbAppend() )
REPLACE data WITH DATE()-8, nota WITH "00103", cod_cli WITH "001"
vendas->( DbAppend() )
REPLACE data WITH DATE()-7, nota WITH "00104", cod_cli WITH "003"
vendas->( DbAppend() )
REPLACE data WITH DATE()-6, nota WITH "00105", cod_cli WITH "001"
vendas->( DbAppend() )
REPLACE data WITH DATE()-5, nota WITH "00106", cod_cli WITH "002"
vendas->( DbAppend() )
REPLACE data WITH DATE()-4, nota WITH "00107", cod_cli WITH "002"
vendas->( DbAppend() )
REPLACE data WITH DATE()-3, nota WITH "00108", cod_cli WITH "003"
/* fazendo o relacionamento do arquivo CLIENTES pelo campo
COD_CLI do arquivo VENDAS */
* Sintaxe: Set Relation To <Campo> Into <Alias>
SET RELATION TO COD_CLI INTO CLIENTES
GO TOP
DO WHILE !EOF()
? DATA, NOTA, COD_CLI, CLIENTES->NOME
SKIP
ENDDO
/* finalizando o relation */
SET RELATION TO
CLOSE ALL
FERASE("CLIENTES.DBF")
FERASE("CLI1.NTX")
FERASE("VENDAS.DBF")
FERASE("VENDS1.NTX")
RETU