Clipper On Line • Ver Tópico - Ajuda sobre total de matrizes (ARRAY)

Ajuda sobre total de matrizes (ARRAY)

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Ajuda sobre total de matrizes (ARRAY)

Mensagempor Paulo_CPV » 07 Mar 2013 10:34

Bom dia!

Gostaria de uma ajuda de vocês para resolver o meu problema. É o seguinte eu
tenho um TEXTBOX que o usuário entra com o seguinte dado: 00 00 00 (estes dadps
são anos meses e dias separados por espaço) Agora quero totalizar as entrados do
usuário. Por exemplo:

Ele digita por exemplo 3 entradas

00 00 10
01 05 12
02 02 20

Pois bem até ai tudo certo, agora que eu estou me confundindo todo, eu tenho que
totalizar a coluna 1,2,3. Como cologar numa GRID os subtotais, por exemplo o
primeiro item é só adicionar na Grid da segunda em diante tenho que somar a
primeira com a segunda e jogar na Grid e até dar o resultado total, não é uma
quantidade exata de itens que o usuário irá entrar. Estou colocando desta
maneira:
Function somavetor(p1,p2,p3)

aVetor := {}

aux := ALLTRIM(p1+p2+p3)

a := SUBSTR(p1,1,2)
b := SUBSTR(p2,3,2)
c := SUBSTR(p3,5,2)

AADD(aVetor,{a,b,c})
Como eu faço para aomar as colunas de cada entrada do usuário ? Espero que eu
fui o suficiente objetivo na esplicação do meu 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 total de matrizes (ARRAY)

Mensagempor Pablo César » 07 Mar 2013 11:12

Oi Paulo, seja bem vindo ao fórum !

Paulo_CPV escreveu:tenho um TEXTBOX que o usuário entra com o seguinte dado: 00 00 00 (estes dados são anos meses e dias separados por espaço)
Eu fosse você, no lugar de usar um TEXTBOX eu usaria um DATEPICKER, que é próprio para controlar a entrada de dados tipo DATAs.

Agora quero totalizar as entrados do usuário. Por exemplo:

Ele digita por exemplo 3 entradas

00 00 10
01 05 12
02 02 20
Estas três são datas ? Pois é estranho valor 00 como ano e mês.

tenho que totalizar a coluna 1,2,3. Como colocar numa GRID os subtotais.
Por exemplo o primeiro item é só adicionar na Grid da segunda em diante tenho que somar a primeira com a segunda e jogar na Grid e até dar o resultado total, não é uma quantidade exata de itens que o usuário irá entrar.
Não entendi direito. Seria você somar a primeira coluna e o resultado somar com a segunda coluna e o resultado somar com a terceira coluna, é isso ? São não for, faça um exemplo e mostre o resultado esperado. Porque as suas palavras não foram o suficiente claras.

Function somavetor(p1,p2,p3)
Que dados contém p1, p2 e p3 ?

Você menciona "como faço para somar" e lembre que o conteúdo de um TextBox é do tipo caracter. E se você for apenas utilizar o sinal de somar "+", ele irá concatenar e não fazer uma soma propriamente dita. Entendeu ? String = cadeia de caracteres e somar operação matemática.

Seja como for, você utilizando TEXTBOX ou DATEPICKER, você terá três desses elementos, certo ?
Então provavelmente você terá um botão que acionará a soma das colunas. Nessa função de somar, você precisa pegar os dados das três colunas, ou seja 9 dados. Para pegar esses dados, você tem nomes diferentes para esses elementos. Portanto você irá colocar numa variável ou 3 vetores ou até mesmo num vetor tridimensional. Depois seria converter esses dados em valor numérico e somar a três variáveis e adicioná-la ao grid, como você mesmo pediu.

Para termos uma melhor inteiração, você deveria postar o seu código, assim fica mais acertado as nossas indicações. Note que pode ser compactados e anexado a sua próxima mensagem.

Espero ter ajudado.
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 total de matrizes (ARRAY)

Mensagempor Paulo_CPV » 07 Mar 2013 11:35

Bom dia!

Paulo Cesar desde njá obrigado pela sua ajuda, mas eu não fui bem obejtivo, porque os dados que estão entrando já estão convertidos em anos meses e dias, por isso o "00" nos anos, o meu problema esta na totalização das colunas do vetor.

Obrigado pela dica e espero que você me escreva de novo se tiver algo diferente para acrescentar.

[]'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 total de matrizes (ARRAY)

Mensagempor Paulo_CPV » 07 Mar 2013 11:43

Tem de somar a coluna 1 separado, coluna 2 separado e depois coluna 3, isto é para n entradas que o usuário desejar entrar e só depois dat o total da coluna 1,2 e 3...e n linhas.
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 total de matrizes (ARRAY)

Mensagempor Pablo César » 07 Mar 2013 12:02

Favor postar o seu código !

Paulo_CPV escreveu:Bom dia!

Paulo Cesar desde
Hoje é a segunda vez que chamam-me de Paulo.

Mi nombre es Pablo. Paulo tambien existe en español !. Asi que por favor, me llame de Pablo. :D
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 total de matrizes (ARRAY)

Mensagempor alxsts » 07 Mar 2013 12:39

Olá!

Mais uma vez, seja bem-vindo!

Creio que a melhor solução é converter tudo em dias, acumular e depois reconverter.

