Function u_BrwArray
Local oDlg := Nil
Local oFwBrowse := Nil
Local aColumns := {}
Local aItems :={}
Local nX
oDlg = TDialog():New(0, 0, 600, 800, "Browse com Array",,,,,,,,,.T.)
oFwBrowse := FWBrowse():New(oDlg)
oFwBrowse:SetDataArrayoBrowse() //Define utilização de array
aItems := LoadItems() //Carregar os itens que irão compor o conteudo do grid
oFwBrowse:SetArray(aItems) //Indica o array utilizado para apresentação dos dados no Browse.
aColumns := RetColumns( aItems )
//Cria as colunas do array
For nX := 1 To Len(aColumns )
oFwBrowse:AddColumn( aColumns[nX] )
Next
oFwBrowse:SetOwner(oDlg)
oFwBrowse:SetDescription( "Browse com Array" )
oFwBrowse:Activate()
oDlg:Activate()
Return
Static Function RetColumns(aItems)
Local aColumns := {}
aAdd(aColumns, {;
"Coluna 1",; // [n][01] Título da coluna
{|oBrw| aItems[oBrw:At(), 1] },; // [n][02] Code-Block de carga dos dados
"N",; // [n][03] Tipo de dados
"@E 9999",; // [n][04] Máscara
2,; // [n][05] Alinhamento (0=Centralizado, 1=Esquerda ou 2=Direita)
10,; // [n][06] Tamanho
0,; // [n][07] Decimal
.T.,; // [n][08] Indica se permite a edição
{|| },; // [n][09] Code-Block de validação da coluna após a edição
.F.,; // [n][10] Indica se exibe imagem
Nil,; // [n][11] Code-Block de execução do duplo clique
"__ReadVar",; // [n][12] Variável a ser utilizada na edição (ReadVar)
{|| AlwaysTrue()},; // [n][13] Code-Block de execução do clique no header
.F.,; // [n][14] Indica se a coluna está deletada
.T.,; // [n][15] Indica se a coluna será exibida nos detalhes do Browse
{},; // [n][16] Opções de carga dos dados (Ex: 1=Sim, 2=Não)
"ID1"}) // [n][17] Id da coluna
aAdd(aColumns, {;
"Coluna 2",; // [n][01] Título da coluna
{|oBrw| aItems[oBrw:At(), 2] },; // [n][02] Code-Block de carga dos dados
"C",; // [n][03] Tipo de dados
"@!",; // [n][04] Máscara
0,; // [n][05] Alinhamento (0=Centralizado, 1=Esquerda ou 2=Direita)
10,; // [n][06] Tamanho
0,; // [n][07] Decimal
.F.,; // [n][08] Indica se permite a edição
{|| },; // [n][09] Code-Block de validação da coluna após a edição
.F.,; // [n][10] Indica se exibe imagem
Nil,; // [n][11] Code-Block de execução do duplo clique
__ReadVar,; // [n][12] Variável a ser utilizada na edição (ReadVar)
{|| AlwaysTrue()},; // [n][13] Code-Block de execução do clique no header
.F.,; // [n][14] Indica se a coluna está deletada
.T.,; // [n][15] Indica se a coluna será exibida nos detalhes do Browse
{},; // [n][16] Opções de carga dos dados (Ex: 1=Sim, 2=Não)
"ID2"}) // [n][17] Id da coluna
aAdd(aColumns, {;
"Coluna 3",; // [n][01] Título da coluna
{|oBrw| aItems[oBrw:At(), 3 ] },; // [n][02] Code-Block de carga dos dados
"C",; // [n][03] Tipo de dados
"@!",; // [n][04] Máscara
0,; // [n][05] Alinhamento (0=Centralizado, 1=Esquerda ou 2=Direita)
10,; // [n][06] Tamanho
0,; // [n][07] Decimal
.F.,; // [n][08] Indica se permite a edição
{|| },; // [n][09] Code-Block de validação da coluna após a edição
.F.,; // [n][10] Indica se exibe imagem
Nil,; // [n][11] Code-Block de execução do duplo clique
"__ReadVar",; // [n][12] Variável a ser utilizada na edição (ReadVar)
{|| AlwaysTrue()},; // [n][13] Code-Block de execução do clique no header
.F.,; // [n][14] Indica se a coluna está deletada
.T.,; // [n][15] Indica se a coluna será exibida nos detalhes do Browse
{},; // [n][16] Opções de carga dos dados (Ex: 1=Sim, 2=Não)
"ID3"}) // [n][17] Id da coluna
Return aColumns
Static Function LoadItems()
Local aLinha := {}
Local nX
For nX := 1 To 20
aAdd(aLinha,{ nX, StrZero(nX, 5), " Linha : "+ cValToChar(nX)})
Next
Return aLinha