HMG - LISTAR NOME DE CAMPOS DURANTE EXECUÇÃO RUNTIME
Moderador: Moderadores
-
microvolution
- Usuário Nível 5

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
HMG - LISTAR NOME DE CAMPOS DURANTE EXECUÇÃO RUNTIME
Boa tarde!
Tô aqui com uma dúvida.
Estou fazendo uma função genérica para pegar o conteúdo de um certo DBF/NTX e preencher uma ou várias matrizes com o conteúdo completo do DBF, tais como:
NOME_CAMPO
TIPO (N/C/D)
CONTEÚDO
Então pensei um do while .not. eof()
Dentro do WHILE pretendo usar um FOR/NEXT len NOME_CAMPO pra preencher o que precisamos.
Mas, estou com dúvida em quais funções internas da linguagem uso pra saber as informações acima.
Se alguém souber, agradecido ficarei!
Feliz 2021!
Tô aqui com uma dúvida.
Estou fazendo uma função genérica para pegar o conteúdo de um certo DBF/NTX e preencher uma ou várias matrizes com o conteúdo completo do DBF, tais como:
NOME_CAMPO
TIPO (N/C/D)
CONTEÚDO
Então pensei um do while .not. eof()
Dentro do WHILE pretendo usar um FOR/NEXT len NOME_CAMPO pra preencher o que precisamos.
Mas, estou com dúvida em quais funções internas da linguagem uso pra saber as informações acima.
Se alguém souber, agradecido ficarei!
Feliz 2021!
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
HMG - LISTAR NOME DE CAMPOS DURANTE EXECUÇÃO RUNTIME
Olá!
Código: Selecionar todos
LOCAL i, nFCount
USE .... // abrir arquivo
DbGoTop ()
nFCount := FCount ()
WHILE! Eof ()
For i := 1 To nFCount
? FName (i) // nome do campo
? Valtype ( FieldGet (i) ) // tipo
? Transform (FieldGet (i), "" ) // conteúdo
Next
DbSkip ()
Enddo
DbCloseArea ()
RETURN
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
-
microvolution
- Usuário Nível 5

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
HMG - LISTAR NOME DE CAMPOS DURANTE EXECUÇÃO RUNTIME
tinha pensado em algo como DBSTRUCT()... aí não lembrava de jeito nenhum do FCOUNT()alxsts escreveu:nFCount := FCount ()
vou testar e darei o retorno a todos(as)!
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
-
microvolution
- Usuário Nível 5

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
HMG - LISTAR NOME DE CAMPOS DURANTE EXECUÇÃO RUNTIME
fiz assim:microvolution escreveu:vou testar e darei o retorno a todos(as)!
Código: Selecionar todos
WHILE! Eof ()
For i := 1 To nFCount
add item {FieldName(i),Transform (FieldGet (i),"")} to grid_pesquisa of form_pesquisa
Next
DbSkip ()
Enddo
Quero que os cabeçalhos contenham o nome do campo e nas linhas abaixo os conteúdos em formato de planilha
Talvez se os moderadores mudassem este tópico para a MINIGUI facilitaria pra outros...
do jeito que está acima, tá muito estranho, parece que só vejo 2 colunas que são os campos do DBF. Mas, se o DBF tiver 3 campos, e aí?
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
LISTAR NOME DE CAMPOS DURANTE EXECUÇÃO RUNTIME
Olá!
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
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:
Esta função pode ser usada em HEADERS na definição do grid
mas já está ... você colocou HMG.microvolution escreveu:Talvez se os moderadores mudassem este tópico para a MINIGUI facilitaria pra outros...
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
Código: Selecionar todos
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 GRIDEdit:
Respondendo ao que pede o título do post, use o código abaixo:
Código: Selecionar todos
FUNCTION GetFieldNames()
LOCAL aFieldNames := {}, nFieldCount, nPos
USE SuaTabela SHARED NEW
nFieldCount := FCount()
For nPos := 1 To nFieldCount
AAdd( aFieldNames, FieldName( nPos ) )
Next
RETURN aFieldNamesCódigo: Selecionar todos
HEADERS GetFieldNames()[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
HMG - LISTAR NOME DE CAMPOS DURANTE EXECUÇÃO RUNTIME
Olá Alexandre,
Alexandre, agora está porque ele pediu para mudar para MiniGui. Foi trocado DBF do título por HMG para deixar claro a todos que ele está usando HMG. HMG usa MiniGui.alxsts escreveu:mas já está ... você colocou HMG.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
HMG - LISTAR NOME DE CAMPOS DURANTE EXECUÇÃO RUNTIME
Olá!
Me perdoem. Eu não percebi a mudança no título do post. Valeu @Jairo.
Me perdoem. Eu não percebi a mudança no título do post. Valeu @Jairo.
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
HMG - LISTAR NOME DE CAMPOS DURANTE EXECUÇÃO RUNTIME
É que as LIBs causam confusão até nisso...
HMG é a MINIGUI original
HMG Extended, chamam de MINIGUI ou HMG
OOHG, chamam de OOHG, ou HMG orientada a objeto, ou minigui orientada a objeto
As três podem ser consideradas minigui ou hmg, e isso causa confusão.
Até a sintaxe.... pode ser a mesma, mas com menos ou mais opções.
HMG é a MINIGUI original
HMG Extended, chamam de MINIGUI ou HMG
OOHG, chamam de OOHG, ou HMG orientada a objeto, ou minigui orientada a objeto
As três podem ser consideradas minigui ou hmg, e isso causa confusão.
Até a sintaxe.... pode ser a mesma, mas com menos ou mais opções.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
-
microvolution
- Usuário Nível 5

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
HMG - LISTAR NOME DE CAMPOS DURANTE EXECUÇÃO RUNTIME
mas afinal, qual diferença de ser OOP?JoséQuintas escreveu:OOHG, chamam de OOHG, ou HMG orientada a objeto, ou minigui orientada a objeto
pois todas as 3 não são OOP?
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
HMG - LISTAR NOME DE CAMPOS DURANTE EXECUÇÃO RUNTIME
Não, mas simulam isso.microvolution escreveu:pois todas as 3 não são OOP?
Mas isso fica pra outro post.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
-
microvolution
- Usuário Nível 5

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
HMG - LISTAR NOME DE CAMPOS DURANTE EXECUÇÃO RUNTIME
... aguardando...JoséQuintas escreveu:Mas isso fica pra outro post.
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!