Página 1 de 1

Ajuda sobre somatoria de Arrays

Enviado: 27 Mar 2013 09:03
por Paulo_CPV
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

Ajuda sobre somatoria de Arrays

Enviado: 27 Mar 2013 10:26
por Pablo César
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.

Ajuda sobre somatoria de Arrays

Enviado: 27 Mar 2013 10:37
por Paulo_CPV
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

Ajuda sobre somatoria de Arrays

Enviado: 27 Mar 2013 10:51
por Pablo César
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

Código: Selecionar todos

                     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 ?

Ajuda sobre somatoria de Arrays

Enviado: 27 Mar 2013 12:34
por Paulo_CPV
Boa tarde!

Pablo, o que eu quero é o segundo exemplo que você me mostrou.

Ajuda sobre somatoria de Arrays

Enviado: 27 Mar 2013 16:06
por Pablo César
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.

Ajuda sobre somatoria de Arrays

Enviado: 27 Mar 2013 20:42
por luiz antonio da silva
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.

Ajuda sobre somatoria de Arrays

Enviado: 28 Mar 2013 08:20
por Paulo_CPV
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

Ajuda sobre somatoria de Arrays

Enviado: 28 Mar 2013 08:43
por Pablo César
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.

Ajuda sobre somatoria de Arrays

Enviado: 28 Mar 2013 11:02
por Paulo_CPV
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().

Código: Selecionar todos


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

Ajuda sobre somatoria de Arrays

Enviado: 28 Mar 2013 11:22
por Pablo César
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.

Ajuda sobre somatoria de Arrays

Enviado: 28 Mar 2013 12:28
por Paulo_CPV
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