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
 
Respuesta

  #1
Antiguo 9 de mayo de 2017, 05:19
jmeza
Forero Senior
Última Actividad 23.05.2026 02:04
Posts Posts: 106
Likes enviados Enviados: 26
Likes recibidos Recibidos: 4
Predeterminado Transformar letra Minúscula a Mayúscula
0 Inactivo Inactivo

Hola, me podrían ayudar estoy emigrando de rmcobol a pawercobol v9o

- Como transformo letra minúscula a mayúscula en un campo alfabético
- Como valido un campo alfabético que no este vació antes de grabar.
- Como valido un campo numérico que sea mayor que cero antes de grabar
- Como genero un mensaje de advertencia por algún dato que falte antes de grabar

Saludos
jmeza is offline   Responder Con Cita
  #2
Antiguo 9 de mayo de 2017, 16:39
Roger
Forero Activo
Última Actividad 04.02.2021 13:03
Posts Posts: 236
Likes enviados Enviados: 26
Likes recibidos Recibidos: 60

Hola Juan
-convertir minuscula en mayuscula.
Código COBOL:
  1.  MOVE NOMBRE-MAS TO nombre
  2.             INSPECT NOMBRE CONVERTING "abcdefghijklmnñopqrstuvwxyz"
  3.            TO "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ".
-mensaje de advertencia
Código COBOL:
  1.  01 OK PIC X(15).  
  2.  01  STYL    PIC S9(9) COMP-5.
  3.  01  M-TITLE PIC X(15) VALUE "Mensaje".
  4.  01  RET     PIC S9(9) COMP-5.  
  5.  PROCEDURE       DIVISION.
  6.  INICIO.
  7.          
  8.        if pow-text of cmtext13 = spaces  
  9.        COMPUTE STYL = POW-DMOK + POW-DMNOICON
  10.      INVOKE POW-SELF "DisplayMessage"
  11.          USING "Cliente no esta registrado" M-TITLE STYL
  12.          RETURNING RET
  13. * When the push button is clicked.
  14.      EVALUATE RET
  15.        WHEN POW-DMROK
  16.          exit program
  17.       END-EVALUATE.
  18.  ABRE.
Roger is offline   Responder Con Cita
  #3
Antiguo 9 de mayo de 2017, 22:02
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:

Para pasar de minuscula a mayuscula podés usar una función:

Código COBOL:
  1.         move function upper-case(minuscula)   to mayuscula.

Saludos. Fito...
Fito is offline   Responder Con Cita
  #4
Antiguo 10 de mayo de 2017, 03:26
jmeza
Forero Senior
Última Actividad 23.05.2026 02:04
Posts Posts: 106
Likes enviados Enviados: 26
Likes recibidos Recibidos: 4

Hola Roger y Fito

La función enviada de convertir minuscula a MAYUSCULA, no logro hacerla que funcione
esta es la función de programación, de un campo alfabético.

Favor de revisar que esta malo

Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  01 DATOS.
  5.     02 NOMBRE-MAS PIC X(27).
  6.     02 NOMBRE     PIC X(27).
  7.  PROCEDURE       DIVISION.
  8.       MOVE cmtext2 TO nombre
  9.                 INSPECT NOMBRE CONVERTING "abcdefghijklmnñopqrstuvwxyz"
  10.                         TO "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ".
  11.  
  12. * esta tampoco funciona  
  13. *     move cmtext2 upper-case (minuscula) to mayuscula.
  14.  
  15.      move pow-true to enabled of cmtext3.
  16.      move pow-color-white to backcolor of cmtext3.
  17.      invoke  cmtext3 "setfocus".
jmeza is offline   Responder Con Cita
  #5
Antiguo 10 de mayo de 2017, 03:49
jotica
Forero Junior
Última Actividad 03.04.2026 19:51
Posts Posts: 24
Likes enviados Enviados: 17
Likes recibidos Recibidos: 5

Para tu caso debes escribir
Código COBOL:
  1. MOVE POW-TEXT OF Cmtext2 TO NOMBRE
  2. MOVE FUNCTION UPPER-CASE (NOMBRE) TO NOMBRE-MAS


en NOMBRE estara en minuscula porque asi la debieron digitar en Cmtext2
Y en NOMBRE-MAS quedara el texto en mayuscula

Ahora si Cmtext2 es un control de tu form simplemente en las propiedades definalo como Upper y directamente estara en mayusculas asi lo digiten en minuscula
jotica is offline   Responder Con Cita
  #6
Antiguo 10 de mayo de 2017, 03: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 ejemplo que te hice "minuscula" y "mayuscula" son variables alfanuméricas.

Código COBOL:
  1. ENVIRONMENT DIVISION.
  2. DATA DIVISION.
  3. WORKING-STORAGE SECTION.
  4. 01  minuscula       pic x(50).
  5. 01  mayuscula       pic x(50).
  6.  
  7. PROCEDURE DIVISION.
  8.  
  9. comienzo.
  10.     move "abcdefgh"                     to minuscula.
  11.     move function upper-case(minuscula) to mayuscula.
  12.  
  13. *> la variable mayuscula se carga con ABCDEFGH.

Saludos.

Fito...
Fito is offline   Responder Con Cita
  #7
Antiguo 10 de mayo de 2017, 04:20
Roger
Forero Activo
Última Actividad 04.02.2021 13:03
Posts Posts: 236
Likes enviados Enviados: 26
Likes recibidos Recibidos: 60

Juan

La sintaxis en powercobol es
Código COBOL:
  1. MOVE POW-TEXT OF CMTEX1 TO CAMPO
  2.   MOVE POW-NUMERIC OF CMTEXT1 TO CAMPO
En el primer caso si es alfabetico.
el segundo si es númerico.

solo en el caso de mover blancos tanto en campo numericos y texto
Código COBOL:
  1. MOVE SPACES TO POW-TEXT OF CMTEXT1.
Roger is offline   Responder Con Cita
  #8
Antiguo 10 de mayo de 2017, 20:09
jotica
Forero Junior
Última Actividad 03.04.2026 19:51
Posts Posts: 24
Likes enviados Enviados: 17
Likes recibidos Recibidos: 5

Jmeza

Para tu necesidad 1a creo ya tienes varias respuestas, actualmente yo estoy usando la que te he enviado.
Para las otras necesidades tuyas lo que se hace es preguntar por el contenido del campo, si esta en espacios (caso alfabetico y/o alfamerico) o en zero (caso numerico) se envia un mensaje de error y finalizo el evento enviando el foco al respectivo campo.
Caso alfamerico:
Código COBOL:
  1. IF CAMPO-ALFABETICO EQUAL SPACES
  2.   INVOKE POW-SELF "DISPLAYMESSAGE" USING
  3.      "mensaje deseado"
  4.      "Identificador del mensaje "
  5.      Mesage-Style
  6.    RETURNING ReturnValue
  7.    INVOKE Cmtext1 "SetFocus"
  8.    EXIT PROGRAM
  9. END-IF

Para lo numerico se hace algo semejante, obviamente con el cambio coresponfiente.

Para mejor entendimiento del DISPLAYMESSAGE vea el manual de powerCOBOL

Espero le sirva de algo
jotica 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 14:41.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.