Função que monta grid conforme alias aberto.
Exemplo da Rotina:
oBrowse := BrGetDDB():New(nLinhaInicial,nColunaInicial,nLargura,nAltura,,,,oDlg,,,,,,,,,,,,,'SA1',lCoordenadasEmPixel,,.F.,,, )
Exemplo 1- Grid da SA1:
//Bibliotecas #Include "Protheus.ch" /*/{Protheus.doc} zTeste Função de Teste @type function @author Terminal de Informação @since 13/11/2016 @version 1.0 @example u_zTeste() /*/ User Function zTeste() Local aArea := GetArea() Local oDlgTst Local oBrowse DbSelectArea('SA1') //Criando a janela DEFINE MsDialog oDlgTst FROM 0,0 TO 402,402 PIXEL TITLE 'Exemplo' //Declarando o BrGetDDb oBrowse := BrGetDDB():New(1,1,200,150,,,,oDlgTst,,,,,,,,,,,,,'SA1',.T.,,,,, ) //Adicionando colunas oBrowse:AddColumn(TCColumn():New('Codigo', {||SA1->A1_COD},,,, 'LEFT',, .F.,.F.,,,,.F.,)) oBrowse:AddColumn(TCColumn():New('Loja', {||SA1->A1_LOJA},,,, 'CENTER',, .F.,.F.,,,,.F.,)) oBrowse:AddColumn(TCColumn():New('Nome', {||SA1->A1_NOME},,,, 'LEFT',, .F.,.F.,,,,.F.,)) //Adicionando botões TButton():New(160, 001, 'GoUp()', oDlgTst,{|| oBrowse:GoUp()}, 40,10,,,,.T.) TButton():New(170, 001, 'GoDown()', oDlgTst,{|| oBrowse:GoDown()}, 40,10,,,,.T.) TButton():New(180, 001, 'GoTop()', oDlgTst,{|| oBrowse:GoTop()}, 40,10,,,,.T.) TButton():New(190, 001, 'GoBottom()', oDlgTst,{|| oBrowse:GoBottom()}, 40,10,,,,.T.) TButton():New(160, 060, 'nAt (Linha selecionada)', oDlgTst,{|| Alert(oBrowse:nAt)}, 80,10,,,,.T.) TButton():New(170, 060, 'nRowCount (Nr de linhas visiveis)', oDlgTst,{|| Alert(oBrowse:nRowCount())}, 80,10,,,,.T.) TButton():New(180, 060, 'nLen (Numero total de linhas)', oDlgTst,{|| Alert(oBrowse:nLen)}, 80,10,,,,.T.) TButton():New(190, 060, 'A1_COD Atual', oDlgTst,{|| Alert(SA1->A1_COD)}, 80,10,,,,.T.) ACTIVATE MsDialog oDlgTst CENTERED RestArea(aArea) Return
Exemplo 2- Grid com a fonte Arial e com opção de dois cliques na linha:
//Bibliotecas #Include "Protheus.ch" /*/{Protheus.doc} zTeste Função de Teste @type function @author Terminal de Informação @since 13/11/2016 @version 1.0 @example u_zTeste() /*/ User Function zTeste() Local aArea := GetArea() Local oDlgTst Local oBrowse Local oFontTst := TFont():New('Arial',,-10) DbSelectArea('SA1') //Criando a janela DEFINE MsDialog oDlgTst FROM 0,0 TO 402,402 PIXEL TITLE 'Exemplo' //Declarando o BrGetDDb oBrowse := BrGetDDB():New(1,1,200,150,,,,oDlgTst,,,,, {|| MsgInfo("Estou posicionado no cliente "+SA1->A1_NOME)},, oFontTst,,,,,,'SA1',.T.,,,,, ) //Adicionando colunas oBrowse:AddColumn(TCColumn():New('Codigo', {||SA1->A1_COD},,,, 'LEFT',, .F.,.F.,,,,.F.,)) oBrowse:AddColumn(TCColumn():New('Loja', {||SA1->A1_LOJA},,,, 'CENTER',, .F.,.F.,,,,.F.,)) oBrowse:AddColumn(TCColumn():New('Nome', {||SA1->A1_NOME},,,, 'RIGHT',, .F.,.F.,,,,.F.,)) //Adicionando botões TButton():New(160, 001, 'GoUp()', oDlgTst,{|| oBrowse:GoUp()}, 40,10,,,,.T.) TButton():New(170, 001, 'GoDown()', oDlgTst,{|| oBrowse:GoDown()}, 40,10,,,,.T.) TButton():New(180, 001, 'GoTop()', oDlgTst,{|| oBrowse:GoTop()}, 40,10,,,,.T.) TButton():New(190, 001, 'GoBottom()', oDlgTst,{|| oBrowse:GoBottom()}, 40,10,,,,.T.) TButton():New(160, 060, 'nAt (Linha selecionada)', oDlgTst,{|| Alert(oBrowse:nAt)}, 80,10,,,,.T.) TButton():New(170, 060, 'nRowCount (Nr de linhas visiveis)', oDlgTst,{|| Alert(oBrowse:nRowCount())}, 80,10,,,,.T.) TButton():New(180, 060, 'nLen (Numero total de linhas)', oDlgTst,{|| Alert(oBrowse:nLen)}, 80,10,,,,.T.) TButton():New(190, 060, 'A1_COD Atual', oDlgTst,{|| Alert(SA1->A1_COD)}, 80,10,,,,.T.) ACTIVATE MsDialog oDlgTst CENTERED RestArea(aArea) Return
Observações:
– Caso tenha dúvidas ou problemas com os exemplos, entre em contato;
– Se tiver sugestões de rotinas, pode entrar em contato;
Referências:
– TDN