VALOR DO GRID

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

chicaomogi70
Usuário Nível 1
Usuário Nível 1
Mensagens: 10
Registrado em: 15 Fev 2022 14:36
Localização: Mogi das Cruzes - SP

VALOR DO GRID

Mensagem por chicaomogi70 »

Pessoal, o que acontece é o seguinte:

Quando acabo de criar um GRID e através de um ACTION em um botão eu pegar o VALUE desta GRID,
ela vem com o valor ZERO corretamente.

Mas quando seleciono um item, e clico em um botão para realizar uma ação e vou pegar o valor novamente,
a GRID fica com o valor da ultima seleção.

Mesmo eu aplicando

Código: Selecionar todos

nomedajanela.namedagrid.value := 0
nomedajanela.namedagrid.refresh()
a GRID não fica com o valor zerado.

é possivel realmente zerar o valor da GRID sem apagar a GRID e criar novamente?
luiz antonio da silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 161
Registrado em: 21 Nov 2006 22:12
Localização: serrana-sp

VALOR DO GRID

Mensagem por luiz antonio da silva »

Bom dia !

Se não me engano o VALUE do GRID sempre retorna o número da linha SELECIONADA no GRID (iniciando em 1 e não 0), acredito que somente funcionaria se retirar o foco do GRID, caso contrário o retorno será sempre o que está selecionado.

Luiz
HMG 3.4.4 - SQL SERVER - ORACLE
Avatar do usuário
carlaoonline
Usuário Nível 3
Usuário Nível 3
Mensagens: 190
Registrado em: 24 Ago 2014 22:38
Localização: Porto Alegre-RS

VALOR DO GRID

Mensagem por carlaoonline »

Boa tarde!

O value de uma grid retorna uma matriz com a linha e a coluna em que se encontra o item selecionado.

Exemplo:

Código: Selecionar todos


// Matriz com coordenadas Linha/Coluna da Celula ativa no grid
aCoordenadas=GETPROPERTY("Form_1","grid_1","value")  


// Linha da celula (primeiro elemento da matriz aCoordenadas).
 nLin=aCoordenadas[1]  

// Coluna da celula (segundo elemento da matriz aCoordenadas).
 nCol=aCoordenadas[2]  


// Aqui, muda o valor da celula posicao nLin,nCol (posicao da celula ativa na grid) para "teste"
 SETPROPERTY("Form_1","Grid_1","cell",nLin , nCol , "teste")

// Aqui, muda o valor da primeira celula da grid para "Inicio"
 SETPROPERTY("Form_1","Grid_1","cell",1 , 1 , "Inicio")  // Linha 1, coluna 1

    // Claro, considerando que são celulas  do tipo texto.

// Assim tb funciona para pegar a linha ou coluna da celula selecionada

// Linha
nLin=Form_1.Grid_1.Value[1]       OU        nLin=GetProperty ("Form_1","Grid_1","CellRowFocused")

// Coluna
nCol=Form_1.Grid_1.Value[2]  // Coluna


// Aqui você manda a seleção para onde quiser, no caso foi para linha 10, coluna 2
SETPROPERTY("Form_1","Grid_1","Value",{ 10,2})


chicaomogi70
Usuário Nível 1
Usuário Nível 1
Mensagens: 10
Registrado em: 15 Fev 2022 14:36
Localização: Mogi das Cruzes - SP

VALOR DO GRID

Mensagem por chicaomogi70 »

Qual MNIGUI você está usando ?
Pois este item 'CellRowFocused' não tem na documentação do GRID.

Pelo menos no MINIGUI Extend v22.03 não existe.

Outro detalhe

se criar uma lista GRID esta GRID vai aparecer na TELA sem nenhum item selecionado, se criar um botão com a função de pegar o valor da GRID, verá que vai vim VALOR ZERO, mas uma vez, selecionado o GRID, mesmo sem o FOCO, ele pega o último valor selecionado.

MAS... a primeira vez que aparece na tela o valor do GRID é ZERO.
Avatar do usuário
carlaoonline
Usuário Nível 3
Usuário Nível 3
Mensagens: 190
Registrado em: 24 Ago 2014 22:38
Localização: Porto Alegre-RS

VALOR DO GRID

Mensagem por carlaoonline »

Opa!

Estou usando a MiniGUI 22.1 Extended Edition conforme print
print da IDE HNGS MiniGui 22.1 Extend Edition
print da IDE HNGS MiniGui 22.1 Extend Edition
chicaomogi70 escreveu:Qual MNIGUI você está usando ?
Pois este item 'CellRowFocused' não tem na documentação do GRID.
Nas pastas que vieram com a instalação tem:

C:\MiniGUI\SAMPLES\Advanced\EnumProcesses\demo.prg
Na linha 90 menciona o comando

e

C:\MiniGUI\SAMPLES\BASIC\Grid_Test\Demo2.prg
Nas linhas 25 e 44 tb mencionam o comando.



carlaoonline escreveu:MAS... a primeira vez que aparece na tela o valor do GRID é ZERO.
Sim, fiz um teste aqui e realmente é isso. Inicialmente é ZERO se nada tiver sido selecionado e depois não consegui mais setar para valor ZERO, nem NIL, nem para fora do total de itens, ou seja, não volta mais para valor ZERO a princípio...
Avatar do usuário
marcosLP
Usuário Nível 1
Usuário Nível 1
Mensagens: 47
Registrado em: 13 Nov 2020 10:24
Localização: guarpauava/pr

VALOR DO GRID

Mensagem por marcosLP »

deixa eu ver se entendi bem mas antes vou dizer como eu faço aqui quando se trata de apenas um valor de grid.

na grid:
define grid GridATM_000
...
ONCHANGE AtualizeGrid()
... etc
end grid


******************************************************************************************************************************************
function AtualizeGrid()

Local ItemPos , aItem
local aCod

ItemPos := formATM_000.GridATM_000.Value
aItem := formATM_000.GridATM_000.Item ( ItemPos )

SELE 74
abra_ATM()
SELE 74
set order to 1
set dele on
go top

COD74=( aItem[3] ) //no grid o item 3 é o codigo que eu quero
Seek COD74

If found()

*ATM_002( COD74 )

Else
msginfo("Nenhum registro encontrado para Edicao","Sinto Muito")
Endif

RETURN

não sei se ajuda mas aqui funciona bem porque se preciso saber qual item está no grid eu faço isto em tempo de execução é um foguete
Responder