Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   PowerCOBOL (ActiveX, v4 - v11) (https://www.cobolforo.es/forumdisplay.php?f=9)
-   -   [Sintaxis] Uso del control CmProgress (https://www.cobolforo.es/showthread.php?t=374)

Breew 18 de abril de 2016 16:15

Uso del control CmProgress
 
Hola.

Al arrancar el programa necesito cargar un fichero muy grande.
Como la espera es "desesperante", he intentado decorar la carga con una barra con porcentaje, pero no acabo de ver como funciona.

No encuentro la manera de que vaya bien. Creo que la intencion es buena.
Abro el fichero, invoco el timer y dentro del timer voy leyendo registros.

¿ Como lo haceis funcionar ?

Saludos:(

Josber 18 de abril de 2016 17:43

Breew,
¿Qué versión de PWC estás usando?

Breew 18 de abril de 2016 22:44

Hola.

Perdonad el despiste.Estoy usando la version 9.0 compilada en Windows7

Rapinto 19 de abril de 2016 00:15

Breew,

Está na Cocina del Foro um exemplo para saber o numero total de registos num ficheiro.
"Numero de Registos num Ficheiro indexado".

Colocas o numero total de registos no "MAX" da CMprogress

Em seguida, por cada registo lido, somas 1 ao "value" da cmprogress.

Não necessitas de nenhum cmtimer para isto.
Deves executar um ThruEvents por exemplo de 1000 em 1000 registos, para não bloquear tudo.

Se não conseguires diz-me. Posso fazer um exemplo.

Desculpa responder em português (espero que entendas).

Saludos,
Rui Pinto

Josber 19 de abril de 2016 09:53

Yo utilizo una barra que es un ocs de terceros, el que trae PWC9, no me gusta nada, el "repintado" que hace es muy malo, el que uso se llama "progressbar-xp.ocx", que trae bastantes opciones y es muy sencillo de utilizar.
Como te ha dicho Rui, no tienes que hacerlo con un timer, sino:

- Saber el número total de registros, o lo haces con la utilidad que te ha dicho Rui, o haces una doble lectura del fichero, (la primera para saber el total de registros).
- Pones el total de registros en la propiedad "Max" de la barra de progreso y 1 en la propiedad "Min"
- Por cada lectura que hagas, sumas 1 a un contador y ese contador lo mueves a la propiedad "Value" de la barra de progreso
- Cuando termines de leer, pones a 0 la propiedad "Visible" de la barra

Por ejemplo:

Código COBOL:
  1. INICIO.
  2.         MOVE CONTASQL TO "Max" OF PROGRESO.
  3.         MOVE 1        TO "Min" OF PROGRESO.
  4.         MOVE 1        TO "Visible" OF PROGRESO.
  5.                      .
  6.                      .
  7.                      .
  8. LEER.
  9.         READ fichero NEXT .....
  10.         ADD 1 TO CONTA.
  11.         MOVE CONTA TO "Value" OF PROGRESO.
  12.                      .
  13.                      .
  14.                      .
  15. FIN.
  16.         MOVE 0        TO "Visible" OF PROGRESO.


Y con eso debe de funcionarte, si quieres el ocx, dilo y lo subo.

Un saludo.-

Kuk 19 de abril de 2016 10:10

Rapinto, Josber, la ventaja del Timer, ahora que lo pienso, podría ser que en Windows 7 por ejemplo, el ProgressBar incluso cuando está parado, si no está a 0, hay un reflejo que recorre la parte llena cada x segundos. Este efecto desaparece en un bucle con ThruEvents, el cual resolvía el problema en XP porque ahí no hay ningun reflejo ni nada, sólo barra de progreso como tal. Como el Timer trabaja, por decirlo de alguna manera, "en un hilo separado", podría mantener el reflejo que digo.

Josber 19 de abril de 2016 10:42

Supongo Kuk, pero, creo que es consumir recursos así porque así.

Un saludo.-

Breew 22 de abril de 2016 00:04

Hola Josber,

Sube el ocx, me gustaria echarle un vistazo

Gracias

Josber 22 de abril de 2016 12:04

1 Archivos Adjunto(s)
Aquí lo tienes, es muy sencillo de usar, pero si te hace falta ayuda, dilo.

Un saludo.-

Breew 23 de abril de 2016 17:27

Hola.


Perfecto.
Ahora tengo un problema. el cmprogress lo tengo metido en opened event.
Pero no es visible hasta que no acaba de hacer todas las instrucciones del opened event.
Como hago para que primero carque toda la pantalla y despues ejecute la lectura del archivo con el cmprogress[COLOR="Silver"]

---------- Post añadido : 17:27 ---------- Post anterior : 17:10 ----------

Cita:

Citación del post de Josber (Mensaje 1831)
Aquí lo tienes, es muy sencillo de usar, pero si te hace falta ayuda, dilo.

Un saludo.-

hola.

No puedo instalarlo ni con el regsvr32 ni con el powercobol. me da error.:confused::confused:

Saludos


La franja horaria es GMT +2. Ahora son las 15:40.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.