Olá!
microvolution escreveu:Talvez se os moderadores mudassem este tópico para a MINIGUI facilitaria pra outros...
mas já está ... você colocou HMG.
Não mexo com MinGUI mas o fórum tem vários exemplos. Isto sem falar na pasta de exemplos da MiniGUI, que eu sei que existe. É só procurar...
O código abaixo está
neste tópico DEFINE GRID Grid_1
PARENT Form_Main
ROW 140
COL 405
WIDTH 360
HEIGHT 200
HEADERS {"Cod","Descricao","Cobrar S/N","Valor"}
COLUMNCONTROLS { {'TEXTBOX','NUMERIC','9'},{'TEXTBOX','CHARACTER','AAAAAAAAAAAAAAAAAAAA'},{'TEXTBOX','CHARACTER','A'},{'TEXTBOX','NUMERIC','9.99'} }
WIDTHS {40,200,80,55}
ITEMS aRows // se optar por usar ITEMS não pode usar ROWSOURCE e COLUMNFIELDS
// ROWSOURCE "DCI10035" // abre os campos da tabela DBF dentro do GRID automaticamente // campos da tabela DBF - se usar este tem q usar em conjunto o COLUMNFIELDS e não pode usar ITEMS aROWS
// COLUMNFIELDS { "DCI10035->DESCRICAO", "DCI10035->SIMNAO", "DCI10035->VALOR" } // campos da tabela DBF - se usar este tem q usar em conjunto o ROWSORCE e não pode usar ITEMS aROWS
CELLNAVIGATION .T.
DYNAMICFORECOLOR { fColor , fColor, fColor, fColor, fColor } // muda as cores de frente dinamicamente uma linha após a a outra
DYNAMICBACKCOLOR { bColor , bColor , bColor , bColor , bColor , bColor } // muda as cores de fundo dinamicamente uma linha após a aoutra 7/2/19w
ALLOWEDIT .T. // se estiver em .T. não funciona o ONDBLCLICK e funciona o COLUMNWHEN
// COLUMNVALID 1
// NOLINES .T. // desaparece as linhas de grade em .T.
JUSTIFY { BROWSE_JTFY_LEFT, BROWSE_JTFY_LEFT, BROWSE_JTFY_CENTER, BROWSE_JTFY_CENTER }
// COLUMNWHEN { { || This.CellValue <> nil } , Nil , Nil , Nil }
COLUMNWHEN { { || .F. } , { || .F. } , { || .T. } , { || .T. } } // trava/destrava colunas pra serem editadas. Mas, o ALLOWEDIT tem que estar em .T. pra funcionar
// LOCKCOLUMNS 2
// VALUE { 1 , 4 }
// ONDBLCLICK MOVE_GRID_ARQUIVO () // duplo click do mouse aciona esta função
// ONCHANGE MOVE_GRID_ARQUIVO () // apenas um click do mouse aciona esta função
// EDIT
// ALLOWAPPEND .T. // pra usar esse tem q usar o ROWSOURCE senão não funciona
// ALLOWDELETE .T. // pra usar esse tem q usar o ROWSOURCE senão não funciona
ONSAVE OnSaveTest()
END GRID
No teu caso, use ROWSOURCE com o nome da tua tabela. Em HEADERS coloque os nomes dos campos ou cabeçalhos que desejar. Em COLUMNFIELDS coloque o nome dos campos que deseja exibir. Analise as outras opções e ajuste conforme sua necessidade.
Edit:
Respondendo ao que pede o tÃtulo do post, use o código abaixo:
FUNCTION GetFieldNames()
LOCAL aFieldNames := {}, nFieldCount, nPos
USE SuaTabela SHARED NEW
nFieldCount := FCount()
For nPos := 1 To nFieldCount
AAdd( aFieldNames, FieldName( nPos ) )
Next
RETURN aFieldNames
Esta função pode ser usada em HEADERS na definição do grid
HEADERS GetFieldNames()