Construí o código abaixo. Adapte-o à sua necessidade e veja se ajuda. Não compilei nem testei.
FUNCTION Main()

   LOCAL aTotalTime AS Array
   
   // A cada grupo anos/meses/dias digitado, faça uma chamada à função SomaVetor
   // enviando os valores dos 3 text box como parâmetros

   SomaVetor ( text1.Text, text2.Text, text3.Text )

   // ...
   
   // Quando o usuário terminar de digitar, chame a função sem parâmetros
   // Retornará um vetor com 3 elementos: total de anos, total de meses e total de dias

   aTotalTime := SomaVetor ( text1.Text, text2.Text, text3.Text )

RETURN

//------------------------------------------------------------------------------

FUNCTION SomaVetor(p1,p2,p3)

   STATIC aVetor    AS Array
   LOCAL aRet       AS Array
   LOCAL nTotalDays AS Numeric
       
   IF PCount() == 3
      IF aVetor == NIL
         aVetor := {}
      ENDIF   
      // acumula valores digitados
      AADD( aVetor,{ Val(p1), Val(p2), Val(p3) } )
   ELSE
      // chamada da função sem parâmetros... totaliza
      // Converte todos os valores para dias, considerando
      // ano com 365 dias e mes com 30 dias
      nTotalDays := 0
      AEval( aVetor, { |e| nTotalDays += ( (e[1] * 365) + (e[2] * 30) + e[3] ) } )

      // Reconverte o total para Anos/Meses/Dias
      aRet := Array( 3 )
     
      aRet[1] := Int( nTotalDays / 365 )
      aRet[2] := Int( (nTotalDays % 365 ) / 30 )
      aRet[3] := Int( (nTotalDays % 365 ) % 30 )
                 
      aVetor := NIL   
   ENDIF
   
RETURN aRet
//------------------------------------------------------------------------------
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2945
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Ajuda sobre total de matrizes (ARRAY)

Mensagempor Pablo César » 07 Mar 2013 14:11

Paulo_CPV escreveu:Tem de somar a coluna 1 separado, coluna 2 separado e depois coluna 3, isto é para n entradas que o usuário desejar entrar e só depois dat o total da coluna 1,2 e 3...e n linhas.
Esses dados das colunas, estão no grid ou textbox ? Mostre seu código, apenas o módulo prg em questão.
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 total de matrizes (ARRAY)

Mensagempor Paulo_CPV » 07 Mar 2013 14:40

Boa tarde!

Pablo, eu ainda não tenho o modulo pronto só tenho as definições que coloquei para você e não tenho a minima ideia de como fazer. E me desculpe pela troca de seu nome.

[]'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 total de matrizes (ARRAY)

Mensagempor Pablo César » 07 Mar 2013 14:57

Tudo bem, então. Só explique melhor ou coloque alguma tela de como você deseja que fique tudo isso.
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 total de matrizes (ARRAY)

Mensagempor Paulo_CPV » 07 Mar 2013 15:46

Que tenha um formulário com 3 TEXTBOX para ano, mês e dias, um grid que mostre os dados que estou entrando e vai me mostrando o subtotal num LABEL. Espero ter sido objetivo na minha explicaçã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 total de matrizes (ARRAY)

Mensagempor Pablo César » 07 Mar 2013 16:37

Ok, Paulo desculpe ser reiterativo. Agora ficou claro. Mas posso questionar algo ? Esse grid o que irá conter apenas esses 3 datas ? Por quê não utiliza diretamente no próprio grid ? E soma após preenchimento ou após clicar num botão ? A interface com usuário, deve ser o mais claro possível e mais prático também.

Veja se pode ser desta forma:
Tela80.PNG
Tela80.PNG (11.55 KiB) Visualizado 1578 vezes

Segue em anexo o executável para apreciação, o arquivo fonte e arquivos para IDE.

Conforme você vai mudando de registro (cada três datas), ele exibirá no StatusBar o resultado da soma que você queria. Espero que tenha gostado da ideia !
Anexos
Teste76.rar
(753.32 KiB) Baixado 72 vezes
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 total de matrizes (ARRAY)

Mensagempor Paulo_CPV » 07 Mar 2013 19:28

Boa noite!

Pablo, eu gradeço a sua atenção para comigo e vou testar o que você me postou e depois lhe digo se deu certo.

[]'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 total de matrizes (ARRAY)

Mensagempor alxsts » 07 Mar 2013 20:11

Olá!

Paulo_CPV escreveu:dados que estão entrando já estão convertidos em anos meses e dias, por isso o "00" nos anos


Pablo, creio que você não entendeu a necessidade do Paulo.

O que ele precisa saber é qual a soma de:
    5 Anos  4 Meses  10 Dias +
   12 Anos  1 Meses  22 Dias +
    0 Anos  2 Meses   5 Dias +
    6 Anos  0 Meses   0 Dias
   ---------------------------
= 23 Anos  8 Meses   7 Dias
É exatamente o que faz o código que postei (não pude compilar nem testar)...
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2945
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Ajuda sobre total de matrizes (ARRAY)

Mensagempor Pablo César » 07 Mar 2013 22:33

Ahh obrigado Alexandre ! Agora entendi. Nada como uma ilustração do enunciado.

É exatamente o que faz o código que postei (não pude compilar nem testar)...
Eu a minha própria rotina, o resultado é como você apresentou:
Tela81.PNG
Tela81.PNG (11.6 KiB) Visualizado 1573 vezes

Espero que dê certo desta vez.
Anexos
Teste76.rar
(753.19 KiB) Baixado 96 vezes
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 total de matrizes (ARRAY)

Mensagempor Paulo_CPV » 08 Mar 2013 09:17

Bom dia!

alxsts, obrigado pela sua dica e obrigado pela sua atenção para tentar solucionar a minha dúvida. Tentei compilar ao seu exemplo, mas esta dando muitos erros se você tiver alguma ideia de como resolver o meu problema, desde já agradeço a 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

Próximo



Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 10 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