Tem horas que até eu me espanto de como fica fácil.
Imaginem o seguinte:
Mostrar nomes, e os totais de cada mês, num tbrowse.
Primeira coisa provável que vém na cabeça:
Montar o arquivo temporário e fazer o tbrowse.
E que tal fazer durante o browse?
Difícil?
Uso uma rotina minha do tbrowse, mas isso é o de menos, não faz diferença.
O segredo são as colunas do tbrowse, como definir essas colunas.
Então vamos lá... um tbrowse que mostre os meses de 1 a 12, não é isso?
Código: Selecionar todos
LOCAL oTBrowse := { ;
{ "NOME", { || hldimcab->Nome } }, ;
{ "LOCADOR", { || hldimcab->Locador } }, ;
{ "MES1", { || SomaMes(1) } }, ;
{ "MES2", { || SomaMes(2) } }, ;
{ "MES3", { || SomaMes(3) } }, ;
{ "MES4", { || SomaMes(4) } }, ;
{ "MES5", { || SomaMes(5) } }, ;
{ "MES6", { || SomaMes(6) } }, ;
{ "MES7", { || SomaMes(7) } }, ;
{ "MES8", { || SomaMes(8) } }, ;
{ "MES9", { || SomaMes(9) } }, ;
{ "MES10", { || SomaMes(10) } }, ;
{ "MES11", { || SomaMes(11) } }, ;
{ "MES12", { || SomaMes(12) } } }
Pronto, meses de 1 a 12.
Agora as somas:
O Tbrowse navega pelas pessoas, então fica posicionado em alguém.
A coluna do tbrowse informa qual é o mês.
Então basta uma rotina que some um mês de uma pessoa.
Código: Selecionar todos
STATIC FUNCTION SomaMes( nNumMes )
LOCAL mTotAluguel := 0, mTotComissao := 0
SELECT informe
SEEK Str( hldimcab->Locador, 4 )
DO WHILE informe->LoCod == hldimcab->Locador .AND. .NOT. Eof()
IF informe->Mes == nNumMes
mTotAluguel += informe->Valor
mTotComissao += informe->ValorComis
ENDIF
SKIP
ENDDO
SELECT hldimcab
RETURN Transform( mTotAluguel, "@E 999,999,999.99" ) + " " + Transform( mTotComissao, "@E 999,999,999.99" )
Tive que aproveitar um índice existente, senão poderia pegar em ordem de data e deixar mais rápido, processando só um intervalo de data.
Como ainda é fase de testes, pra ver as necessidades, não me preocupei com isso ainda.
Mas está aí.
Um detalhe curioso:
Durante a navegação com "setinhas", caso haja um pagamento lá no caixa, o tbrowse vai ser atualizado instantâneo, já que calcula na hora !!!!
A pessoa está acostumada a esperar o final do ano pra ver alguma soma, e está preocupada com isso.
Imaginem essa pessoa vendo os totais on-line, assim que o pagamento for efetuado no caixa....
Não vejo a hora de mostrar pra essa pessoa, pra ver a reação.
Lógico... já sei que uma coisa leva a outra....
Qualquer coisa a mais que seria no final do ano, vai ser antecipado pra agora.
Mas tudo bem, teremos mais tempo pra isso, ao invés de fazer correria no final do ano.
E até começar a acompanhar quais os problemas, e corrigir antes que os problemas se acumulem.
E puxar a orelha de quem estiver gerando problema.
Mas não parei por aí....
Depois tem a parte de rateio entre pessoas, e também vou colocar pra quando der ENTER numa coluna, mostrar todos os detalhes do que está sendo somado.
Mas uma coisa de cada vez.
O principal é ver se está caminhando para o resultado esperado, antes de complicar mais.