?|??
 Muestra uno o más valores en la consola
------------------------------------------------------------------------------
 Sintaxis

     ? | ?? [<lista exp>]

 Argumentos

     <lista exp>  es la lista de valores que se van a visualizar. Pueden
     ser cualquier combinación de tipos de datos, incluidos datos memo.

     Si no especifica argumentos y utiliza el mandato ?, se envía a la
     consola un retorno de carro/salto de línea. Si utiliza el mandato ??
     sin argumentos, no ocurre nada.

 Descripción

     ? y ?? son mandatos de consola que visualizan el resultado de una o más
     expresiones, separadas por un espacio. Estos mandatos son también
     sinónimos de las funciones QOUT() y QQOUT() respectivamente.

     Aunque las funciones ? y ?? son similares, presentan algunas
     diferencias. ? envía un retorno de carro /salto de línea a la consola
     antes de mostrar el resultado de la expresión. ?? muestra el resultado
     en la posición actual del cursor o de la cabeza de impresión, lo cual
     permite utilizar mandatos ?? sucesivos para imprimir en la misma
     línea.

     Los mandatos ? y ?? sitúan el cursor o cabeza de impresión una posición
     a la derecha del último carácter mostrado. Si se ha establecido SET
     PRINTER OFF, ROW() y COL() se actualizan para reflejar la nueva
     posición del cursor. Si SET PRINTER se ha establecido en ON, POW() y
     PCOL() se modifican con la nueva posición de la cabeza de impresión.

     Si el resultado de un mandato ? o ?? alcanza el borde de la pantalla
     definida por MAXCOL(), salta automáticamente a la línea siguiente. Si
     alcanza el final de la página definida por MAXROW(), la pantalla se
     desplaza una línea hacia arriba.

     Si especifica un mandato SET PRINTER ON antes de utilizar los mandatos
     ? y ??, el resultado se enviará a la impresora. También puede enviar el
     resultado a un fichero de texto mediante SET ALTERNATE TO <xcFichero>
     para crear el fichero, y SET ALTERNATE ON para dar comienzo al proceso.
     Al igual que los otros mandatos de consola, SET CONSOLE OFF suprime la
     visualización sin afectar la salida a la impresora o al fichero de
     texto.

     Para formatear una expresión determinada, utilice TRANSFORM() o una
     función definida por el usuario. Si necesita ajustar valores de
     longitud variable para alinearlos en la columna, utilice una de las
     funciones PAD() para justificar a la izquierda, a la derecha o centrar
     el valor. Vea los ejemplos siguientes.

 Ejemplos

      Este ejemplo imprime un registro de un fichero de base de
        datos utilizando mandatos ? y ?? con PADR() para determinar la
        alineación de columna:

        LOCAL nPagina := 0, nLinea := 99
        USE Vendedor INDEX Vendedor NEW
        SET PRINTER ON
        SET CONSOLE OFF
        DO WHILE !EOF()
           IF nLinea > 55
              IF nPagina != 0
                 EJECT
              ENDIF
              ? PADR("Página", LTRIM(STR(nPagina++)), 72)
              ?? DTOC(DATE())
              ?
              ?
              ? PADC("Lista de Ventas", 79)
              ?
              nLinea := 5
           ENDIF
           ? Nombre, Direccion, PADR(RTRIM(Ciudad) + "," ;
                 + Provincia, 20), Codigo Postal
           nLinea++
           SKIP
        ENDDO
        SET CONSOLE ON
        SET PRINTER OFF
        CLOSE Vendedor

 Ficheros   La biblioteca asociada es CLIPPER.LIB.

 To download this example - click here.

See Also: @...SAY PAD() QOUT() SET ALTERNATE SET CONSOLE