Histórico da Página
...
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 | ||||
---|---|---|---|---|
| ||||
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 | ||||
---|---|---|---|---|
| ||||
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 | ||||
---|---|---|---|---|
| ||||
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 | ||||
---|---|---|---|---|
| ||||
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> |