Você está na página 1de 6

12/3/2014 BlackTDN: Protheus :: Advpl :: Dicas do Robson :: Usando UniqueKey() para filtrar registros

BlackTDN
Reverberando: programação avançada em ADVPL; dicas; truques; tutoriais; downloads; pensamentos; psicografias e viagens astrais além de uma "boa música" para relaxar.

Início CheckOut (GitHub) Externos Harbour SoundTrack Os Mulheres Negras Back To Black O GRITO Doações

Tools GitHub XPERIA ROMs

Visitantes BlackTDN Search

468,392

Seguidores

terça-feira, 11 de outubro de 2011


Participar deste site
Google Friend Connect

Membros (291) Mais »


Protheus :: Advpl :: Dicas do Robson :: Usando UniqueKey() para filtrar registros

Função: UniqueKey( <uFields> , <cAlias>, <lResetKeys>, <nMaxRec> )

Objetivo: Verificar se a chave passada é única de acordo com o campo ou campos passados nos
parâmetros. Esta função ajuda a apresentar um único registro quando houver vários semelhantes, por
exemplo: Fazer consulta SXB na tabela SC7, porém apresentando um registro por pedido de compra
independente de quantos itens existam.

Parâmetros:
Já é um membro? Fazer login
uFields – String contendo o campo ou Array unidimensional com as strings dos campos que que serão
considerados para pesquisa da chave única.

cAlias – Alias do arquivo para pesquisa.

lResetKeys – Reinicializa as chaves.

nMaxRec – Número máximo de elementos.

Essa mesma dica poderá, por extensão, servir ao fitro do MPSDU/APSDU como abaixo:

!Deleted().and.C7_EMISSAO>=FirstDate(Date()).and.C7_EMISSAO<=LastDate(Date()).and.
UniqueKey({"C7_FILIAL","C7_NUM"})

Irá retornar todos os primeiros n registros da tabela SC7, não deletados, com a data de emissão dentro do mês corrente.

Dada a característica da Função UniqueKey() o intervalo de dados não poderá ser muito grande por dois motivos
Reverbere BlackTDN
Performance;

Tamanho máximo da “Pilha” de armazenamento;

Logo, para tabela com muitos registros, uma condição complementar deverá ser utilizada como filtro “primário” e excludente.

<div align="center" Exemplo:


id="BlackTDN">
<a
href=http://www.blacktd
n.com.br
target="_blank">
<img border="0"
BlackTDN :: Donations
title="BlackTDN"
alt="BlackTDN"
src="http://goo.gl/KtCJ
N"/>
</a>
</div>

Comentários Recentes

Casadei Claudio commented on


Blacktdn Consumindo
Webservice Do: “ola. naldo. vc
tem condicoes de exemplos
como consumir o webservice da
vtex.com.br em php?”

TopTVZ commented on
Protheus Advl Tsocketclient:
“estou atras de documentacao
para comunicacao com henry
para importar direto para o
protheus. alguem…”

TopTVZ commented on
Protheus Advl Tsocketclient:
http://www.blacktdn.com.br/2011/10/protheus-advpl-dicas-do-robson-usando.html 1/6
12/3/2014 BlackTDN: Protheus :: Advpl :: Dicas do Robson :: Usando UniqueKey() para filtrar registros
“consegui! no final da string
tinha que colocar +chr(0)”

Gleydson Hudson commented


on E Ai Galera Beleza Entao:
“Gostaria de saber como faço
para utilizar as funções
AxAltera, AxDeleta na função
mBrowse. Quando…”

Anonymous commented on
Para Quem Precisar
Desenvolver Uma: “Salvou
minha vida....
ameiiiObrigadaLuciana”
Recent Comments Widget

Postagens Populares

Protheus ::
Desvendando o
sigapss.spf
Atendendo a uma
reivindicação
antiga, começarei a postar
neste blog algumas dicas à
respeito dos segredos do
Protheus. E o primeiro artigo
n...

Protheus :: Recuperando o
Usuário Administrador no
Protheus 10
São muitos os motivos que Filtrando com:
levam a "perda" da senha do
Administrador do Protheus.
!Deleted().and.C7_EMISSAO>=FirstDate(Date()).and.C7_EMISSAO<=LastDate(Date()).and.
Esquecimento, saída do
Administrador da empresa, ... UniqueKey({"C7_FILIAL","C7_NUM"})

Protheus :: Advpl :: Dica :: teremos:


