Clipper On Line • Ver Tópico - Ajuda sobre somatoria de Arrays

Ajuda sobre somatoria de Arrays

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Ajuda sobre somatoria de Arrays

Mensagempor Paulo_CPV » 27 Mar 2013 09:03

Bom dia!

Pessoal, estou com uma dúvia a respeito de somatórias com Arrays bidimencionais para serem adicionados em uma Grid, espero que alguém do grupo pode me ajude. O meu caso é o seguinte eu preciso fazer uma somatória da seguinte forma:

aSoma:= {}
aSoma[n1,n2] := valor

O layout da Grid é o seguinte:

Data 1 Data 2 Valor 1 Valor 2 Valor 3

Os itens data 1 e data 2 não serão somados, somente os itens valor 1 , valor 2 e valor 3 é adicionado os primieros e os seguintes são somados aos anteriores e adicionados a Grid , tudo isso o usuário esta entrando n vezes e depois da entrada dos dados mostrar o total num Label.

Desde já agradeço a todos que puderem me ajudarem a resolver este problema.

[]'s
Paulo - Jacareí/SP
Paulo_CPV
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 178
Data de registro: 07 Mar 2013 10:27
Cidade/Estado: Jacarei/SP
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Ajuda sobre somatoria de Arrays

Mensagempor Pablo César » 27 Mar 2013 10:26

Paulo_CPV escreveu:somente os itens valor 1 , valor 2 e valor 3 é adicionado os primieros e os seguintes são somados aos anteriores
Não entendi.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Ajuda sobre somatoria de Arrays

Mensagempor Paulo_CPV » 27 Mar 2013 10:37

Bom dia!

Pablo, me desculpe de novo de não ser objetivo, o que eu queria dizer é o seguinte:

Os itens data 1 e data 2 são adicionados normalmente.
Os itens valor 1 , valor 2 e valor 3, na primeira entrada são adicionados normalmente a partir da segunda entrada tenhoa que somar os valores anteriores com os valores digitados pelo usuário e depois adicionar na Grid.

Espero ter esclarecido. Obrigado pela sua atenção.

Paulo - Jacareí/SP
Paulo_CPV
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 178
Data de registro: 07 Mar 2013 10:27
Cidade/Estado: Jacarei/SP
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Ajuda sobre somatoria de Arrays

Mensagempor Pablo César » 27 Mar 2013 10:51

Bom dia Paulo.

Paulo_CPV escreveu:Os itens data 1 e data 2 são adicionados normalmente.
Os itens valor 1 , valor 2 e valor 3, na primeira entrada são adicionados normalmente
Até ai: Ok, entendi.

Paulo_CPV escreveu:a partir da segunda entrada tenhoa que somar os valores anteriores com os valores digitados pelo usuário e depois adicionar na Grid.
Como na sua primeira mensagem você disse que no grid tem as seguintes colunas: Data1 Data2 Valor1 Valor2 Valor3, ai pergunto de que forma tem que ser somados os valores ?

Valor1+ Valor2 = Valor3

ou

                     Valor1 Valor2 Valor3
                     Valor1 Valor2 Valor3
                    ------------------------
Resultado das somas: Valor1 Valor2 Valor3


Tenho impressão que seria como uma espécie de extrato, onde a primeira coluna é o crédito, a segunda o débito e a terceira saldo ?
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Ajuda sobre somatoria de Arrays

Mensagempor Paulo_CPV » 27 Mar 2013 12:34

Boa tarde!

Pablo, o que eu quero é o segundo exemplo que você me mostrou.
Paulo_CPV
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 178
Data de registro: 07 Mar 2013 10:27
Cidade/Estado: Jacarei/SP
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Ajuda sobre somatoria de Arrays

Mensagempor Pablo César » 27 Mar 2013 16:06

Paulo_CPV escreveu:Pablo, o que eu quero é o segundo exemplo que você me mostrou.
Ok, então considerando 3 TEXTBOXes como você acostuma fazer e o ultimo registro do grid (colunas: Valor1, Valor2 e Valor3), você precisaria somar ao próximo registro a ser incluso no grid, isto a partir de segundo registro.

Então o que faltaria para você fazer isso ?
Na hora de adicionar o registro no grid, você irá ver antes, quantos registros o seu grid possui e pegar o conteúdo nas três colunas do ultimo registro. Então, lembra a função SomaRegistro que tinha passado do outro tópico seu ? Nessa função tem como você obter a "Tupla" do grid, varrendo todo o array, mas neste caso só irá pegar o ultimo com: nFim:=Form_1.Grid_1.ItemCount, ai é só somar o value de cada TEXTBOX e adicionar ao grid.

