Académique Documents
Professionnel Documents
Culture Documents
Ao se clicar no boto aberta uma janela de viso de Lookup, que diferente da viso
convencional, sendo mais simples e possuindo menos colunas em sua Grid. Nesta viso
possvel fazer uma busca no banco por diversas colunas que so disponibilizadas pelo
desenvolvedor.
Quando informada a fonte de dados informada uma Action, possvel nesta viso
editar ou inserir um registro. Estas aes iro abrir o Form de edio da Action de
Lookup.
Tambm possvel editar o registro selecionado diretamente do componente, onde
exibido um hyperlink na descrio do item. Este hyperlink abre a tela de edio da
Action de Lookup.
Utilizao de um Lookup
this.DBS.QueryFill(dataSet, "GFilial",
@"SELECT CODCOLIGADA, CODFILIAL, NOMEFANTASIA
FROM GFILIAL /*where*/", 0, 0, filter);
}
O DoReadLookupValues deve retornar um NICO item. Este mtodo retorna os
valores desejados para um registro. Este registro filtrado atravs o objeto Filter que
deve ser concatenado na clausula WHERE. Os ResultFields so as colunas que devem
ser retornadas para o componente de Lookup. Este parmetro deve ser concatenado a
sentena SQL, j possuindo o formato correto para obteno dos campos.
Ex:
protected override void DoReadLookupValues(DataSet dataSet, string
resultFields, object[] filter, object ownerData)
{
this.DBS.QueryFill(dataSet, "GFilial",
"SELECT "+ resultFields +" FROM GFILIAL /*where*/", 0, 0, filter);
}
2. Componente Lookup
Uma vez que j se tem o local que ser feita a busca dos dados possvel fazer um
Lookup. O componente RMSLookup est disponvel na ToolBox de itens disponibilizados
pela RM.Lib.Winforms.
Uma vez adicionado o componente deve ser feitas configuraes para realizar o Bind
entre as colunas do BindingSource com as colunas da fonte de dados do Lookup.
Estas configuraes so feitas atravs do preenchimento de propriedades no
componente de Lookup. Abaixo ser feita uma descrio de cada uma das
propriedades necessrias.
Action: Nome da Action que ser realizado o
Lookup para retornar os dados.
Active: Se o Lookup est ativo.
AllowClear: Se permite que o componente de
lookup seja limpo, uma vez que existe um valor.
AllowEdit: Se possvel editar o registro
relacionado ao Lookup.
AllowInsert: Se possvel inserir um novo registro
na viso do Lookup.
AutoLoadView: Se alterado para True ao se abrir a
Viso do Lookup sero exibidos todos os registros
do Lookup sem precisar de realizar um filtro. Esta
opo deve ser utilizada apenas para Lookup que
retornam poucos registros.
BindingSource: Componente BindingSource que
ser feito um Bind com suas colunas relacionadas ao
Lookup.
ButtonVisible: Torna visvel/invisvel o boto de abrir Viso de Lookup.
DataServer: Nome do DataServer que ser utilizado para retornar os dados do
Lookup.
DataTable: DataTable que ser utilizado para retornar os dados do Lookup.
EnableAutoFilter: Habilita o filtro automtico da viso pela chave. Isto , quando
feita a procura na viso do Lookup adicionado automaticamente o filtro que os outros
campos da chave j possuem. Ex, um Lookup que seja CODCOLIGADA;CODFILIAL,
ao se abrir a viso j ser feito um filtro para exibir somente as filiais da coligada
informada.
Deve ser lembrar tambm que quando o BindingSource ligado a uma classe no
possvel atribuir NULL a um valor do tipo INT por exemplo. O Lookup deve ser
preenchido.
Ex:
private void rmsLookupServerFilial_BeforeLookup(object sender,
BeforeLookupEventArgs e)
{
// adiciona a coligada global
e.ColumnValues["CODCOLIGADA"].Add(0);
}
Neste caso, supondo que o valor de CODCOLIGADA no registro corrente seja igual a 1,
o Lookup ir gerar o filtro da seguinte forma: (CODCOLIGADA = 1 OR CODCOLIGADA
= 0), porque foi adicionado mais um valor 0 na lista de valores para o campo
CODCOLIGADA.
Tambm no evento BeforeLookup possvel passar o parmetro OwnerData para o
DataServer utilizando o EventArgs BeforeLookupEventArgs.
- SetLookUpValues
O mtodo do Lookup SetLookupValues permite que sejam alterados os valores que
compe a chave do Lookup.
Ex:
private void AlteraValor()
{
int codColigada = 1;
int codFilial = 2;
cCODFILIAL.SetLookupValues(codColigada, codFilial);
}
- GetLookupResultData
Com mtodo do Lookup GetLookupResultData possvel recuperar o valor de uma
coluna qualquer que foi informada no LookupResultFields. Quando um registro
selecionado no Lookup o componente automaticamente atualiza o valor do
BindingSource com os valores chaves do Lookup. Para acessar os outros valores
retornados pelo ResultFields utiliza-se esta funo.
Ex.: string nomeFilial = cCODFILIAL.GetLookupResultData("NOMEFANTASIA");