Páginas filhas
  • Dados Protegidos no Browse

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Para os browses construídos utilizando tabela temporária "TRB", será exigida alteração para informar os nomes das colunas que precisam ser ofuscadas. Esta alteração será adicionar um array com o formato lista de campos ({“CAMPO1”,“CAMPO2”}) na chamadas da função que monta o browse.

Exemplo:

Bloco de código
languagetext
linenumberstrue
aOfuscar := {"CAMPO1","CAMPO2"}

...


MBrowse(par1, par2…. aOfuscar)

...


MarkBrow(par1, par2…. aOfuscar)


06. O QUE PRECISA SER FEITO COM FWMBROWSE E FWMARKBROWSE?

...

- A construção baseada em tabela temporária, precisa da informação da lista dos campos através de método e não parâmetro (o que diferencia das funções que recebe por parâmetro).

Exemplos:


Bloco de código
languagetext
linenumberstrue
oBrowse := FWMBrowse():New()

...


oBrowse:SetAlias(cAliasTmp)

...


oBrowse:SetTemporary(.T.)

...



// Define os campos

...


aAdd(aBrowse, {"Filial","FILIAL","C",006,0,"@!",,,,,,"FILIAL"}) 

...


aAdd(aBrowse, {"Numero","NUMERO","C", 006, 0, "@!",,,,,,"NUMERO"})

...


aAdd(aBrowse, {"Tipo","TIPO","C", 001, 0, "@!",,,,,,"TIPO"})

...


aAdd(aBrowse, {"Cliente","CLIENTE","C", 006, 0,"@!",,,,,,"CLIENTE"})

...


aAdd(aBrowse, {"Pedido Exp.","PEDEXP","C",020,0,"@!",,,,,,"PEDEXP"})

...



aEval := {"FILIAL", "NUMERO", "TIPO", "CLIENTE", "PEDEXP"}

...



// Define os campos que serão ofuscados

...


aOfuscar := FwProtectedDataUtil():UsrNoAccessFieldsInList(aEval)

...


oBrowse:SetObfuscFields(aOfuscar)

...


oBrowse:SetFields(aBrowse)

...


oBrowse:Activate()


No código de demonstração acima, a variável aBrowse é a lista de colunas para o browse, e a partir dela que são descobertas as colunas para serem ofuscadas. 

...

Lista de campos para ofuscar

Bloco de código
languagetext
linenumberstrue
oBrowse := FWBrowse():New()

...


oBrowse:SetDataArray()

...


oBrowse:SetArray(aDataArray)

...


aEval := {"C5_NUM", "C5_CLIENTE", "C5_LOJA", "C5_DATA", "C5_PEDEXP", "C5_TIPO", "C5_CONDPG"}

...


aOfucar:= {} //FwProtectedDataUtil():UsrNoAccessFieldsInList(aEval)

...


aAdd( aOfucar, "C5_CLIENTE" )

...


aAdd( aOfucar, "C5_PEDEXP"  )

...


aAdd( aOfucar, "C5_TIPO"  )

...


oBrowse:SetObfuscFields(aObsFields)

...


oBrowse:SetColumns(aColumns)

...


oBrowse:Activate()


Coluna marcada para ofuscar

Bloco de código
languagetext
linenumberstrue
oBrowse := FWBrowse():New()

...


.

...


.

...


.

...


aOfuscar := FwProtectedDataUtil():UsrNoAccessFieldsInList(aEval)

...



For nContFlds := 1 To Len( aFields )

...


  nCol := Len(aColumns)

...



  lObfuscate := aScan(aOfuscar,{|x|x:cField == aFields[nContFlds]}) > 0

...



  AAdd( aColumns, FWBrwColumn():New() )

...


  aColumns[nCol]:SetData(&("{||(cTemp)->"+aFields[nContFlds]+"}"))

...


  aColumns[nCol]:SetData(&("{||(cTemp)->" + aFields[nContFlds]+"}"))

...


  aColumns[nCol]:SetTitle( aFields[nContFlds] )

...


  aColumns[nCol]:SetSize( 15 )

...


  aColumns[nCol]:SetID( aFields[nContFlds] )

...


  aColumns[nCol]:SetObfuscateCol( lObfuscate )

...


Next nContFlds

...



oBrowse:SetColumns(aColumns)

...


oBrowse:Activate()



Templatedocumentos


HTML
<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}

.aui-tabs.horizontal-tabs>.tabs-menu>.menu-item.active-tab a::after { 
	background: #FF9900; !important 
}

.menu-item.active-tab { 
	border-bottom: none !important; 
}

</style>