Robson Luiz :: Texto íntegro
das opções do controle de
acessos de usuários
“”Hoje precisei listar todas as
opções do controle de acessos
do usuários, esta lista fica na
configuração por usuário no
configurador, poré...

Protheus :: Exemplo de
WebService para Consulta ao
CEP
A dica de hoje é um exemplo de
WebService em advpl para a
consulta ao CEP (Código de
Endereçamento Postal)
baseado no site Republica V...

Protheus ::
"Integrando o
Totvs
Development
Studio (IDE) ao
TortoiseSVN"
Hoje postarei uma dica de
como integrar o Totvs
Development Studio (IDE) ao
SVN (Subversion) utilizando o
"client" TortoiseSVN p...

BlackTDN ::
Customizando a
interface de Login
no Protheus e by
You
A publicação “ BlackTDN :: By
You e sua nova tela de login ”
de nosso amigo OBona deu o
que falar e, em função disso,
esse que a muito não...

BlackTDN :: By
You e sua nova
tela de login
Atualmente a
TOTVS liberou
uma atualização para seu
produto, enfatizando sua rede
social by you. A semelhança
entre o portal by you e a tel...

Protheus :: MSSQL ::
Retornando o conteúdo de
campo “Memo” em uma

http://www.blacktdn.com.br/2011/10/protheus-advpl-dicas-do-robson-usando.html 2/6
12/3/2014 BlackTDN: Protheus :: Advpl :: Dicas do Robson :: Usando UniqueKey() para filtrar registros
Consulta
Às vezes
precisamos
consultar o
conteúdo
armazenado em um campo
memo e, um simples SELECT
não irá nos ajudar pois o
conteúdo retornado será ...

Protheus :: Advpl
:: Dicas do
Robson :: Como
criar uma consulta
específica
utilizando os recursos do
dicionário SXB
Robson Luiz nos passou mais
uma dica: “Como criar uma
consulta específica utilizando
os recursos do dicionário SXB –
Consulta padrão. O exem...

Protheus :: Opções de Filtro na


mBrowse
Algumas maneiras de Filtrar os
registros a serem apresentados
na mBrowse Opção 1: Usando
a Função FilBrowse() para
filtrar os registros an...
Uma outra dica, para melhorar a performance do filtro usando UniqueKey() é selecionar uma Chave de índice que corresponda ao filtro de
C7_FILIAL+C7_NUM…

Marcadores E, como bem dito pelo Robson, além de podermos utilizar UniqueKey() para Filtrar informações via MPSDU/APSDU podemos utilizá-la para filtra

__ClsArr() (1) __FunArr() (1) Observe:


_SetNamedPrvt (2) _SetOw nerPrvt
(1) A união faz a força (2)
Sem o Filtro
ABSTRAÇÃO (2) Acesso (2)
AddStackParameters (1) advpl
(228) aEval (2) agcap (1) Agent
(2) alarmClock (1) alexandre gonçalves
(1) Allow FailParam (1) Análise Forense
(1) apconnxcontrol.ocx (4) APD (1)
appserver (15) APSDU (3)
Arquivo INI (2) ArrayCompare (1)
aScan (1) AuditTrail (1) Autenticação
HTTP (2) Avaliação e Pesquisa de
Desempenho (1) BaseDic (1) Batch (2)
Begin Sequence (3) Bjarne

Stroustrup (1) BlackTDN


(174) BlackTDN Shell (1) BlackTDS
(1) Boas Práticas (1) Break (2)
BTDNdoc2pdf (1) bug (2) by you
Studio (2) by иαldσ dj (20)
byYou (11) CAST (1) catch (2)
CEP (2) cGetFile (1) ChkFile (2)
Ciências (4) Class (9) Class
FWDBAccess (1) Class
TMathFloatStr (4) Class
TMathIntegerStr (6) Class TRandom
(1) class TSQLite (1) Classe Advpl
(20) Classe fT (1) Classe fTdb (2)
Classe TDialog (1) ClassMethArr (2)
clipper (2) clonar (1) cmd (1) code
google (1) comandos (1) ComboBox (1)
CompaDic (1) Compatibilização de
Código (5) Compilador (1) Compilar
Script Pow erShell (1) confluence (1)
CONJUNTO (1) Connection String (1)
ConOut (1) Contabiliação Folha RM (1)
controle de atualizações do protheus (1)
CONVERT (1) Coordinator (2) Criação
de Empresa (1) CTB (1) CTBCTASup (1)
CTBDigCont (1) Culinária (1)
curiosidades (5) Customização de
Softw are (1) cVersao (1) Cálculo de
Horas (1) D_E_L_E_T_ (1) DANFE (1)
Daniel Kahneman (2) dbAccess
(10) dbChangeAlias (1) dbCloseArea
(1) dbGoTop (1) dbSelectArea (1)
dbTree (3) dbUseArea (2)
Decode64 (2) decremento (1)
Descanso Semanal Remunerado (1)
Devaneio (3) Dica de Leitura (3)
Dicas (101) Diretivas (4)
Diretório Virtual (1) disco rígido (1)
doc2pdf (1) DSR (1) ECHO (1) Economia
(1) ElapTime (1) Embedded SQL (3)
EmpOpenFile (1) Encode64 (2) End
Sequence (2) Entrada de Dados ao
Estilo Calculadora (1) ERR0032 (1)
ErrorBlock (4) Erros (1) ESC (1)
Escopo de Variáveis (1) Excel (14)

