Clipper On Line • Ver Tópico - VALOR DO GRID

VALOR DO GRID

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

VALOR DO GRID

Mensagempor chicaomogi70 » 17 Mai 2022 17:11

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?
chicaomogi70
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 6
Data de registro: 15 Fev 2022 14:36
Cidade/Estado: Mogi das Cruzes - SP
Curtiu: 0 vez
Mens.Curtidas: 0 vez

VALOR DO GRID

Mensagempor luiz antonio da silva » 03 Jun 2022 11:32

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
luiz antonio da silva
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 160
Data de registro: 21 Nov 2006 21:12
Cidade/Estado: serrana-sp
Curtiu: 13 vezes
Mens.Curtidas: 10 vezes

VALOR DO GRID

Mensagempor carlaoonline » 03 Jun 2022 16:07

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

Avatar de usuário

carlaoonline
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 99
Data de registro: 24 Ago 2014 22:38
Cidade/Estado: Porto Alegre-RS
Curtiu: 16 vezes
Mens.Curtidas: 11 vezes

VALOR DO GRID

Mensagempor chicaomogi70 » 13 Jun 2022 09:02

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.
chicaomogi70
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 6
Data de registro: 15 Fev 2022 14:36
Cidade/Estado: Mogi das Cruzes - SP
Curtiu: 0 vez
Mens.Curtidas: 0 vez

VALOR DO GRID

Mensagempor carlaoonline » 13 Jun 2022 14:26

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...
Avatar de usuário

carlaoonline
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 99
Data de registro: 24 Ago 2014 22:38
Cidade/Estado: Porto Alegre-RS
Curtiu: 16 vezes
Mens.Curtidas: 11 vezes

VALOR DO GRID

Mensagempor marcosLP » 23 Jul 2022 18:57

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
Avatar de usuário

marcosLP
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 27
Data de registro: 13 Nov 2020 10:24
Cidade/Estado: guarpauava/pr
Curtiu: 30 vezes
Mens.Curtidas: 3 vezes




Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 1 visitante


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro