Classe: MsSelectA 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.
NewConstrutor 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 Nome | Tipo | Descrição | Obrigatório | Referência | 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 opção de marcação (check/unckeck) | | | cCpo | Caracter | Campo 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. | | | aCampos | Array of Record | Vetor 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. | | | lInv | Lógico | Indica se MsSelect irá utilizar marcação invertida | | | cMar | Caracter | Marca 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. | | | aCord | Array of Record | Coordenadas para criação 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 | Funçã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. | | | cBotFun | Caracter | Funçã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. | | | 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 apresentação da coluna de legenda. | | |
oSelf() - Objeto MsSelect criado.
Propriedade | Descrição | Tipo | bMark | Bloco 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() Image RemovedImage Added Microsiga Protheus 8.11 , Microsiga Protheus 11 , Protheus 10 |