Clipper On Line • Ver Tópico - VALOR DO GRID
Página 1 de 1

VALOR DO GRID

MensagemEnviado: 17 Mai 2022 17:11
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
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?

VALOR DO GRID

MensagemEnviado: 03 Jun 2022 11:32
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

VALOR DO GRID

MensagemEnviado: 03 Jun 2022 16:07
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:


// 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})


VALOR DO GRID

MensagemEnviado: 13 Jun 2022 09:02
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.

VALOR DO GRID

MensagemEnviado: 13 Jun 2022 14:26
por carlaoonline
Opa!

Estou usando a MiniGUI 22.1 Extended Edition conforme print

HMGS MiniGui.png
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...

VALOR DO GRID

MensagemEnviado: 23 Jul 2022 18:57
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