Esta classe está depreciada, e por conta disso, não recebe mais atualizações.
Recomendamos a utilização da classe FWMarkBrowse

Classe: MsSelect

A classe MsSelect permite que o usuário implemente um objeto gráfico tipo "Grid" contemplando a opção de  marcação (Check) de uma ou mais linhas presentes nesta grid. A classe  MsSelect pode combinar, a utilização de recursos gráficos para cada registro (legenda) e, utiliza como base, um arquivo de trabalho para contemplar e controlar os registros apresentados.

A Classe MsSelect advém da utilização da classe MsSelBr. Recomenda-se a sua consulta em caso de necessidades de maior complexidade.


New

Construtor da Classe MsSelect.Retorna uma nova instância do Objeto da Classe MsSelect.


MsSelect(): New ( < cAlias>, [ cCampo], [ cCpo], [ aCampos], [ lInv], [ cMar], < aCord>, [ cTopFun], [ cBotFun], < oWnd>, [ uPar11], [ aColors] ) --> oSelf



NomeTipoDescriçãoObrigatórioReferência
cAliasCaracterAlias da tabela utilizada pela MsSelect para controle dos registros/colunas apresentadas.X
cCampoCaracterNome do campo presente na tabela definida em cAlias, qual contemplara a opção de marcação (check/unckeck)

cCpoCaracterCampo da tabela informada pelo parametro cAlias ou função que será executada na apresentação da coluna que indica se a linha da MsSelect esta habilitada ou não.

aCamposArray of RecordVetor com informações dos campos para criação das colunas da MsSelect. Se não for informado, a MsSelect irá criar as colunas baseado no Dicionário de Campos (SX3) da tabela informada no parametro cAlias.

lInvLógicoIndica se MsSelect irá utilizar marcação invertida

cMarCaracterMarca que será utilizada pela MsSelect para controle do campo informado pelo parametro cCampo. Para utilizar o parametro cMar, utilize a função GetMark() para retornar a próxima marca disponivel para uso.

aCordArray of RecordCoordenadas para criação da MsSelect, sendo:aCord[1] = Coordenada vertical inicialaCord[2] = Coordenada horizontal inicialaCord[3] = Altura do objeto MsSelectaCord[4] = Largura do objeto MsSelectX
cTopFunCaracterFunção que retornará o conteúdo inicial que a MsSelect utilizará para apresentar a primeira linha da tabela, como um range, junto com o parametro cBotFun. O conteúdo retornado será utilizado para fazer o posicionamento da tabela informada pelo parametro cAlias, baseado na chave de índice posicionada para a mesma.

cBotFunCaracterFunção que retornará o conteúdo final que a MsSelect utilizará para apresentar a última linha da tabela, como um range, junto com o parametro cTopFun. O conteúdo retornado será utilizado para o posicionamento final da tabela informada pelo parametro cAlias, baseado na chave de índice posicionada para a mesma.

oWndObjetoObjeto tipo "Dialog" (MSDIALOG, MSWINDOW, MSPANEL, etc.) aonde a MsSelect sera posicionada.X
uPar11NuloParametro reservado relativo a compatibilidade.

aColorsArray of RecordVetor com regras para a apresentação da coluna de legenda.


oSelf
    ()
  • Objeto MsSelect criado.




PropriedadeDescriçãoTipo
bMarkBloco que contempla a(s) funções a serem executadas no evento de marcação do registro.Bloco de código



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 construção do objeto MsSelect.

#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()



Microsiga Protheus 8.11 , Microsiga Protheus 11 , Protheus 10