NAVISION 2009 – Como poner una barra de progreso

En Navision puede haber procesos largos, bien porque se recorran muchas tablas, porque consulten muchos datos, realicen muchas operaciones, etc.

Cuando el usuario va a ejecutar un proceso de este estilo, por ejemplo al pulsar un botón, se puede desesperar si no ocurre nada, puede creer que no le dio al botón y darle otra vez (haciendo que se ralentice más el proceso, o peor, que se cuelgue el cliente)

Para evitar esto una buena solución es abrir una ventana, con una barra de progreso en la que se le indique al usuario cuánto va a tardar ese proceso.

Para realizarlo:

Creamos las siguientes variables globales:

Progress        Window Dialog
NoOfRecs      Integer
CurrRec         Integer

navision-variables-globales

Y en el código indicamos lo siguiente:

  1. //++ INICIO - BARRA DE PROGRESO
  2. ProgressWindow.OPEN(
  3. 'Calculando importes...' +
  4. '@1@@@@@@@@@@@@@@@@@@@@@@@@\');
  5. ProgressWindow.UPDATE(1,0);
  6. //++ FIN - BARRA DE PROGRESO
  7.  
  8. IF recCompras.FINDSET THEN BEGIN
  9. NoOfRecs := recCompras.COUNT; //++ BARRA DE PROGRESO
  10. REPEAT
  11. CurrRec += 1; //++ BARRA DE PROGRESO
  12.  
  13. //++ INICIO - BARRA DE PROGRESO
  14. IF NoOfRecs <= 100 THEN
  15. ProgressWindow.UPDATE(1,(CurrRec / NoOfRecs * 10000) DIV 1)
  16. ELSE IF CurrRec MOD (NoOfRecs DIV 100) = 0 THEN
  17. ProgressWindow.UPDATE(1,(CurrRec / NoOfRecs * 10000) DIV 1);
  18. //++ FIN - BARRA DE PROGRESO
  19.  
  20. //INICIO: CÓDIGO DE PROCESO A REALIZAR
  21. //CÓDIGO DE PROCESO A REALIZAR AQUÍ
  22. //FIN: CÓDIGO DE PROCESO A REALIZAR
  23.  
  24. UNTIL recCompras.NEXT=0;
  25. END;
  26.  
  27. ProgressWindow.CLOSE; //++ BARRA DE PROGRESO

Resultado:

navision-barra-progreso