http://www.blacktdn.com.br/2011/10/protheus-advpl-dicas-do-robson-usando.html 3/6
12/3/2014 BlackTDN: Protheus :: Advpl :: Dicas do Robson :: Usando UniqueKey() para filtrar registros
Excel Consultas Parametrizadas
(2) Excel QueryTables (1) exception
(5) Executando Aplicação no
Server (2) Exemplo Modelo 3 (2)
exemplo webservice advpl (13)
ExistBlock (1) exploit (1) ExporDic (1)
Expressões Regulares (2) F530QRY
(1) FA050UPD (1) FA50ALT (1) falha (1)
FileIO (1) Filtro (2) Filtro na mBrow se
(1) Filtro Otimizado (2) FINA050 (1)
Final (1) FINR530 (1) FINR550 (1) Folha
de Pagamento (1) Formulas (1) FOXPRO
(1) FoxPro VFP Driver (2) FSBitMap
(1) FSEnvMail (1) FSFontes (1) FT_F*
(2) FT_FReadLn (1) fTdb (1) FTP (1)
FULL OUTER JOIN (1) function (3)
Função Posicione (2) FWBrow se (1)
FWMBrow se (1) FWMsExcel (1)
Game15 (3) games (8) Gerenciador
de Impressão Protheus (1) GetAccesList
(1) GetAdv97 (1) GetApoInfo (1)
GetCellRect (1) GetClientIP (1) GetDados
(1) GetData (1) GetFuncArray (1)
GetGlbValue (1) GetLastQuery (1) GetMv
(1) GetRes (1) GetResArray (2)
GetServerIP (1) GetSrvIniName (1)
GetSrvProfString (1) GetStackParameters
(1) GetTempPath (1) GetWndDefault (1)
GetWndDefaut (1) GhostScript (2)
GIF Animada (2) GlbLock (1)
GlbUnLock (1) Google Maps (1) Google
Translate (1) GPE (1) GPER040 (1)
GPEWORD (2) GPEWriter (3) grid
(4) GridClient (2) GridServer (2) Aplicando o Filtro:
Guess (1) Guia de Segurança (1)
H_GIF89 (1) Harbour (26) Harbour C7_EMISSAO>=FirstYDate(Date()).and.C7_EMISSAO<=LastYDate(Date()).and.
MiniGui (5) Harbour Project (11) UniqueKey({"C7_FILIAL","C7_NUM"})
Harbour Tutorial (7) Hash (2) hd (1)
Help (1) HelpInDark (1) Herança (1) HMG
(1) Horas (1) HTML (1) HttpGet (3)
HttpPost (1) IDE (2) ImageMagick (2)
improper function use (2) incremento
(1) INI (2) INIGetPValue (1) IniToXML (1)
IPCGo (1) IPCWaitEx (1) ISNULL (1) Jogo
do 15 (3) KEEP MOVING FOWARD (1)
Keep-Alive (1) KeepAlive (1) Legenda (1)
leitura (6) Lenda Urbana (1) lEscClose
(1) License Server (1) Licenças (1)
Limites (1) linux (1) ListBox (2) Load
Balance (2) LoadGIF (1) Logic Basic
(1) Macro do Compilador (1) MakeDir (1)
Manipulação de Arquivos (1) Manutenção
de Helps (1) Marca D´agua (1)
MarkBrow (se) (1) MATA010 (1)
MATA110 (1) MATA120 (1) Mata410 (1)
Matemática (5) mBrowse (6)
mBrow seLFilter (1) MD5 (2) Melhores
Práticas de Codificação Segura (1)
memoField (1) Memory Allocation
(11) memtst (13) Message
Digest Algorithm 5 (3) Metodo
Gelosia (1) Microsoft Excel (2)
Microsoft Junction (1) Microsoft MKLink
(1) Microsoft Query (1) MinGW-w 64 (1)
Minhas Idéias em BlackTDN (3)
Minutos (1) Miscelânea (1) Modelo3 (2)
Monitoramento (1) MP710TO110 (4)
MPSDU (2) MsExcel (1)
MSQRY32.EXE (1) MsSpool (1) MSSQL
(3) MsUnLock (1) MT110LEG (1)
MT120BRW (1) MT120COR (1)
MT120LEG (1) MTA110MNU (1) Multi
Thread (3) Multiplicacao (1)
multithread (2) MultStr (1) MVC (2)
máquina virtual (1) Módulos
Específicos (2) Möbius (1) Música
MPB (2) Naldo Dj (197)
NDJLIB004 (1) NDJLIB006 (2) New ton-
Raphson (1) NFe (4) Nota Fiscal de
Saída (3) Nota Fiscal Eletônica (2)
NToL (1) Número Perfeito (4) Número
Primo (1) Números Interios (1) Números
Perfeitos (2) O Grito (1) ODBC (2)
ODBC (Generic) (1) OpenOffice Writer
(3) OpenSxs (1) otimização código
advpl (3) Otimização de Consulta SQL
(1) OurSpool (1) OWASP (1) oWnd (2)
ParamBox (2) ParamType (2)
Parábola da Vaca (2) Parâmetros
Linha de Comando (1) PDF (3)
PDFCreator (2) PDFLab (1) pdftk.exe
(1) PDFToolKit (1) Pensamentos
(71) Perda de Conexão (1)
performance (2) PHP SoapClient
(2) PHP SoapFault (1) Picture (2) pilha
de chamadas (2) PNMTABC01 (1) Po

