Página 1 de 2
Rotinas de inclusão/alteração/deleção no GRID
Enviado: 29 Mar 2013 15:45
por Paulo_CPV
Boa tarde!
Colegas do grupo, estou criando uma função para deletar itens de uma grid, mas ela não esta funcionando dá o seguinte erro:
Código: Selecionar todos
Date: 29/03/2013 Time: 15:33:23
Error BASE/1072 Erro nos parƒmetros: <>
Called from DATACONVERT:APAGAR(2298)
Called from (b)TELA(2874)
Called from _DOCONTROLEVENTPROCEDURE(1582)
Called from EVENTS(507)
Called from _DOMESSAGELOOP(0)
Called from _ACTIVATEWINDOW(1307)
Called from DOMETHOD(4649)
Called from TELA(2999)
Called from (b)DATACONVERT(197)
Called from DATACONVERT:SOMAMULT(0)
Called from (b)TELA(71)
Called from _DOCONTROLEVENTPROCEDURE(1582)
Called from EVENTS(1383)
Called from _DOMESSAGELOOP(0)
Called from _ACTIVATEWINDOW(1307)
Called from DOMETHOD(4649)
Called from TELA(165)
Called from (b)INICIARAMBIENTE(221)
Called from INICIARAMBIENTE:INITTELA(0)
Called from MAIN(21)
A função é chamada pela tecla [DEL] e é a seguinte:
Código: Selecionar todos
Function Apagar()
IF Form_1.grid_1.ItemCount = 0
MSGINFO('Não há iTens')
ENDIF
i := Form_1.grid_1.Value
IF MSGYESNO('Excluir ?','Excluir Item')
IF i <> 0 // -> Aqui que está dando o erro
Form_1.Grid_1.DeleteItem(i)
IF i > Form_1.grid_1.Itemcount
Form_1.grid_1.Value:= i-1
ELSE
Form_1.grid_1.Value:= i
ENDIF
Form_1.grid_1.Setfocus
Form_1.grid_1.Refresh
ENDIF
ENDIF
RETURN Nil
Espero que algum colega do grupo saiba o porque deste erro, que eu acho que está certo, mas posso estar errado.
[]'s
Paulo - Jacareí/SP
Ajuda sobre rotina
Enviado: 29 Mar 2013 20:34
por jjr_rs
Olá meu amigo, abaixo fiz um ajuste na tua função.
Pode ser bobagem mas te peço fazer um teste para ver se dá certo.
Faço isso imaginando que realmente só naquele ponto que teu sistema dá erro.
Abaixo está o ajuste da forma que utilizo nos meus sistemas:
Código: Selecionar todos
Function Apagar()
IF Empty( Form_1.grid_1.ItemCount )
MSGINFO('Não há iTens')
Return .T.
Endif
If ! Empty( Form_1.grid_1.Value )
Delete Item Form_1.grid_1.Value From Grid_1 Of Form_1
Form_1.grid_1.Setfocus
Form_1.grid_1.Refresh
Endif
Return .T.
Espero ter lhe ajudado !
Abraços !
Ajuda sobre rotina
Enviado: 01 Abr 2013 10:57
por luiz antonio da silva
Olá Paulo !
Simplificando...rs
Código: Selecionar todos
Function Apagar()
IF Form_1.grid_1.ItemCount = 0
MSGINFO('Não há iTens')
RETURN NIL
ELSE
i := Form_1.grid_1.Value
IF MSGYESNO('Excluir ?','Excluir Item')
Form_1.Grid_1.DeleteItem(i)
ENDIF
ENDIF
Form_1.grid_1.Value:=Form_1.grid_1.itemcount
Form_1.grid_1.Setfocus
Form_1.grid_1.Refresh
RETURN Nil
Abraço.
Luiz.
Rotinas de alteração/inclusão/deleção no GRID
Enviado: 01 Abr 2013 16:17
por Paulo_CPV
Boa tarde!
Colegas do grupo, estou criando uma rotina para alteração numa Grid, mas não estou conseguindo que ele me mostre o dado alterado. Digito na coluna desejada a data e ele mostra a data alterada na Grid, mas quando vou mostrar MSGINFO() ela me mostra a data que estava antes da alteração.
Estou usando ALLOWEDIT .T., a função de alteração coloquei na COLUMNVALID{}. A minha Grid tem 5 colunas, Data 1, Data 2,Valor 1, Valor 2 e Valor 3.
Código: Selecionar todos
Function Alterar()
Form_1.grid_1.Refresh
FOR x = 1 TO Form_1.grid_1.ItemCount
aDados := Form_1.grid_1.Item(x)
NEXT
cData1 := aDados[1]
cData2 := aDados[2]
MSGINFO(DTOC(cData1)+" "+DTOC(cData2),"Teste")
RETURN .T.
Desde já agradeço a atenção de todos e espero que alguém do grupo possa me ajudar.
[]'s
Paulo - Jacareí/SP
Harbour / xHarbour / Minigui 2.20 / HMG 3.11
Ajuda sobre rotina de alteração
Enviado: 03 Abr 2013 10:07
por Jairo Maia
Olá Paulo,
Não entendo o laço FOR/NEXT que você colocou. A mim está estranho. Porém, verifique o exemplo em C:\hmg.3.1.1\SAMPLES\GRID.07 e veja a função Modificar() que acho que você resolve seu problema.
Alteração dados no Grid
Enviado: 04 Abr 2013 11:12
por Paulo_CPV
Bom dia!
Colegas dos grupo, estou fazendo uma rotina de alteração para o contrele Grid, e não estou conseguindo desenvolver está rotina, já fiz de tudo e nada feito. Estou me baseando no exemplo do HMG 3.1.1 ...Samples/Basic/Grid.7 na rotina Modificar().
Rotina do Exemplo:
Código: Selecionar todos
Procedure Modificar()
Local i := Form_1.Grid_1.Value , aTemp
Op := 'MODIFICAR'
If i != 0
aTemp := Form_1.Grid_1.Item(i)
Form_1.Text_1.Value := aTemp [1]
Form_1.Text_2.Value := aTemp [2]
Form_1.Text_3.Value := aTemp [3]
Form_1.Text_1.Enabled :=.t.
Form_1.Text_2.Enabled :=.t.
Form_1.Text_3.Enabled :=.t.
Form_1.Button_1.Enabled :=.f.
Form_1.Button_2.Enabled :=.f.
Form_1.Button_3.Enabled :=.f.
Form_1.Button_A.Enabled :=.t.
Form_1.Button_B.Enabled :=.t.
Form_1.Grid_1.Enabled := .f.
Form_1.Text_1.SetFocus
EndIf
Return
Procedure Ok()
Local aTemp := {} , i
If Op == 'AGREGAR'
Form_1.Grid_1.AddItem ( { Form_1.Text_1.Value , Form_1.Text_2.Value , Form_1.Text_3.Value } )
Form_1.Grid_1.Value := Form_1.Grid_1.ItemCount
ElseIf Op == 'MODIFICAR'
i := Form_1.Grid_1.Value
Form_1.Grid_1.Item (i) := { Form_1.Text_1.Value,Form_1.Text_2.Value ,Form_1.Text_3.Value }
EndIf
Form_1.Text_1.Value := ''
Form_1.Text_2.Value := ''
Form_1.Text_3.Value := ''
Form_1.Text_1.Enabled :=.f.
Form_1.Text_2.Enabled :=.f.
Form_1.Text_3.Enabled :=.f.
Form_1.Button_1.Enabled :=.t.
Form_1.Button_2.Enabled :=.t.
Form_1.Button_3.Enabled :=.t.
Form_1.Button_A.Enabled :=.f.
Form_1.Button_B.Enabled :=.f.
Form_1.Grid_1.Enabled := .t.
Form_1.Grid_1.SetFocus
Return
Minha Rotina:
Código: Selecionar todos
Function Alterar()
LOCAL x , aDados , nFim , i
nFim := Form_1.grid_1.ItemCount
FOR x = 1 TO nFim
aDados := Form_1.grid_1.Item(x)
NEXT x
Form_1.text_1.Value := aDados[1]
Form_1.text_2.Value := aDados[2]
Form_1.text_1.SetFocus
i := Form_1.grid_1.Value
Form_1.grid_1.Item(i) := {Form_1.text_1.Value,Form_1.text_2.Value}
RETURN NIL
Na minha rotina Form_1.text_1 e Form_1.text_2 são do tipo DATE ele não está atualizando o item selecionado e sim está acrescentando mais um item. Estranho que eu coloco as seguintes linhas na minha rotina do exemplo Grid.7 e dá erro
Dai eu tenho que fazer o seguinte para dar certo como no exemplo Grid.7, estou utilizando o Minigui 2.20
Código: Selecionar todos
nFim := Form_1.grid_1.ItemCount
FOR x = 1 TO nFim
aDados := Form_1.grid_1.Item(x)
NEXT x
Form_1.text_1.Value := aDados[1]
Form_1.text_2.Value := aDados[2]
Desde já agradeço a todos que me veem me ajudando e espero que alguém possa me ajudar urgêntimente, pois não sei mais o que fazer para resolver este problema.
[]'s
Paulo - Jacareí/SP
Alteração dados no Grid
Enviado: 04 Abr 2013 12:15
por Pablo César
Paulo você mostra os exemplos do próprio Minigui, mas não mostra o seu código... como saber de que forma está o seu grid, as suas rotinas ? Não sei por quê tanto receio de postar o código. Sem código, eu não tenho como rodar... e ficaria dando alternativas A, B... como um tiro no escuro... Eu nem sequer entendi o seu problema. Tentou transformar o conteúdo de data para caracter ? Sei lá...
Alteração dados no Grid
Enviado: 04 Abr 2013 13:30
por Daniel
Ola
o erro e que vc esta alterando mais de um dado do grid
Código: Selecionar todos
Function Alterar()
LOCAL x , aDados:= {} , nFim , i
nFim := Form_1.grid_1.ItemCount
FOR x = 1 TO nFim
AADD(aDados, Form_1.grid_1.Item(x))
NEXT x
Form_1.text_1.Value := aDados[1][1]
Form_1.text_2.Value := aDados[1][2]
Form_1.text_1.SetFocus
i := Form_1.grid_1.Value
Form_1.grid_1.Item(i) := {Form_1.text_1.Value,Form_1.text_2.Value}
RETURN NIL
Função de Alteração não funciona
Enviado: 08 Abr 2013 21:54
por Paulo_CPV
Boa noite!
Colegas do grupo estou tentando criar uma função de alteração para uma GRis, já faz dias e não estou conseguindo de jeito nenhum, o que está acontecendo é o seguinte: Quando pesso para alterar o dado no grid ele nã muda o valor no grid e não faz o cálculo para o novo período. Estou anexando executável e fontes para quem puder me ajudar. O Exemplo está em Minigui 2.20 e Harbour 3.2 e BCC 5.5.1
[]'s
Paulo - Jacareí/SP
Função de Alteração não funciona
Enviado: 08 Abr 2013 22:16
por luiz antonio da silva
Olá Paulo !
Deu erro na execução aqui na hora de incluir ("oDataConv"), mas acredito que com a alteração abaixo deva funcionar.
Código: Selecionar todos
IF Op == "ADICIONAR"
Form_1.Grid_1.AddItem ( { Form_1.Text_1.Value , Form_1.Text_2.Value } )
Form_1.Grid_1.Value := Form_1.Grid_1.ItemCount
ELSEIF Op == "ALTERAR"
i := Form_1.Grid_1.Value
// Form_1.Grid_1.Item(i) := { Form_1.Text_1.Value,Form_1.Text_2.Value }
Form_1.Grid_1.cell(i,1):= Form_1.Text_1.Value
Form_1.Grid_1.cell(i,2):= Form_1.Text_2.Value
Form_1.Grid_1.refresh
oDataConv:ConvertaDatas(Form_1.text_1.Value,Form_1.Text_2.Value,1,2)
ENDIF
Abraço.
Luiz.
Função de Alteração não funciona
Enviado: 08 Abr 2013 22:42
por Paulo_CPV
Boa noite!
Esqueci de colocar a variável oDataConv....
Função de Alteração não funciona
Enviado: 09 Abr 2013 07:38
por Paulo_CPV
Bom dia!
Luiz fiz a modificações que você me propôs mas mesmo assim não deu certo, continua não atualizando o Grid e não fazendo o cálculo do período alterado.
[]'
Paulo -Jacareí/SP
Harbour 3.x Minigui 2.x HMG 3.x MYSQL
Função de Alteração não funciona
Enviado: 09 Abr 2013 09:03
por Jairo Maia
Olá Paulo,
O problema é que você tem mais 2 tópicos além deste sobre o mesmo assunto, a saber:
Em 01/04/12 - Ajuda sobre rotina de alteração
Em 04/04/12 - Alteração dados na Grid
Neste último (04/04/12), você tentou as alterações sugeridas pelo colega Daniel? Se sim, também não funcionou?
Função de Alteração não funciona
Enviado: 09 Abr 2013 10:57
por Paulo_CPV
Bom dia!
Luiz, já fiz o teste com o que o Daniel me passou e também não deu certo. Estou fazendo de tudo, mas não funciona de geito nenhum. Pelo exemplo que eu peguei no HMG (Grid.7) funciona perfeitamente.
[]'s
Paulo - Jacareí/SP
Harbour 3.2 Minigui 2.20 HMG 3.x MYSQL
Função de Alteração não funciona
Enviado: 09 Abr 2013 19:50
por luiz antonio da silva
Olá Paulo !
Posso alterar seu código ?, nos testes que fiz tem diferença nos resultados dos cálculos, se puder alterar acredito que ficará mais enchuto e funcional.
* O resultado calculado data a data vai levar em conta ano bi, mas a soma dos dados registro a registro vai tomar como base o mes comercial, (30 dias) ?.