Descrição
dbSetIndex [AS] - Obtêm informações sobre determinada ordem..
|
Sintaxe
| dbSetFilter( <cArqIndice> ) |
Parâmetros
| Par |
Nome |
Tipo |
Descrição |
Default |
Obg |
Ref |
01
|
cArqIndice
|
Caracter
|
Indica o nome do arquivo de índice, com ou sem diretório
|
|
|
|
Retorno
| Retorno |
Tipo |
Descrição |
| xRet |
Indefinido
|
Retorna a informação da ordem requisitada pelo usuário (tipo numérico, se for número de ordens no índice, tipo caracter, se for nome do arquivo de índice. Caso não exista a ordem corrente ou a posição da ordem é inválida, o retorno será nulo ("")
|
Exemplo
#INCLUDE "TOTVS.CH"
Static cCRLF := CRLF
User Function dbSetIndex()
Local cDriver := __LocalDriver
Local cExtens := '.DTC'
Local cNomArq := "TESTE" + "9"+StrZero(Seconds(),5,0)
Local cIndArqA := Subs(cNomArq,1,7)+"A"
Local cIndArqB := Subs(cNomArq,1,7)+"B"
Local cIndArqC := Subs(cNomArq,1,7)+"C"
Local aCampos := {}
cQuery := cCRLF + " SELECT "
cQuery += cCRLF + " A1_COD,A1_NOME,A1_MUNC "
cQuery += cCRLF + " FROM "
cQuery += cCRLF + RetSqlName("SA1") + " SA1 "
cQuery += cCRLF + " WHERE "
cQuery += cCRLF + " SA1.D_E_L_E_T_ <> '*' "
aAdd( aCampos, { "A1_COD" , "C", TamSX3("A1_COD")[1] , TamSX3("A1_COD")[2] } )
aAdd( aCampos, { "A1_NOME" , "C", TamSX3("A1_NOME")[1] , TamSX3("A1_NOME")[2] } )
aAdd( aCampos, { "A1_MUNC" , "C", TamSX3("A1_NOME")[1] , TamSX3("A1_NOME")[2] } )
dbCreate( cNomArq, aCampos, cDriver )
dbUseArea( .T.,, cNomArq, 'TRB', .T., .F. )
IndRegua( 'TRB', cIndArqA,'A1_COD+A1_NOME',,,"Selecionando Registros...")
IndRegua( 'TRB', cIndArqB,'A1_NOME',,,"Selecionando Registros...")
IndRegua( 'TRB', cIndArqC,'A1_MUNC',,,"Selecionando Registros...")
dbClearIndex()
dbSetIndex( cIndArqA + OrdBagExt() )
dbSetIndex( cIndArqB + OrdBagExt() )
dbSetIndex( cIndArqC + OrdBagExt() )
SqlToTrb( cQuery, aCampos, 'TRB' )
TRB->( dbSetOrder( 3 ) )
TRB->( dbSeek( 'SBCAMPO ' ) )
MsgInfo( TRB->A1_COD, 'UniversoADVPL' )
TRB->( dbCloseArea() )
If File( cNomArq + cExtens ) //Elimina o arquivo de trabalho
Ferase( cNomArq + cExtens )
Ferase( cIndArqA + OrdBagExt() )
Ferase( cIndArqB + OrdBagExt() )
Ferase( cIndArqC + OrdBagExt() )
Endif
Return( Nil )
Resultado
Informações adicionais
|
Quando o arquivo de índice possui apenas uma ordem, a mesma é acrescentada na lista e torna-se ativa
|
|
Quando o índice possui mais de uma ordem, todas são acrescentadas na lista e a primeira torna-se ativa
|
|
Para se utilizar arquivos de extensão padrão do RDD, este dado pode ser omitido no primeiro parâmetro, mas caso contrário deve ser especificado
|
Gostou? Compartilhe com seus amigos e deixe um comentário! 😎