Senão conseguir, disponibilize o seu código para poder aplicar correções na sua tentativa.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Ajuda sobre somatoria de Arrays

Mensagempor luiz antonio da silva » 27 Mar 2013 20:42

Olá Paulo !

Completando o que o amigo Pablo falou...

O usuário poderá excluir ou alterar algum registro desse grid ?, se sim para exclusão, após executar o form_1.grid_1.deleteitem(x) você terá que reler o grid desde o início refazendo o cálculo para atualizar o último registro (caso o item excluido não seja o último registro), e se sim para alteração, você terá que de alguma maneira (poderia ser clicando no registro a ser alterado) saber qual saldo anterior pegar para ser somado com o valor do textbox e reler o grid após esse registro para atualizar os dados...blz

Abraço.
Luiz.
HMG 3.4.4 - SQL SERVER - ORACLE
luiz antonio da silva
Usuário Nível 3

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

Ajuda sobre somatoria de Arrays

Mensagempor Paulo_CPV » 28 Mar 2013 08:20

Bom dia!

Pablo, muito obrigado mais uma vez pela sua ajuda, deu tudo certo, rotina funcionando 100%. Desde já agradeço a sua atenção para me ajudar nas minhas dúvidas e se precisar também estarei a disposição.

[]'s
Paulo - Jacareí/SP
Paulo_CPV
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 178
Data de registro: 07 Mar 2013 10:27
Cidade/Estado: Jacarei/SP
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Ajuda sobre somatoria de Arrays

Mensagempor Pablo César » 28 Mar 2013 08:43

Beleza Paulo, fico contente que tenha conseguido. Só que o colega Luiz complementou um ponto importante sobre a manutenção dos registros no grid que deve levar em conta.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Ajuda sobre somatoria de Arrays

Mensagempor Paulo_CPV » 28 Mar 2013 11:02

Pablo,

vi o comentario do colega Luiz e já estou pensando no assunto. Mas agora estou com outra dúvida, fiz uma rotina para limpeza da Grid para que o usuário entre com novos dados. Para mim está tudo certo, mas para ficar mais uniforme: Na primeira chamada da função ele me mostra no Grid com as colunas com atributos zerados, eu queria que ele me retornase de novo as colunas zeradas, quando chamo a função NovoCalculo().


aRows:={{CTOD(""),CTOD(""),0,0,0}}

DEFINE GRID grid_1
.
.
.
ITENS aRows
.
.
.
END GRID

    / /    //    0    0   0

* Função para limpaza da Grid
Function NovoCalculo()

   Form_1.Grid_1.DeleteAllItems

   Form_1.Text_1.Value  := ""
   Form_1.Text_2.Value  := ""
   Form_1.Label_2.Value := ""

   Form_1.Text_1.SetFocus

RETURN Nil


Eu queria que ele me mostrase de novo: // // 0 0 0 e não deixar a Grid em branco.

[]'s
Paulo - Jacareí/SP
Paulo_CPV
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 178
Data de registro: 07 Mar 2013 10:27
Cidade/Estado: Jacarei/SP
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Ajuda sobre somatoria de Arrays

Mensagempor Pablo César » 28 Mar 2013 11:22

Na sua função NovoCalculo(), após Form_1.Grid_1.DeleteAllItems, você precisa adicionar ao menos um "registro" no vetor, assim:

Form_1.Grid_1.AddItem({{CTOD(""),CTOD(""),0,0,0}})

A função DeleteAllItems() elimina todos os itens deixando sem conteúdo algum e portanto irá dar erro.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Ajuda sobre somatoria de Arrays

Mensagempor Paulo_CPV » 28 Mar 2013 12:28

Pablo,

Muito obrigado pela sua ajuda, eu estava pensando nisto que você me passou, agora está funcionando beleza. Mas agora vou penssar no comentário do colega Luiz.

Mais uma vez agradeço sua atenção.

[]'s
Paulo - Jacareí/SP
Paulo_CPV
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 178
Data de registro: 07 Mar 2013 10:27
Cidade/Estado: Jacarei/SP
Curtiu: 0 vez
Mens.Curtidas: 1 vez




Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 3 visitantes


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