Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Fujitsu COBOL PowerCOBOL (ActiveX, v4 - v11)
PowerCOBOL (ActiveX, v4 - v11) Versiones del IDE basadas en ActiveX
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Sintaxis] Evento GotFocus Begoguay PowerCOBOL (ActiveX, v4 - v11) 8 21 de diciembre de 2020 21:34
[Duda] Elegir evento para validar existencia del fichero dmosca PowerCOBOL (ActiveX, v4 - v11) 2 8 de julio de 2019 19:23
[Sintaxis] Evento Timer de más de 65535 ms Josber PowerCOBOL (ActiveX, v4 - v11) 4 8 de junio de 2016 16:19
[Sintaxis] Evento MouseMove ¿?¿? Josber PowerCOBOL (ActiveX, v4 - v11) 3 11 de mayo de 2016 09:55
[Duda] Evento "Resized" del Form (Sheet) Kuk PowerCOBOL v3 (V3L10, Win32) 4 27 de julio de 2015 17:09

Respuesta

  #1
Antiguo 4 de diciembre de 2018, 07:59
Breew
Patrocinador del Foro
Última Actividad 09.05.2022 07:47
Posts Posts: 125
Likes enviados Enviados: 104
Likes recibidos Recibidos: 8
Predeterminado Ralentizar el evento
0 Inactivo Inactivo

Hola.
Intento enviar dos mail consecutivos mediante el dde-word
Hago una llamada al sistema y utilizo el programa Blat para enviar el correo.
A continuacion lo vuelvo a enviar a una segunda direccion de correo.

El problema que tengo es que lo hace tan rapidamente que solo sale uno de ellos, omitiendo el otro.
Quisiera que enviara el primero y pasen unos segundos para enviar el segundo .



Mediante el comando

Código COBOL:
  1.          MOVE PARAMETROS-EMAIL TO DDE-WORD.
  2.  
  3.      INVOKE CmDDE2 "Execute" USING DDE-WORD POW-SWSHOWMAXIMIZED RETURNING ReturnValue.
  4. * Start timer
  5.      COMPUTE SW-TIMER = 1.
  6.      
  7.      MOVE POW-TRUE TO  "Active" OF CmTimer1.
  8.           PERFORM UNTIL SW-TIMER = 0 END-PERFORM.     *>RETRASO LA ACCION
  9.                                                                             *>PERO SE QUEDA EN BUCLE
  10.      MOVE POW-FALSE TO "Active" OF CmTimer1.
  11.  
  12. *cambio PARAMETROS-EMAIL
  13. MOVE PARAMETROS-EMAIL TO DDE-WORD.
  14.  
  15.      INVOKE CmDDE2 "Execute" USING DDE-WORD POW-SWSHOWMAXIMIZED RETURNING ReturnValue.
  16.  
  17. *
Código COBOL:
  1. **************timer
  2.  ENVIRONMENT     DIVISION.
  3.  DATA            DIVISION.
  4.  WORKING-STORAGE SECTION.
  5.  01 SW-TIMER     PIC 99  GLOBAL EXTERNAL.
  6.  
  7.  PROCEDURE       DIVISION.
  8.      DISPLAY SW-TIMER .
  9.      COMPUTE SW-TIMER = 0.
Lo intento ralentizar con el timer, pero el evento se queda en bucle .

Como podria darle tiempo a que salieran los dos correos?

Gracias.
Breew is offline   Responder Con Cita
  #2
Antiguo 4 de diciembre de 2018, 13:43
Fito
Guardián del Foro
Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros Guardián del Foro: Guardián del espíritu y clima del Foro - Issue reason: Por el Avatar Activista del Foro: Activista del Foro - Issue reason: Por aportar ideas 
Última Actividad 19.09.2026 13:19
Posts Posts: 458
Likes enviados Enviados: 267
Likes recibidos Recibidos: 243

Hola:

Por qué en vez de usar un control DDE, no usas el método "ExecuteSync" del formulario?

Código COBOL:
  1. INVOKE pow-self "ExecuteSync" USING CommandLine [Show] RETURNING ReturnValue

Saludos.

Fito...
Fito is offline   Responder Con Cita
  #3
Antiguo 4 de diciembre de 2018, 21:49
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Breew, también puedes usar la API sleep: Sleep function | Microsoft Docs

Código COBOL:
  1.      CALL "Sleep" WITH STDCALL USING BY VALUE 1000 *> en milisegundos, 1000 = 1 segundo



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #4
Antiguo 4 de diciembre de 2018, 22:41
Breew
Patrocinador del Foro
Última Actividad 09.05.2022 07:47
Posts Posts: 125
Likes enviados Enviados: 104
Likes recibidos Recibidos: 8

Hola Fito.

Ahora funciona correctamente.
¿ Que diferencia hay entre usar una y otra ?

Gracias

---------- Post added at 22:41 ---------- Previous post was at 22:30 ----------

Hola Kuk.

Me lo voy a mirar con cariño, ya que creo que es muy interesante para enviar/ocultar mensajes al usuario.

Con el timer, no me acabo de aclarar muy bien ;-)

Gracias
Breew is offline   Responder Con Cita
  #5
Antiguo 5 de diciembre de 2018, 12:53
Fito
Guardián del Foro
Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros Guardián del Foro: Guardián del espíritu y clima del Foro - Issue reason: Por el Avatar Activista del Foro: Activista del Foro - Issue reason: Por aportar ideas 
Última Actividad 19.09.2026 13:19
Posts Posts: 458
Likes enviados Enviados: 267
Likes recibidos Recibidos: 243

Hola:

En el Formulario tenemos dos métodos para llamar procesos externos, el "Execute" y el "ExecuteSync". El primero funciona igua que el del control DDE, llama y sigue el flujo de tu programa. En cambio el segundo llama y espera que termine el proceso llamado para seguir.

Saludos.

Fito...
Fito is offline   Responder Con Cita
Respuesta


Herramientas

Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 17:11.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.