Clipper On Line • Ver Tópico - Facilidade de soluções e -w3 -es2
Página 1 de 1

Facilidade de soluções e -w3 -es2

MensagemEnviado: 17 Jul 2019 16:45
por JoséQuintas
Tem horas que eu mesmo me espanto com facilidade em soluções.
E compilando com -w3 -es2... facilita muito mais.

Problema:

tem lá a rotina que cria e pode enviar por email os XMLs de um mês
Agora foi necessário gerar de 2016 a 2018, 36 meses....
Como separar por mês?

Bom... vamos lá...

GET dDatIni
GET dDatFim
...
rotina que gera

passo 1:
Separei a rotina que gera

FUNCTION GeraDados( dDatIni, dDatFim )

E compilando com -w3 -es2, ajustei as variáveis, pra deixar no lugar certo.
Desta forma, a sub-rotina passou a gerar qualquer intervalo que eu queira

Agora só restou passar as datas pra rotina, e nada mais.

Solução relativamente simples:

dSubDatIni := dDatIni
DO WHILE dSubDatIni < dDatFim
   dDatSubFim := Min( UltDia( dSubDatIni ), dDatFim )
   GeraDados( dSubDatIni, dSubDatFim )
   dDatSubIni := UltDia( dDatSubIni ) + 1
ENDDO


Pronto, problema resolvido.

explicando....

A data inicial se mantém...
A data final pode ser o último dia do mês da data inicial, ou a data final digitada, a menor das duas
Exemplo: de 1/5 a 10/5 ou 1/5 a 31/5
Pronto... isso resolve pra ter as datas limites do primeiro mês

O próximo mês: será o último dia desse primeiro mês, somando um.
Exemplo: se é 1/5... o último dia será 31/5, que somado um é 1/6
E volta a repetir o anterior, até que esse primeiro dia seja maior do que o limite digitado.

Um problema que à primeira vista seria complexo, resolvido com poucas linhas.

E lógico... compilando com -w3 -es2, que avisa sobre variáveis, facilitou evitar erros na separação da rotina, foi só criar as variáveis necessárias, ou passar por parâmetro se necessário.

A intenção é mostrar aqui o seguinte:

1. Compilando com -w3 -es2 ajuda muito, porque mexe sem medo, e evita erros
2. Pensando em melhorar rotinas, sobra tempo pra pensar em rotinas melhores.
3. Resultado final: rotinas melhores, menos trabalho, e soluções mais rápidas

Às vezes até compensa fazer pausas, pensar um pouco, tomar café, jogar asteroyds, voltar a pensar, jogar mais asteroyds, e depois alterar.
Vai gastar o mesmo tempo, mas fazer muito mais tranquilo.

Agora gerando....

gera1.png


gera2.png


Conferidos os meses já gerados, tempo pra jogar mais asteroyds, ou postar no fórum, ou melhorar mais coisas, ou tomar café, ou relaxar um pouco, ou partir pra próxima tarefa... tudo tranquilo.

Nota: São todos os XMLs emitidos e recebidos em 3 anos, por isso demora um pouquinho, talvez alguns gigas...
O nome dos arquivos.... CNPJ-ano/mês.zip... mais simples impossível.

Facilidade de soluções e -w3 -es2

MensagemEnviado: 17 Jul 2019 16:57
por JoséQuintas
gera2.png
gera2.png (4.62 KiB) Visualizado 562 vezes


Aproveitando....

Esse arquivo é o backup dos dados...
É um aplicativo de meu uso, JPA Tecnologia é minha empresa.

Alguma dúvida sobre o arquivo ser de JPA Tecnologia, ser backup, e ter sido feito nessa data?
Nome simples, não precisa nada especial pra saber do que se trata.

E se eu misturar tudo que é backup, de vários clientes, etc....
tem lá nome da empresa, data e hora. Ficando tudo na mesma pasta, nada está misturado.

Antigamente meus backups de fontes eram assim também.
Fica prático, não precisa ficar inventando nomes, e fica fácil pra localizar depois.
No caso dos fontes, chamava de FONTES-anomesdia-hora.zip
Tudo organizado, sem precisar organizar kkkk

Serve como sugestão pra vocês, caso ainda não façam assim.

Facilidade de soluções e -w3 -es2

MensagemEnviado: 17 Jul 2019 17:09
por JoséQuintas
Minha pasta com tudo junto, só pra mostrar como fica:

backup.png

Facilidade de soluções e -w3 -es2

MensagemEnviado: 17 Jul 2019 17:13
por JoséQuintas
Aonde está o backup da empresa tal.... na pasta de backup.
Vou testar a empresa tal... descompacto o backup e faço o teste.
Espalhar coisas no HD pra que? pra depois ficar procurando?

É o que eu digo: organizar o trabalho, simplifica tudo, tem muita coisa que pode ser organizada.
anos depois.... tá lá na pasta backup, o zip da empresa... não esquece nunca aonde está, passou a fazer parte do dia a dia, mesmo que demore anos pra usar.

Também uso esse esquema no cliente, também para o MySQL, e tudo mais, funcionou - é usar sempre e pronto.

Também serve, numa olhada rápida, pra ver se o backup está menor, o que pode indicar perda de informações ou backup incompleto - pode acontecer isso, nunca se sabe.