Você está na página 1de 7

MsSelect

Colapse ALL
Expand ALL
Classe: MsSelect
A classe MsSelect permite que o usurio implemente um objeto grfico
tipo "Grid" contemplando a opo de marcao (Check) de uma ou mais
linhas presentes nesta grid. A classe MsSelect pode combinar, a
utilizao de recursos grficos para cada registro (legenda) e, utiliza
como base, um arquivo de trabalho para contemplar e controlar os
registros apresentados.
Hierarquia
A Classe MsSelect advm da utilizao da classe . MsSelBr
Recomenda-se a sua consulta em caso de necessidades de
maior complexidade.
Construtores
New
New
Construtor da Classe MsSelect.Retorna uma nova instncia do Objeto da Classe
MsSelect.
Sintaxe
MsSelect(): New ( < cAlias>, [ cCampo], [ cCpo], [ aCampos], [ lInv], [ cMar], < aCord>, [ cTopFun], [ cBotFun], <
oWnd>, [ uPar11], [ aColors] ) --> oSelf
Parmetros
Nome Tipo Descrio Obrigatrio Referncia
cAlias Caracter Alias da tabela
utilizada pela
MsSelect para
controle dos
registros/colunas
apresentadas.
X
cCampo Caracter Nome do campo
presente na tabela
definida em cAlias,
qual contemplara a
opo de marcao
(check/unckeck)
cCpo Caracter Campo da tabela
informada pelo
parametro cAlias ou
funo que ser
executada na
apresentao da
coluna que indica
se a linha da
MsSelect esta
habilitada ou no.
aCampos Array of Record Vetor com
informaes dos
campos para
criao das colunas
da MsSelect. Se
no for informado, a
MsSelect ir criar
as colunas baseado
no Dicionrio de
Campos (SX3) da
tabela informada no
parametro cAlias.
lInv Lgico Indica se MsSelect
ir utilizar marcao
invertida
cMar Caracter Marca que ser
utilizada pela
MsSelect para
controle do campo
informado pelo
parametro cCampo.
Para utilizar o
parametro cMar,
utilize a funo
GetMark() para
retornar a prxima
marca disponivel
para uso.
aCord Array of Record Coordenadas para
criao da
MsSelect,
sendo:aCord[1] =
Coordenada vertical
inicialaCord[2] =
Coordenada
horizontal
inicialaCord[3] =
Altura do objeto
MsSelectaCord[4] =
Largura do objeto
MsSelect
X
cTopFun Caracter Funo que
retornar o
contedo inicial que
a MsSelect utilizar
para apresentar a
primeira linha da
tabela, como um
range, junto com o
parametro cBotFun.
O contedo
retornado ser
utilizado para fazer
o posicionamento
da tabela informada
pelo parametro
cAlias, baseado na
chave de ndice
posicionada para a
mesma.
cBotFun Caracter Funo que
retornar o
contedo final que
a MsSelect utilizar
para apresentar a
ltima linha da
tabela, como um
range, junto com o
parametro
cTopFun. O
contedo retornado
ser utilizado para
o posicionamento
final da tabela
informada pelo
parametro cAlias,
baseado na chave
de ndice
posicionada para a
mesma.
oWnd Objeto Objeto tipo "Dialog"
(MSDIALOG,
MSWINDOW,
MSPANEL, etc.)
aonde a MsSelect
sera posicionada.
X
uPar11 Nulo Parametro
reservado relativo a
compatibilidade.
aColors Array of Record Vetor com regras
para a
apresentao da
coluna de legenda.
Retorno
() oSelf
Objeto MsSelect criado.
Observaes

Propriedade
Propriedade Descrio Tipo
bMark Bloco que contempla a(s) funes a
serem executadas no evento de
marcao do registro.
Bloco de cdigo
Observaes
O arquivo de apoio (alias) utilizado em conjunto com a
classe MsSelect pode ser do tipo "TopConn", "Codebase
(dbf)" ou "Ctree". Contudo, a mesma deve ser aberta antes
da construo do objeto MsSelect.
Exemplos
#include "protheus.ch" User Function
TestSelec() Local _stru:={}Local aCpoBro :=
{}Local oDlgLocal aCores := {}Private lInverte
:= .F.Private cMark := GetMark() Private
oMark//Cria um arquivo de ApoioAADD(_stru,{"OK"
,"C" ,2 ,0 })AADD(_stru,{"COD" ,"C" ,6 ,0
})AADD(_stru,{"LOJA" ,"C" ,2 ,0
})AADD(_stru,{"NOME" ,"C" ,40 ,0
})AADD(_stru,{"MCOMPRA","N" ,17 ,2
})AADD(_stru,{"END" ,"C" ,40 ,0
})AADD(_stru,{"STATUS" ,"C" ,2 ,0
})cArq:=Criatrab(_stru,.T.)DBUSEAREA(.t.,,carq,
"TTRB")//Alimenta o arquivo de apoio com os
registros do cadastro de clientes
(SA1)DbSelectArea("SA1")DbGotop()While
SA1->(!Eof()) DbSelectArea("TTRB")
RecLock("TTRB",.T.) TTRB->COD :=
SA1->A1_COD TTRB->LOJA := SA1->A1_LOJA
TTRB->NOME := SA1->A1_NOME TTRB->MCOMPRA
:= SA1->A1_MCOMPRA TTRB->END :=
SA1->A1_END TTRB->STATUS := "0" //Verde
MsunLock() SA1->(DbSkip())Enddo//Define as
cores dos itens de legenda.aCores :=
{}aAdd(aCores,{"TTRB->STATUS == '0'","BR_VERDE"
})aAdd(aCores,{"TTRB->STATUS ==
'1'","BR_AMARELO" })aAdd(aCores,{"TTRB->STATUS
== '2'","BR_VERMELHO"})//Define quais colunas
(campos da TTRB) serao exibidas na
MsSelectaCpoBro := {{ "OK" ,, "Mark"
,"@!"},; { "COD" ,, "Codigo"
,"@!"},; { "LOJA" ,, "Loja"
,"@1!"},; { "NOME" ,, "Nome"
,"@X"},; { "MCOMPRA" ,, "Maior Compra"
,"@E 999,999,999.99"},; { "End" ,,
"Endereco" ,"@!"}}//Cria uma DialogDEFINE
MSDIALOG oDlg TITLE "MarkBrowse c/Refresh" From
9,0 To 315,800
PIXELDbSelectArea("TTRB")DbGotop()//Cria a
MsSelectoMark :=
MsSelect():New("TTRB","OK","",aCpoBro,@lInverte
,@cMark,{17,1,150,400},,,,,aCores)oMark:bMark
:= {| | Disp()} //Exibe a DialogACTIVATE
MSDIALOG oDlg CENTERED ON INIT
EnchoiceBar(oDlg,{|| oDlg:End()},{||
oDlg:End()})//Fecha a Area e elimina os
arquivos de apoio criados em
disco.TTRB->(DbCloseArea())Iif(File(cArq +
GetDBExtension()),FErase(cArq +
GetDBExtension()) ,Nil)Return//Funcao executada
ao Marcar/Desmarcar um registro. Static
Function Disp()RecLock("TTRB",.F.)If
Marked("OK") TTRB->OK := cMarkElse TTRB->OK :=
""Endif
MSUNLOCK()oMark:oBrowse:Refresh()Return()
Preview
Abrangncia
Microsiga Protheus 8.11 , Microsiga Protheus 11 , Protheus
10
Veja Tambm
, , , , MsGetDados MsNewGetDados TGrid MarkBrow MsSelBr

Você também pode gostar