Versões comparadas

Chave

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

...

Exemplos


Bloco de código
languagejava
themeRDark
titleExemplo com Define
linenumberstrue
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWBROWSE.CH"
User Function BrwTable()

Local oBrowse
Local oColumn
Local oDlg

//-------------------------------------------------------------------// Abertura da tabela//-------------------------------------------------------------------
DbSelectArea("SX2")
DbSetOrder(1)

//-------------------------------------------------------------------// Define a janela do Browse//-------------------------------------------------------
DEFINE DIALOG oDlg FROM 0,0 TO 600,800 PIXEL 

//------------------------------------------------------------------- // Define o Browse //----------------------------------------------------------------
DEFINE FWBROWSE oBrowse DATA TABLE ALIAS "SX2" OF oDlg 

//-------------------------------------------------------- // Cria uma coluna de marca/desmarca//----------------------------------------------
ADD MARKCOLUMN oColumn DATA { || If(.T./* Função com a regra*/,'LBOK','LBNO') };
DOUBLECLICK { |oBrowse| /* Função que atualiza a regra*/ };
HEADERCLICK { |oBrowse| /* Função executada no clique do header */ } OF oBrowse 

//-------------------------------------------------------- // Cria uma coluna de status //--------------------------------------------------------
ADD STATUSCOLUMN oColumn DATA { || If(.T./* Função com a regra*/,'BR_VERDE','BR_VERMELHO') };
DOUBLECLICK { |oBrowse| /* Função executada no duplo clique na coluna*/ } OF oBrowse 

//-------------------------------------------------------- // Adiciona legenda no Browse //--------------------------------------------------------
ADD LEGEND DATA 'X2_CHAVE $ "AA1|AA2"' COLOR "GREEN" TITLE "Chave teste 1" OF oBrowse 
ADD LEGEND DATA '!(X2_CHAVE $ "AA1|AA2")' COLOR "RED" TITLE "Chave teste 2" OF oBrowse 

//------------------------------------------------------------------- // Adiciona as colunas do Browse //------------------------------------------
ADD COLUMN oColumn DATA { || X2_CHAVE } TITLE "Chave" SIZE 3 OF oBrowse 
ADD COLUMN oColumn DATA { || X2_ARQUIVO } TITLE "Arquivo" SIZE 10 OF oBrowse 
ADD COLUMN oColumn DATA { || X2_NOME } TITLE DecodeUTF8("Descrição") SIZE 40 OF oBrowse 
ADD COLUMN oColumn DATA { || X2_MODO } TITLE "Modo" SIZE 1 OF oBrowse 

//------------------------------------------------------------------- // Ativação do Browse//---------------------------------------------------------------- 
ACTIVATE FWBROWSE oBrowse

//-------------------------------------------------------------------// Ativação do janela//-------------------------------------------------------------------
ACTIVATE DIALOG oDlg CENTERED

Return
Bloco de código
languagejava
themeRDark
titleExemplo sem Define
linenumberstrue
User Function BrwTable()
 
Local oBrowse
Local oColumn
Local oDlg
 
// Abertura da tabela
DbSelectArea("SX2")
DbSetOrder(1)

//Define a janela do Browse
oDlg = TDialog():New(0, 0, 600, 800,,,,,,,,,,.T.)

// Define o Browse
oBrowse := FWBrowse():New(oDlg)
oBrowse:SetDataTable(.T.)
oBrowse:SetAlias("SX2")

// Cria uma coluna de marca/desmarca
oColumn := oBrowse:AddMarkColumns({||If(.T./*Função de Marca/desmaca*/,'LBOK','LBNO')},{|oBrowse|/*Função de DOUBLECLICK*/},{|oBrowse|/* Função de HEADERCLICK*/})

// Cria uma coluna de status
oColumn := oBrowse:AddStatusColumns({||If(.T./*Função de avaliação de status*/,'BR_VERDE','BR_VERMELHO')},{|oBrowse|/*Função de DOUBLECLICK*/})

// Adiciona legenda no Browse
oBrowse:AddLegend('X2_CHAVE $ "AA1|AA2"',"GREEN","Chave teste 1")
oBrowse:AddLegend('!(X2_CHAVE $ "AA1|AA2")',"RED","Chave teste 2")

// Adiciona as colunas do Browse
oColumn := FWBrwColumn():New()
oColumn:SetData({||X2_CHAVE})
oColumn:SetTitle("Chave")
oColumn:SetSize(3)
oBrowse:SetColumns({oColumn})