http://www.blacktdn.com.br/2011/10/protheus-advpl-dicas-do-robson-usando.html 4/6
12/3/2014 BlackTDN: Protheus :: Advpl :: Dicas do Robson :: Usando UniqueKey() para filtrar registros
(1) Ponto de Entrada Genérico (1) Ponto
de Restauração (2) Ponto Flutuante
(1) Pontos de Entrada Módulos (1)
Portaria MTE/1.510 (1) Posicione (1)
PostGreSQL (1) pow e (1)
PowerShell (40) ppo (1)
processamento (3)
procedure (1)
Processamento em Grid (3)
Proeficiência (1) Projetos (1)

protheus (181) Protheus


WebService (2)
PROTHEUS_REPOSIT (2)
Provérbio Chinês (2) Pré-
Processador (10) PS2EXE (2)
Psicologia (1) Psw GetMemo (1)
PutGlbValue (1) PutMV (1) Pérolas (1)
quaizer (1) Quiz (1) R3 (2) RA_BITMAP
(1) Radix Quadratum (2) Raiz
Quadrada (2) random (2) Rango (1)
Rational Culture (1)
ReadStackParameters (1) Receitas (1)
RecLock (1) Recover (1) RegEx (1)
RegExp (2) Registro Eletônico de Ponto
(1) ReguaTXT (1) remotamente (1)
remoto (1) REP (1)
RepositInDataBase (2) Repositório
de Imagens (1) Repouso Semanal
Remunerado (1) Request Tracker (1)
Resource (2) Resource2File (2)
restart (1) RetIndex (1) Retratação (1)
Rick Spence (1) RLeg (5) RM (1)
Robson Luiz (4) Rodrigo "OverFail"
(5) ROW_NUMBER() OVER (1)
RpcClearEnv (1) RpcSetEnv (1) rpo (4)
RSR (1) runDll32 (1) Salário Hora (1)
Salário Minuto (1) SapuReca (2) Saúde Obteremos apenas os n Primeiros registros que atendam a condição.
e bem-estar (1) scripts (4) SDU (3)
SEFAZ (1) Segundos (1) segurança p/ Robson Luiz (feat иαldσ dj)
forense computacional (1) SELECT 1 (1)
SELECT CASE (1) SendData (1) Senha []s
Administrador (1) Senha Administrador
Protheus (1) Sergio E. S. Souza (1)
Service Management Engine (1) services
Postado por иαldσ dj às 23:43:00
(1) Serviço FTP (1) SetCss (1) SetOnEXIT Marcadores: advpl, Dicas, Filtro Otimizado, protheus, Robson Luiz, totvs, UniqueKey
(1) SetVarNameLen (1) SGBD (1) SIGA
Recomende isto no Google
EM FRENTE (1) SIGAADV (1)
sigaadv.pss (1) sigaapd (1) SIGACTB (1) Reações: Originalidade (0) Exclusividade (0) Referência (0) Clareza (0) Abstração (0)
SIGAESP (2) SIGAESP1 (2)
SIGAESP2 (2) SIGAMDI (3)
SIGAPON (2) sigapss.spf (5)
sincronismo (2) Softw are (1) SomaStr
(1) SoundTrack (41) spfc (2) Um comentário:
SQL Provider (1) SQLite (2) SQLite
ODBC Driver (1) SQRT (2) SREP (1)
StartJob (5) static function (2) Anônimo 12 de outubro de 2011 21:51
StaticCall (2) stop (1) Stress Test (1)
String size overflow (1) stringtst (2) Minha sala de aula!
subversion (1) sudoku (2) Sugestão
Responder
(2) SuperEgo (1) svn (1) SXB (2) sxp
(1) SysErrorBlock (2) SysInternals (1)
TableData (1) TableStruct (1) TableView
(1) TBigNumber (6) TBitMap (1)
TCAlter (1) TCCommit (1) Digite seu comentário...
TCF_NoDBConnection (1) TCGenQry (1)
TCSqlError (1) TCustomReport (1) TDialog
(1) tdn (6) TELNET (1) Template (1)
teste de memória (1) TFINI (2)
TFTPClient (4) TGET (1) THASH (2) Comentar como: Conta do Google
Thomas Jefferson (1) Tim Maia (1) Time
(1) Tips and Tricks (10) TListBox
(1) Tools (4) topconnect (5) totvs Publicar Visualizar
(68) Totvs Developer Network (5)
Totvs Development Studio (7)
totvs-advpl-naldodj (2)
totvs/microsiga
(137) totvsappserver (20)
totvsdbaccess (6) TOTVSMNTLIC (1)
TPaintPanel (3) TPDF (1) Trac Project
(1) Tracker (1) Transact-SQL (1) Links para esta postagem
tratamento de erro em advl (2)
TReport (2) try (3) tSocketClient Criar um link
(4) TSQLite (1) TTimer (1) TTree (1)
Tutorial (4) Tutorial Advpl
(170) Tutorial Excel (2) Tutorial
PowerShell (6) Tutorial SDU (1) Postagem mais recente Início
Tutorial SQL (4) TVarInfo (5)
TWBrowse (2) U_EvalPrg (1)
U_NDJUPDDIC (2) U_PDFToJPG (1) Assinar: Postar comentários (Atom)
u_TcLinkData (1) ubtdnTView (1) UDC
(1) UniqueKey (1) usabilidade (1) Using
Outer Joins (1) Utilidade Publica (2) Colaboradores
vagas (2) Validação (6) ValidPerg (1)
VARBINARY (1) VARCHAR (1) VarInfo Regazzo

