quarta-feira, 28 de maio de 2008

Dica - Set Relation

Para quem tem dúvidas no Set Relation segue aqui uma dica:

Supondo uma tabela de contas a receber onde queremos relacionar cada título com seu respectivo sacado (por CPF) na tabela de clientes (a qual deverá estar indexada e com a ordem setada para CPF) e com o banco (por banco e agência) na tabela de custódias (a qual deverá estar indexada e com a ordem setada para Banco+Agencia). Veja também que a ordem setada na tabela de contas a receber não tem importância, pois o relacionamento se dá através do conteúdo de seus campos.

DBSelectArea( 1 )
Use ArqReceb Shared Alias Receb
Set Index To ArqReceb
DBSelectArea( 2 )
Use ArqClien Shared Alias Clien
Set Index To ArqClien
DBSelectArea( 3 )
Use ArqTbage Shared Alias Tbage
Set Index To ArqTbage
....

// setando a ordem selecionada (CPF)
Clien->( DBSetorder( 1 ) )
// setando a ordem selecionada (Banco+Agencia)
Tbage->( DBSetorder( 1 ) )
// este aqui pode estar em qualquer ordem
Receb->( DBSetorder( 2 ) )
// Limpa qualquer relacionamento anterior
Receb->( DBClearRel() )
// Criando os relacionamentos
Receb->( DBSetRelation( "Tbage", ;
{ Receb->Bancus + Receb->Agecus }, ;
"Receb->Bancus + Receb->Agecus" ) )

Receb->( DBSetRelation( "Clien", ;
{ SubStr( Receb->Cgccpf, 1, 11) }, ;
"SubStr( Receb->Cgccpf, 1, 11 )" ) )
// Ativando os relacionamentos
Receb->( DBGoTop() )

e pronto relacionamentos criados.

Nenhum comentário:

Postar um comentário