oColumn := FWBrwColumn():New()
oColumn:SetData({||X2_ARQUIVO})
oColumn:SetTitle("Arquivo")
oColumn:SetSize(10)
oBrowse:SetColumns({oColumn})

oColumn := FWBrwColumn():New()
oColumn:SetData({||X2_NOME})
oColumn:SetTitle(DecodeUTF8("Descrição"))
oColumn:SetSize(40)
oBrowse:SetColumns({oColumn})

oColumn := FWBrwColumn():New()
oColumn:SetData({||X2_MODO})
oColumn:SetTitle("Modo")
oColumn:SetSize(1)
oBrowse:SetColumns({oColumn})

// Ativação do Browse
oBrowse:Activate()

// Ativação da janela
oDlg:Activate(,,,.T.)

Return
Bloco de código
languagejava
themeRDark
titleExemplo com Array
linenumberstrue
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
Bloco de código
languagejava
themeRDark
titleExemplo com Query
linenumberstrue
Function u_FwBrwQry()
    Local oDlg       As Object
    Local aColumns   As Array
    Local nContFlds  As Numeric
    Local cAliasTemp As Character
    Local oBrowse    As Object
    Local aFields    As Array

    cAliasTemp  := MpSysOpenQuery( "SELECT * FROM " + RetSqlName("SC5") + " WHERE D_E_L_E_T_ = ''" )

    DEFINE MSDIALOG oDlg TITLE "Browse com Query" FROM 0,0 TO 600, 800 PIXEL

    oBrowse := FWBrowse():New()
    oBrowse:SetDataTable( .T. )
    oBrowse:SetAlias( cAliasTemp )
    oBrowse:SetOwner( oDlg )
    oBrowse:SetDescription( "Browse com Query" )

    //-------------------------------------------------------------------
    // Adiciona as colunas do Browse
    //-------------------------------------------------------------------
    aColumns    := {}
    aFields     := {}

    aAdd( aFields, "C5_FILIAL" )
    aAdd( aFields, "C5_NUM" )
    aAdd( aFields, "C5_TIPO" )
    aAdd( aFields, "C5_CLIENTE" )
    aAdd( aFields, "C5_PEDEXP"  )


    For nContFlds := 1 To Len( aFields )

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

        aColumns[Len(aColumns)]:SetData( &("{ || " + aFields[nContFlds] + " }") )
        aColumns[Len(aColumns)]:SetTitle( aFields[nContFlds] )
        aColumns[Len(aColumns)]:SetSize( 15 )
        aColumns[Len(aColumns)]:SetID( aFields[nContFlds] )
    Next nContFlds

    oBrowse:SetColumns(aColumns)
    oBrowse:Activate()

    ACTIVATE MSDIALOG oDlg
Return
Bloco de código
languagejava
themeRDark
titleBrowse de query
linenumberstrue
Function u_FwBrwQry()
    Local oDlg      As Object
    Local aColumns  As Array
    Local nContFlds As Numeric
    Local aFields   As Array
    Local oBrowse   As Object
    Local cAliasQry As Character

    DEFINE MSDIALOG oDlg TITLE "Browse comde Query" FROM 0,0 TO 600, 800 PIXEL

    cAliasQry := GetNextAlias()

    oBrowse := FWBrowse():New()
    oBrowse:SetDataQuery()
    oBrowse:SetAlias(cAliasQry)
    oBrowse:SetQuery("SELECT * FROM " + RetSqlName("SC5") + " WHERE D_E_L_E_T_ = ''")
    oBrowse:SetOwner(oDlg)
    oBrowse:SetDescription("Browse de Query")

    //-------------------------------------------------------------------
    // Adiciona as colunas do Browse
    //-------------------------------------------------------------------
    aColumns    := {}
    aFields     := {}

    aAdd( aFields, "C5_FILIAL" )
    aAdd( aFields, "C5_NUM" )
    aAdd( aFields, "C5_TIPO" )
    aAdd( aFields, "C5_CLIENTE" )
    aAdd( aFields, "C5_PEDEXP"  )


    For nContFlds := 1 To Len( aFields )

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

        aColumns[Len(aColumns)]:SetData( &("{ || " + aFields[nContFlds] + " }") )
        aColumns[Len(aColumns)]:SetTitle( aFields[nContFlds] )
        aColumns[Len(aColumns)]:SetSize( 15 )
        aColumns[Len(aColumns)]:SetID( aFields[nContFlds] )
    Next nContFlds

    oBrowse:SetColumns(aColumns)
    oBrowse:Activate()

    ACTIVATE MSDIALOG oDlg
Return


...