Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   PowerCOBOL (ActiveX, v4 - v11) (https://www.cobolforo.es/forumdisplay.php?f=9)
-   -   [Herramienta] Servidor no actualiza en su pantalla lo de client (https://www.cobolforo.es/showthread.php?t=1239)

orlando 10 de diciembre de 2020 00:05

Servidor no actualiza en su pantalla lo de client
 
cordial saludo

tengo un aplicativo en POWERCOBOL de TURNOS, Por ahora dividi la pantalla en 2 secciones entonces tengo una red en windows de cliente1 que hace las veces de servidor y cliente2 los cuales actualizan (adiciona ) su turno cada vez .

asi por ejemplo el cliente 1 maneja la seccion 1 y el cliente2 maneja la seccion 2.

si por ejemplo el cliente 1 va en el turno 29 y el cliente 2 en 47 aparecera 29/47

para seguir con el ejemplo cuando el cliente 1 actualiza un turno aparecera 30/47 en la pantalla del cliente1 que hace veces de servidor ....pero en el cliente2 no actualiza esto sin no sigue apareciendo 29/47 y visevera para el cliente2

es decir actualiza cada cliente como si fuese monousuario,,,,,,,,,,,por lo cual no se que hara falta
e investigado y se han referido a un servidor visual pero desconozco esto.

ahora si fuese error de programacion no actualizaria ningun cliente...@Kuk, @JCantero, @Nitzer, @jmeza, @Rapinto, @fastpho,

fastpho 10 de diciembre de 2020 13:12

@orlando, antes que nada no etiquetes personas , en el foro hay muchos que te pueden ayudar ...
Con respecto a tu problema calculo que estas trabajando con algun timer , revisa la parte del refresh de tu app
Saludos

orlando 10 de diciembre de 2020 18:56

Cita:

Citación del post de fastpho (Mensaje 6266)
@orlando, antes que nada no etiquetes personas , en el foro hay muchos que te pueden ayudar ...
Con respecto a tu problema calculo que estas trabajando con algun timer , revisa la parte del refresh de tu app
Saludos

si es
te refieres a el reloj ,,,,,,,o fecha y reloj en tal caso se lo quito voy a mirrar y disculpa por etiquetar

Josber 10 de diciembre de 2020 19:26

Has probado con

Código COBOL:
  1. INVOKE POW-SELF "ThruEvent"

para que te actualice todos los subprocesos que tiene en marcha

Un salu2.-

orlando 12 de diciembre de 2020 19:02

bueno
voy a colocarlo antes de cerrar archivos imagino

---------- Post añadido : 18:02 ---------- Post anterior : 20:07 ----------

Cita:

Citación del post de Josber (Mensaje 6271)
Has probado con

Código COBOL:
  1. INVOKE POW-SELF "ThruEvent"

para que te actualice todos los subprocesos que tiene en marcha

Un salu2.-

si uya hice esto sigue funcionando como monousuario ......es decir igual

Josber 12 de diciembre de 2020 21:39

Cita:

Citación del post de orlando (Mensaje 6272)
es decir igual

¡¡Uffff!!, pues así, sin ver ni el programa, ni el código fuente, pueden ser mil cosas ...

orlando 12 de diciembre de 2020 22:01

bno mira por que mail te lo envio:confused:

Kuk 12 de diciembre de 2020 22:15

@orlando, publícalo aquí, así lo ve más gente

orlando 12 de diciembre de 2020 23:09

bnas tardes

esta es rutina de adicion y fd
Código COBOL:
  1.        FD ATENCION GLOBAL EXTERNAL LABEL RECORD STANDARD.
  2.        01  ATENCION-REC.
  3.           02 ATENCION-KEY.
  4.              03 OFICINA-AT PIC 99.
  5.              03 ANO-AT PIC 9(4).
  6.              03 MES-AT PIC 99.
  7.              03 DIA-AT PIC 99.        
  8.           02 ATENCION1-KEY.  
  9.              03 ANO1-AT PIC 9(4).
  10.              03 MES1-AT PIC 99.
  11.              03 DIA1-AT PIC 99.
  12.              03 OFICINA1-AT PIC 99.
  13.           02 CANT-ATENCION-AT PIC 9(6).    
  14.           02 QUEDO      PIC 99.
  15.           02 cAMPO-LIBRE PIC X(15).
  16.  
  17.  ENVIRONMENT     DIVISION.
  18.  DATA            DIVISION.
  19.  WORKING-STORAGE SECTION.
  20.  01 SWICH GLOBAL EXTERNAL.
  21.   02  SWT PIC 9.
  22.  01 SWICH1 GLOBAL EXTERNAL.
  23.   02  SWT1 PIC 9.  
  24.  01 SNU-G GLOBAL EXTERNAL.
  25.    02  SNU-1 PIC 99.
  26.    02  SNU-2 PIC 99.
  27.  01 SN-UL GLOBAL EXTERNAL.
  28.   02 SNUS-U      PIC 99.
  29.   02 SNUT-U      PIC 99.
  30. * 01 SNU-G GLOBAL EXTERNAL.
  31. * 01  SNU-1 PIC 999 value 0.
  32. * 01  SNU-2 PIC 999 value 0.
  33.  01  cantidadw            PIC 999999.
  34.  01 SNU GLOBAL EXTERNAL.
  35.   02  SNU-11            PIC 99.
  36.   02  SNU-22            PIC 99.
  37.  01  SNUS            PIC 999 VALUE 0.
  38.  01  SNUT            PIC 999 VALUE 0.
  39.  01  ACUMULADO      PIC 9(5) VALUE 0.
  40. * 01  catg GLOBAL EXTERNAL.
  41. *- 01  CAS1            PIC 999.          
  42. * 01  CAT2            PIC 999.
  43.  01 FECHA.
  44.     02 AA PIC 99.
  45.     02 MM PIC 99.
  46.     02 DD PIC 99.
  47.  01 SW  GLOBAL EXTERNAL.
  48.   02 1VEZ PIC 9.
  49. * 01 SWT   pic   9 VALUE 0.    
  50.  01 USUARIO GLOBAL EXTERNAL.
  51.     02 DEFINE       PIC 9.
  52.     02 SISTEMA      PIC 999.
  53.     02 TESORERIA    PIC 999.
  54.  01 SS PIC 999.
  55.  01 ST PIC 999.
  56.  01 SISTEMA-1 PIC 999 VALUE 0.
  57.  01 TESORERIA-2 PIC 999 VALUE 0.
  58.  01 gen GLOBAL EXTERNAL.
  59.    02 general pic 999.
  60.  01 AAD PIC 9999 VALUE ZEROS.      
  61.  01 QUEDO-W PIC 99.
  62.  01 CANT-ATENCION-AT-W  PIC 9(6).
  63.  
  64.    
  65.  PROCEDURE DIVISION.
  66.  mayor-100.
  67.          move swt to pow-numeric of cmstatic11.
  68.         IF DEFINE not = 1 or 2
  69.           INVOKE CMCOMMAND2 "SETFOCUS".  
  70.  
  71.           IF DEFINE = 1 move SISTEMA to ss.
  72.           IF DEFINE = 2 move TESORERIA to st.
  73.  INICIO.
  74.            
  75.           IF DEFINE = 1 move SS to snuS.
  76.            IF DEFINE = 2 move ST to snuT.
  77.  
  78.  
  79.  adiciona.          
  80.       IF  SWT = 0  
  81.        ADD 0 TO SNUS SNUT  
  82.            .
  83.          IF SWT = 1  AND DEFINE = 1
  84.            ADD 1 TO SNUS.
  85.  
  86.         IF SWT = 1  AND DEFINE = 2
  87.             ADD 1 TO SNUT.
  88.             move DEFINE to pow-numeric of cmstatic12.
  89.  
  90.              IF DEFINE = 1  move snuS to sistema SISTEMA-1
  91.  
  92.              MOVE POW-COLOR-RED TO FORECOLOR OF CMSTATIC3.
  93. *            
  94.            IF DEFINE = 2 move snuT to tesoreria TESORERIA-2
  95.  
  96.              MOVE POW-COLOR-BLUE TO FORECOLOR OF CMSTATIC9.
  97. **********************************************
  98.            IF SNUS = 100 AND DEFINE = 1 move 0 TO  snuS sistema
  99.                    move 0 to   swt
  100.                   ADD 1 TO CANT-ATENCION-AT
  101.                    go to mayor-100.
  102.           if snut  = 100 AND DEFINE = 2 move 0 TO  snuT TESORERIA
  103.                  move 0 to swt
  104.                 ADD 1 TO CANT-ATENCION-AT
  105.                 go to mayor-100.
  106. *           move 0 to swt.
  107. **********************************************
  108.            OPEN I-O ATENCION.
  109.            ACCEPT FECHA FROM DATE.
  110.            IF AA > 90
  111.               COMPUTE AAD = 1900 + AA
  112.               MOVE AAD TO ANO-AT ANO1-AT
  113.             ELSE
  114.               COMPUTE AAD = 2000 + AA
  115.               MOVE AAD TO  ANO-AT ANO1-AT.      
  116.  
  117. *           MOVE AA TO ANO-AT ANO1-AT.
  118.            MOVE MM TO MES-AT MES1-AT.
  119.            MOVE DD TO DIA-AT DIA1-AT.
  120.            MOVE DEFINE TO OFICINA-AT OFICINA1-AT.
  121. *****************************************
  122. *                move swt to pow-numeric of cmstatic12
  123. *                move 1vez to pow-numeric of cmstatic13
  124. *               MOVE 0 TO  SWT.
  125. ************************rutina saber dnde quedoooo******************
  126.             IF DEFINE = 1  AND SWT = 0 or swt = 1
  127.               MOVE POW-COLOR-red TO FORECOLOR OF CMSTATIC3          
  128.               MOVE 250 TO "Size" OF "FONT" OF  CmSTATIC3
  129.               MOVE SNUS TO POW-NUMERIC OF CmSTATIC3
  130.            else  
  131.             IF DEFINE = 2  AND SWT = 0 or swt = 1
  132.               MOVE POW-COLOR-blue TO FORECOLOR OF CMSTATIC9
  133.               MOVE 250 TO "Size" OF "FONT" OF  CmSTATIC9
  134.               MOVE SNUT to poW-NUMERIC OF CmSTATIC9.      
  135. ******rut quedoooooooooooooooooooooooooooooooooooooooooooo  
  136. *
  137. ****************************fin saber dde quedoooo*********************
  138.  LEE.  READ ATENCION INVALID KEY GO CREA.
  139. *      ESCRIBE QUEDO
  140.          move 0 to 1vez
  141.         if DEFINE = 1 AND SWT = 0 or swt = 1
  142.            MOVE DEFINE TO OFICINA-AT OFICINA1-AT
  143.            MOVE AAD TO  ANO-AT ANO1-AT      
  144.            MOVE MM TO MES-AT MES1-AT
  145.            MOVE DD TO DIA-AT DIA1-AT
  146.            ADD 1 TO QUEDO   CANT-ATENCION-AT
  147.            move quedo to snus QUEDO-W
  148.            MOVE CANT-ATENCION-AT TO CANT-ATENCION-AT-W
  149.            MOVE SNUs to poW-NUMERIC OF CmSTATIC3
  150.            move cant-atencion-at TO CAPTION OF CMSTATIC7
  151.            move QUEDO-W to quedo
  152.            MOVE CANT-ATENCION-AT-W TO CANT-ATENCION-AT
  153.            MOVE AAD TO  ANO-AT ANO1-AT    
  154.            MOVE MM TO MES-AT MES1-AT
  155.            MOVE DD TO DIA-AT DIA1-AT
  156.            MOVE DEFINE TO OFICINA-AT OFICINA1-AT.
  157.    
  158.           if DEFINE = 2 AND SWT = 0
  159.            MOVE DEFINE TO OFICINA-AT OFICINA1-AT
  160.            MOVE AAD TO  ANO-AT ANO1-AT      
  161.            MOVE MM TO MES-AT MES1-AT
  162.            MOVE DD TO DIA-AT DIA1-AT
  163.            ADD 1 TO QUEDO   CANT-ATENCION-AT
  164.            move quedo to SNUT QUEDO-W
  165.            MOVE CANT-ATENCION-AT TO CANT-ATENCION-AT-W
  166.            MOVE SNUT to poW-NUMERIC OF CmSTATIC9
  167.            move cant-atencion-at TO CAPTION OF CMSTATIC8
  168.            move QUEDO-W to quedo
  169.            MOVE CANT-ATENCION-AT-W TO CANT-ATENCION-AT
  170.            MOVE AAD TO  ANO-AT ANO1-AT    
  171.            MOVE MM TO MES-AT MES1-AT
  172.            MOVE DD TO DIA-AT DIA1-AT
  173.            MOVE DEFINE TO OFICINA-AT OFICINA1-AT.
  174.  
  175.            if DEFINE = 2 AND SWT = 1
  176.            MOVE DEFINE TO OFICINA-AT OFICINA1-AT
  177.            MOVE AAD TO  ANO-AT ANO1-AT      
  178.            MOVE MM TO MES-AT MES1-AT
  179.            MOVE DD TO DIA-AT DIA1-AT
  180.            ADD 1 TO QUEDO   CANT-ATENCION-AT
  181.            move quedo to SNUT QUEDO-W
  182.            MOVE CANT-ATENCION-AT TO CANT-ATENCION-AT-W
  183.            MOVE SNUT to poW-NUMERIC OF CmSTATIC9
  184.            move cant-atencion-at TO CAPTION OF CMSTATIC8
  185.            move QUEDO-W to quedo
  186.            MOVE CANT-ATENCION-AT-W TO CANT-ATENCION-AT
  187.            MOVE AAD TO  ANO-AT ANO1-AT    
  188.            MOVE MM TO MES-AT MES1-AT
  189.            MOVE DD TO DIA-AT DIA1-AT
  190.            MOVE DEFINE TO OFICINA-AT OFICINA1-AT.
  191.  
  192. *2345678
  193.        REWRITE ATENCION-REC INVALID KEY STOP "NO rGRABRA ".          
  194.        go fin.    
  195.    CREA.
  196.           MOVE 0 TO QUEDO
  197.           MOVE 1 TO CANT-ATENCION-AT 1vez
  198. *2345678
  199.        WRITE ATENCION-REC INVALID KEY
  200.                   MOVE 1 TO 1VEZ  STOP "NO GRABRA X CREA".
  201.        REWRITE ATENCION-REC INVALID KEY STOP "NO rGRABRA ".
  202.      
  203.  FIN.
  204.           INVOKE POW-SELF "REFRESH".        
  205.           INVOKE POW-SELF "ThruEvents".  
  206.        CLOSE ATENCION.
  207. *       MOVE 9 TO 1VEZ.
  208.         IF DEFINE = 1 and swt not = 9
  209.           MOVE CANT-ATENCION-AT TO CAPTION OF CMSTATIC7
  210.        else
  211.         IF DEFINE = 2 and swt not = 9
  212.        MOVE CANT-ATENCION-AT TO CAPTION OF CMSTATIC8.
  213. *        if  swt = 0
  214. *          move 1 to swt.
  215.           MOVE DEFINE to pow-numeric of cmstatic13.
  216.           move swt to pow-numeric of cmstatic14.  
  217.        EXIT PROGRAM.

Comentario de Moderador
Usa los botones de resalto de sintaxis

orlando 21 de diciembre de 2020 23:26

programa de turnos
 
Cita:

Citación del post de fastpho (Mensaje 6266)
@orlando, antes que nada no etiquetes personas , en el foro hay muchos que te pueden ayudar ...
Con respecto a tu problema calculo que estas trabajando con algun timer , revisa la parte del refresh de tu app
Saludos

si ya ensaye refresh sigue igual

Kuk 22 de diciembre de 2020 17:18

@orlando, suponiendo que estás seguro de que el problema consiste en que los datos no se actualizan en la pantalla (no se pintan/repintan) pero las variables contienen datos correctos, debes invertir estas dos líneas:

Código COBOL:
  1.           INVOKE POW-SELF "REFRESH".        
  2.           INVOKE POW-SELF "ThruEvents".  

El método Refresh debe ir después del ThruEvents

fastpho 22 de diciembre de 2020 19:31

@orlando, te paso un pequeño prg , funciona bien es un ejemplo sencillo , probalo , tenes q cambiar solo la letra del disco de trabajo

fastpho 22 de diciembre de 2020 19:41

turnos
 
1 Archivos Adjunto(s)
@orlando,aca el ejemplo

orlando 22 de diciembre de 2020 23:57

programa de turnos
 
Cita:

Citación del post de Kuk (Mensaje 6339)
@orlando, suponiendo que estás seguro de que el problema consiste en que los datos no se actualizan en la pantalla (no se pintan/repintan) pero las variables contienen datos correctos, debes invertir estas dos líneas:

Código COBOL:
  1.           INVOKE POW-SELF "REFRESH".        
  2.           INVOKE POW-SELF "ThruEvents".  

El método Refresh debe ir después del ThruEvents

muy amable ensayare y les cuento

---------- Post añadido : 22:57 ---------- Post anterior : 22:49 ----------

Cita:

Citación del post de fastpho (Mensaje 6341)
@orlando, te paso un pequeño prg , funciona bien es un ejemplo sencillo , probalo , tenes q cambiar solo la letra del disco de trabajo

muy amable lo probare y les comento

Kuk 23 de diciembre de 2020 09:35

@orlando, lo mismo me está fallando la memoria, y no se debe invertir...

Colegas, alguien que lo confirme o desmienta porque me estoy liando :D

orlando 23 de diciembre de 2020 16:46

programa de turnos
 
Cita:

Citación del post de fastpho (Mensaje 6342)
@orlando,aca el ejemplo

muy amable perdona mi ignorancia lo has trabajado en red multusuario , pues te comento cuando yo he trabajado red multiusuario siempre he utilizado por ej "\\Usuario-pc\turnos\Debug\ATENCION.DAT" en el archivo .sl
donde usuario pc es el servidor y lo otro es ruta de archivo.

en el programa utilizas en opened un solo \, no se de donde sale o como lo haces. creo \ z me pudieras dar una explicacion.

fastpho 23 de diciembre de 2020 18:06

@orlando, yo en mi entorno de red trabajo con los disco compartidos completos , y utilizo net use para crear una imagen del disco del servidor en los usuarios , por esos si el prg corre sobre el servidor la letra seria "C:"
y en el caso de los usuarios "Z:"
Código COBOL:
  1. MOVE "C:" TO DISCO-TRABAJO-1. *> Cambiar la letra de disco compartido ej Z:\
y para que funcione en el servidor debes crear una carpeta que se llame turnos y dentro la carpeta archivos el programa cuando lo corras generara el archivo turnos.dnx
Saludos

---------- Post añadido : 18:06 ---------- Post anterior : 18:03 ----------

@orlando,
Código COBOL:
  1.     MOVE "C:" TO DISCO-TRABAJO-1. *> Cambiar la letra de disco compartido ej Z:\
no me deja editar el post anterior no se porque C:\

orlando 23 de diciembre de 2020 23:08

programa de turnos
 
Cita:

Citación del post de Kuk (Mensaje 6339)
@orlando, suponiendo que estás seguro de que el problema consiste en que los datos no se actualizan en la pantalla (no se pintan/repintan) pero las variables contienen datos correctos, debes invertir estas dos líneas:

Código COBOL:
  1.           INVOKE POW-SELF "REFRESH".        
  2.           INVOKE POW-SELF "ThruEvents".  

El método Refresh debe ir después del ThruEvents

buena tarde no funciono tampoco jejej antes me mostraba al menos los 2 turnos aunque no actualizaba ahora
muestra cada turno independiente el otro no lo muestra

---------- Post añadido : 22:08 ---------- Post anterior : 22:05 ----------

Cita:

Citación del post de Kuk (Mensaje 6339)
@orlando, suponiendo que estás seguro de que el problema consiste en que los datos no se actualizan en la pantalla (no se pintan/repintan) pero las variables contienen datos correctos, debes invertir estas dos líneas:

Código COBOL:
  1.           INVOKE POW-SELF "REFRESH".        
  2.           INVOKE POW-SELF "ThruEvents".  

El método Refresh debe ir después del ThruEvents

no funciono, antes mostraba los 2 turnos ,ahora muestra el de el cliente en el cliente y el de servidor en el servidor

orlando 1 de febrero de 2021 17:29

tu programa de turnos
 
Cita:

Citación del post de orlando (Mensaje 6270)
si es
te refieres a el reloj ,,,,,,,o fecha y reloj en tal caso se lo quito voy a mirrar y disculpa por etiquetar

@fastpho,

orlando 1 de febrero de 2021 17:40

tu programa de turnos
 
1 Archivos Adjunto(s)
cordial saludo

te envio pantallazos de tu programa para si me puedes colaborar el error

@fastpho,

fastpho 1 de febrero de 2021 20:29

@orlando, el error te da por que no existe la direccion \turnos\archivos en la pc del cliente , comparti el disco c: completo en el servidor, para el programa de ejemplo funcione , entonces en el clientes neteate con Z:\ y te funcionara


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.