http://www.blacktdn.com.br/2011/10/protheus-advpl-dicas-do-robson-usando.html 5/6
12/3/2014 BlackTDN: Protheus :: Advpl :: Dicas do Robson :: Usando UniqueKey() para filtrar registros
(2) vdi (1) Versos (2) Vetor Rleg
Associativo (1) VFP (2) Virtual Link
(2) virtualbox (1) Vitor (1) VK_ESCAPE
Rodrigo "OverFail"
(1) VT100 (1) Vídeos Dance (1) Vídeos
MPB (10) WaitRun (9)
WaitRunSrv (7) Walt Disney (2) Marcus Sullivan
WebService (15) WGetTickCount (1)
Window s Internals (1) WinExec (2) Alexandre Gonçalves
w ireshark (1) world community grid
(2) WSMAT410 (1) XML (7) XSD (2) Luiz Fernando Altran
Zilhardário (1) иαldσ dj
Nando
(223) иαldσ dj history (3)
иαldσ dj

Arquivo do blog OBona

Arquivo do blog Murilo J. de Oliveira

Sergio Fernandez

diHITT Vitor Emanuel Batista

иαldσ dj

Beraldo

Inscrever-se

Postagens

Comentários

Technology Solving Problems

ClimatePrediction

Einstein@Home

Folding@Home

GIMPS

SETI@Home

World Community Grid

BlackTDN. Modelo Awesome Inc.. Tecnologia do Blogger.

http://www.blacktdn.com.br/2011/10/protheus-advpl-dicas-do-robson-usando.html 6/6