4D Doc Center : 4D View
Transcripción
4D Doc Center : 4D View
4D View - Lenguaje Introducción PV Área PV Arrastrar y soltar PV Autorización de entrada PV Bordes PV Celda actual PV Columnas y líneas PV Documento PV Estilo PV Imágenes PV Impresión PV Manipulación de celdas PV Paneles PV Propiedad de celda PV Propiedad Plugin PV Selección PV Utilitarios PV Valor celda Lista de temas de constantes Anexos Lista alfabética de los comandos Introducción Presentación de 4D View Convenciones de escritura Comandos y constantes 4D View Utilizar las áreas 4D View Acceder a los comandos de menús 4D View Gestión multiplataforma de los documentos Presentación de 4D View El plug-in 4D View añade rutinas al lenguaje de 4D que le permiten automatizar ciertas tareas manuales. Utilizando los comandos 4D View, usted puede: Ejecutar todo comando de menú 4D View Abrir y guardar documentos Definir los encabezados y pies de página de un documento Definir los atributos de visualización y de entrada Trabajar con las fórmulas de cálculo, las imágenes, campos, etc. Las rutinas de 4D View están precedidas por el prefijo "PV" (con un espacio) para distinguirlas de las rutinas estándar 4D y de las de otros plug-ins. Acerca de la documentación 4D View La documentación de 4D View se compone de dos manuales: el manual Usuario y el manual Lenguaje. Este manual, Lenguaje, detalla el modo de funcionamiento y la sintaxis del lenguaje de programación de 4D View. Para más información sobre el uso de los menús y el funcionamiento general del plug-in 4D View, consulte el manual Usuario de 4D View. Convenciones de escritura En la documentación, los comandos 4D View aparecen en mayúsculas y en caracteres especiales: PV OPEN DOCUMENT. Las funciones (rutinas que devuelven un valor) empiezan con una mayúscula y se escriben en minúsculas: PV Get on command method. En el editor de métodos, los comandos 4D View se muestran en negrita y cursiva, diferenciándose de los comandos integrados de 4D. ` Comando 4D QUERY([Clientes];[Clientes]S_Kode=cLi_Scode_V) If(Records in selection([Clientes])=1) ` Comando 4D View PV BLOB TO AREA(Area;Table(->[Clientes]);Field(->[Clientes]Pict)) End if En algunos ejemplos en la documentación, una línea de código puede extenderse a una segunda línea debido a las limitaciones de espacio. En su código entre estos ejemplos sin retorno de carro utilizando una sola línea. Comandos y constantes 4D View Comandos en el editor de métodos Los comandos 4D View pueden mostrarse en una lista del editor de métodos de 4D. La lista puede contener únicamente los comandos de 4D View o todos los comandos de plug-ins disponibles: Los comandos de los plug-ins aparecen agrupados por temas en las listas jerárquicas: Los comandos de plug-ins también se muestran en la página Plug-ins del Explorador. Nota: las constantes de los plug-ins se añaden a la lista de las constantes de 4D. Los nombres de los temas de las constantes 4D View están precedidos por un guión bajo "_", para que se agrupen en la parte final de la lista. Puede insertar un comando 4D View en un método tal como lo hace para cualquier comando 4D: puede escribirlo directamente en el editor de métodos o hacer doble clic en el nombre del comando en la lista. Las rutinas 4D View pueden utilizarse en todo tipo de método: base, proyecto, formulario, objeto o trigger. Utilizar las áreas 4D View Puede trabajar por programación con 4D View en los siguientes entornos: Áreas 4D View incluidas en los formularios Ventanas externas 4D View Áreas 4D View fuera de la pantalla Para trabajar en un documento 4D View, debe crear un área de plug-in en un formulario o abrir una ventana externa. Para crear un área de plug-in en un formulario, dibújela en el editor de formularios de 4D en el entorno Diseño. Para abrir una ventana externa, elija el comando 4D View en el menú Herramientas de 4D o ejecute el comando 4D Open external window. Además de las áreas visibles, 4D View permite la creación de áreas fuera de la pantalla, es decir, áreas invisibles. Para más información, consulte la sección "Áreas fuera de la pantalla de 4D View". Referencias de áreas 4D View Una vez modificado un documento 4D View mediante rutinas, es necesario especificar su identificación de área. Esta identificación es interna a 4D View y generalmente se encuentra en una variable. 4D View utiliza variables para guardar la ubicación de las áreas incluidas, las ventanas externas y las áreas fuera de la pantalla. Para hacer referencia al área donde se quiere ejecutar una operación, pase la variable que contiene la identificación de área como parámetro para el comando o la función. En las descripciones de los comandos de esta documentación, la variable de tipo Entero largo que identifica el área del documento View 4D se llama area. Hay dos tipos de variables area: Los nombres de las áreas incluidas Las variables creadas por una ventana externa o en un área fuera de la pantalla Nombres de las áreas incluidas Una vez crea y nombra un área 4D View en un formulario, 4D considera que el nombre del área 4D View es la variable de referencia de área. Por ejemplo, usted referenciaría el área "Hoja" especificando "Hoja" como parámetro area. ID de ventanas externas y de áreas fuera de la pantallascreen area IDs Una vez creada una ventana externa o un área fuera de la pantalla con la ayuda de las funciones Open external window o PV New offscreen area, el número de identificación del área devuelta por la función debe estar guardado en una variable. Puede utilizar esta variable después para hacer referencia a la ventana externa o al área fuera de la pantalla en otros comandos y funciones. Para guardar el valor de una variable, ubique el nombre de la variable y el operador de asignación (: =) a la izquierda de la función en la línea de código. El siguiente ejemplo crea una ventana externa 4D View y guarda el número de identificación del área en la variable MiArea: MiArea:=Open external window(30;30;350;450;8;"Sheet";"_4D View") Áreas de plug-in 4D View en los formularios Un área 4D View puede ubicarse en todo formulario: con más frecuencia, se coloca en un formulario de entrada para trabajar con documentos, pero también en formularios de salida para mostrar o imprimir la información. 4D View utiliza todo el formulario o comparte espacio con los campos y otros elementos del formulario. Debe utilizar un área de objeto activo del tipo "Área de plug-in" con 4D View. Un área de plug-in de la zona es uno de los varios tipos de objetos activos en 4D (otros ejemplos incluyen botones, áreas de entrada, áreas de desplazamiento, etc.) También puede asociar el área de plug-in a un campo 4D para que los contenidos del área se guarden cada vez que se grabe. Atención, si no utiliza los botones automáticos de tipo Validar, sino el comando SAVE RECORD, primero deberá ejecutar PV Area to blob para transferir el contenido del área 4D View al campo 4D ya que el mecanismo de guardado automático no está activo. Para más información sobre la creación de áreas 4D View en los formularios, consulte el manual de uso 4D View. Ventanas externas 4D View Utilice la función Open external window de 4D para abrir una ventana externa y mostrar un documento 4D View en blanco. Open external window abre una nueva ventana, muestra el plug-in especificado y devuelve un número de identificación para el área. A continuación se muestra un ejemplo de cómo utilizar Open external window. Esta instrucción abre una ventana externa y muestra un documento 4D View vacío. PvRefArea:=Open external window(50;50;350;450;8;"Spreadsheet";"_4D View") Use PvRefArea cada vez que necesite hacer referencia a este documento. Para una descripción completa del comando Open external window, consulte el manual Lenguaje 4D. Áreas fuera de la pantalla de 4D View Un área fuera de la pantalla se guarda en la memoria: es invisible para el programador y el usuario. Suele ser útil en dos casos: para modificar un documento antes de que el usuario lo vea, o para guardar el documento para que el usuario puede volver a la original, si es necesario. Las operaciones de 4D View funcionan más rápido en un área fuera de la pantalla ya que no es necesario dibujar el área. Utilice la función PV New offscreen area para crear un área fuera de la pantalla. No olvide eliminar el área fuera de la pantalla después de usarla para liberar la memoria utilizada utilizando la rutina PV DELETE OFFSCREEN AREA. Si cierra la base sin haber eliminado todas las áreas fuera de la pantalla, 4D muestra un mensaje de error. Acceder a los comandos de menús 4D View Es posible ejecutar por programación los comandos de menús 4D View. También es posible conocer, a partir de un método, el estado de un menú o de un comando de menú. Cada comando de menú es referenciado por un número entero. Los códigos de los comandos de menús son definidos por el conjunto de constantes del tema PV Comandos. Por ejemplo, los comandos del menú Archivo están representados por las constantes "pv cmd file..." y los comandos del menú Ediciónpor las constantes "pv cmd edit...". Las constantes de los comandos de menú no van a cambiar, incluso si las nuevas aplicaciones se añaden al plug-in. Gestión multiplataforma de los documentos 4D View, al igual que 4D Server y 4D, es multiplataforma. En otras palabras, una base que utilice 4D View creado bajo Mac OS puede abrirse y utilizarse bajo Windows sin modificación alguna y viceversa. Por supuesto, estas combinaciones sólo son posibles si tiene las versiones de software correspondientes. Sin embargo, la gestión multi-plataforma de bases 4D y de documentos 4D View requiere seguir ciertas pautas relacionadas con las diferencias entre los sistemas operativos Mac y Windows. Correspondencia de los documentos Mac OS/Windows La siguiente tabla muestra la correspondencia entre los archivos Mac OS y Windows de los documentos estándar 4D View. Documento Tipo Mac OS Creador Extensión Windows Documento 4D View Documento 4D Calc Documento SYLK 2.0 Texto tabulado Documento HTML 4DPV 4DC TEXT TEXT TEXT 4DSP 4DSP 4DSP 4DSP 4DSP .4PV .4DC .TXT .TXT .HTM Documentos 4D View Es importante tener en cuenta las siguientes pautas: Bajo Mac OS, 4D View utiliza el tipo y el creador para reconocer los documentos (por ejemplo, tipo 4DPV, creador 4DSP = documento 4D View). Para describir las rutas de acceso, el disco contiene un nombre y el símbolo ":" se utiliza para separar las carpetas (por ejemplo: "MiDisco:Carpeta1:Carpeta2:MiBase"). Bajo Windows, 4D View utiliza la extensión para reconocer los documentos (por ejemplo: extensión .4PV = documento 4D View). Para describir las rutas de acceso, el disco tiene una letra y el símbolo "\" se utiliza para separar los directorios (por ejemplo: "D:\Directorio1\Directorio2\Mibase"). Un documento 4D View creado en Mac OS y copiado en Windows puede abrirse directamente si se ha guardado con su extensión. Por ejemplo, el documento "MiDoc" guardado como "MiDoc.4PV", copiado al PC, se abrirá sin ningún cambio. Un documento 4D View creado bajo Windows y copiado bajo Mac OS se abrirá sin ningún cambio. Plantillas 4D View maneja las plantillas de una manera totalmente transparente para el usuario en máquinas clientes Mac OS y Windows, independientemente de la plataforma del servidor. Si el servidor está bajo Mac OS, la plantilla se llamará "NomArea_". Si el servidor está en Windows, la plantilla se llamará "NomArea_.4PV". PV Área PV Área, Introducción PV Area to blob PV BLOB TO AREA PV DELETE OFFSCREEN AREA PV EXECUTE COMMAND PV Get area property PV GET COMMAND STATUS PV GET LAST ERROR PV Get on command method PV Get on error method PV Get on event method PV New offscreen area PV ON COMMAND PV ON ERROR PV ON EVENT PV REDRAW PV SCROLL AREA PV SET AREA PROPERTY PV SET COMMAND STATUS PV Área, Introducción Las rutinas de este tema permiten la gestión de áreas fuera de la pantalla y de áreas externas mostradas en un formulario. Estar rutinas permiten crear o borrar un área fuera de la pantalla, para pegar el contenido de un campo o una variable BLOB en un área externa o fuera de la pantalla, o para guardar un área 4D View en un campo o una variable BLOB. Además, este tema reúne los comandos que permiten al programador interceptar los diferentes tipos de eventos detectados por un área 4D View, para crear su propio gestor de errores y gestionar los comandos de 4D View accesibles usando menús o paletas. Métodos de retro llamada En este tema, varios comandos hacen referencia al concepto "retrollamada": este mecanismo se utiliza aquí para asociar un método a un evento, un error o un comando 4D View. Cada vez que 4D View detecta un evento, un error o la activación de un comando de menú, el método proyecto 4D definido por la configuración del área se ejecuta: en este contexto, este método se llama "método de retrollamada". Los comandos del tema PV Área que hacen referencia a los métodos de retrollamada son: PV ON EVENT PV ON COMMAND PV ON ERROR PV Get on event method PV Get on command method PV Get on error method PV Area to blob PV Area to blob ( area ) -> Resultado Parámetro area Resultado Tipo Entero largo BLOB Descripción Área 4D View BLOB de destino Descripción El comando PV Area to blob devuelve un BLOB que contiene area. Este puede guardarse en un campo o manipularse por intermedio de una variable del mismo tipo. El parámetro area puede ser un área 4D View presente en la pantalla o fuera de pantalla. Ejemplo Ver el ejemplo del comando PV BLOB TO AREA. PV BLOB TO AREA PV BLOB TO AREA ( area ; BLOB ) Parámetro area BLOB Tipo Entero largo BLOB Descripción Área 4D View BLOB fuente Descripción El comando PV BLOB TO AREA abre en area la hoja de cálculo 4D View ubicada en blob. El parámetro area puede ser un área 4D View presente en la pantalla o fuera de la pantalla. Ejemplo Este primer método (por ejemplo el método objeto de un botón "copiar") copia el contenido de un área a utilizar más adelante, por ejemplo, luego de borrarla o en otra área: C_BLOB(BlobVariable) `Variable proceso recibe el área BlobVariable:=PV Area to blob(Area) `Guarda en la variable Este segundo método (por ejemplo el método objeto de un botón "pegar") pega el área contenida en la variable ubica la información del área presente en la pantalla: PV BLOB TO AREA(Area;BlobVariable) `Recuperación desde la variable PV DELETE OFFSCREEN AREA PV DELETE OFFSCREEN AREA ( area ) Parámetro area Tipo Entero largo Descripción Área 4D View Descripción El comando PV DELETE OFFSCREEN AREA borra un area 4D View creada con el comando PV New offscreen area. El area a borrar sólo puede ser un área fuera de la pantalla, en otras palabras, un área que no esté en un formulario. El área debe borrarse después de ser creada utilizando PV New offscreen area de manera que no se sature la memoria de su ordenador. Si olvida borrar ciertas áreas fuera de la pantalla, 4D View le avisará al salir de 4D. Ejemplo Ver el ejemplo del comando PV New offscreen area. PV EXECUTE COMMAND PV EXECUTE COMMAND ( area ; comando ) Parámetro area comando Tipo Entero largo Entero largo Descripción Área 4D View Número del comando Descripción El comando PV EXECUTE COMMAND ejecuta en area el comando de menú 4D View cuyo número se pasa en el parámetro comando. Utilice las constantes del tema PV Comandos para definir el parámetro comando. Ejemplo A continuación se muestra un método que cambia la barra de desplazamiento vertical a visible u oculta. El menú correspondiente "Ver" también se activa/desactiva para la línea "Barra de desplazamiento vertical". C_INTEGER($estado) `1=activa 0=desactiva C_INTEGER($checkbox) `0=noseleccionado, 1=seleccionado C_STRING(30;$nombre) `Nombre del comando correspondiente `Recuperación de la info PV GET COMMAND STATUS(Area;pv cmd view Vscrollbar;$estado;$checkbox;$nombre) If($checkbox=1) `Barra mostrada PV EXECUTE COMMAND(Area;pv cmd view Vscrollbar) `Ocultarla PV SET COMMAND STATUS(Area;pv cmd view Vscrollbar;0) `Desactivarla Else PV SET COMMAND STATUS(Area;pv cmd view Vscrollbar;1) `Activar el comando PV EXECUTE COMMAND(Area;pv cmd view Vscrollbar) `Mostrar la barra de desplazamiento End if PV Get area property PV Get area property ( area ; propiedad ) -> Resultado Parámetro area propiedad Resultado Tipo Entero largo Entero largo Entero largo Descripción Área 4D View Número de propiedad Valor de la propiedad Descripción El comando PV Get area property devuelve el valor actual de la propiedad para area 4D View indicada. Las constantes PV Propiedades área se utilizan para definir la propiedad. Para mayor información sobre las propiedades y sus valores, consulte la descripción del comando PV SET AREA PROPERTY. Ejemplo Ver el ejemplo del comando PV SET AREA PROPERTY. PV GET COMMAND STATUS PV GET COMMAND STATUS ( area ; comando ; estado ; checkbox ; nombre ) Parámetro area comando estado checkbox nombre Tipo Entero largo Entero largo Entero Entero Cadena Descripción Área 4D View Número de comando 0=inactivo 1=activo 0 = No seleccionado; 1 = Seleccionado Nombre del comando Descripción El comando PV GET COMMAND STATUS recupera el estado, marcador y nombre del comando de menú 4D View definido por comando. El parámetro comando corresponde al número del comando cuya información se desea. Para definir este parámetro, utilice las constante del tema PV Comandos. El parámetro estado devuelve el estado del comando que tendrá un valor de 0 si el comando está inactivo o 1 si está activo. El parámetro marcador indica si el comando está seleccionado (valor 1) o no (valor 0). El parámetro nom contiene la etiqueta del comando. Ejemplo Ver el ejemplo del comando PV EXECUTE COMMAND. PV GET LAST ERROR PV GET LAST ERROR ( area ; codigoError ; textoError ) Parámetro area codigoError textoError Tipo Entero largo Entero largo Texto Descripción Área 4D View Número del error Texto descriptivo del error Descripción El comando PV GET LAST ERROR obtiene la información sobre el último error generado en el area 4D View especificada. Si la referencia de area es igual a 0, la información devuelta corresponde al último error generado de todas las áreas 4D View. Después de la ejecución del comando, codigoError recibe el número de error y textoError contiene la descripción detallada del error correspondiente. Los números y los nombres de los errores generados por 4D View están en el Anexo A: Códigos de error de 4D View. PV GET LAST ERROR sólo devuelve un error si la última llamada de un comando 4D View para el area provocó un error: toda llamada a un comando que no provoca error reinicializa el último error en cero. Para interceptar y controlar los errores que puedan surgir, utilice mejor el comando PV ON ERROR. Sin embargo, cuando no se utiliza el comando PV ON ERROR, 4D View muestra un caja de diálogo de alerta al usuario en caso de error. Entonces, será posible obtener la información necesaria, por ejemplo en el Depurador de 4D, utilizando el comando PV GET LAST ERROR. Ejemplo Después de cargar los valores de una selección de registros en un área 4D View, compruebe si la memoria disponible es suficiente para completar la operación sin problemas. Si no es así, se ofrece al usuario una sugerencia sobre cómo solucionar este problema. C_LONGINT($ErrorCode) `Número del error C_TEXT($ErrorText) `Texto descriptivo del error PV FIELD TO CELLS(Area;1;1;1;0;Table(->[Clientes]);Table(->[Clientes]);Field(>[Clientes]Nombre)) PV FIELD TO CELLS(Area;1;2;1;0;Table(->[Clientes]);Table(->[Clientes]);Field(>[Clientes]Apellido)) PV GET LAST ERROR(Area;$ErrorCode;$ErrorText) `¿Hubo un error? If($ErrorCode=18) `Memoria insuficiente ALERT("Memoria insuficiente: reduzca la selección a mostrar o asigne "+"memoria a 4D.") End if PV Get on command method PV Get on command method ( area ; comando ) -> Resultado Parámetro area comando Resultado Tipo Entero largo Entero largo Cadena Descripción Área 4D View Número de comando Nombre del método 4D Descripción El comando PV Get on command method devuelve el nombre del método asociado al comando de menú 4D View comando. Utilice las constantes del tema PV ComandosPV GET ALLOWED COM LIST para definir el parámetro comando. Si ningún método está asociado, PV Get on command method devuelve una cadena vacía. Ejemplo Ver el ejemplo del comando PV ON COMMAND. PV Get on error method PV Get on error method -> Resultado Parámetro Resultado Tipo Cadena Descripción Nombre del método 4D Descripción El comando PV Get on error method devuelve el nombre del método de gestión de errores actual creado con el comando PV ON ERROR. Si no se ha definido ningún método de error, PV Get on error method devuelve una cadena vacía. Ejemplo Ver el ejemplo del comando PV ON ERROR. PV Get on event method PV Get on event method ( area ; evento ) -> Resultado Parámetro area evento Resultado Tipo Entero largo Entero largo Cadena Descripción Área 4D View Evento 4D View Nombre del método 4D Descripción El comando PV Get on event method devuelve el nombre del método de retrollamada asociado al evento indicado para el área 4D View. Las constantes PV EventosPV GET ALLOWED COM LIST se utilizan para definir el parámetro evento: Constante Tipo Valor pv on active cell changed pv on cell value changed pv on clicked pv on column resize pv on column sort pv on contextual click pv on double clicked pv on drag pv on drop pv on getting focus pv on keyboard pv on losing focus pv on right clicked pv on row resize pv on scrolled pv on selection changed Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 8 9 2 12 14 15 4 10 11 0 6 1 3 13 5 7 Si ningún método está asociado al evento, PV Get on event method devuelve una cadena vacía. Ejemplo Es una buena idea desactivar temporalmente una llamada al evento y ejecutar un proceso antes de volver a establecer la llamada original. Este es un método simple que genera esta "desconexión" de manera genérica utilizando PV Get on event method, por ejemplo, para el evento pv on cell value changed: C_STRING(32;$EventMethod) `Guardar el método $EventMethod:=PV Get on event method(Area;pv on cell value changed) PV ON EVENT(Area;pv on cell value changed;"") `Cancelación `... Ubicar el proceso a ejecutar aquí PV ON EVENT(Area;pv on cell value changed;$EventMethod) `Restitución PV New offscreen area PV New offscreen area -> Resultado Parámetro Resultado Tipo Entero largo Descripción Área 4D View Descripción El comando PV New offscreen area crea un área 4D View en memoria y devuelve su referencia. Estas referencia debe pasarse en todo comando 4D View que necesita una referencia a un área. Cuando ya no necesite el área, no olvide borrarla utilizando el comando PV DELETE OFFSCREEN AREA para liberar el espacio ocupado en memoria por el área. Ejemplo Este método permite copiar el contenido de una plantilla para copiarla en su área de pantalla. C_LONGINT($OffscreenArea) `Referencia del área fuera de pantalla QUERY([Model];[Model]Ref="MyModel") `Creación del área fuera de pantalla $OffscreenArea:=PV New offscreen area `Recuperación del modelo `Recuperación de la plantilla PV BLOB TO AREA($OffscreenArea;[Model]BlobField_) PV SELECT RANGE($OffscreenArea;1;1;3;3;pv selection set) PV EXECUTE COMMAND($OffscreenArea;pv cmd edit copy) `Copiar selección PV DELETE OFFSCREEN AREA($OffscreenArea) `Liberar memoria PV GOTO CELL(Area;1;5) PV EXECUTE COMMAND(Area;pv cmd edit paste) `Pegar la selección en el área activa PV ON COMMAND PV ON COMMAND ( area ; comando ; metodo ) Parámetro area comando metodo Tipo Entero largo Entero largo Cadena Descripción Área 4D View Número de comando Nombre del método 4D Descripción El comando PV ON COMMAND asocia el comando de menú 4D View comando a un metodo 4D. Las constantes del tema PV Comandos se utilizan para definir el parámetro comando. El metodo recibe 3 parámetros: $1: La referencia del área 4D View $2: El número del comando de menú $3: El código de la tecla de modificación Para desinstalar el método de llamada al comando, simplemente ejecute el comando PV ON COMMAND con una cadena vacía en el tercer parámetro. Ejemplo Tome, por ejemplo, una base donde toda impresión llama un area 4D View que debe ser registrada en un diario de impresión. La solución propuesta se escribe en varias líneas: If(PV Get on command method(area;pv cmd file print document)#"PrintMethod") `Registro del seguimiento de la impresión de las fórmulas PV ON COMMAND(area;pv cmd file print document;"PrintMethod") End if If(PV Get on command method(area;pv cmd file print formulas)#"PrintMethod") `Registro del seguimiento de la impresión estándar PV ON COMMAND(area;pv cmd file print formulas;"PrintMethod") End if El código del método MetododeImpresion es el siguiente: `Método: MetododeImpresion. C_LONGINT($1) `Referencia del área 4D View C_LONGINT($2) `Número de comando de menú C_LONGINT($3) `Código de la tecla de modificación Case of :($2=pv cmd file print formulas) CREATE RECORD([PrintSpy]) `Nuevo registro [PrintSpy]CurUser:=Current user `¿Quién solicitó la impresión? [PrintSpy]Dte:=Current date(*) `Fecha de la impresión [PrintSpy]Tme:=Current time `Hora de la impresión [PrintSpy]Subject:=Print area formulas SAVE RECORD([PrintSpy]) `No olvide validar la creación :($2=pv cmd file print document) `¿Es esta una solicitud de impresión? CREATE RECORD([PrintSpy]) `Nuevo registro [PrintSpy]CurUser:=Current user `¿Quién solicita la impresión? [PrintSpy]Dte:=Current date(*) `Fecha de la impresión [PrintSpy]Tme:=Current time `Hora de la impresión [PrintSpy]Subject:="Standard area print" SAVE RECORD([PrintSpy]) `No olvide validar la creación Else TRACE `¿Otros casos? End case PV ON ERROR PV ON ERROR ( metodo ) Parámetro metodo Tipo Cadena Descripción Nombre del método 4D Descripción El comando PV ON ERROR instala el método de interrupción metodo para administrar los errores 4D View. Este método de interrupción se ejecuta cada vez que ocurre un error durante la llamada de los comandos 4D View, permitiéndole así controlar los posibles errores de ejecución. El metodo llamado recibe 3 parámetros: $1 : la referencia del área 4D View $2 : el número del error $3 : el texto del error Los números y las etiquetas de los errores generados por 4D View están en el Anexo A: Códigos de error de 4D View. Para desinstalar el metodo, simplemente llame el comando PV ON ERROR con una cadena vacía como parámetro. Ejemplo Instale un método de gestión de errores para el área 4D View activa. If(PV Get on error method#"ErrMethMan") `¿Gestión de errores no instalado? PV ON ERROR("ErrMethMan") `Llamada del método End if El código del método "ErrMethMan" es el siguiente: C_LONGINT($1) `Referencia del área 4D View C_LONGINT($2) `Número del error C_TEXT($3) `Texto del error ALERT("Error interno número "+String(ErrorNum)+Char(13)+ErrorText) PV ON EVENT PV ON EVENT ( area ; evento ; metodo ) Parámetro area evento metodo Tipo Entero largo Entero largo Cadena Descripción Área 4D View Evento 4D View Nombre del método Descripción El comando PV ON EVENT se utiliza para asociar un metodo a un evento 4D View. Cada vez que ocurre el evento, se ejecuta el metodo. Las constantes PV Eventos se utilizan para definir el parámetro evento. El método llamado recibe 6 parámetros de tipo Entero largo y devuelve un Booleano en $0: $1: Referencia del área 4D View $2: Evento $3: Código de tecla de modificación $4: Número de la columna $5: Número de la línea $6: Código Ascii de la tecla (si el evento es un clic, un clic derecho o un doble clic, $6 vale 0) El parámetro $3 puede contener uno de los siguientes valores (estos valores se añaden en caso de combinación de teclas): 0 Ninguno 512 Tecla Mayús 2048 Tecla Alt 4096 Tecla Ctrl (Windows)/Comando (Mac OS). Gestión de clics (eventos pv on clicked, pv on right clicked, pv on double clicked y pv on contextual click): - si el evento (clic, clic derecho, doble clic o clic contextual) sucede en una celda, $4 devuelve el número de la columna y $5 devuelve el número de la línea. Si esto sucede en un encabezado de línea, $4 vale 0. Si sucede en un encabezado de columna, $5 vale 0. Si sucede en una esquina superior izquierda del área, $4 y $5 toman el valor 0. - El evento pv on contextual click se llama cuando el usuario libera el botón del ratón; el evento pv on right clicked se llama cuando se presiona el botón. Estos dos eventos pueden utilizarse para poner una interfaz utilizando menús pop up contextuales. El evento pv on contextual click corresponde más con el funcionamiento de Windows y el evento pv on right clicked al de Mac OS. Los dos eventos pueden utilizarse simultáneamente. - S el evento es un clic, clic derecho, doble clic o clic contextual, $6 toma el valor 0. Gestión de selección (evento pv on selection changed): - Si la nueva selección incluye varias celdas, columnas o líneas, $4 y $5 devuelven 0. - Si la nueva selección incluye una sola celda, $4 y $5 devuelven la columna y de la línea de la celda, respectivamente. - Si la nueva selección es una columna, $4 devuelve el número de la columna y $5 devuelve 0. - Si la nueva selección es una línea, $4 devuelve 0 y $5 devuelve el número de la línea. Teclas de función: en el contexto de un evento pv on keyboard, si una tecla de función se ha activado, el parámetro $6 devuelve 0. En este caso, utilice la variable sistema Keycode de 4D para conocer el código ASCII de la tecla de función activada. Ordenar: el evento pv on column sort es generado justo después de la ordenación de una columna. Permitiendo así controlar las acciones del usuario. En este caso, $6 recibe un valor indicando el criterio de ordenación. Este valor puede compararse con las siguientes constantes, ubicadas en el tema : Constante Tipo Valor pv ascending sort pv descending sort Entero largo 2 Entero largo 3 Redimensionamiento: los eventos pv on column resize y pv on row resize se envían cuando una columna o línea es redimensionada por el usuario. No se envían si las columnas o líneas son redimensionadas por programación (utilizando los comandos PV SET COLUMNS WIDTH o PV SET ROWS HEIGHT). Si $0 es True, el evento no se tendrá en cuenta. Si $0 es False, el evento se tendrá en cuenta. Nota: si va a compilar la base, debe declarar los parámetros $0 como Booleano y $1 a $6 como Entero largo aunque algunos de ellos no se utilicen. Si area es igual a 0, el comando PV ON EVENT se aplica a todas las nuevas areas 4D View. En este caso, es mejor pasar este comando en el Método base On Startup, que se ejecuta cuando la base se abre. Para desinstalar el método de llamada del evento, simplemente llame al comando PV ON EVENT con una cadena vacía en el último parámetro. Ejemplo 1 Ver los ejemplos de los comandos PV VALIDATE CURRENT CELL, PV GET PREVIOUS ACTIVE CELL, PV GET CELL FIELD, PV Get on event method, y PV SAVE DOCUMENT. Ejemplo 2 El usuario hace clic en el encabezado de columna para hacer una ordenación. El método PM_Event se utiliza para determinar qué columna ha sido ordenada y en qué orden. `Instalación del método que se llamará durante el evento pv on column sort: PV ON EVENT(area;pv on column sort;"PM_Event") `PM_Event method C_BOOLEAN($0) C_LONGINT($1;$2;$3;$4;$5;$6) C_STRING(12;$SortOrder) If($2=pv on column sort) Case of :($6=pv ascending sort) $SortOrder:="ascendente" :($6=pv descending sort) $SortOrder:="descendente" End case ALERT("La ordenación se efectúo en la columna "+String($4)+" en orden "+$SortOrder) Ejemplo 3 Un doble clic en un encabezado de columna provoca el redimensionamiento de la columna. Sin embargo, un doble clic genera una secuencia de dos eventos: pv on clicked y pv on double clicked. Como resultado, si la ordenación se ha permitido por una llamada a PV SET AREA PROPERTY, un doble clic en un encabezado primero causa la ordenación de la columna, luego su redimensionamiento. Si desea que un doble clic provoque únicamente el redimensionamiento de la columna, debe interceptar y eliminar el evento pv on clicked, que se genera justo antes de que la ordenación se lleve a cabo. Para ello, basta con instalar un método que será llamado durante el evento pv on clicked: `Instalación del método que se llamará durante el evento pv on clicked PV ON EVENT(area;pv on clicked;"PM_Event") `Método PM_Event C_BOOLEAN($0) C_LONGINT($1;$2;$3;$4;$5;$6) If($2=pv on clicked) $0:=True `El evento se ignora y la ordenación no se efectúa End if PV REDRAW PV REDRAW ( area ) Parámetro area Tipo Entero largo Descripción Área 4D View Descripción El comando PV REDRAW se utiliza para refrescar el area 4D View. Ejemplo Consulte el ejemplo del comando PV SET COLUMNS WIDTH, que presenta un ejercicio de redimensionamiento de líneas y columnas. PV SCROLL AREA PV SCROLL AREA ( area ; horizontal ; vertical ; modo ) Parámetro area horizontal vertical modo Tipo Entero largo Entero largo Entero largo Entero Descripción Área 4D View Número de píxeles o número de columnas Número de píxeles o número de línea Modo de desplazamiento: 0 = absoluto, 1 = relativo, 2 = celda Descripción El comando PV SCROLL AREA se puede utilizar para desplazarse por el contenido del area 4D View por programación de acuerdo a los valores pasados en los parámetros vertical y horizontal. Puede pasar los píxeles o las coordenadas de la celda, el parámetro modo permite definir el tipo de desplazamiento. Nota: si el documento tiene varios paneles, el desplazamiento se llevará a cabo en el panel actual. Si pasa 0 en el parámetro modo, esto significa que los valores pasados en horizontal y vertical están expresados en píxeles y que el desplazamiento se realiza a partir de la primera celda del área (desplazamiento absoluto). Si pasa 1 en el parámetro modo, esto significa que los valores pasados en horizontal y vertical están expresadas en píxeles y que el desplazamiento se realiza a partir de la primera celda visible en el área (desplazamiento relativo). Si pasa valores positivos en horizontal y vertical, el desplazamiento se llevará a cabo, respectivamente, hacia la derecha y hacia abajo. Si pasa valores negativos, el desplazamiento será hacia la izquierda y hacia arriba. Nota: 4D View ajusta la visualización de modo que la primera celda en la parte superior izquierda después del desplazamiento sea completamente visible. Si pasa 2 en el parámetro modo, esto significa que los valores pasados en horizontal y vertical, son respectivamente el número de línea y de columna. Estas coordenadas designan la celda que debe aparecer en la parte superior izquierda del área tras el desplazamiento. Ejemplo Este ejemplo puede utilizarse para navegar automáticamente un documento después de una consulta: PV FIND ONE(area;"Smith";1;1;$col;$row) PV SCROLL AREA(area;$col;$row;2) PV SET AREA PROPERTY PV SET AREA PROPERTY ( area ; propiedad ; valor ) Parámetro area propiedad valor Tipo Entero largo Entero largo Entero largo Descripción Área 4D View Número de la propiedad Valor de la propiedad Descripción El comando PV SET AREA PROPERTY define el valor de la propiedad indicada para el area 4D View. Sólo se guardan las preferencias de propiedades de las áreas mostradas en la pantalla, presentes en un formulario, asociadas o no a un campo: Se cargan cada vez que se abre un formulario que contiene el área, Se guardan cada vez que el área se cierra. Se pueden ubicar en el cliente o en el servidor. Si area vale 0, el comando PV SET AREA PROPERTY se aplicará a todas las nuevas áreas 4D View. En este caso, es mejor llamarlo utilizando el Método base On Startup, ejecutado al abrir la base. Las constantes del tema PV Propiedades área se utilizan para definir el parámetro propiedad. Para definir el parámetro valor, utilice las constantes de los temas asociados o pase un valor específico. La siguiente tabla detalla las constantes del tema PV Propiedades área y los posibles valores: Constante Tipo Valor Comentario Permite autorizar o no la anulación de una acción. Valores asociados: pv allow undo redo Entero largo 39 pv value on: es posible utilizar deshacer (comportamiento por defecto). pv value off: no es posible utilizar deshacer (el comando Deshacer del menú Edición está inactivo). Permite autorizar o no el uso de las teclas de flecha para la validación de la entrada (validación y selección de la siguiente celda). La validación se efectúa sólo cuando el cursor se ubica al comienzo o al final del contenido de la celda. Valores asociados: constantes del tema PV Flechas. pv arrow keys Entero largo 9 pv arrow keys allowed: autoriza la utilización de todas las teclas de flechas. pv top and bottom arrow keys: autoriza únicamente el uso de las teclas de flechas hacia arriba y hacia abajo. pv right and left arrow keys: permite únicamente la utilización de las teclas de flecha hacia la derecha y a la izquierda. pv arrow keys not allowed: no permite la utilización de las teclas de flechas para la validación. Permite crear una nueva línea en una misma celda (celdas multilíneas). Valores asociados: constantes del tema PV Retorno de carro. pv carriage return Entero largo 8 pv column headers height Entero largo 21 pv cr not allowed: no es posible efectuar una entrada multilíneas en el área. pv cr allowed: presionando la tecla Retorno de carro se creará una nueva línea en la celda. pv cr allowed with ctrl: presionando Ctrl+Retorno de carro (Comando+Retorno de carro en Mac OS) se crea una nueva línea en la celda. pv cr allowed with shift: presionando Mayús+Retorno de carro se creará una nueva línea en la celda. Permite leer o definir el alto de los encabezados en las columnas en el área. Valores asociados: alto de los encabezados expresado en píxeles. Permite indicar si los elementos escondidos en el área deben tenerse en cuenta cuando se copian las celdas. Valores asociados: pv copy hidden Entero largo 19 pv value on: los elementos ocultos (si los hay) se tienen en cuenta cuando se copian las celdas. pv value off: los elementos ocultos (si los hay) no se tienen en cuenta cuando se copian las celdas. Permite definir el resaltado de la celda actual en el área. Valores asociados: pv current cell highlight Entero largo 3 pv value on: la celda actual se resalta en el área, por lo tanto es visible en pantalla. pv value off: la celda actual no se resalta en el área, por lo tanto es invisible en pantalla. Por defecto, la celda activa se resalta. Permite definir el tipo de selección que puede arrastrarse. Valores asociados: constantes del tema PV Arrastrar soltar autorizado. pv drag allowed Entero largo 13 pv DD not allowed: ninguna selección puede arrastrarse en el área, incluso si está autorizado arrastrar y soltar. pv DD single cell: es posible arrastrar una selección con una celda única. pv DD adjacent cells: es posible arrastrar una selección con varias celdas adyacentes o una celda única. pv DD multiple cells: es posible arrastrar una selección de varias celdas (adyacentes o no) o una celda única. pv DD single row: es posible arrastrar una selección con una línea única. pv DD adjacent rows: es posible arrastrar una selección con varias líneas adyacentes o una celda única. pv DD multiple rows: es posible arrastrar una selección de varias líneas (adyacentes o no) o una línea única. pv DD single column: es posible arrastrar una selección con una columna única. pv DD adjacent columns: es posible arrastrar una selección con varias columnas adyacentes o una columna única. pv DD multiple columns: es posible arrastrar una selección con varias columnas (adyacentes o no) o una columna única. Nota: puede añadir varias constantes a la misma área. Por ejemplo, PV SET AREA PROPERTY(area; pv drag allowed; pv DD multiple cells + pv DD single column + pv DD adjacent rows) permite arrastrar una selección compuesta de celdas múltiples o una columna única o líneas adyacentes. única o líneas adyacentes. Permite definir el mecanismo que desencadena el arrastrar en el área. No hay un trigger específico para soltar. Valores asociados: constantes del tema PV Triggers. pv drag trigger Entero largo 12 pv trigger none: no es posible efectuar un arrastrar en el área. pv trigger on click: la selección puede arrastrarse utilizando con un clic. pv trigger on double click: la selección puede arrastrarse utilizando con un doble clic. pv trigger on alt click: la selección puede arrastrarse utilizando una combinación Alt+clic. pv trigger on alt double click: la selección puede arrastrarse utilizando una combinación Alt+doble-clic. pv trigger on ctrl click: la selección puede arrastrarse utilizando la combinación Ctrl+clic (Comando+clic en Mac OS). pv trigger on ctrl double click: la selección puede arrastrarse utilizando la combinación Ctrl+doble-clic (Comando+doble-clic en Mac OS). pv trigger on shift click: la selección puede arrastrarse utilizando la combinación Mayús+clic. pv trigger on shift double clic: la selección puede arrastrarse utilizando la combinación Mayús+doble-clic. Nota: cuando un mismo trigger se define para arrastrar y para la selección, el trigger de arrastrar es prioritario. Permite definir el tipo de selección que es posible soltar en el área. Valores asociados: constantes del tema PV Arrastrar soltar autorizado. pv drop allowed Entero largo 33 pv DD not allowed: ninguna selección puede soltarse en el área, incluso si está autorizado arrastrar y soltar. pv DD single cell: es posible soltar una selección que contenga una celda única. pv DD adjacent cells: es posible soltar una selección que contenga varias celdas adyacentes o una celda única. pv DD multiple cells: es posible soltar una selección que contenga varias celdas (adyacentes o no) o una celda única. pv DD single row: es posible soltar una selección que contenga una línea única. pv DD adjacent rows: es posible soltar una selección que contenga varias líneas adyacentes o una línea única. pv DD multiple rows: es posible soltar una selección que contenga varias líneas (adyacentes o no) o una línea única. pv DD single column: es posible soltar una selección que contenga una columna única. pv DD adjacent columns: es posible soltar una selección que contenga varias columnas adyacentes o una columna única. pv DD multiple columns: es posible soltar columnas múltiples (adyacentes o no) o una columna única. pv DD 4D objects: es posible soltar un objeto 4D. Todos los tipos de campos y de variables 4D (excepto los BLOBs y las sub-tablas) pueden soltarse. Nota: es posible añadir varias constantes para una misma área. Por ejemplo, PV SET AREA PROPERTY(area; pv drop allowed;pv DD multiple cells + pv DD single column + pv DD adjacent rows) permite soltar una selección compuesta por de celdas múltiples o de una columna única o de líneas adyacentes. Permite definir la manera como la selección puede soltarse en el área. Note que esta propiedad define únicamente los modos de soltar valores en el área; la copia de los valores arrastrados (si los hay) debe manejarse por separado. Valores asociados: constantes del tema PV Modo de soltar. pv drop mode Entero largo pv field tag Entero largo 17 pv field wrapper Entero largo 18 14 pv drop insert or replace: los valores soltados pueden insertarse o remplazar los valores existentes en el área. pv drop insert only: los valores soltados sólo se pueden insertar en el área. pv drop replace only: los valores soltados sólo pueden remplazar los valores existentes en el área. Permite definir el separador de campo. Esta propiedad es útil únicamente durante la importación/exportación de datos. Valores asociados: código ASCII del carácter. Ejemplo: "E1Campo1", "E1Campo2", "E1Campo3"; "E2Campo4", "E2Campo5"; La coma es el separador de campo. Permite definir el carácter de sobre de campo. Esta propiedad es útil para únicamente durante la importación/exportación de datos. Valores asociados: código ASCII del carácter. Ejemplo: "E1Campo1", "E1Campo2", "E1Campo3"; "E2Campo4", "E2Campo5"; Las comillas son los sobres de campos. Permite autorizar o prohibir la ordenación estándar de los datos cuando se hace clic en el encabezado de una columna (datos dinámicos o estáticos). Valores asociados: las siguientes constantes del tema PV Ordenar encabezados. pv sort not allowed (valor por defecto): 4D View no efectúa una ordenación estándar cuando el usuario hace clic en un encabezado de columna (la ordenación puede sin pv headers sort pv hor pane count pv input enter key mode Entero largo Entero largo Entero largo 20 11 15 embargo ser manejada de manera personalizada por el desarrollador). pv sort allowed: 4D View efectúa una ordenación estándar cuando el usuario hace clic en un encabezado de columna. En este caso, aparece un símbolo en el encabezado para indicar el criterio de ordenación. Los clics sucesivos provocan alternamente una ordenación ascendente y descendente. Una ordenación en una columna dinámica produce una ordenación sincronizada de los otras columnas de manera que los registros conservan si estado inicial. Una ordenación de una columna estática sólo ordena esa columna. Permite leer el número de paneles horizontales presentes en el área. Este constante sólo puede utilizarse con el comando PV Get area property. Valores devueltos: número de paneles. Permite definir la acción de la tecla Intro (teclado numérico) utilizada durante la entrada de datos. Valores asociados: constantes del tema PV Modo tecla intro en entrada. pv enter key standard: la tecla Intro valida la celda actual luego cambia entre selección/entrada datos en la misma celda (la celda actual no cambia). pv enter key as tab: la tecla Intro valida la celda actual luego cambia entre selección/entrada datos en la siguiente celda a la derecha. La combinación Mayús+Intro cambia entre selección/entrada datos en la siguiente celda a la izquierda. pv enter key as return: la tecla Intro valida la celda actual luego cambia entre selección/entrada datos en la siguiente celda debajo. La combinación Mayús+Intro cambia entre selección/entrada datos en la siguiente celda arriba. Nota: a diferencia de la tecla Intro, las teclas Tab y Retorno de carro provocan únicamente la selección de las celdas. Permite definir el modo de desencadenamiento de la entrada en el área. La entrada de datos sólo puede efectuarse en la celda activa. Valores asociados: constantes del tema PV Triggers: pv input trigger Entero largo 6 pv trigger none: la entrado de datos está inactiva (ningún evento puede activar la entrada), incluso si una tecla es permitida en el modo entrada de datos (ver la constante pv input enter key mode). La entrada de datos es, sin embargo, posible utilizando la barra del editor de fórmulas y también es posible cambiar la selección. pv trigger input key: la entrada de datos es activada por una tecla. En este caso, la navegación entre celdas sólo es posible utilizando el teclado (Tab y Mayús+Tab para moverse horizontalmente, Retorno de carro y Mayús+Retorno de carro para moverse verticalmente, o la teclas de flechas). pv trigger input on enter: la entrada de datos es activada por la tecla Intro (teclado numérico). pv trigger input on gain sel: la entrada de datos se activa en la celda que tiene el foco. En este modo, tan pronto como se selecciona la celda, toma el foco y el cursor se convierte en un cursor de entrada. pv trigger on click: la entrada de datos se activa por un clic en una celda. A diferencia de la constante pv trigger input on gain sel, no se muestra un cursor de entrada. pv trigger on double click: la entrada de datos es activada por un doble clic en una celda. Un solo clic no permite la entrada. pv trigger on alt click: la entrada de datos es activada por la combinación Alt+clic en una celda. pv trigger on alt double click: la entrada de datos es activada por la combinación Alt+doble-clic en una celda. pv trigger on ctrl click: la entrada de datos es activada por la combinación Ctrl+clic (Comando+clic en Mac OS) en una celda. pv trigger on ctrl double click: la entrada de datos es activada por la combinación Ctrl+doble-clic (Comando+doble-clic en Mac OS) en una celda. pv trigger on shift click: la entrada de datos es activada por la combinación Mayús+clic en una celda. pv trigger on shift double clic: la entrada de datos es activada por la combinación Mayús+doble-clic en una celda. Notas: Puede añadir varias constantes para el mismo trigger. Por ejemplo, PV SET AREA PROPERTY(area; pv input trigger;pv trigger on click + pv trigger on alt click) permite el uso de un clic O de Alt+clic para la entrada de datos. Cuando el mismo trigger está definido para la entrada y para la selección, el trigger de entrada es prioritario. pv record tag Entero largo 16 Permite definir el carácter delimitador del registro. Esta propiedad es útil únicamente durante la importación/exportación de datos. Valores asociados: código ASCII del carácter. Ejemplo : "E1Campo1", "E1Campo2", "E1Campo3"; "E2Campo4", "E2Campo5"; El punto y coma es el separador del registro (2 registros: E1 y E2). Permite autorizar o no el redimensionamiento de la columna. Valores asociados: Permite autorizar o no el redimensionamiento de la columna. Valores asociados: pv resizable columns Entero largo pv resizable rows Entero largo 5 pv row headers width Entero largo 22 4 pv value on: las columnas en el área son redimensionables. pv value off: el tamaño de las columnas en el área no es redimensionable. Permite autorizar o no el redimensionamiento de las líneas. Valores asociados: pv saving dialog Entero largo 37 pv value on: las líneas en el área son redimensionables. pv value off: las líneas en el área no son redimensionables. Permite leer o fijar el ancho de los encabezados de líneas. Valores asociados: ancho de los encabezados (en píxeles). Permite mostrar o no el mensaje de confirmación del registro del documento 4D View si ha sido modificado. Esta alerta se muestra cuando se sale de un área incluida en 4D View, no asociada a un campo de la base, (el formulario se valida o cancela). Esta propiedad no es válida para ventanas externas 4D View. Valores asociados: pv value on: se muestra el mensaje de confirmación (valor por defecto). pv value off: no se muestra el mensaje de confirmación Permite definir el resaltado de una selección de celdas en el área. Valores asociados: pv select highlight Entero largo 1 pv value on: las selecciones se resaltan en el área. pv value off: las selecciones no se resaltan, son invisibles en pantalla. Permite definir el modo de selección permitido par el área. Valores asociados: constantes del tema PV Select mode. pv select mode Entero largo 0 pv select not allowed: no es posible hacer una selección en el área (todas las celdas están deseleccionadas). La entrada de datos tampoco es permitida (el editor de fórmulas se bloquea). Sólo se pueden ver los datos. pv select single row: sólo es posible seleccionar una línea a la vez en el área. pv select adjacent rows: sólo las líneas adyacentes pueden seleccionarse en el área. pv select multiple rows: es posible seleccionar varias líneas, adyacentes o no, en el área. pv select single column: sólo una columna a la vez puede seleccionarse en el área. pv select adjacent columns: sólo es posible seleccionar columnas adyacentes en el área. pv select multiple columns: es posible seleccionar varias columnas, adyacentes o no, en el área. pv select single cell: sólo es posible seleccionar una celda a la vez en el área. pv select adjacent cells: sólo las celdas adyacentes pueden seleccionarse en el área. pv select multiple cells: es posible seleccionar varias celdas, adyacentes o no, en el área. Nota: la entrada de datos aún es posible en la selección (excepto durante el uso de la constante pv select not allowed). Si prefiere no permitir la entrada de datos en el área, debe ejecutar la instrucción PV SET AREA PROPERTY(area;pv input trigger;pv trigger none). Permite autorizar o no las áreas sin selección actual. Valores asociados: pv select null Entero largo 2 pv value on: no es obligatorio tener una selección en el área. Por ejemplo, si la columna o la línea contiene la celda activa se elimina, ya no hay más selección en el área. pv value off: es obligatorio tener una selección en el área. Permite definir el modo de desencadenamiento de la selección en el área. Valores asociados: constantes del tema PV Triggers: pv select trigger Entero largo 7 pv trigger none: no es posible definir una selección en el área. Es posible introducir datos en la selección que estaba activa antes de la ejecución del comando. Las teclas Tab y Retorno de carro modifican la posición de la celda activa en la selección. pv trigger select on arrow: permite definir una selección (celda activa únicamente) utilizando las teclas flechas. No es posible extender o reducir una selección. pv trigger select on tab: permite definir una selección (celda activa únicamente) utilizando la tecla Tab o la combinación Mayús+Tab. No es posible extender o reducir una selección. pv trigger select on return: permite definir una selección (celda activa únicamente) utilizando la tecla Retorno de carro. No es posible extender o reducir una selección. pv trigger on click: permite definir una selección vía un clic. pv trigger on double click: permite definir una selección (celda activa únicamente) vía un doble-clic. No es posible extender o reducir una selección. pv trigger on alt click: permite definir una selección utilizando la combinación Alt+clic. pv trigger on alt double click: permite definir una selección utilizando la combinación Alt+doble-clic pv trigger on ctrl click: permite definir una selección utilizando la combinación Ctrl+clic (Comando+clic on Mac OS). pv trigger on ctrl double click: permite definir una selección utilizando la combinación Ctrl+doble-clic (Comando+doble-clic en Mac OS). pv trigger on shift click: permite definir una selección utilizando la combinación Mayús+clic. pv trigger on shift double clic: permite definir una selección utilizando la combinación Mayús+doble-clic. Notas: Puede añadir varias constantes para un mismo trigger. Por ejemplo, PV SET AREA PROPERTY(area; pv select trigger;pv trigger on click + pv trigger on alt click) permite el uso de un clic O un Alt+clic para la selección. Cuando un mismo trigger se define para la entrada y para la selección, el trigger de entrada es prioritario. Cuando el mismo trigger se define para arrastrar y para la selección, el trigger de arrastrar es prioritario. pv show borders toolbar Permite mostrar u ocultar la barra de herramientas Bordes de 4D View en el área. Valores asociados: Entero largo 29 pv value on: se muestra la barra de herramientas Bordes. pv value off: se oculta la barra de herramientas Bordes. Permite mostrar u ocultar los encabezados de columnas en el área. Valores asociados: pv show column headers pv show formula toolbar Entero largo 23 pv value on: se muestran los encabezados de las columnas. pv value off: se ocultan los encabezados de las columnas. Permite mostrar u ocultar la barra de herramientas Fórmulas de 4D View en el área. Valores asociados: Entero largo 30 pv value on: la barra de herramientas Fórmulas se muestra. pv value off: la barra de herramientas Fórmulas se oculta. Permite mostrar u ocultar la rejilla horizontal de 4D View en el área. Valores asociados: pv show hor grid Entero largo 31 pv value on: se muestra la rejilla horizontal. pv value off: se oculta la rejilla horizontal. Permite mostrar u ocultar la barra de desplazamiento horizontal del área. Valores asociados: pv show hor scrollbar Entero largo 34 pv value on: se muestra la barra de desplazamiento horizontal. pv value off: se oculta la barra de desplazamiento horizontal. Permite mostrar y ocultar la barra de menús de 4D View en el área. Valores asociados: pv show menu bar pv show numbers toolbar Entero largo 25 pv value on: se muestra la barra de menús. pv value off: se oculta la barra de menús. Permite mostrar u ocultar la barra de herramientas Números 4D View en el área. Valores asociados: Entero largo 27 pv value on: se muestra la barra de herramientas Números. pv value off: se oculta la barra de herramientas Números. Permite mostrar u ocultar los encabezados de líneas en el área. Valores asociados: pv show row headers Entero largo 24 pv value on: se muestran los encabezados de líneas. pv value off: se ocultan los encabezados de líneas. Permite fijar o leer el modo de visualización de la selección en un área 4D View que no tiene el foco. Valores asociados: pv show selection pv show standard toolbar pv show Entero largo 40 pv value on: la selección del área siempre permanece visible (resaltada) sin importar si el área 4D View tiene el foco. pv value off: cuando el área 4D View pierde el foco, la selección ya no es visible. Permite mostrar u ocultar la barra de herramientas estándar de 4D View en el área. Valores asociados: Entero largo 26 pv value on: se muestra la barra de herramientas estándar. pv value off: se oculta la barra de herramientas estándar. Permite mostrar u ocultar la barra de herramientas estilo de 4D View en el área. Valores asociados: asociados: pv show style toolbar Entero largo pv show vert grid Entero largo 28 pv value on: se muestra la barra de herramientas estilo. pv value off: se oculta la barra de herramientas estilo. Permite mostrar u ocultar la rejilla vertical de 4D View en el área. Valores asociados: 32 pv value on: se muestra la rejilla vertical. pv value off: se oculta la rejilla vertical. Permite mostrar u oculta la barra de desplazamiento vertical 4D View del área. Valores asociados: pv show vert scrollbar Entero largo pv vert pane count Entero largo 10 pv zoom factor Entero largo 36 35 pv value on: se muestra la barra de desplazamiento vertical. pv value off: se oculta la barra de desplazamiento vertical. Permite leer el número de paneles verticales en el área. Esta constante sólo puede leerse utilizando el comando PV Get area property. Valores devueltos: número de paneles. Recordatorio: un panel es el área ubicada entre dos separadores (horizontal o vertical). Permite leer o definir el valor del zoom (en porcentaje) para el área. Valores asociados: tasa de compresión entre 25 y 1000. Ejemplo Para congelar el tamaño de la columna en un área 4D View o para autorizar el redimensionamiento si esta función está congelada, vamos a escribir el siguiente método, que llevará a cabo esta operación "switch": C_INTEGER($Value) `Valor de la propiedad `Valor actual (0: congelado, 1 = autorizado) $Value:=PV Get area property(Area;pv resizable columns) `Comando en "switch": 0 <-> 1 PV SET AREA PROPERTY(Area;pv resizable columns;Num($Value=0)) PV SET COMMAND STATUS PV SET COMMAND STATUS ( area ; comando ; estado ) Parámetro area comando estado Tipo Entero largo Entero largo Entero Descripción Área 4D View Número de comando 0 = Desactivar; 1 = Activar Descripción El comando PV SET COMMAND STATUS activa o desactiva el comando de menú especificado por comando. Estos comandos pueden localizarse en menús (que permiten utilizar los menús de 4D View por programación) o paletas. Las constantes del tema PV Comandos se utilizan para definir el parámetro comando. Si pasa 0 en el parámetro comando, el comando modifica el estado de todos los comandos del área 4D View. Si estado es igual a 0, el comando no se ejecutará cuando se llame y el menú (o botón) se pondrá en gris. Si estado es igual a 1, el comando se ejecutará cuando se llame y el menú (o botón) se activa. Un comando de menú desactivado no puede ejecutarse por programación con el comando PV EXECUTE COMMAND. PV ON COMMAND no está disponible si el usuario intenta utilizar un comando desactivado utilizando PV SET COMMAND STATUS). Ejemplo 1 Para prohibir la visualización de las referencias en un area 4D View, simplemente escribir: `Tercer parámetro a 1 para reactivar PV SET COMMAND STATUS(area;pv cmd view references;0) Ejemplo 2 Ver el ejemplo del comando PV EXECUTE COMMAND. PV Arrastrar y soltar PV Arrastrar y soltar, Introducción PV GET DRAG SIGNATURES PV GET DRAG SOURCE PV Get drop info PV GET DROP SIGNATURES PV GET DROP TARGET PV SET DRAG SIGNATURES PV SET DROP SIGNATURES PV Arrastrar y soltar, Introducción Los comandos y funciones de este tema permiten controlar el arrastrar y soltar en la misma área 4D View, entre dos áreas 4D View o entre un área 4D y un area 4D View. En 4D View, arrastrar y soltar trabaja basado en tres principios: El objeto fuente (el área de donde proviene el arrastrar). El objeto destino (el área donde se suelta). Las firmas permiten autorizar o no el arrastrar y soltar entre ciertas áreas. Los comandos de este tema se utilizan para identificar el origen y el destino, así como también sus firmas y para obtener información sobre la ubicación del área objetivo en donde se produce el soltar. Es su responsabilidad utilizar esta información en función de sus necesidades, utilizando otros comandos de 4D View, por ejemplo copiando o pegando datos del área de origen y pegándolos en el área de destino una vez la validez de la operación haya sido controlada, o ejecutando una operación diferente de su elección. Arrastrar-soltar objetos 4D 4D View permite arrastrar y soltar objetos 4D entre las celdas. A excepción de los BLOBs, todos los tipos de campos y de variables de 4D pueden soltarse en las áreas 4D View. En 4D, la propiedad "Arrastrable" debe haber sido seleccionada para cada objeto que pueda ser arrastrado y soltado. En 4D View, debe utilizar la constante pv DD 4D objects (tema PV Arrastrar soltar autorizado) con el comando PV SET AREA PROPERTY. La firma de los objetos 4D es __OBJECT4D__ (cada __ consta de dos guiones bajos). Esta firma interna no puede modificarse. Basta con pasar esta firma al comando PV SET DROP SIGNATURES con el fin de autorizar "soltar" objetos 4D. PV GET DRAG SIGNATURES PV GET DRAG SIGNATURES ( area ; firmas ) Parámetro area firmas Tipo Entero largo Array cadena Descripción Área 4D View Array de firmas Descripción El comando PV GET DRAG SIGNATURES recupera en el array firmas las firmas de arrastrar de area. Las firmas son cadenas alfanuméricas cuyo contenido es libre. La longitud máxima de una firma es de 32 caracteres. Ejemplo Mostrar un mensaje de ayuda en casos donde el área puede ser objeto de un arrastrar soltar interno. ARRAY TEXT($DragSignatureArray;0) ARRAY TEXT($DropSignatureArray;0) C_TEXT(HelpMessage) C_INTEGER($Index) PV GET DRAG SIGNATURES(Area;$DragSignatureArray) PV GET DROP SIGNATURES(Area;$DropSignatureArray) HelpMessage:="" For($Index;1;Size of array($DragSignatureArray)) `Buscamos una firma común If(Find in array($DropSignatureArray;$DragSignatureArray{$Index})#-1) HelpMessage:="Puede arrastrar y soltar al interior de esta área." $Index:=Size of array($DragSignatureArray) End if End for PV GET DRAG SOURCE PV GET DRAG SOURCE ( area ; fuente ; firmas ) Parámetro area fuente firmas Tipo Entero largo Puntero Array cadena Descripción Área 4D View Puntero al objeto fuente de arrastrar Array de firmas Descripción El comando PV GET DRAG SOURCE referencia el puntero fuente con el objeto fuente de "arrastrar". El array firmas se llena con las firmas de los objetos que se están moviendo. Este parámetro permite distinguir los objetos 4D de los otros objetos 4D View que han sido arrastrados y ejecutan el código apropiado cuando se sueltan los objetos. La firma de los objetos 4D es __OBJECT4D__ (cada __ consta de dos guiones bajos). Esta firma interna no se puede modificar. Para más información, consulte la sección PV Arrastrar y soltar, Introducción. Ejemplo Consulte el ejemplo del comando PV SET DRAG SIGNATURES. PV Get drop info PV Get drop info ( area ; opción ) -> Resultado Parámetro area opción Resultado Tipo Entero largo Entero largo Entero largo Descripción Área 4D View Número de la opción Valor de la opción Descripción El comando PV Get drop info devuelve el valor de la opcion de arrastrar y soltar especificada. Las constantes del tema PV Información soltar se utilizan para definir opcion: Constante Tipo Valor pv drag process pv drag plugin pv drag column pv drag row pv drag X offset pv drag Y offset pv drag content pv drop process pv drop plugin pv drop column pv drop row pv drop X offset pv drop Y offset pv drop content pv drop action Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Estas son las constantes del tema PV Acción soltar: Constante Tipo Valor pv entire area pv insert cell down pv insert cell right pv insert column pv insert row pv replace cell pv replace column pv replace row Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 1 2 3 7 5 4 8 6 Ejemplo Consulte el ejemplo del comando PV SET DRAG SIGNATURES. PV GET DROP SIGNATURES PV GET DROP SIGNATURES ( area ; firmas ) Parámetro area firmas Tipo Entero largo Array cadena Descripción Área 4D View Array de firmas Descripción El comando PV GET DROP SIGNATURES crea el array firmas de las firmas de soltar de area. Las firmas son cadenas alfanuméricas cuyo contenido es libre. La máxima longitud de una firma es de 32 caracteres. Ejemplo Consulte el ejemplo del comando PV GET DRAG SIGNATURES. PV GET DROP TARGET PV GET DROP TARGET ( area ; destino ) Parámetro area destino Tipo Entero largo Puntero Descripción Área 4D View Puntero al objeto destino de soltar Descripción El comando PV GET DROP TARGET define el puntero destino para el objeto destino de soltar. Ejemplo Consulte el ejemplo del comando PV SET DRAG SIGNATURES. PV SET DRAG SIGNATURES PV SET DRAG SIGNATURES ( area ; firmas ) Parámetro area firmas Tipo Entero largo Array cadena Descripción Área 4D View Array de firmas Descripción El comando PV SET DRAG SIGNATURES define el contenido del array firmas como firmas de "arrastrar" para el area. Las firmas son cadenas alfanuméricas con contenido libre. La longitud máxima de una firma es de 32 caracteres. Estas son las propiedades del area, definidas utilizando el comando PV SET PROPERTY, que permite indicar las posibilidades de un área 4D View y las opciones relacionadas con arrastrar y soltar: Para definir las propiedades de arrastrar y soltar a aplicar a un área, utilice las constantes del tema PV Propiedades área. Para definir los valores de estas diferentes propiedades, use las constantes de los temas PV Arrastrar soltar autorizado y PV Modo de soltarPV GET ALLOWED COM LIST. Una vez arrastrar y soltar esté autorizado, puede interactuar con dos áreas (que pueden ser la misma) con la condición de que las áreas contengan al menos una firma común de arrastrar para el área fuente y de soltar para el área objetivo. El evento de arrastrar y soltar, será interceptado por el comando PV ON EVENT. Ejemplo El siguiente ejemplo ilustra un arrastrar y soltar entre dos áreas 4D View. Para empezar, definimos las firmas y el comportamiento de las áreas, por ejemplo, al cambiar de formulario: ARRAY TEXT($DDSignatureArray;1) $DDSignatureArray{1}:="Signature_1" PV SET AREA PROPERTY(SourceArea;pv drag trigger;pv trigger on alt click) `alt-clic para arrastrar PV SET AREA PROPERTY(SourceArea;pv drag allowed;pv DD multiple cells) PV ON EVENT(SourceArea;pv on drag;"DragDropMethod") PV SET DRAG SIGNATURES(SourceArea;$DDSignatureArray) PV SET AREA PROPERTY(TargetArea;pv drop allowed;pv DD single cell+ pv DD adjacent cells+pv DD multiple cells) PV SET AREA PROPERTY(TargetArea;pv drop mode;pv drop replace only) PV ON EVENT(TargetArea;pv on drop;"DragDropMethod") PV SET DROP SIGNATURES(TargetArea;$DDSignatureArray) `Las mismas firmas que arrastrar El método de proyecto DragDropMethod se llamará cuando se ejecute un arrastrar con alt-clic o cuando ocurre un soltar en un área objetivo: C_LONGINT($1) C_LONGINT($2) C_LONGINT($3) C_LONGINT($4) C_LONGINT($5) C_LONGINT($6) `Referencia del área 4D View `Evento `Código de la tecla (modificar) `Número de la columna `Número de la línea `Código ASCII de la tecla C_POINTER(SourceAreaPointer;TargetAreaPointer) `No hay donde conservarlos entre dos retrollamadas C_BLOB($blob) `Portapapeles temporal de arrastrar y soltar C_LONGINT($currentColumn;$currentRow) `Coordenadas de la celda actual C_LONGINT($destinationColumn;$destinationRow) `Coordenadas de la celda donde ocurrirá el soltar Case of :($2=pv on drag) PV GET DRAG SOURCE($1;SourceAreaPointer) `¿De dónde venimos? :($2=pv on drop) PV GET DROP TARGET($1;TargetAreaPointer) `¿A dónde vamos? $blob:=PV Copy to blob(SourceAreaPointer->) `Copia en el portapaples $destinationColumn:=PV Get drop info(TargetAreaPointer->;pv drop column) `Destino.... $destinationRow:=PV Get drop info(TargetAreaPointer->;pv drop row) `...coordenadas PV GET CURRENT CELL(TargetAreaPointer->;$currentColumn;$currentRow) `Pegar al área asignada PV GOTO CELL(TargetAreaPointer->;$destinationColumn;$destinationRow) PV PASTE FROM BLOB(TargetAreaPointer->;$blob;1;1;1;1) `Restablecimiento de la celda actual una vez realizada la operación PV GOTO CELL(TargetAreaPointer->;$currentColumn;$currentRow) End case PV SET DROP SIGNATURES PV SET DROP SIGNATURES ( area ; firmas ) Parámetro area firmas Tipo Entero largo Array cadena Descripción Área 4D View Array de firmas Descripción El comando PV SET DROP SIGNATURES define el contenido del array firmas como firmas de "soltar" del area. Las firmas son cadenas alfanuméricas cuyo contenido es libre. La máxima longitud de una firma es de 32 caracteres. Ejemplo Consulte el ejemplo del comando PV SET DRAG SIGNATURES. PV Autorización de entrada PV Autorización de entrada, Introducción PV GET ALLOWED COM LIST PV GET ALLOWED MET LIST PV GET ALLOWED VAR LIST PV SET ALLOWED COM LIST PV SET ALLOWED MET LIST PV SET ALLOWED VAR LIST PV Autorización de entrada, Introducción Los comandos de este tema permiten definir y leer los objetos 4D (variables, métodos y comandos) a los cuales los usuarios de 4D View tendrán acceso en las fórmulas del área actual. Esta operación permite el control de las acciones del usuario en áreas 4D View. Por defecto, el sistema de autorización de entrada no está activado (los usuarios tienen acceso a todas las variables, métodos y comandos 4D). Antes de utilizar un comando de este tema, debe primero prohibir todas las llamadas a estos objetos 4D ejecutando el comando PV SET DOCUMENT PROPERTY con la constante pv no formula external call en 1 (pv value on): para prohibir las llamadas y activar el sistema de autorización de entrada: PV SET DOCUMENT PROPERTY(area;pv no formula external call;pv value on) para desactivar el sistema (funcionamiento por defecto): PV SET DOCUMENT PROPERTY(area;pv no formula external call;pv value off). PV GET ALLOWED COM LIST PV GET ALLOWED COM LIST ( area ; arrayCom ) Parámetro area arrayCom Tipo Entero largo Array cadena Descripción Área 4D View Array de nombres de comandos 4D Descripción El comando PV GET ALLOWED COM LIST llena el array arrayCom con la lista de los nombres de los comandos 4D que el usuario está autorizado a utilizar en las fórmulas. PV GET ALLOWED MET LIST PV GET ALLOWED MET LIST ( area ; arrayMet ) Parámetro area arrayMet Tipo Entero largo Array cadena Descripción Área 4D View Array de los nombres de métodos Descripción El comando PV GET ALLOWED MET LIST llena el array arrayMet con la lista de los nombres de métodos 4D que el usuario está autorizado a utilizar en las fórmulas. PV GET ALLOWED VAR LIST PV GET ALLOWED VAR LIST ( area ; arrayVar ) Parámetro area arrayVar Tipo Entero largo Array cadena Descripción Área 4D View Array de los nombres de variables Descripción El comando PV GET ALLOWED VAR LIST llena el array arrayVar con la lista de nombres de las variables (proceso e interproceso únicamente) que el usuario está autorizado a utilizar en las fórmulas. PV SET ALLOWED COM LIST PV SET ALLOWED COM LIST ( area ; arrayCom ) Parámetro area arrayCom Tipo Entero largo Array cadena Descripción Área 4D View Array de nombres de comandos 4D Descripción El comando PV SET ALLOWED COM LIST asigna arrayCom con la lista de comandos 4D que el usuario puede utilizar en las fórmulas de area. Nota: para que este comando tenga efecto, el sistema de restricción de entrada debe estar activo. Ver la sección PV Autorización de entrada, Introducción. PV SET ALLOWED MET LIST PV SET ALLOWED MET LIST ( area ; arrayMet ) Parámetro area arrayMet Tipo Entero largo Array cadena Descripción Área 4D View Array de nombres de métodos Descripción El comando PV SET ALLOWED MET LIST asigna arrayMet con la lista de métodos 4D que el usuario puede utilizar en las fórmulas de area. Nota: para que este comando tenga efecto, el sistema de restricción de entrada debe estar activo. Ver la sección PV Autorización de entrada, Introducción. PV SET ALLOWED VAR LIST PV SET ALLOWED VAR LIST ( area ; arrayVar ) Parámetro area arrayVar Tipo Entero largo Array cadena Descripción Área 4D View Array de nombres de variables Descripción El comando PV SET ALLOWED VAR LIST asigna arrayVar con la lista de variables (proceso e interproceso únicamente) que el usuario puede utilizar en las fórmulas de area. Nota: para que este comando tenga efecto, el sistema de restricción de entrada debe estar activo. Ver la sección PV Autorización de entrada, Introducción. PV Bordes PV Bordes, Introducción PV GET BORDER STYLE PV SET BORDER STYLE PV SET RANGE BORDER PV Bordes, Introducción Las rutinas en este tema permiten definir los bordes de una celda o de una selección de celdas, los atributos de borde, o incluso la obtención de información relativa a un tipo de borde en función de los parámetros establecidos por intermedio de los comandos de menús. Para más información sobre selección y rangos de celdas, consulte la sección PV Selección, Introducción. PV GET BORDER STYLE PV GET BORDER STYLE ( area ; borde ; estilo ; color ) Parámetro area borde estilo color Tipo Entero largo Entero largo Entero largo Entero largo Descripción Área 4D View Borde del marco Estilo del borde Color del borde Descripción El comando PV GET BORDER STYLE recupera el estilo y color del borde actual para el area 4D View. Para definir el parámetro borde, utilice las constantes del tema PV Bordes: Constante Tipo Valor pv border edge bottom pv border edge inner hor pv border edge inner vert pv border edge left pv border edge right pv border edge top Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 8 16 32 1 4 2 El valor devuelto en el parámetro estilo es comparable a las constantes del tema PV Estilo de borde: Constante Tipo Valor pv border style 1 pv border style 111 pv border style 112 pv border style 2 pv border style 211 pv border style 212 pv border style 222 pv border style 232 pv border style 3 pv border style 4 pv border style 5 pv border style 6 pv border style half pv border style none pv border style quarter Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 1 7 9 2 8 10 11 12 3 4 5 6 14 0 13 Para mayor información, consulte el comando PV SET BORDER STYLE. Ejemplo Verificamos si el estilo del borde en el área 4D View corresponde a su gusto (ver PV SET BORDER STYLE). Note que no estamos rodeando nada: el código a continuación sólo permite modificar las características de los futuros bordes a realizar con el comando PV SET RANGE BORDER. C_LONGINT($Style;$Color) `Atributos de estilo `Recuperación de la información sobre el estilo PV GET BORDER STYLE(Area;pv border edge bottom;$Style;$Color) `¿Este es el estilo que prefiere? If(Style#pv border style 111)|($Color#PV Index to color(Light blue)) `Me temo que no... `Estilo y color del marco PV SET BORDER STYLE(Area;pv border edge bottom;pv border style 111;PV Index to color(Light blue)) End if PV SET BORDER STYLE PV SET BORDER STYLE ( area ; borde ; estilo ; color ) Parámetro area borde estilo color Tipo Entero largo Entero largo Entero largo Entero largo Descripción Área 4D View Borde del marco Estilo del borde Color del borde Descripción El comando PV SET BORDER STYLE determina el estilo y el color para el borde de la selección. Nota: este comando no aplica al estilo de las celdas del área. Sólo define los estilos que deben aplicarse utilizando el comando PV SET RANGE BORDER. Para definir el parámetro borde, utilice las constantes del tema PV Bordes: Constante Tipo Valor pv border edge bottom pv border edge inner hor pv border edge inner vert pv border edge left pv border edge right pv border edge top Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 8 16 32 1 4 2 Un borde se define como uno de los lados de un marco: superior, inferior, izquierda, derecha. Para configurar varios bordes mediante una llamada única a PV SET BORDER STYLE, sólo tiene que añadir las constantes, por ejemplo, pv border edge top + pv border edge bottom para una línea arriba y debajo del marco. Los bordes se pueden combinar para formar un marco total o parcial de un rango de celdas. En este caso, el borde interior es el borde de cada celda incluida en el marco y pueden definirse utilizando las constantes pv border edge inner vert y pv border edge inner hor. Cada borde también pueden contener características específicas, únicas: PV SET BORDER STYLE puede llamarse tantas veces como bordes que necesiten estilos diferentes. Para definir el parámetro estilo, utilice las constantes PV Estilo de borde: Constante Tipo Valor pv border style 1 pv border style 111 pv border style 112 pv border style 2 pv border style 211 pv border style 212 pv border style 222 pv border style 232 pv border style 3 pv border style 4 pv border style 5 pv border style 6 pv border style half pv border style none pv border style quarter Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 1 7 9 2 8 10 11 12 3 4 5 6 14 0 13 Estas constantes se definen de la siguiente manera: Para los bordes simples, la constante indica el número de píxeles (por ejemplo pv border style 4 = una línea de 4 píxeles). Para los bordes combinados, la constante indica el número de píxeles para cada componente (por ejemplo pv border style 211 = una línea de 2 píxeles, un espacio de 1 pixel, una línea de 1 píxel). Estas constantes se detallan en el siguiente esquema: Las constantes pv border style quarter y pv border style half designan respectivamente los tamaños de borde de 0,25 píxeles y 0,5 píxeles. Estos valores sólo son significativos en el momento de la impresión. El parámetro color es un entero largo de tipo BGR. Este valor puede extraerse de uno de los 256 colores de la paleta 4D utilizando el comando PV Index to color: específicamente, es posible utilizar las constantes del lenguaje 4D, tema Colores, disponibles para los primeros 16 colores (la primera línea de la paleta de colores). Consulte la descripción de los siguientes comandos 4D para obtener detalles sobre los colores disponibles en 4D: OBJECT SET RGB COLORS para el sistema de colores RGB utilizado por 4D. OBJECT SET COLOR para la paleta 4D de colores indexados. Nota: la codificación interna de los colores 4D View es del tipo BGR, que se invierte con respecto a la codificación RGB de 4D; sin embargo, los principios de uso son los mismos. Ejemplo Ver el ejemplo del comando PV SET RANGE BORDER. PV SET RANGE BORDER PV SET RANGE BORDER ( area ; izquierda ; superior ; derecha ; inferior ) Parámetro area izquierda superior derecha inferior Tipo Entero largo Entero largo Entero largo Entero largo Entero largo Descripción Área 4D View Número de columna de la celda izquierda Número de línea de la celda de arriba Número de la columna de la celda derecha Número de línea de la celda inferior Descripción El comando PV SET RANGE BORDER aplica el tipo de borde definido por PV SET BORDER STYLE al rango de celdas definido por los parámetros izquierda, superior, derecha e inferior: Para mayor información sobre rangos, consulte la sección PV Selección, Introducción. Ejemplo En un área 4D View, queremos trazar una doble línea azul horizontal en la parte inferior de una tabla de 12 líneas introducidas en columnas A y B: PV SET BORDER STYLE(Area;pv border edge top;pv border style 111; PV Index to color(Light blue)) `Estilo y color del borde PV SET RANGE BORDER(Area;1;12;2;12) `Subrayamos la parte inferior del rango PV Celda actual PV Celda actual, Introducción PV GET CURRENT CELL PV GET NEXT FREE CELL PV GET PREVIOUS ACTIVE CELL PV GOTO CELL PV GOTO NEXT CELL PV VALIDATE CURRENT CELL PV Celda actual, Introducción Los comandos de este tema permite "posicionarse" en una celda y cambiar la celda actual en un área 4D View dada. También permiten salir del modo "edición" de la celda actual en un área 4D View. PV GET CURRENT CELL PV GET CURRENT CELL ( area ; columna ; linea ) Parámetro area columna linea Tipo Entero largo Entero largo Entero largo Descripción Área 4D View Número de columna de la celda activa Número de línea de la celda activa Descripción El comando PV GET CURRENT CELL devuelve las coordenadas de la celda actual de area en los parámetros columna y linea. Ejemplo A partir del método objeto de un botón, mostramos la cadena "Aquí" en la celda actual. C_LONGINT($Column;$Row) `Para recuperar las coordenadas PV GET CURRENT CELL(Area;$Column;$Row) `Coordenadas celda If($Column#0)&($Row#0) `Hay una celda seleccionada PV SET CELL STRING VALUE(Area;$Column;$Row;"Aquí") `Esta celda contiene actualmente "Aquí" End if PV GET NEXT FREE CELL PV GET NEXT FREE CELL ( area ; direccion ; columna ; linea ) Parámetro area direccion columna linea Tipo Entero largo Entero Entero largo Entero largo Descripción Área 4D View Constante de dirección Número de columna Número de línea Descripción El comando PV GET NEXT FREE CELL recupera las coordenadas columna y linea de la próxima celda libre en la direccion especificada. El eje de direccion es uno de los cuatro valores del tema de constantes PV Direcciones: Constante Tipo Valor pv to the bottom pv to the left pv to the right pv to the top Entero largo Entero largo Entero largo Entero largo 1 2 0 3 Ejemplo En un área 4D View que contiene un array de datos introducidos (llenado completamente), contemos el número de líneas y de columnas ocupadas por este array. Sabemos que la primera celda introducida está ubicada en la intersección de la columna C y de la línea 4. En este momento, el plug-in determinará el número de columnas y de líneas ocupadas por el rango de entrada. C_LONGINT($StartCol;$StartRow) `Coordenadas celda original C_LONGINT($RightCol;$RightRow) `Coordenadas más a la derecha C_LONGINT($LowCol;$LowRow) `Coordenadas más hacia abajo $StartCol:=3 `Inicialización $StartRow:=4 PV GOTO CELL(Area;$StartCol;$StartRow) `Posicionamiento `Recuperación de las coordenadas más a la derecha PV GET NEXT FREE CELL(Area;pv to the right;$RightCol;$RightRow) `Recuperación de las coordenadas más a la izquierda PV GET NEXT FREE CELL(Area;pv to the bottom;$LowCol;$LowRow) ALERT("Los datos introducidos ocupan "+String($RightCol-$StartCol)+" columna(s) en " +String($LowRow-$StartRow)+" línea(s).") PV GET PREVIOUS ACTIVE CELL PV GET PREVIOUS ACTIVE CELL ( area ; columna ; linea ) Parámetro area columna linea Tipo Entero largo Entero largo Entero largo Descripción Área 4D View Número de columna de la celda Número de línea de la celda Descripción El comando PV GET PREVIOUS ACTIVE CELL devuelve las coordenadas de la celda activa anterior (actual) para el area indicada en los parámetros columna y linea. Nota: no existe una "pila" de celdas activas, sólo se conoce la celda activa anterior y no las que estaban activas previamente. Depende de usted gestionar la memorización de las celdas activas sucesivas si es necesario, por ejemplo, para instalar distintos niveles de la cancelación. Ejemplo En el ejemplo a continuación, crearemos un efecto "rebote" en una celda dada. Ponemos un método de gestión de eventos, el cual se llamará cada vez que la celda activa cambie: PV ON EVENT(Area;pv on active cell changed;"EventMethod") El método de proyecto EventMethod hace "rebotar" al usuario a la celda C5. Una vez alcanzada esta celda, la última celda actual se vuelve activa nuevamente, evitando que C5 se seleccione de cualquier modo: comando 4D View, tecla, ratón, etc. `Método: EventMethod `Con este método, rebotamos a la celda C5 C_LONGINT($1) `Referencia del área 4D View C_LONGINT($2) `Evento C_LONGINT($3) `Código de la tecla de modificación C_LONGINT($4) `Número de la columna C_LONGINT($5) `Número de la línea C_LONGINT($6) `Código Ascii de la tecla C_LONGINT($Column;$Row) `Coordenadas de la celda (actual luego anterior) C_BOOLEAN($0) `Valor a devolver $0:=False PV GET CURRENT CELL($1;$Column;$Row) `Recuperación de las coordenadas If($Column=3) & ($Row=5) `La celda C5 es la actual PV GET PREVIOUS ACTIVE CELL($1;$Column;$Row) `Última celda PV GOTO CELL($1;$Column;$Row) `Se vuelve actual nuevamente End if PV GOTO CELL PV GOTO CELL ( area ; columna ; linea ) Parámetro area columna linea Tipo Entero largo Entero largo Entero largo Descripción Área 4D View Número de columna de la celda Número de línea de la celda Descripción Cuando se llama el comando PV GOTO CELL, la celda definida por columna y linea se convierte en la celda actual del area. Si la celda anterior actual estaba en modo entrada, su contenido se valida. Ejemplo Esta línea de código hace que la celda ubicada en la intersección de la octava columna y la quinta línea sea la celda actual. PV GOTO CELL(Area;8;5) `Nueva celda actual: H5 PV GOTO NEXT CELL PV GOTO NEXT CELL ( area ; direccion ) Parámetro area direccion Tipo Entero largo Entero Descripción Área 4D View Constante de dirección Descripción Cuando se llama el comando PV GOTO NEXT CELL, la siguiente celda en el parámetro direccion especificado se convierte en la celda actual de area. Si la celda actual anterior estaba en modo entrada, su contenido se valida. El eje de direccion es uno de los cuatro valores del tema de constantes PV Direcciones: Constante Tipo Valor pv to the bottom pv to the left pv to the right pv to the top Entero largo Entero largo Entero largo Entero largo 1 2 0 3 Ejemplo Imagine una hoja de cálculo donde tenemos que poner en negrita la celda correspondiente a la "cantidad total" de una factura: C_LONGINT(Column;Row) `Coordenadas de la celda actual PV FIND ALL(Area;"Total Amount";1;0) `Celda que contiene la etiqueta "Cantidad total" PV GOTO NEXT CELL(Area;pv to the right) `Celda que contiene el valor PV GET CURRENT CELL(Area;$Column;$Row) `Recuperación de las coordenadas `Poner en negrita la celda seleccionada PV SET CELL PROPERTY(Area;$Column;$Row;pv style text bold;pv value on) PV VALIDATE CURRENT CELL PV VALIDATE CURRENT CELL ( area ) Parámetro area Tipo Entero largo Descripción Área 4D View Descripción El comando PV VALIDATE CURRENT CELL valida el contenido de la celda actual en modo entrada. La celda actual no cambia. Este comando sólo puede llamarse desde un método de retrollamada. Para mayor información sobre los métodos de retrollamada, consulte la sección PV Área, Introducción. Ejemplo Comencemos por instalar el método de retrollamada EventMethod, que se llamará en caso de doble clic: PV ON EVENT(Area;pv on double clicked;"EventMethod") Este método intercepta el doble clic del usuario: `Método EventMethod C_LONGINT($1) `Referencia del área 4D View C_LONGINT($2) `Evento C_LONGINT($3) `Código de la tecla de modificación C_LONGINT($4) `Número de la columna C_LONGINT($5) `Número de la línea C_LONGINT($6) `Código Ascii de la tecla C_BOOLEAN($0) `Valor a devolver $0:=False If($2=pv on double clicked) `En caso dónde "EventMethod" será llamado por otros eventos BEEP PV VALIDATE CURRENT CELL($1) `Validación de la entrada End if PV Columnas y líneas PV Columnas y líneas, Introducción PV DELETE CELLS PV DELETE COLUMNS PV DELETE ROWS PV GET COLUMN HEADER PV Get column width PV Get row header PV Get row height PV INSERT CELLS PV INSERT COLUMNS PV INSERT ROWS PV SET COLUMN HEADER PV SET COLUMNS WIDTH PV SET ROW HEADER PV SET ROWS HEIGHT PV Columnas y líneas, Introducción Los comandos de este tema permiten la gestión por programación de las columnas y líneas de una hoja de cálculo 4D View: Inserción Eliminación Lectura y asignación de tamaños (alto y ancho) Lectura y asignación de encabezados de columna y de líneas (títulos de líneas y columnas, así como opciones de clasificación para las columnas) Nombres de líneas y de columnas Puede asociar un nombre a las líneas y columnas de áreas 4D View, lo que facilita su uso dentro de un documento. Por defecto, cada línea y columna tiene un nombre. La asignación automática de nombres a las líneas y columnas se realiza de la siguiente manera: Líneas: el nombre corresponde exactamente al número real de la línea. Para los comandos que hacen referencia al número de línea, hay un acuerdo con el nombre. El número de líneas de un área se puede ajustar con el comando PV SET DOCUMENT PROPERTY. Columnas: las columnas se nombran con letras. Dependiendo de las propiedades del área, el número de columnas puede exceder las 26 letras del alfabeto. La codificación se realiza utilizando varias letras, empezando de nuevo desde la letra "A" (AA, AB, AC, etc., AZ, BA, BB, etc.) Para los comandos que llaman al número de columna, el acuerdo entre el número de columna/ nombre de la columna, por defecto es: Nombre de columna Número de columna A B C [...] Y Z AA AB AC etc. 1 2 3 25 26 27 28 29 PV DELETE CELLS PV DELETE CELLS ( area ; columna ; linea ; numero ; direccion ) Parámetro area columna linea numero direccion Tipo Entero largo Entero largo Entero largo Entero largo Entero largo Descripción Área 4D View Número de columna Número de línea Número de celdas a eliminar Dirección de supresión Descripción El comando PV DELETE CELLS borra la celda numero en area a partir de la celda definida por columna y linea. El parámetro direccion permite indicar si las celdas existentes deben moverse hacia arriba o a la izquierda. Utilice las constantes pv to the left o pv to the top del tema para definir este parámetro: Constante Tipo Valor pv to the left pv to the top Entero largo Entero largo 2 3 Nota: este comando no debe llamarse en un área dinámica. De lo contrario, se genera el errror 86. Ejemplo El siguiente ejemplo borra la celda ubicada en la intersección de la columna 2 y 2. Las otras celdas se moverán hacia arriba: PV DELETE CELLS(area;2;2;1;pv to the top) PV DELETE COLUMNS PV DELETE COLUMNS ( area ; inicio ; numero ) Parámetro area inicio numero Tipo Entero largo Entero largo Entero largo Descripción Área 4D View Número de la columna de inicio Número de columnas a eliminar Descripción El comando PV DELETE COLUMNS borra numero columna(s) en area a partir de la columna definida por inicio. Nota: este comando no debe llamarse en un área dinámica. De lo contrario, se genera el error 86. Ejemplo Borramos la primera columna (A) del array, para pasar el resto del área de una columna a la izquierda: PV DELETE COLUMNS(Area;1;1) PV DELETE ROWS PV DELETE ROWS ( area ; inicio ; numero ) Parámetro area inicio numero Tipo Entero largo Entero largo Entero largo Descripción Área 4D View Número de la línea de inicio Número de líneas a eliminar Descripción El comando PV DELETE ROWS borra numero línea(s) en area a partir de la línea definida por inicio. Nota: este comando no debe llamarse en un área dinámica. De lo contrario, se genera el error 86. Ejemplo Borramos la primera línea (1) de la tabla, para subir el resto del área de una línea hacia arriba: PV DELETE ROWS(Area;1;1) PV GET COLUMN HEADER PV GET COLUMN HEADER ( area ; columna ; titulo ) Parámetro area columna titulo Tipo Entero largo Entero largo Cadena Descripción Área 4D View Número de la columna Nombre de la columna Descripción El comando PV GET COLUMN HEADER obtiene el titulo actual de la columna especificada. Para mayor información sobre el nombre por defecto de líneas y columnas, consulte la sección PV Columnas y líneas, Introducción. Ejemplo Consulte el ejemplo del comando PV SET COLUMN HEADER. PV Get column width PV Get column width ( area ; columna ) -> resultado Parámetro area columna resultado Tipo Entero largo Entero largo Entero Descripción Área 4D View Número de columna Ancho de la columna (en píxeles) Descripción El comando PV Get column width devuelve el ancho (en píxeles) de la columna especificada. Ejemplo Consulte los ejemplos de los comandos PV SET COLUMNS WIDTH y PV ADD VERT SPLITTER. PV Get row header PV Get row header ( area ; linea ) -> Resultado Parámetro area linea Resultado Tipo Entero largo Entero largo Cadena Descripción Área 4D View Número de línea Nombre de la línea Descripción El comando PV Get row header devuelve el nombre actual de la linea especificada. Para mayor información sobre el nombre por defecto de las líneas y columnas, consulte la sección PV Columnas y líneas, Introducción. Ejemplo Consulte el ejemplo del comando PV SET COLUMN HEADER. PV Get row height PV Get row height ( area ; linea ) -> resultado Parámetro area linea resultado Tipo Entero largo Entero largo Entero Descripción Área 4D View Número de línea Altura de la línea Descripción El comando PV Get row height devuelve la altura en píxeles de la linea especificada. Ejemplo 1 Consulte el ejemplo del comando PV SET COLUMNS WIDTH. Ejemplo 2 Desde la versión 2004.5 de 4D, el comando Print form permite imprimir áreas 4D View. Generalmente, estas áreas se imprimen con una altura fija. El siguiente ejemplo muestra cómo utilizar los comandos de impresión de 4D y el comando PV Get row height para variar la altura de impresión del área 4D View en función de su contenido. Este es el método de formulario llamado por el comando Print form: If(Form event=On Printing Detail) GET OBJECT RECT(4DViewarea;$left;$top;$right;$bottom) $posmarker:=Get print marker(Form detail) $areaheight:=$bottom-$top $newheight:=4DViewSizeCalcul `4DViewSizeCalcul devuelve la altura del área 4D View dependiendo de su contenido `Este método se muestra a continuación $offset:=$newheight-$areaheight MOVE OBJECT(4DViewarea;0;0;0;$offset) SET PRINT MARKER(Form detail;$posmarker+$offset) End if El método 4DViewSizeCalcul es el siguiente: $area:=PV New offscreen area PV BLOB TO AREA($area;[Table 1]View_) PV EXECUTE COMMAND($area;pv cmd edit go to last cell) PV GET CURRENT CELL($area;$column;$row) $height:=0 For($i;1;$row) $rowHeight:=PV Get row height($area;$i) $height:=$height+$rowHeight End for PV DELETE OFFSCREEN AREA($area) $0:=Trunc($height*0.75;0) PV INSERT CELLS PV INSERT CELLS ( area ; columna ; linea ; numero ; direccion ) Parámetro area columna linea numero direccion Tipo Entero largo Entero largo Entero largo Entero largo Entero largo Descripción Área 4D View Número de la columna Número de línea Número de celdas a insertar Sentido de inserción Descripción El comando PV INSERT CELLS inserta numero celdas(s) en area a partir de la celda definida por columna y linea. El parámetro direccion permite definir si las celdas existentes deben desplazarse hacia abajo o a la derecha. Utilice las constantes pv to the right o pv to the bottom del tema PV Direcciones: Constante Tipo Valor pv to the bottom pv to the right Entero largo Entero largo 1 0 Nota: este comando no debe llamarse al interior de un área dinámica. De lo contrario, se genera el error 86. Ejemplo El siguiente ejemplo inserta dos celdas a partir de la columna 1 y de la línea 1. Las celdas existentes se moverán hacia abajo: PV INSERT CELLS(area;1;1;2;pv to the bottom) PV INSERT COLUMNS PV INSERT COLUMNS ( area ; inicio ; numero ) Parámetro area inicio numero Tipo Entero largo Entero largo Entero largo Descripción Área 4D View Número de la columna antes de la cual se insertarán las nuevas columnas Número de columnas a insertar Descripción El comando PV INSERT COLUMNS inserta numero columna(s) en area a partir de la columna definida por inicio. La columna(s) se insertará antes de la columna definida por inicio. Nota: este comando no debe llamarse dentro de un área dinámica. De lo contrario, se genera el error 86. Ejemplo Insertamos una columna antes de la primera columna (A) de la tabla, pará mover el contenido del área de una columna a la derecha: PV INSERT COLUMNS(Area;1;1) PV INSERT ROWS PV INSERT ROWS ( area ; inicio ; numero ) Parámetro area inicio numero Tipo Entero largo Entero largo Entero largo Descripción Área 4D View Número de la línea antes de la cual se insertarán las líneas Número de líneas a insertar Descripción El comando PV INSERT ROWS inserta numero línea(s) en area a partir de la línea definida por inicio. Las líneas se insertan delante de la línea definida por inicio. Nota: este comando no debe llamarse dentro de un área dinámica. De lo contrario, se genera el error 86. Ejemplo Insertamos una línea antes de de la primera línea (1) de la tabla, para mover el contenido del área de una línea hacia abajo: PV INSERT ROWS(Area;1;1) PV SET COLUMN HEADER PV SET COLUMN HEADER ( area ; columna ; titulo ) Parámetro area columna titulo Tipo Entero largo Entero largo Cadena Descripción Área 4D View Número de columna Nombre de la columna Descripción El comando PV SET COLUMN HEADER permite definir el titulo de la columna. Para mayor información sobre los nombres por defecto de las líneas y columnas, consulte la sección PV Columnas y líneas, Introducción. Ejemplo En este ejemplo, asignaremos un nuevo nombre a las primeras 10 columnas y líneas del área. C_INTEGER($Index) `Índice de bucle C_STRING(80;$Title) `Nombre de columna/línea For($Index;1;10) PV GET COLUMN HEADER(Area;$Index;$Title) `Recuperación del encabezado de la columna $Index $Title:="Column"+$Title" `Modificación del título PV SET COLUMN HEADER(Area;$Index;"C"+$Title) `Asignar nuevo nombre `Leer, modificar y asignar nuevo nombre a la línea $Index PV SET ROW HEADER(Area;$Index;"L"+PV Get row header(Area;$Index)) End for PV SET COLUMNS WIDTH PV SET COLUMNS WIDTH ( area ; primera ; ultima ; ancho ) Parámetro area primera ultima ancho Tipo Entero largo Entero largo Entero largo Entero Descripción Área 4D View Número de la primera columna Número de la última columna Ancho de la columna (en píxeles) Descripción El comando PV SET COLUMNS WIDTH permite modificar el ancho (en píxeles) de las columnas de area ubicadas entre las columnas primera y ultima. Nota: si pasa 0 (cero) en los parámetros primero y ultimo, el ancho definido se aplicará a todas las columnas del area y se convertirá en el ancho por defecto de las columnas en area. El ancho por defecto se aplica sobre todo cuando el usuario hace doble clic en el separador derecho de una columna. Ejemplo Este ejemplo presenta una animación de redimensionamiento de líneas y columnas: C_LONGINT($Column;$Row) `Índice del bucle principal C_LONGINT($Width;$Height) `Índice del bucle de agrandamiento de la columna y de la línea C_LONGINT($StartWidth) `Ancho original de la columna Xth C_LONGINT($RequestWidth) `Ancho solicitado de la columna Xth `Inicializamos $StartWidth:=5 `Fijamos el ancho original $RequestWidth:=$StartWidth+5 `10 puntos de ancho para la primera columna For($Column;1;5) `Tratamos las primeras 5 columnas $Row:=$Column `Sólo para las primeras cinco líneas For($Width;$StartWidth;$RequestWidth;2) `Para la columna "$Column"... $Height:=$Width-5 `Actualización de la altura PV SET ROWS HEIGHT(area;$Row;$Row;PV Get row height(area;$Row)+$Height) `1 línea PV SET COLUMNS WIDTH(area;$Column;$Column;PV Get column width(area;$Row)+$Width) `1 columna PV REDRAW(area) `Refrescar End for $StartWidth:=$RequestWidth `No comenzar desde el principio $RequestWidth:=$RequestWidth+5 `Aumento para la próxima columna End for PV SET ROW HEADER PV SET ROW HEADER ( area ; linea ; titulo ) Parámetro area linea titulo Tipo Entero largo Entero largo Cadena Descripción Área 4D View Número de línea Nombre de la línea Descripción El comando PV SET ROW HEADER permite definir el titulo de la linea especificada. Para mayor información sobre el título por defecto de las líneas y columnas, consulte la sección PV Columnas y líneas, Introducción. Ejemplo Consulte el ejemplo del comando PV SET COLUMN HEADER. PV SET ROWS HEIGHT PV SET ROWS HEIGHT ( area ; primera ; ultima ; altura ) Parámetro area primera ultima altura Tipo Entero largo Entero largo Entero largo Entero Descripción Área 4D View Número de la primera línea Número de la última línea Altura de la línea (en píxeles) Descripción El comando PV SET ROWS HEIGHT permite modificar la altura (en píxeles) de las líneas de area ubicada entre las líneas primera y última. Nota: si pasa 0 (cero) en los parámetros primera y ultima, la altura definida se aplicará a todas las líneas de area y se convertirá en la nueva altura estándar de las líneas de area. La altura estándar se aplica cuando el usuario hace doble clic en el separador inferior de una línea. Ejemplo Consulte el ejemplo del comando PV SET COLUMNS WIDTH. PV Documento PV Documento, Introducción PV EXPORT PV GET DOCUMENT INFO PV Get document property PV OPEN DOCUMENT PV SAVE DOCUMENT PV SET DOCUMENT INFO PV SET DOCUMENT PROPERTY PV Documento, Introducción Los comandos de este tema permiten manipular los documentos legibles por 4D View. Estos comandos permiten guardar o abrir documentos desde el disco y también definir y obtener por programación la información relacionada: título, autor, etc., así como el número de líneas y columnas por defecto. PV EXPORT PV EXPORT ( area ; doc ; remplazar ; formato ) Parámetro area doc remplazar formato Tipo Entero largo Cadena Entero Entero largo Descripción Área 4D View Nombre del documento o cadena vacía 0 = No remplazo; 1 = Remplazo Formato del documento Descripción El comando PV EXPORT exporta el area 4D View, o en el área de exportación, como documento del disco. En documento, pase el nombre y la ruta de acceso completa del documento a exportar. Si pasa una cadena vacía en este parámetro, aparece una caja de diálogo de exportación de archivos y el usuario puede especificar el nombre y la ubicación del documento. En este caso, si el usuario hace clic en el botón Cancelar, el documento no se exporta. Si un documento con el mismo nombre existe en el lugar indicado, PV EXPORT sobrescribe o no el archivo de acuerdo con el valor del parámetro remplazar. En este caso, cuando remplazar es 0, no hay error. Error 26: "El documento ya existe". Si el nombre fue definido por el usuario (cadena vacía en el documento), es el sistema operativo que muestra la confirmación tradicional "Este documento ya existe...", cualquiera que sea el valor del parámetro remplazar. Utilice las constantes del tema PV Formato documento para definir el parámetro formato, permitiendo especificar el formato de registro del documento: Constante Tipo Valor pv html Entero largo 3 pv sylk Entero largo 2 pv tab tab return Entero largo 1 Nota: la constante de formato de documento pv view no se puede aplicar a este comando. A diferencia del comando PV SAVE DOCUMENT (que guarda la totalidad de un área), el comando PV EXPORT permite registrar sólo el área de exportación del documento. El área de exportación puede ser definida manualmente por el usuario (Archivo/Área de exportación>Definir), o por programación con la instrucción PV EXECUTE(area; pv cmd export area set). El área de exportación se compone de las celdas seleccionadas en el momento de la definición del área. Por defecto, el área de exportación se compone de la totalidad del documento. Ejemplo El siguiente ejemplo permite exportar al formato HTML el conjunto de las celdas seleccionadas en un área. Si ninguna celda está seleccionada al momento de la exportación, se define un rango arbitrario: ARRAY ARRAY ARRAY ARRAY LONGINT($ALleft;0) `Números de columna de las celdas de la izquierda LONGINT($ALtop;0) `Números de línea de las celdas de arriba LONGINT($ALright;0) `Números de columna de las celdas de la derecha LONGINT($ALbottom;0) `Números de línea de las celdas de abajo PV GET SELECTED RANGES LIST(area;$ALleft;$ALtop;$ALright;$ALbottom) If(Size of array($ALleft)=0) `Ninguna celda está seleccionada PV SELECT RANGE(area;2;4;5;7;pv selection set) `Rango arbitrario Else PV SELECT RANGES LIST(area;$ALleft;$ALtop;$ALright;$ALbottom;pv selection set) End if `Reducimos el área de exportación al rango seleccionado PV EXECUTE COMMAND(area;pv cmd export area set) PV EXPORT(area;"";1;pv html) `To initialize export area for the whole document PV EXECUTE COMMAND(area;pv cmd export area clear) PV GET DOCUMENT INFO PV GET DOCUMENT INFO ( area ; titulo ; tema ; autor ; empresa ; comentario ; fechaCreacion ; horaCreacion ; fechaModif ; horaModif ) Parámetro area titulo tema autor empresa comentario fechaCreacion horaCreacion fechaModif horaModif Tipo Entero largo Cadena Cadena Cadena Cadena Texto Fecha Hora Fecha Hora Descripción Área 4D View Título del documento Tema del documento Autor del documento Nombre de la empresa Comentario Fecha de creación Hora de creación Última fecha de modificación Hora de la última modificación Descripción El comando PV GET DOCUMENT INFO recupera en los parámetros: titulo, tema, autor, empresa y comentario, la información del documento mostrada en el area 4D View. Esta información podría haber sido introducida por el usuario o por programación utilizando el comando PV SET DOCUMENTO. El comando también devuelve en fechaCreacion, horaCreacion, fechaModifi y horaModif la información sobre la la fecha y hora de creación/modificación del documento, y es actualizada automáticamente por el sistema operativo cuando se guarda el documento. Ejemplo Consulte el ejemplo del comando PV SET DOCUMENT INFO. PV Get document property PV Get document property ( area ; opción ) -> Resultado Parámetro area opción Resultado Tipo Entero largo Entero largo Entero largo Descripción Área 4D View Número de la propiedad Valor de la propiedad Descripción El comando PV Get document property devuelve el valor actual de la propiedad designada por el parámetro opcion para el documento en area. Utilice las constantes del tema para definir el parámetro opcion: Constante Tipo Valor pv column count pv document modified pv no external call pv picture count pv row count Entero largo Entero largo Entero largo Entero largo Entero largo 0 4 3 2 1 Ejemplo Creamos un método que indica el número de columnas, líneas e imágenes del área 4D View pasada en el primer parámetro. C_LONGINT($ColNum) `Número de columnas C_LONGINT($RowNum) `Número de líneas C_LONGINT($PicNum) `Número de imágenes $ColNum:=PV Get document property(Area;pv column coun) $RowNum:=PV Get document property(Area;pv row coun) $PicNum:=PV Get document property(Area;pv picture count) ALERT("El área 4D View contiene "+String($ColNum)+" columna"+("s"*Num($ColNum>1)) +" y "+String($RowNum)+" línea"+("s"*Num($RowNum>1)) +". Contiene "+String($PicNum)+" imagen"+("s"*Num($PicNum>1))+".") PV OPEN DOCUMENT PV OPEN DOCUMENT ( area ; doc ; plantilla ) Parámetro area doc plantilla Tipo Entero largo Cadena Entero Descripción Área 4D View Nombre del documento o cadena vacía 0 = Documento; 1 = Plantilla Descripción El comando PV OPEN DOCUMENT abre en area el nomArchivo solicitado. Pase en nomArchivo la ruta de acceso completa del documento a abrir. Si pasa una cadena vacía ("") en este parámetro, aparece una caja de diálogo estándar de apertura de archivos y el usuario puede seleccionar el documento. Si el usuario hace clic en Cancelar en este caso, ningún documento se abrirá. El parámetro plantilla permite establecer si el documento debe abrirse como un documento estándar (plantilla = 0) o como una plantilla (plantilla = 1). Cuando se abre un documento como una plantilla, realmente se crea un nuevo documento "Sin título", que contiene una copia del documento solicitado. El documento original permanece intacto. Si el valor de plantilla es 1, el documento se abre como si se tratara de una plantilla, independientemente de su estado actual (documento o plantilla), definido por PV SAVE DOCUMENT. Nota: el mecanismo de "plantillas de documento" es administrado por el sistema operativo. Es diferente del que se utiliza para las "plantillas" 4D View, adjunto a las áreas incluidas (accesibles mediante el comando de menú Guardar como plantilla). Para más información sobre las plantillas de áreas, consulte el manual del usuario de 4D View (PDF). Ejemplo Apertura de una caja de diálogo estándar de apertura de archivo, aplicada a 4D View: PV OPEN DOCUMENT(Area;"";0) `Elección de un documento Variables y conjuntos del sistema La variable sistema Document contiene el nombre o la ruta de acceso y el nombre del archivo disco abierto por última vez (ver el manual Lenguaje de 4D, sección Variables de sistema). La variable sistema OK utiliza 1 como su valor si el documento se abrió correctamente. PV SAVE DOCUMENT PV SAVE DOCUMENT ( area ; doc ; plantilla ; remplazar ; formato ) Parámetro area doc plantilla remplazar formato Tipo Entero largo Cadena Entero Entero Entero largo Descripción Área 4D View Nombre del documento o cadena vacía 0 = Documento; 1 = Plantilla 0 = No remplazo; 1 = Remplazo Formato del documento Descripción El comando PV SAVE DOCUMENT guarda el area 4D View como un documento en disco. Pase en documento el nombre y la ruta de acceso completa del documento a guardar. Si pasa una cadena vacía en este parámetro, aparecerá una caja de diálogo estándar de guardar archivos y el usuario podrá seleccionar el nombre y la ruta del documento. Si el usuario hace clic en el botón Cancelar, el documento no se guarda. El parámetro plantilla permite establecer si el documento debe ser guardado como un documento estándar (plantilla = 0) o como una plantilla (plantilla = 1). Para más información sobre las plantillas, consulte la descripción del comando PV OPEN DOCUMENT. Si existe un documento con el mismo nombre en el área indicada, PV SAVE DOCUMENT puede sobrescribir el archivo existente en función del valor del parámetro remplazar. En este caso, si remplazar vale 0, se devuelve el error # 26: "Este documento ya existe." Si el nombre fue creado por el usuario (cadena vacía en documento), el sistema operativo mostrará la confirmación tradicional "Este documento ya existe", independientemente del valor de remplazar. Si el documento de destino es utilizado por otra área 4D View, PV SAVE DOCUMENT devuelve un error si se trata de una plantilla o no. Utilice las constantes del tema PV Formato documento para definir el parámetro formato, que permite configurar el formato en que desea guardar el documento: Constante Tipo Valor pv html pv sylk pv tab tab return pv view Entero largo Entero largo Entero largo Entero largo 3 2 1 0 Ejemplo Después de abrir un documento externo con el comando PV OPEN DOCUMENT, instalamos un método de retrollamada detectando el cambio de celda activa. C_BOOLEAN(FlagModifiedArea) PV ON EVENT(Area;pv on active cell changed;"EventMethod") El código del método proyecto EventMethod es el siguiente: C_LONGINT($1) C_LONGINT($2) C_LONGINT($3) C_LONGINT($4) C_LONGINT($5) C_LONGINT($6) C_BOOLEAN($0) `Referencia del área 4D View `Tipo de evento `Código de la tecla de modificación `Número de la columna `Número de la línea `Código Ascii de la tecla `Valor a devolver $0:=False FlagModifiedArea:=True `Área modificada Si el documento se modificó, el usuario luego puede guardar el documento modificado y ponerle el nombre que desee: If(FlagModifiedArea) `¿Documento modificado? CONFIRM("¿Quiere guardar este documento como una plantilla?";"Template";"Document") `Esta será una plantilla si el diálogo se confirma OK=1) PV SAVE DOCUMENT(Area;"";OK;1;pv view) End if Variables y conjuntos del sistema La variable sistema OK toma el valor 1 si el documento se ha guardado correctamente. PV SET DOCUMENT INFO PV SET DOCUMENT INFO ( area ; titulo ; tema ; autor ; empresa ; comentario ) Parámetro area titulo tema autor empresa comentario Tipo Entero largo Cadena Cadena Cadena Cadena Texto Descripción Área 4D View Título del documento Asunto del documento Autor del documento Nombre de la empresa Comentario Descripción El comando PV SET DOCUMENT INFO asocia al documento en area la información pasada en los parámetros titulo, tema, autor, empresa y comentario. Esta información corresponde a la información presentada en la caja de diálogo "Información" del documento (menú Herramientas/Información documento...). Ejemplo En casos como un área 4D View incluida en un formulario, la información relativa a esta área se actualiza cada vez que un usuario modifica o crea un registro utilizando este formulario. C_STRING(255;$Title) `Título del documento C_STRING(255;$Subject) `Asunto del documento C_STRING(255;$Author) `Autor del documento C_STRING(255;$Company) `Nombre de la empresa C_TEXT($Comment) `Comentario C_DATE($CreationDate) `Fecha de creación del documento C_TIME($CreationTime) `Hora de creación del documento C_DATE($ModificationDate) `Fecha de la última modificación al documento C_TIME($ModificationTime) `Hora de la última modificación al documento `Recuperación de la información relativa al documento PV GET DOCUMENT INFO($1;$Title;$Subject;$Author;$Company;$Comment;$CreationDate; $CreationTime;$ModificationDate;$ModificationTime) $Title:=Request("¿Cuál es el título del documento?";$Title) $Subject:=Request("¿Cuál es el tema del documento?";$Subject) $Author:=Request("¿Cuál es su nombre?";$Author) $Company:=Request("¿Cuál es su empresa?";$Company) $Comment:=Request("¿Comentarios?";$Comment) PV SET DOCUMENT INFO(Area;$Title;$Subject;$Author;$Company;$Comment) `Actualizar la información PV SET DOCUMENT PROPERTY PV SET DOCUMENT PROPERTY ( area ; opción ; valor ) Parámetro area opción valor Tipo Entero largo Entero largo Entero largo Descripción Área 4D View Número de la propiedad Valor de la propiedad Descripción El comando PV SET DOCUMENT PROPERTY fija el valor de la propiedad designada por opcion para el documento 4D View en area. Utilice las constantes del tema PV Propiedades documento para definir el parámetro opcion: Constante Tipo Valor pv column count pv document modified pv no external call pv row count Entero largo Entero largo Entero largo Entero largo 0 4 3 1 Ejemplo 1 Este método genérico permite definir el número de columnas y/o líneas para una nueva area 4D View (durante la carga de un formulario, por ejemplo). PV SET DOCUMENT PROPERTY(Area;pv column count;10) `10 columnas PV SET DOCUMENT PROPERTY(Area;pv row count;20) `20 líneas Ejemplo 2 Este método, asociado por ejemplo a un botón de cierre de un documento 4D View, permite no mostrar la caja de diálogo de alerta que indica que el área se ha modificado: If(PV Get document property(Area;pv document modified)#0) PV SET DOCUMENT PROPERTY(Area;pv document modified;0) `0 = no modificada, 1 = modificada End if PV Estilo PV Estilo, Introducción PV Add font PV Add format PV Add style PV GET FONT LIST PV GET FORMAT LIST PV GET STYLE LIST PV Get style property PV REMOVE FONT PV REMOVE FORMAT PV REMOVE STYLE PV SET FORMAT PV SET STYLE NAME PV SET STYLE PROPERTY PV Estilo, Introducción Los comandos y funciones de este tema permiten controlar los estilos asociados con un área 4D View. Ellos dan acceso a las hojas de estilo existentes y permiten la modificación, por programación, cada una de las propiedades de formato: formatos de visualización, fuentes disponibles, colores y atributos. Por último, estos comandos permiten controlar la aplicación y actualización de las hojas de estilo en sus documentos. Hojas de estilo En 4D View, las hojas de estilo son accesibles utilizando su número de referencia, enteros largos. Por defecto, hay tres tipos permanentes de hojas de estilo: Encabezados de líneas/columnas Celdas Encabezados y pies de página Puede crear, modificar o borrar sus propias hojas de estilos, asociándolas a un área específica. Se guardan con el área 4D View, ya sea en un documento externo o dentro de los mismos datos de 4D. Fuentes de caracteres Por defecto, todas las fuentes del sistema están disponibles en un área 4D View. Sin embargo, algunos comandos permiten la gestión de fuentes que pueden o no ser utilizadas en un área 4D View. Eliminar una fuente en 4D View significa que no se puede utilizar dentro del área correspondiente. Ya no será posible llamar la fuente desde el área, sin embargo, estará disponible para otras áreas 4D View, así como en 4D y en otras aplicaciones. Formatos Al igual que en 4D, los formatos se aplican durante la visualización de la información. Para más información sobre cómo definir los formatos de visualización, consulte el Manual Diseño de 4D. PV Add font PV Add font ( area ; nombre ) -> Resultado Parámetro area nombre Resultado Tipo Entero largo Cadena Entero largo Descripción Área 4D View Nombre de la fuente Número de la fuente Descripción El comando PV Add font asocia la fuente nombre al area y devuelve su identificación única. Si nombre ya existe, el comando PV Add font devuelve su identificador (el número también se puede obtener utilizando el comando PV GET FONT LIST). Para mayor información sobre el funcionamiento de las fuentes asociadas a un área 4D View, consulte la sección PV Estilo, Introducción. Ejemplo Este método funciona en conmutación (switch): elimina una fuente del área 4D View o, por el contrario, la asocia si fue eliminada anteriormente. C_STRING(255;$NomFuente) `Nombre de fuente a añadir/eliminar de Area ARRAY LONGINT($FontNumArray;0) `Array de los números de fuentes ARRAY STRING(255;$FontNameArray;0) `Array de los nombres de fuentes C_INTEGER($Posicion) `Posición de la fuente en los arrays de números y de nombres $FontName:="Arial" PV GET FONT LIST(Area;$FontNumArray;$FontNameArray) `Lista de las fuentes disponibles $Position:=Find in array($FontNameArray;$NomFuente) If($Posicion=-1) `¿Fuente $FontName no disponible para el área? $Position:=Size of array($FontNameArray)+1 `La añadiremos INSERT IN ARRAY($FontNameArray;$Posicion) `Redimencionamiento... INSERT IN ARRAY($FontNumArray;$Posicion) `...arrays $FontNameArray{$Posicion}:=$NomFuente `Asignación del nombre de la nueva fuente $FontNumArray{$Posicion}:=PV Add font(Area;$NomFuente) `Asignación del número de la fuente Else `Fuente $FontName presente en el área PV REMOVE FONT(Area;$FontNumArray{$Posicion}) `La eliminamos End if PV Add format PV Add format ( area ; cadena ) -> Resultado Parámetro area cadena Resultado Tipo Entero largo Cadena Entero largo Descripción Área 4D View Cadena del formato Número del formato Descripción El comando PV Add format asocia el formato cadena al area y devuelve su identificador único. Si cadena ya existe, el comando PV Add format devuelve su identificación (este número también se puede obtener utilizando el comando PV GET FORMAT LIST). Ejemplo Queremos borrar el formato monetario americano disponible para el area activa, pero debemos asegurarnos de la presencia del formato monetario europeo (Euros). C_STRING(255;$OldFormat) `Cadena del formato a eliminar de Area C_STRING(255;$NewFormat) `Cadena del formato a añadir a Area ARRAY LONGINT($FormatNumArray;0) `Array de los números de formatos ARRAY STRING(255;$FormatStringArray;0) `Array de las cadenas de formatos C_INTEGER($Position) `Posicion del formato a eliminar en los arrays de números y de nombres $OldFormat:="$###,##0.00" $NewFormat:="### ##0,00 EUR" PV GET FORMAT LIST(Area;$FormatNumArray;$FormatStringArray) `Lista de los formatos disponibles $Position:=Find in array($FormatStringArray;$OldFormat) If($Position#-1) `¿Formato a eliminar presente en area? PV REMOVE FORMAT(Area;$FormatNumArray{$Position}) `Eliminarlo End if `¿Formato a añadir no disponible en area? If(Find in array($FormatStringArray;$NewFormat)=-1) $Position:=Size of array($FormatStringArray)+1 `Lo añadimos INSERT IN ARRAY($FormatStringArray;$Position) `Redimensionamiento... INSERT IN ARRAY($FormatNumArray;$Position) `...arrays $FormatStringArray{$Position}:=$NewFormat `Asignación del nuevo formato $FormatNumArray{$Position}:=PV Add format(Area;$NewFormat) `Asignación del número End if PV Add style PV Add style ( area ; nombre ) -> Resultado Parámetro area nombre Resultado Tipo Entero largo Cadena Entero largo Descripción Área 4D View Nombre de la hoja de estilo Número de la hoja de estilo Descripción El comando PV Add style añade una hoja de estilo a area utilizando el parámetro nombre y devuelve su identificación única. Si el nombre de la hoja de estilo ya existe, el comando PV ADD STYLE devuelve su identificación (este número también se puede obtener utilizando el comando PV GET STYLE LIST). Ejemplo Consulte el ejemplo del comando PV SET STYLE PROPERTY. Gestión de errores Si ya existe una hoja de estilo con el mismo nombre, un error es devuelto por area. PV GET FONT LIST PV GET FONT LIST ( area ; fuentes ; nombres ) Parámetro area fuentes nombres Tipo Entero largo Array entero largo Array cadena Descripción Área 4D View Arrays de números de fuentes Arrays de los nombres de fuentes Descripción El comando PV GET FONT LIST recupera en los arrays fuentes y nombres, el número de identificación y el nombre de cada fuente en area. Ejemplo Consulte el ejemplo del comando PV Add font. PV GET FORMAT LIST PV GET FORMAT LIST ( area ; formatos ; cadenas ) Parámetro area formatos cadenas Tipo Entero largo Array entero largo Array cadena Descripción Área 4D View Array de números de formatos Array de cadenas de formatos Descripción El comando PV GET FORMAT LIST recupera en los arrays formatos y cadenas, los IDs y la cadenas para cada formato presente en area. Ejemplo Consulte el ejemplo del comando PV Add format. PV GET STYLE LIST PV GET STYLE LIST ( area ; hojasEstilo ; nombres ) Parámetro area hojasEstilo nombres Tipo Entero largo Array entero largo Array cadena Descripción Área 4D View Números de las hojas de estilo Nombres de las hojas de estilo Descripción El comando PV GET STYLE LIST recupera en hojaEstilos y nombres, el número de identificación y el nombre de cada hoja de estilo presente en area. Ejemplo Consulte los ejemplos de los comandos PV REMOVE STYLE, PV SET STYLE NAME y PV SET STYLE PROPERTY. PV Get style property PV Get style property ( area ; estilo ; propiedad ) -> Resultado Parámetro area estilo propiedad Resultado Tipo Entero largo Entero largo Entero largo Entero largo Descripción Área 4D View Número de la hoja de estilo Número de la propiedad Valor de la propiedad Descripción El comando PV Get style property devuelve el valor actual de la hoja de estilo especificada por estilo. Utilice las constantes del tema PV Propiedades estilo para definir el parámetro propiedad. Utilice las constantes del tema PV Valores estilo para definir el parámetro valor. Ejemplo Consulte el ejemplo del comando PV SET STYLE PROPERTY. PV REMOVE FONT PV REMOVE FONT ( area ; fuente ) Parámetro area fuente Tipo Entero largo Entero largo Descripción Área 4D View Número de la fuente Descripción El comando PV REMOVE FONT suprime de area la fuente número fuente. La eliminación de una fuente con este comando significa que ya no estará disponible en el área 4D View concerniente. Por supuesto, la fuente no se elimina físicamente del sistema. Ejemplo Consulte el ejemplo del comando PV Add font. PV REMOVE FORMAT PV REMOVE FORMAT ( area ; formato ) Parámetro area formato Tipo Entero largo Entero largo Descripción Área 4D View Número del formato Descripción El comando PV REMOVE FORMAT borra el formato del area. Sólo los formatos creados utilizando el comando PV Add format pueden eliminarse. Los formatos nativos de 4D View no pueden eliminarse. Ejemplo Consulte el ejemplo del comando PV Add format. PV REMOVE STYLE PV REMOVE STYLE ( area ; estilo ) Parámetro area estilo Tipo Entero largo Entero largo Descripción Área 4D View Número de la hoja de estilo Descripción El comando PV REMOVE STYLE suprime estilo de area. Nota: sólo los estilos añadidos en el área pueden suprimirse. Ejemplo Este método permite borrar un estilo no deseado. C_STRING(255;$StyleName) `Nombre del estilo prohibido para Area ARRAY LONGINT($StyleNumArray;0) `Array de números de estilos ARRAY STRING(255;$StyleNameArray;0) `Array de nombres de estilos C_INTEGER($Position) `Posición del estilo ilegal en los arrays de números y nombres $StyleName:="subparagraph" `No queremos el estilo "subparagraph" PV GET STYLE LIST(Area;$StyleNumArray;$StyleNameArray) `Lista de estilos disponibles $Position:=Find in array($StyleNameArray;$StyleName) `Búsqueda del estilo ilegal If($Position#-1) `¿Esta el estilo ilegal presente en Area? PV REMOVE STYLE(Area;$StyleNumArray{$Position}) `Lo suprimimos End if PV SET FORMAT PV SET FORMAT ( area ; formato ; cadena ) Parámetro area formato cadena Tipo Entero largo Entero largo Cadena Descripción Área 4D View Número del formato Cadena del formato Descripción El comando PV SET FORMAT cambia la cadena de formato. Ejemplo Esta es una versión simplificada del ejemplo del comando PV Add format: el formato, en este caso, se remplaza abruptamente. El nuevo formato no se crea si el anterior no está presente. ARRAY LONGINT($ArrayFormatNum;0) `Array de números de formato(s) ARRAY STRING(255;$ArrayFormatStrings;0) `Array de cadenas de formato(s) C_INTEGER($Position) `Posición del formato a modificar en los arrays de números y de nombres `Lista de formatos disponibles PV GET FORMAT LIST(Area;$ArrayFormatNum;$ArrayFormatStrings) $Position:=Find in array($ArrayFormatStrings;"$###,##0.00") If($Position#-1) `¿Formato disponible pare el área? `Modificación del formato PV SET FORMAT(Area;$ArrayFormatNum{$Position};"### ##0,00 EUR") End if PV SET STYLE NAME PV SET STYLE NAME ( area ; estilo ; nombre ) Parámetro area estilo nombre Tipo Entero largo Entero largo Cadena Descripción Área 4D View Número de la hoja de estilo Nombre de la hoja de estilo Descripción El comando PV SET STYLE NAME renombra la hoja de estilo estilo con la cadena de caracteres pasada en el parámetro nom. Ejemplo Este método le permite renombrar un estilo. C_STRING(255;$StyleName) `Nombre del estilo a renombrar en Area C_STRING(255;$NewName) `Nuevo nombre a asignar al estilo para el área Area ARRAY LONGINT($StyleNumArray;0) `Array de números de estilos ARRAY STRING(255;$StyleNameArray;0) `Array de nombres de estilos C_INTEGER($Position) `Posición del estilo a renombrar en los arrays de números y nombres $StyleName:="subparagraph" `Queremos renombrar el estilo "subparagraph"... $NewName:="Paragraph" `... a "Paragraph" PV GET STYLE LIST(Area;$StyleNumArray;$StyleNameArray) `Lista de estilos disponibles $Position:=Find in array($StyleNameArray;$StyleName) `Búsqueda del estilo a renombrar If($Position#-1) `¿El estilo a renombrar está en Area? PV SET STYLE NAME(Area;$StyleNumArray{$Position};$NewName) `Renombrar Else ALERT("El estilo '"+$StyleName+"' no está en el área.") End if Gestión de errores Si ya existe una hoja de estilo con el mismo nombre en el área, 4D View devuelve un error. PV SET STYLE PROPERTY PV SET STYLE PROPERTY ( area ; estilo ; propiedad ; valor ) Parámetro area estilo propiedad valor Tipo Entero largo Entero largo Entero largo Entero largo Descripción Área 4D View Número de la hoja de estilo Número de la propiedad Valor de la propiedad Descripción El comando PV SET STYLE PROPERTY fija el valor de propiedad para la hoja de estilo cuyo número es estilo. Utilice las constantes del tema PV Propiedades estilo para definir el parámetro propiedad y las constantes del tema PV Valores estilo para definir el parámetro valor. La elección de la constante a asignar al parámetro valor depende de la propiedad elegida: Constante Tipo Valor Comentario Permite activar la función de ajustar cuando el contenido de la celda excede el ancho de la misma. Valores asociados: constantes del tema PV Valores estilo. pv style automatic word wrap Entero largo 33 pv style based on Entero largo 4 Entero largo 11 Entero largo 12 Entero largo 17 Entero largo 18 Entero largo 13 Entero largo 14 Entero largo 15 Entero largo 16 Entero largo 6 La celda utiliza el formato de visualización de texto cuyo número se pasa en el parámetro valor. Valores asociados: números de formatos de visualización. Entero largo 8 La celda utiliza el formato de visualización booleano cuyo número se pasa en el parámetro valor. Valores asociados: números de formatos de visualización. pv style color back even pv style color back odd pv style color minus even pv style color minus odd pv style color text even pv style color text odd pv style color zero even pv style color zero odd pv style format alpha pv style format bool pv value on: el contenido de la celda se mueve automáticamente a la siguiente línea si es necesario. pv value off: el contenido de la celda pasa a las celdas adyacentes si es necesario. La celda utiliza como modelo la hoja de estilo cuyo número se pasa en el parámetro valor. Valores asociados: números de hojas de estilo o constantes del tema PV Estilo valores especiales. Permite fijar el color de fondo de la celda si la celda está ubicada en una línea par. Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color) o pv value none (tema PV Valores estilo) para no asociar ningún color. Permite fijar el color de fondo de la celda si está ubicada en una línea impar. Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color) o pv value none (tema PV Valores estilo) para no asociar ningún color. Permite fijar el color del texto contenido en la celda si la celda está ubicada en una línea par y su valor es negativo. Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color). Permite fijar el color del texto contenido en la celda si la celda está ubicada en una línea impar y su valor es negativo. Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color). Permite fijar el color del texto contenido en la celda si la celda está ubicada en una línea par. Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color). Permite fijar el color del texto contenido en la celda si la celda está ubicada en una línea impar. Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color). Permite definir el color del texto contenido en la celda si la celda está ubicada en una línea par y su valor es 0 (cero). Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color). Permite definir el color del texto contenido en la celda si la celda está ubicada en una línea impar y su valor es 0 (cero). Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color). La celda utiliza el formato de visualización fecha y hora cuyo número se pasa en el parámetro valor. Valores asociados: constantes del tema PV Formato fecha hora. pv style format date time Entero largo 9 pv Short: 02/21/02 pv Abbreviated: jue 21 feb 2002 pv Long: jueves 21 febrero 2002 pv Short2: 02/21/2002 pv Month Day Year: 21 febrero, 2002 pv Abbr Month Day Year: 21 feb, 2002 pv Day Name: jueves pv Day Number: 21 pv Month Name: febrero pv Month Number: 2 pv Year Number: 2002 pv Long H MM AM PM: jueves 21 febrero 2002 a las 12:30 PM pv Abbreviated H MM AM PM: jue 21 feb 2002 a las 12:30 PM pv Short HH MM SS: 02/21/02 a las 12:30:00 pv Month Day Year H MM AM PM: 21 febrero, 2002 a las12:30 PM pv Short2 Hour Min Sec: 21/02/2002 y 12 horas 30 minutos 0 segundos pv HH MM SS: 12:30:00 pv HH MM: 12:30 pv Hour Min Sec: 12 horas 30 minutos 0 segundos pv Hour Min: 12 horas 30 minutos pv HH MM AM PM: 12:30 PM Nota: dependiendo de la configuración actual de su sistema, el resultado obtenido puede ser diferente. Permite forzar la visualización de la celda en texto bruto, es decir sin el formato aplicado por 4D View en función de su contenido (número, fecha, texto, etc.). Valores asociados: constantes del tema PV Valores estilo. pv style format forced text Entero largo pv style format num Entero largo pv style format picture Entero largo pv style hidden Entero largo 32 7 10 pv value on: el contenido de la celda se muestra sin formato. pv value off (por defecto): la celda se muestra con formato automático en función de su contenido. La celda utiliza el formato de visualización numérico cuyo número se pasa en el parámetro valor. Valores asociados: números de formatos de visualización. Nota: los números de los formatos de visualización por defecto corresponden a su posición en el menú de selección del formato (caja de diálogo Formatos de celdas). Permite definir el formato de visualización de la imagen asociada a la celda. Valores asociados: constantes del tema PV Visualización imagen. pv mapping trunc non-centered pv mapping truncated centered pv mapping replicated pv mapping scaled to fit prop pv mapping scaled to fit pv mapping scaled centered prop Permite fijar el bloqueo y ocultamiento de celdas. El contenido de una celda bloqueada u oculta no se muestra y no puede modificarse, seleccionarse, etc. Valores asociados: constantes del tema PV Valores estilo. 1 pv value on: celda bloqueda y oculta. pv value off: celda no bloqueada ni oculta. Permite fijar la alineación horizontal del contenido de la celda. Valores asociados: constantes del tema PV Valores estilo. pv style hor alignment pv style locked Entero largo Entero largo 29 pv value hor alignment default: aplica la alineación horizontal por defecto a la celda. pv value hor alignment left: aplica una alineación horizontal a la izquierda a la celda. pv value hor alignment center: aplica una alineación horizontal centrada a la celda. pv value hor alignment right: aplica una alineación horizontal a la derecha a la celda. Permite fijar el bloqueo para el usuario de la celda. El contenido de una celda bloqueada no puede modificarse, seleccionarse, etc. Valores asociados: constantes del tema PV Valores estilo. 0 pv value on: celda bloqueada. pv value off: celda no bloqueada. Permite fijar la rotación del contenido de la celda. Valores asociados: constantes del tema PV Valores estilo. pv style rotation Entero largo 31 pv value rotation 0: no aplica rotación a la celda. pv value rotation 90: aplica una rotación de 90° a la izquierda. pv value rotation 180: aplica una rotación de 180°. pv value rotation 270: aplica una rotación de 270° a la izquierda. Permite aplicar una corrección ortográfica a la celda. Valores asociados: constantes del tema PV Valores estilo. pv style spellcheck Entero largo 2 pv value on: se aplica corrección ortográfica a la celda. pv value off: no se aplica corrección ortográfica a la celda. Permite fijar el atributo Negrita al texto de la celda. Valores asociados: constantes del tema PV Valores estilo. pv style text bold Entero largo 22 pv value on: aplica el atributo Negrita a la celda. pv value off: no aplica el atributo Negrita a la celda. Permite fijar el atributo Condensado al texto de la celda. Valores asociados: constantes del tema PV Valores estilo. pv style text condensed Entero largo 27 pv value on: aplica el atributo Condensado a la celda. pv value off: no aplica el atributo Condensado a la celda. Permite fijar el atributo Extendido del texto de la celda. Valores asociados: constantes del tema PV Style values. pv style text Entero 28 extended largo pv style text face pv style text font Entero largo Entero largo pv style text italic Entero largo 28 21 19 23 pv value on: aplica el atributo Extendido a la celda. pv value off: no aplica el atributo Extendido a la celda. Permite fijar la hoja de estilo de la celda. Valores asociados: números de hojas d estilo o constantes del tema PV Style special values. Permite fijar la fuente de la celda. Valores asociados: números de fuentes (ver los comandos PV Add font y PV GET FONT LIST). Permite fijar el atributo Itálica del texto de la celda. Valores asociados: constantes del tema PV Style values. pv value on: aplica el atributo Itálica a la celda. pv value off: no aplica el atributo Itálica a la celda. Permite fijar el atributo Relieve del texto de la celda. Valores asociados: constantes del tema PV Style values. pv style text outline Entero largo 25 pv value on: aplica el atributo Relieve a la celda. pv value off: no aplica el atributo Relieve a la celda. Permite fijar el atributo Sombra al texto de la celda. Valores asociados: constantes del tema PV Valores estilo. pv style text shadow Entero largo 26 pv style text size Entero largo 20 pv value on: aplica el atributo Sombra a la celda. pv value off: no aplica el atributo Sombra a la celda. Permite definir el tamaño de la fuente de la celda. Valores asociados: tamaño en píxeles. Permite fijar el atributo Subrayado para el texto de la celda. Valores asociados: constantes del tema PV Valores estilo. pv style text underline Entero largo 24 pv value on: aplica el atributo Subrayado a la celda. pv value off: no aplica el atributo Subrayado a la celda. Permite adaptar el tamaño de la celda en función de la altura de la imagen asociada. Valores asociados: constantes del tema PV Valores estilo. pv style use picture height pv style vert alignment Entero largo 3 pv value on: el tamaño de la celda se adapta al tamaño de la imagen que contiene. Si ninguna imagen está relacionada, la celda no se redimensiona. pv value off: el tamaño de la celda no varía en función del tamaño de la imagen asociada. Permite fijar la alineación vertical del contenido de la celda. Valores asociados: constantes del tema PV Valores estilo. Entero largo 30 pv value vert alignment top: aplica una alineación superior a la celda. pv value vert alignment center: aplica una alineación vertical centrada a la celda. pv value vert alignment bottom: aplica una alineación inferior vertical a la celda. Si quiere definir las propiedades de las hojas de estilo por defecto, pase una de las constantes del tema PV Estilo valores especiales en el parámetro estilo: Constante Tipo Valor Comentario Entero -1 Hoja de estilo por defecto llamada "Celdas”, aplicada a las celdas. largo pv style col row Entero -2 Hoja de estilo por defecto llamada "Encabezado y pie de página", aplicada al headers largo encabezado y al pie de página durante la impresión. pv style page Entero Hoja de estilo por defecto llamada "Encabezados de líneas/columnas", aplicado a los -3 footer header largo encabezados de columnas y de líneas. Nota: estas hojas de estilo se pueden editar utilizando el comando Hojas de estilo del menú Formato de 4D View. pv style cells Ejemplo Este método permite definir las propiedades de un nuevo estilo. En este ejemplo, vamos a definir un valor para cada una de las tres propiedades de estilos a personalizar: La propiedad "alineación horizontal" se convertirá en "a la izquierda", La propiedad "alineación vertical" se convertirá en "centrado", La propiedad "rotación" se convertirá en "90 grados". ARRAY LONGINT($ArrayProps;3) `Array de propiedades de la hoja de estilo ARRAY LONGINT($ArrayValues;3) `Valor de cada propiedad C_STRING(255;$StyleName) `Nombre del estilo a añadir a Area ARRAY LONGINT($StyleNumArray;0) `Array de los números de estilos ARRAY STRING(255;$StyleNameArray;0) `Array de los nombres de estilos C_INTEGER($Index) `Índice de bucle C_INTEGER($Position) `Posición del nuevo estilo en los arrays de números y de nombres `Inicialización $ArrayProps{1}:=pv style hor alignment `Propiedades correspondientes... $ArrayProps{2}:=pv style vert alignment $ArrayProps{3}:=pv style rotation $ArrayValues{1}:=pv value hor alignment left `...y valores $ArrayValues{2}:=pv value hor alignment center $ArrayValues{3}:=pv value rotation 90 $StyleName:="subparagraph" PV GET STYLE LIST(Area;$StyleNumArray;$StyleNameArray) `Lista de estilos disponibles If(Find in array($StyleNameArray;$StyleName)=-1) `¿Estilo $StyleName ausente? $Position:=Size of array($StyleNameArray)+1 `Lo añadimos INSERT IN ARRAY($StyleNameArray;$Position) `Redimensionamiento de los arrays INSERT IN ARRAY($StyleNumArray;$Position) $StyleNameArray{$Position}:=$StyleName `Asignación del nombre del nuevo estilo $StyleNumArray{$Position}:=PV Add style(Area;$StyleName) `Asignación del número del nuevo estilo For($Index;1;Size of array($ArrayProps)) `Para todas las propiedades a definir If(PV Get style property(Area;$StyleNumArray{$Position};$ArrayProps{$Index})#$ArrayValues{$Index}) PV SET STYLE PROPERTY(Area;$StyleNumArray{$Position};$ArrayProps{$Index};$ArrayValues{$Index}) End if `¿Propiedad no tiene el valor deseado? End for `Revizar array $ArrayProps de las propiedades de la hoja de estilo Else ALERT("El estilo'"+$StyleName+"' ya está presente en el área.") End if PV Imágenes PV Imágenes, introducción PV Add picture PV Create picture PV Get picture PV Get picture property PV REMOVE PICTURE PV SET PICTURE PROPERTY PV Imágenes, introducción Los comandos y las funciones de este tema permiten manipular las imágenes en sus áreas 4D View. Por programación, puede insertar o eliminar imágenes. Estos comandos también le permiten obtener o modificar las propiedades de cualquier imagen. Al modificar las propiedades de la imagen, puede modificar su apariencia, así como también la transparencia, el tamaño y la posición. Posición de la imagen Una imagen pegada por programación se posiciona automáticamente en relación con la esquina superior izquierda de la celda activa. Sin embargo, la imagen no se inserta en la celda, se ubica sobre ella. Una imagen se adjunta al documento, no a la celda. Las dimensiones de la columna y de la línea no se ajustan al tamaño de la imagen. Acerca de los números de imagen Todos los comandos de este tema se refieren a imágenes insertadas en las áreas 4D View por intermedio del parámetro numImagen. Este parámetro es el número de índice de la imagen en el área: es atribuido por 4D View cuando se inserta la imagen. Cada imagen insertada recibe un número de índice que puede agregarse por programación o por el usuario. Este número es único para el área, pero no es absoluto: si una imagen se borra en un área, todas las imágenes con un índice superior al de la imagen eliminada verán su número disminuir. Para conocer el número de imágenes pegadas en un área 4D View en cualquier momento, utilice el comando PV Get document property y la constante pv picture number. PV Add picture PV Add picture ( area ; imagen ; expresion ; numTabla ; numCampo ) -> Resultado Parámetro area imagen expresion numTabla numCampo Resultado Tipo Entero largo Imagen Cadena Entero Entero Entero largo Descripción Área 4D View Imagen 4D Toda expresión que devuelva una imagen 4D Número de tabla Número de campo Número de la imagen Descripción El comando PV Add picture pega una imagen 4D en la posición de la celda actual de area y devuelve su número de identificación único. Este identificador se puede utilizar con los otros comandos del tema "PV Imágenes". La imagen debe ser una imagen 4D válida. Puede provenir de una de las siguientes fuentes: Una variable imagen. En este caso, pase el nombre de la variable en el parámetro imagen. Los otros parámetros se pueden omitir. Una expresión 4D. En este caso, pase el nombre de la expresión en el parámetro de expresión (el parámetro imagen no se utiliza y los últimos parámetros pueden omitirse). El parámetro expresion puede contener, por ejemplo, el nombre de un método 4D que devuelve una variable imagen o una referencia de campo imagen ("[Tabla]CampoImagen"). Un número de campo imagen. En este caso, pase el número de la tabla y del campo a utilizar en los parámetros numTabla y numCampo (los parámetros imagen y expresion no se utilizan). 4D View mantiene la referencia dinámica entre la imagen pegada en el área y la imagen fuente. Toda modificación efectuada en la imagen fuente en 4D se verá reflejada en la imagen pegada en el área. Ejemplo Pegamos en la celda actual de un área 4D View la foto del cliente cuyo registro es actual: C_LONGINT($PicRef) `Referencia de la imagen añadida C_PICTURE($Picture) `Imagen vacía (ignorada) $PicRef:=PV Add picture(Area;$Picture;"";Table(->[Clientes]);Field(->[Clientes]Foto)) PV Create picture PV Create picture ( area ; izquierda ; superior ; derecha ; inferior ; ignorarVacias ) -> Resultado Parámetro area izquierda superior derecha inferior ignorarVacias Resultado Tipo Entero largo Entero largo Entero largo Entero largo Entero largo Entero Imagen Descripción Área 4D View Número de columna de la celda izquierda Número de línea de la celda de arriba Número de la columna de la celda derecha Número de línea de la celda inferior 0 = No ignorar celdas vacías; 1 = Ignorar celdas vacías Imagen de celdas en el rango Descripción El comando PV Create picture devuelve una imagen del rango de celdas designado por los parámetros izquierda, superior, derecha e inferior. Si el parámetro ignorarVacias vale 1, el marco asignado por los parámetros izquierda, superior, derecha e inferior se reducirá si las coordenadas de la última celda no vacía (inferior derecha) es menor que las coordenadas derecha e inferior del marco especificado. Ejemplo La linea a continuación graba una vista del contenido de las celdas delimitadas por B2, E2, B5, y E5 en un campo imagen. [Templates]ReducedView:=PV Create picture(Area;2;2;5;5;0) `Recuperación de la imagen y asignación al campo PV Get picture PV Get picture ( area ; numImagen ) -> Resultado Parámetro area numImagen Resultado Tipo Entero largo Entero largo Imagen Descripción Área 4D View Número de la imagen Imagen Descripción El comando PV Get picture devuelve la imagen número numImagen en area. Ejemplo Recopia la imagen número 1 en la celda actual. C_LONGINT($PicRef) `Referencia de la imagen añadida C_PICTURE($Picture) `Imagen a recopiar $Picture:=PV Get picture(Area;1) `Imagen número 1 PV REMOVE PICTURE(Area;1) $PicRef:=PV Add picture(Area;$Picture) `Recopia en la celda actual Gestión de errores Si la imagen está vacía o si el número de imagen es invalido, se devuelve un error en el area. PV Get picture property PV Get picture property ( area ; numImagen ; propiedad ) -> Resultado Parámetro area numImagen propiedad Resultado Tipo Entero largo Entero largo Entero largo Entero largo Descripción Área 4D View Número de la imagen Número de la propiedad Valor de la propiedad Descripción El comando PV Get picture property devuelve el valor de la propiedad para la imagen de area designada por numImagen. Utilice las constantes del tema para definir el parámetro propiedad: Constante Tipo Valor pv picture background pv picture column pv picture data height pv picture data width pv picture display height pv picture display width pv picture fixed size pv picture hor offset pv picture locked pv picture mapping mode pv picture row pv picture vert offset Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 8 0 5 4 7 6 10 2 11 9 1 3 También puede utilizar el tema para comparar el valor devuelto, una vez pase el valor pv picture mapping mode en el parámetro propiedad: Constante Tipo Valor pv mapping replicated pv mapping scaled centered prop pv mapping scaled to fit pv mapping scaled to fit prop pv mapping trunc non-centered pv mapping truncated centered Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 3 6 5 4 1 2 Ejemplo Este método muestra la información sobre la imagen número 1. C_INTEGER($Index) `índice de bucle para los arrays de propietarios C_LONGINT($Value) `Valor correspondiente a la opción ARRAY STRING($PropertiesCodes;12) `Códigos de las propiedades ARRAY STRING(80;$PropertiesLabels;12) `Etiquetas de propiedades `Inicialización arrays de propiedades $PropertiesCodes{1}:=pv picture column $PropertiesLabels{1}:="Columna de referencia" $PropertiesCodes{2}:=pv picture row $PropertiesLabels{2}:="Línea de referencia" $PropertiesCodes{3}:=pv picture horz offset $PropertiesLabels{3}:="Décalage H" $PropertiesCodes{4}:=pv picture vert offset $PropertiesLabels{4}:="V offset" $PropertiesCodes{5}:=pv picture data width $PropertiesLabels{5}:="Ancho real" $PropertiesCodes{6}:=pv picture data height $PropertiesLabels{6}:="Alto real" $PropertiesCodes{7}:=pv picture display width $PropertiesLabels{7}:="Ancho actual" $PropertiesCodes{8}:=pv picture display height $PropertiesLabels{8}:="Alto actual" $PropertiesCodes{9}:=pv picture background $PropertiesLabels{9}:="Fondo" $PropertiesCodes{10}:=pv picture mapping mode $PropertiesLabels{10}:="Mapping" $PropertiesCodes{11}:=pv picture fixed size $PropertiesLabels{11}:="Tamaño fijo" $PropertiesCodes{12}:=pv picture locked $PropertiesLabels{12}:="Bloqueado" $PictureInfo:="Información imagen 1:"+Character(Carriage return) For($Index;1;12) `Revisión de las diferentes propiedades $Value:=PV Get picture property(Area;1;$PropertiesCodes{$Index}) `Lectura propiedad $PictureInfo:=$PictureInfo+$PropertiesLabels{$Index}+" : "+String($Value)+". " `Update info End for ALERT($PictureInfo) `Visualización de la información PV REMOVE PICTURE PV REMOVE PICTURE ( area ; numImagen ) Parámetro area numImagen Tipo Entero largo Entero largo Descripción Área 4D View Número de la imagen Descripción El comando PV REMOVE PICTURE elimina del area la imagen número numImagen. Nota: cuando una imagen se borra de un área 4D View, las otras imágenes en el área se reenumeran si su número de índice era mayor que el de la imagen borrada. Para mayor información, consulte la sección PV Imágenes, introducción. Ejemplo Borramos de un área 4D View la primera imagen añadida: PV REMOVE PICTURE(Area;1) PV SET PICTURE PROPERTY PV SET PICTURE PROPERTY ( area ; numImagen ; propiedad ; valor ) Parámetro area numImagen propiedad valor Tipo Entero largo Entero largo Entero largo Entero largo Descripción Área 4D View Número de la imagen Número de la propiedad Valor de la propiedad Descripción El comando PV SET PICTURE PROPERTY define el valor de la propiedad de la numImagen para la propiedad especificada. Las constantes PV Propiedades imágenes se utilizan para definir el parámetro propiedad: Constante Tipo Valor pv picture background pv picture column pv picture data height pv picture data width pv picture display height pv picture display width pv picture fixed size pv picture hor offset pv picture locked pv picture mapping mode pv picture row pv picture vert offset Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 8 0 5 4 7 6 10 2 11 9 1 3 También puede utilizar las constantes del tema PV Visualización imagen para definir el parámetro valor: Constante Tipo Valor pv mapping replicated pv mapping scaled centered prop pv mapping scaled to fit pv mapping scaled to fit prop pv mapping trunc non-centered pv mapping truncated centered Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 3 6 5 4 1 2 Ejemplo Fijamos el formato de salida de la imagen número 1 en "proporcional centrado": PV SET PICTURE PROPERTY(Area;1;pv picture mapping mode;pv mapping scaled centered prop) PV Impresión PV Impresión, Introducción PV BLOB TO PRINT SETTINGS PV Get header PV Get print property PV PRINT PV PRINT FORMULAS PV Print settings to blob PV SET HEADER PV SET PRINT PROPERTY PV Impresión, Introducción Los comandos de este tema permiten controlar la impresión de hojas de cálculo por programación en 4D. Puede establecer definir o recuperar los parámetros de impresión (encabezados, pies de página, etc.) y elegir imprimir los valores o las fórmulas. Estos comandos son especialmente útiles cuando se quiere imprimir un documento sin que el usuario seleccione el comando Imprimiren el menú Archivo. PV BLOB TO PRINT SETTINGS PV BLOB TO PRINT SETTINGS ( area ; paramImp ) Parámetro area paramImp Tipo Entero largo BLOB Descripción Área 4D View BLOB que contiene los parámetros de impresión Descripción El comando PV BLOB TO PRINT SETTINGS reemplaza la configuración de impresión actual del area 4D View por los parámetros en el BLOB paramImp. Este BLOB debe haber sido generado por el comando PV Print settings to blob. El parámetro paramImp contiene todos los parámetros utilizados para la impresión: Parámetros de configuración (papel, orientación, escala); Parámetros de impresión como tal (número de copias, origen del papel, etc.) Nota: los parámetros de impresión no tienen el mismo formato en Windows y Mac OS. Como resultado, la compatibilidad del BLOB paramImp entre las dos plataformas no está garantizada. Si el BLOB paramImp no contiene parámetros de impresión validos, el comando devuelve un error. PV Get header PV Get header ( area ; posicion ) -> Resultado Parámetro area posicion Resultado Tipo Entero largo Entero largo Cadena Descripción Área 4D View Posición del encabezado Cadena del encabezado Descripción El comando PV Get header devuelve la cadena de encabezado o pie de página en la ubicación designada por posicion. Utilice las constantes del tema PV Encabezados y pies de página para definir el parámetro posicion: Constante Tipo Valor pv footer center pv footer left pv footer right pv header center pv header left pv header right Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 5 4 6 2 1 3 Ejemplo Transferimos el texto del encabezado central al pie de página: C_TEXT($Header) `Texto del encabezado del centro $Header:=PV Get header(Area;pv header center) `Recuperación del encabezado del centro PV SET HEADER(Area;pv header center;"") `Vaciar el encabezado PV SET HEADER(Area;pv footer center;$Header) `Pase a pie de página PV PRINT(Area) PV Get print property PV Get print property ( area ; propiedad ; valor2 ) -> Resultado Parámetro area propiedad valor2 Resultado Tipo Entero largo Entero largo Cadena Entero largo Descripción Área 4D View Número de la propiedad Valor adicional de la propiedad Valor de la propiedad Descripción El comando PV Get print property devuelve el valor actual de la propiedad especificada por el area 4D View. El parámetro opcional valor2 devuelve la información adicional con algunas propiedades de impresión. Utilice las constantes del tema para definir el parámetro propiedad. Para mayor información sobre estas constantes, ver la descripción del comando PV SET PRINT PROPERTY. Nota: las cuatro constantes que comienzan por "pv print dead..." son de sólo lectura. Ejemplo Queremos conocer la superficie realmente imprimible: C_LONGINT($paperWidth;$paperHeight) C_LONGINT($bottomMargin;$topMargin;$rightMargin;$leftMargin) C_LONGINT($usableWidth;$usableHeight) $paperWidth:=PV Get print property(area;pv print paper width) $paperHeight:=PV Get print property(area;pv print paper height) $bottomMargin:=PV Get print property(area;pv print dead bottom margin) $topMargin:=PV Get print property(area;pv print dead top margin) $rightMargin:=PV Get print property(area;pv print dead right margin) $leftMargin:=PV Get print property(area;pv print dead left margin) $usableWidth:=$paperWidth-($rightMargin+$leftMargin) $usableHeight:=$paperHeight-($topMargin+$bottomMargin) PV PRINT PV PRINT ( area ) Parámetro area Tipo Entero largo Descripción Área 4D View Descripción El comando PV PRINT imprime el area 4D View pasada como parámetro. El diseño y la vista previa de la página están disponibles utilizando el comando PV EXECUTE COMMAND asociado a las constantes pv cmd print page setup y pv cmd print preview. Atención a la opción refrescar del área 4D View: si el refrescar no es automático, no olvide activarlo antes de imprimir o de la vista previa del área de impresión. Ejemplo Impresión con parámetros de pie de página. PV SET HEADER(Area;pv footer center;" #D"Printed) `Asignación del pie de página CONFIRM("¿Imprimir valores o fórmulas?";"Formulas";"Valores") If(OK=1) PV PRINT FORMULAS(Area) `Impresión de las fórmulas Else PV PRINT(Area) `Impresión de los valores End if PV PRINT FORMULAS PV PRINT FORMULAS ( area ) Parámetro area Tipo Entero largo Descripción Área 4D View Descripción El comando PV PRINT FORMULAS imprime un informe de todas las fórmulas del area 4D View pasada como parámetro. Ejemplo Consulte el ejemplo del comando PV PRINT. PV Print settings to blob PV Print settings to blob ( area ) -> Resultado Parámetro area Resultado Tipo Entero largo BLOB Descripción Área 4D View BLOB que contiene los parámetros de impresión Descripción El comando PV Print settings to blob guarda en un BLOB los parámetros de impresión actuales del area 4D View. El BLOB guarda todos los parámetros utilizados para la impresión: Parámetros de configuración (papel, orientación, escala); Parámetros de impresión como tal (número de copias, origen del papel, etc.) Por otro lado, el comando no guarda las opciones de impresión específicas al plug-in 4D View (encabezados de páginas, repetición de líneas, etc.) que se encuentran en la caja de diálogo "Opciones de impresión". Este comando permite guardar la configuración de impresión del área de 4D View, independientemente del modelo de impresora y la configuración de impresión accesible. El BLOB devuelto no debe modificarse por programación, sólo puede ser utilizado por el comando PV BLOB TO PRINT SETTINGS. El comando PV Print settings to blob puede utilizarse por ejemplo para guardar la configuración de impresión actual antes de modificar temporalmente una opción utilizando el comando PV SET PRINT PROPERTY. Una vez finalizada la impresión, el comando PV BLOB TO PRINT SETTINGS se puede utilizar para restablecer los parámetros actuales. PV SET HEADER PV SET HEADER ( area ; posicion ; cadena ) Parámetro area posicion cadena Tipo Entero largo Entero largo Cadena Descripción Área 4D View Posición del encabezado Cadena del encabezado Descripción El comando PV SET HEADER define el carácter cadena como encabezado o pie de página de area en la ubicación designada por posicion. Utilice las constantes del tema PV Encabezados y pies de página para definir el parámetro posicion: Constante Tipo Valor pv footer center pv footer left pv footer right pv header center pv header left pv header right Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 5 4 6 2 1 3 Puede insertar los siguientes caracteres especiales en el parámetro contenido: #d Fecha actual abreviada Mar 25 Jun 1957 #∂ (Macintosh) Fecha actual formato corto 04/03/1996 #c (Windows) Especial forzado 04/03/1996 #D Fecha actual formato largo Martes 25 junio 1957 #p Número de página 2 #h Hora sin segundos 09:42 #H Hora con segundos 09:42:47 #F Nombre de tabla o de área Simulación (SP) o _Forecast #P Número total de páginas 10 Ejemplo Consulte los ejemplos de los comandos PV PRINT y PV Get header. PV SET PRINT PROPERTY PV SET PRINT PROPERTY ( area ; propiedad ; valor ; valor2 ) Parámetro area propiedad valor valor2 Tipo Entero largo Entero largo Entero largo Cadena Descripción Área 4D View Número de la propiedad Valor de la propiedad Valor adicional de propiedad Descripción El comando PV SET PRINT PROPERTY fija el valor y opcionalmente el valor2 de la propiedad para el area 4D View. Utilice las constantes del tema PV Propiedades impresión para definir el parámetro propiedad. La siguiente tabla detalla las constantes que se pueden utilizar en los parámetros propiedad y valor: Constante Tipo Valor Comentario Permite añadir o no el área imprimible. Valores asociados: pv print adjust area Entero largo 10 pv value on: se ajusta el área imprimible. pv value off: no se ajusta el área imprimible. Permite leer o fijar la ubicación del de la unión cuando la impresión se efectúa en modo por ambas caras (ver arriba). Valores asociados: las siguientes constantes del tema “PV Valores impresión”: pv print binding Entero largo 26 pv left binding: unión izquierda (valor por defecto). pv top binding: unión superior. Nota: esta propiedad sólo se puede utilizar bajo Windows. pv print bottom margin Entero largo 3 La margen inferior es el área entre la parte inferior del papel (incluyendo la margen muerta inferior) y el pie de página. Valores asociados: margen en píxeles. Permite centrar o no la impresión en la página. Valores asociados: pv print centered Entero largo 9 pv value on: la impresión se centra en la página. pv value off: la impresión no se centra en la página. Permite fijar o leer el modo para manejar el color. Esta propiedad sólo es útil con impresoras a color. Valores asociados: constantes del tema “PV Valores impresión”: pv print color Entero largo 23 pv black and white: impresión en blanco y negro (monochrome). pv color: impresión a color. Nota: esta propiedad sólo puede utilizarse en Windows. Esta constante es de solo lectura (comando PV Get print property) y devuelve el tamaño, en pv print dead bottom margin Entero largo 18 pv print dead left margin Entero largo 15 pv print dead right margin Entero largo 17 pv print dead top margin Entero largo 16 píxeles, del márgen muerto inferior. Nota: el margen muerto es el espacio no imprimible, ubicado al borde del papel. Esta área es fijada por el piloto de la impresora. Esta constante es de sólo lectura (comando PV Get print property) y devuelve el tamaño, en píxeles, del margen muerto izquierdo. Nota: el margen muerto es el espacio no imprimible, ubicado al borde del papel. Esta área es fijada por el piloto de la impresora. Esta constante es de sólo lectura (comando PV Get print property) y devuelve el tamaño, en píxeles, del margen muerto derecho. Nota: el margen muerto es el espacio no imprimible, ubicado al borde del papel. Esta área es fijada por el piloto de la impresora. Esta constante es de sólo lectura (comando PV Get print property) y devuelve el tamaño, en píxeles, del margen muerto superior. Nota: el margen muerto es el espacio no imprimible, ubicado al borde del papel. Esta área es fijada por el piloto de la impresora. Permite fijar u obtener el destino de la impresión. Valores asociados: las siguientes constantes del tema PV Valores impresión: pv print destination pv print document name pv print Entero largo Entero largo 24 27 pv destination printer: la impresión se envía a la impresora. pv destination file (Windows únicamente): la impresión se envía a un archivo. Cuando se utiliza esta constante, valor2 contiene la ruta de acceso para el documento resultante. Si pasa una cadena vacía en valor2 u omite este parámetro, aparece una caja de diálogo de guardar archivos al momento de la impresión. pv destination PDF file (Mac OS únicamente): el trabajo de impresión se envía a un archivo PDF. Cuando se utiliza esta constante, valor2 contiene la ruta de acceso para el documento PDF resultante. Si pasa una cadena vacía en valor2 u omite este parámetro, aparece una caja de diálogo de guardar archivos al momento de la impresión. pv destination EPS file (Mac OS únicamente): el trabajo de impresión se envía a un archivo EPS. Cuando se utiliza esta constante, valor2 contiene la ruta de acceso para el documento EPS resultante. Si pasa una cadena vacía en valor2 u omite este parámetro, aparece una caja de diálogo de guardar archivos al momento de la impresión. Permite fijar o leer el nombre del documento de impresión que debe aparecer en la lista de documentos del servidor de impresión. Cuando se utiliza esta constante, valor2 contiene el nombre del documento de impresión. Pase 0 en valor. Para utilizar o restablecer el funcionamiento estándar (uso del nombre “4D View”), pase una cadena vacía en valor2. Permite imprimir por uno o por ambos lados. Valores asociados: pv print double sided Entero largo 25 pv value on: impresión por ambos lados. pv value off: impresión por un solo lado (valor por defecto). Nota: esta propiedad sólo se puede utilizar en Windows. Permite imprimir o no un marco alrededor de cada página impresa. Valores asociados: pv print frame each page Entero largo pv print grid Entero largo pv print headers Entero largo 8 pv print left margin pv print number copies Entero largo 0 El margen izquierdo es el área entre el lado izquierdo del papel (incluyendo el margen muerto izquierdo) y el área de impresión. Valores asociados: margen en píxeles. Entero largo 21 Permite fijar o leer el número de copias a imprimir. Valores asociados: número de copias (1 por defecto). 11 pv value on: se imprime un marco para cada página. pv value off: no se imprime ningún marco. Permite imprimir o no una rejilla en el área. Valores asociados: 12 pv value on: se imprime la rejilla. pv value off: no se imprime la rejilla. Permite imprimir o no los encabezados de las líneas y columnas. Valores asociados: pv value on: imprime los encabezados de líneas y columnas. pv value off: no imprime los encabezados de líneas y columnas. Permite fijar o leer la orientación del papel durante la impresión. Valores asociados: constantes del tema PV Print values. pv print orientation Entero largo pv print pages from pv print pages to pv print paper height Entero largo Entero largo Entero largo 19 28 29 pv portrait orientation: el papel está orientado en modo vertical. pv landscape orientation: el papel está orientado en modo en horizontal. Permite fijar o leer el número de la página donde quiere que comience la impresión. Valores asociados: número de página. Permite fijar o leer el número de la última página a imprimir. Valores asociados: número de página. 14 Devuelve el alto del papel. Valores asociados: altura en píxeles. Entero largo 22 Permite definir o leer la bandeja de papel a utilizar. Valores asociados: valor del elemento info1Array que correspondiente al elemento del arrayNombres devuelto por el comando 4D PRINT OPTION VALUES. Este array contiene el nombre de la bandeja de papel a utilizar. Nota: esta propiedad solo puede utilizarse en Windows. Entero largo 13 Devuelve el ancho del papel. Valores asociados: ancho en píxeles. Entero largo 4 Entero largo 6 Entero largo 5 Entero largo 7 Entero largo 2 pv print scale Entero largo 20 pv print top margin Entero largo 1 pv print paper source pv print paper width pv print repeat first column pv print repeat first row pv print repeat last column pv print repeat last row pv print right margin Indica el número de la primera columna del rango de columnas a imprimir en cada página. Esta constante debe utilizarse en combinación con la constante pv print repeat last column. Valores asociados: número de columna. Indica el número de la primera línea del rango de líneas a imprimir en cada página. Esta constante debe utilizarse en combinación con la constante pv print repeat last row. Valores asociados: número de línea. Indica el número de la última columna del rango de columnas a imprimir en cada página. Esta constante debe utilizarse en combinación con la constante pv print repeat first column. Valores asociados: número de columna. Indica el número de la última línea del rango de líneas a imprimir en cada página. Esta constante debe utilizarse en combinación con la constante pv print repeat first row. Valores asociados: número de línea. El margen derecho es el área entre el lado derecho del papel (incluyendo el margen muerto derecho) y el área de impresión. Valores asociados: margen en píxeles. Permite fijar o leer la escala de impresión actual. Recuerde, sin embargo, que algunas impresoras no permiten modificar la escala. Si pasa un valor invalido, la propiedad pasa al 100% al momento de la impresión. Valores asociados: escala de impresión. El margen superior es el área entre la parte superior del papel (incluyendo el margen muerto superior) y el área de impresión. Valores asociados: margen en píxeles. Ejemplo Ejemplo de elección de la bandeja de papel (alimentación) bajo Windows: ARRAY TEXT($arrNames;0) ARRAY LONGINT($arrInfo1;0) `Recuperación de la lista de bandejas disponibles PRINT OPTION VALUES(Paper source;$arrNames;$arrInfo1) Esto es lo que puede recuperar, por ejemplo en los arrays $arrNames y $arrInfo1: $arrNames $arrInfo1 Selección automática 15 Tray 1 257 Tray 1 (Manual) 258 Tray 2 259 Tray 3 260 Tray 4 261 Envelope Feeder 262 Si quiere utilizar “Tray 1 (Manual),” debe pasar el índice correspondiente a esta bandeja: PV SET PRINT PROPERTY(area;pv print paper source;$arrInfo1{3}) PV Manipulación de celdas PV Manipulación de celdas, Introducción PV Copy to blob PV FIND ALL PV FIND ONE PV PASTE FROM BLOB PV REPLACE ALL PV REPLACE ONE PV SORT COLUMN PV SORT MANY PV SORT ONE PV SPECIAL CLEAR PV SPECIAL CUT PV SPECIAL PASTE PV Manipulación de celdas, Introducción Los comandos de este tema permiten la ejecución de consultas, sustituciones y ordenación en un área 4D View. Este tema también contiene un conjunto de comandos para integrar rápidamente la gestión de copiar/pegar en el código de una aplicación y gestión del "blobing" y "de-blobing" de una selección de celdas. PV Copy to blob PV Copy to blob ( area ) -> Resultado Parámetro area Resultado Tipo Entero largo BLOB Descripción Área 4D View BLOB que contiene la selección Descripción El comando PV Copy to blob devuelve la selección de celdas actual del area en un BLOB. La selección no necesariamente tiene que ser continua (rango). Ejemplo El método a continuación intercambia el contenido de los rangos A1, A2, B1, B2 y A3, A4, B3, B4. C_BLOB($Blob) `BLOB de almacenamiento PV SELECT RANGE(Area;1;1;2;2;pv selection set) `Selección del rango A1, A2, B1, B2 PV SPECIAL CUT(Area;1;1;1) `Corta el contenido y lo ubica en el portapapeles PV SELECT RANGE(Area;1;3;2;4;pv selection set) `Selección del rango A3, A4, B3, B4 $Blob:=PV Copy to blob(Area) `Poner la selección en un BLOB PV SPECIAL PASTE(Area;1;1;1) `Pegar el contenido del portapapeles PV GOTO CELL(Area;1;1) `Seleccionar la celda A1 PV PASTE FROM BLOB(Area;$Blob;1;1;1;1) `Reasignación de lo que fue borrado PV FIND ALL PV FIND ALL ( area ; criterio ; donde ; contiene ) Parámetro area criterio donde contiene Tipo Entero largo Cadena Entero Entero Descripción Área 4D View Cadena a buscar 0 = Fórmulas; 1 = Valores 0 = Contiene; 1 = Igual Descripción El comando PV FIND ALL es similar a PV FIND ONE sino que selecciona todas las celdas del area que corresponde a los criterios de consulta. Después de llamar este comando, la primera celda que se encuentra se convierte en la nueva celda actual y las otras celdas encontradas se seleccionan. Si no se encuentran celdas durante la búsqueda, la celda actual sigue siendo la misma. criterio especifica la cadena a buscar. donde indica que parte de la hoja de cálculo consultar: 0: búsquedas en las fórmulas 1: búsqueda en los valores contiene define el tipo de comparación: 0: parcial (contiene el valor buscado) 1: total (igual al valor buscado) Ejemplo Consulte el ejemplo del comando PV SET CELL PROPERTY. PV FIND ONE PV FIND ONE ( area ; criterio ; donde ; contiene {; columna ; linea} ) Parámetro area criterio donde contiene columna Tipo Entero largo Cadena Entero Entero Entero largo linea Entero largo Descripción Área 4D View Cadena a buscar 0 = Fórmulas; 1 = Valores 0 = Contiene; 1 = Igual Número de columna de la celda de inicio Número de columna de la celda encontrada Número de línea de la celda de inicio Número de línea de la celda encontrada Descripción El comando PV FIND ONE busca criterio entre las celdas del area. La búsqueda se detendrá en la primera celda, si la hay, que cumpla con los criterios de búsqueda. criterio especifica la cadena a buscar. donde indica que parte de la hoja de cálculo consultar: 0: búsquedas en las fórmulas 1: búsquedas en los valores contiene define el tipo de comparación: 0: Parcial (contiene el valor buscado) 1: Total (igual al valor buscado) Si se omiten los parámetros opcionales columna y linea, la búsqueda comienza en la esquina superior izquierda del area. Si se pasan columna y linea, indican la celda del area en la que comenzará la búsqueda. La búsqueda se efectúa de arriba a abajo y de izquierda a derecha, comenzando por la celda indicada. Después de la ejecución del comando, la primera celda encontrada, se convierte en la nueva celda actual. Si se llaman, los parámetros columna y linea contendrán entonces sus coordenadas. Si no se encontró ninguna celda durante la búsqueda, la celda actual se mantiene sin cambios. Ejemplo Vamos a buscar la primera celda que contiene la respuesta del usuario a una solicitud inicial. Se iniciará la consulta en la celda B3. C_STRING(255;$Criteria) `Cadena a buscar C_INTEGER($QueryWhere) `0=Fórmulas / 1=Valores C_INTEGER($Contains) `0=Igual / 1=Contiene C_LONGINT($Column) `Número de columna de la celda encontrada C_LONGINT($Row) `Número de la línea de la celda de inicio $Criteria:=Request("¿Cuál es el valor a buscar?";"x") If($Criteria#"") `Criterio definido CONFIRM("Búsqueda en las fórmulas o en los valores?";"Valores";"Fórmulas") $QueryWhere:=OK `0=Fórmulas / 1=Valores CONFIRM("¿Qué tipo de comparación?";"Contiene";"=") $Contains:=OK `0=Contiene / 1=Igual $Column:=2 `Búsqueda a partir de la celda B3 $Row:=3 PV FIND ONE(Area;$Criteria;$QueryWhere;$Contains;$Column;$Row) `Búsqueda End if PV PASTE FROM BLOB PV PASTE FROM BLOB ( area ; BLOB ; valor ; formula ; formato ; bordes ) Parámetro area BLOB valor formula formato bordes Tipo Entero largo BLOB Entero Entero Entero Entero Descripción Área 4D View BLOB que contiene la selección 0 = No pegar; 1 = Pegar 0 = No pegar; 1 = Pegar 0 = No pegar; 1 = Pegar 0 = No pegar; 1 = Pegar Descripción El comando PV PASTE FROM BLOB pega la información definida con los parámetros valor, fórmula, formato y bordes desde las celdas en el BLOB. El blob debe haber sido creado previamente con el comando PV Copy to blob. Ejemplo Consulte el ejemplo del comando PV Copy to blob. PV REPLACE ALL PV REPLACE ALL ( area ; cadena ; remplazo ; donde ; contiene ) Parámetro area cadena remplazo donde contiene Tipo Entero largo Cadena Cadena Entero Entero Descripción Área 4D View Cadena a remplazar Cadena de remplazo 0 = Fórmulas; 1 = Valores 0 = Contiene; 1 = Igual Descripción El comando PV REPLACE ALL es similar al comando PV REPLACE ONE, excepto que remplaza el carácter cadena por la cadena remplazo en todas las celdas del area correspondiente a los criterios definidos por los parámetros donde o contiene. Después de llamar este comando, la primera celda eventualmente encontrada se convierte en la nueva celda actual y las otras celdas encontradas son seleccionadas. Si no ha ocurrido ningún remplazo, la celda activa permanece igual. Ejemplo Hacemos que todas las ocurrencias de la cadena "Cantidad" aparezcan en mayúsculas: PV REPLACE ALL(Area;"Cantidad";"CANTIDAD";1;1) PV REPLACE ONE PV REPLACE ONE ( area ; cadena ; remplazo ; donde ; contiene {; columna ; linea} ) Parámetro area cadena remplazo donde contiene columna Tipo Entero largo Cadena Cadena Entero Entero Entero largo linea Entero largo Descripción Área 4D View Cadena a remplazar Cadena de remplazo 0 = Fórmulas; 1 = Valores 0 = Contiene; 1 = Igual Número de columna de la celda de inicio Número de columna de la celda encontrada Número de línea de la celda de inicio Número de línea de la celda encontrada Descripción El comando PV REPLACE ONE remplaza la cadena de caracteres cadena por la cadena remplazar en la primera celda en el area que corresponde a los criterios de búsqueda definidos utilizando donde o contiene, a partir de la celda definida linea y columna. cadena especifica la cadena de caracteres a buscar y remplazar por remplazar. donde indica que parte de la hoja de cálculo consultar: 0: búsquedas en las fórmulas 1: búsqueda en los valores contiene define el tipo de comparación: 0: Parcial (contiene el valor buscado) 1: Total (igual al valor buscado) Si se omiten los parámetros opcionales columna y linea, la búsqueda comienza en la esquina superior izquierda del area. Si se pasan columna y linea, indican la celda del area en la que comenzará la búsqueda. La búsqueda se efectúa de arriba a abajo y de izquierda a derecha comenzando con la celda de inicio. Después de la ejecución del comando, la primera celda encontrada, se convierte en la nueva celda actual. Si se llamaron, los parámetros columna y linea contendrán entonces las coordenadas de esta nueva celda. Si no se encontró ninguna celda durante la búsqueda, la celda actual se mantiene sin cambios. Ejemplo Remplazamos la primera ocurrencia de la referencia a la tasa del T.V.A. con una nueva referencia (nueva tasa). C_INTEGER($Where) `0=Fórmula / 1=Valor C_INTEGER($Contiene) `0=Contiene / 1=Igual $Where:=0 `Remplazo de fórmula $Contiene:=0 `Contiene `Remplazo de la primera ocurrencia PV REPLACE ONE(Area;"$C$30";"$C$31";$Where;$Contiene) PV SORT COLUMN PV SORT COLUMN ( area ; columna ; orden ) Parámetro area columna orden Tipo Entero largo Entero largo Entero largo Descripción Área 4D View Número de columna Criterio de ordenación Descripción El comando PV SORT COLUMN permite efectuar una ordenación estándar, en orden ascendente o descendente, en la columnas definida por el parámetro columna en el area 4D View. Una ordenación estándar en una columna de dinámica produce una ordenación sincronizada de las otras columnas, de manera que los registros siempre permanezcan en su estado inicial. Una ordenación en una columna estática sólo ordena la columna. Para definir el parámetro orden, utilice una de las siguientes constantes del tema "PV Ordenar encabezados": Constante Tipo Valor pv ascending sort pv descending sort Entero largo Entero largo 2 3 Nota: este comando sólo puede funcionar si la ordenación fue autorizada por el comando PV SET AREA PROPERTY. Ejemplo Con la siguiente instrucción, la columna se ordenará de manera ascendente: PV SORT COLUMN(area;2;pv ascending sort) PV SORT MANY PV SORT MANY ( area ; izquierda ; superior ; derecha ; inferior ; direccion ; criterio ; orden ) Parámetro area izquierda superior derecha inferior direccion criterio orden Tipo Entero largo Entero largo Entero largo Entero largo Entero largo Entero Array Array Descripción Área 4D View Número de columna a la izquierda Número de la línea de arriba Número de la columna a la derecha Número de la línea de abajo 0 = Línea; 1 = Columna Columnas o líneas que contienen los valores a ordenar 0 = Ascendente; 1 = Descendente Descripción El comando PV SORT MANY es similar a PV SORT ONE, pero con multi ordenación. Debe pasar las columnas o líneas que sirven como criterio de ordenación en criterio y el orden (ascendente o descendente) en el cual se debe efectuar la ordenación en orden. La ordenación se efectúa en el contenido de la selección de celdas delimitada por izquierda, superior, derecha y inferior. direccion indica si la ordenación debe organizar las líneas o las columnas: Si pasa 0, ordena las líneas en función de los valores de las columnas criterio. Si pasa 1, ordena las columnas en función de los valores de las líneas criterio. Ejemplo Ordenamos una selección de celdas (5 columnas x 9 líneas) en relación a la segunda columna como primer criterio ascendente y la tercera columna como segundo criterio descendente. ARRAY LONGINT($Keys;2) `Columna(s) o línea(s) que contienen los valores a ordenar ARRAY INTEGER($Orders;2) `0=Ascendente/ 1=Descendente `Inicialización $Keys{1}:=3 `La segunda columna de la selección sirve como primer criterio de ordenación $Keys{2}:=4 `La tercera columna de la selección sirve como segundo criterio de ordenación $Orders{1}:=0 `Ordenación ascendente para las líneas de la segunda columna de la selección $Orders{2}:=1 `Ordenación descendente para las líneas de la tercera columna de la selección PV SORT MANY(Area;2;2;6;10;1;$Keys;$Orders) PV SORT ONE PV SORT ONE ( area ; izquierda ; superior ; derecha ; inferior ; direccion ; criterio ; orden ) Parámetro area izquierda superior derecha inferior direccion criterio orden Tipo Entero largo Entero largo Entero largo Entero largo Entero largo Entero Entero largo Entero Descripción Área 4D View Número de columna a la izquierda Número de la línea de arriba Número de la columna a la derecha Número de la línea de abajo 0 = Ordenación de líneas; 1 = ordenación de columnas Columna o línea que contiene los valores a ordenar 0 = Ascendente; 1 = Descendente Descripción El comando PV SORT ONE ordena el contenido de la selección delimitada por izquierda, superior, derecha e inferior en relación con los valores contenidos en la línea o columna criterio, en el orden definido por orden. direccion indica si se debe ordenar líneas o columnas: Si pasa 0, ordena las líneas en función de los valores de la columna criterio. Si pasa 1, ordena las columnas en función de los valores de la línea criterio. Este comando sólo funciona con los datos estáticos. Las áreas dinámicas (arrays y campos relacionados), deben seleccionarse utilizando los comandos 4D, el principio consiste en la ordenación de la fuente. Un ejemplo de ordenación de columnas dinámicas asociadas a los campos al hacer clic en el encabezado se presenta en la descripción del comando PV GET CELL FIELD. Tenga en cuenta que la ordenación no es posible en arrays y campos de tipo imagen así como tampoco en columnas calculadas (que llaman a un método de retrollamada y muestran su resultado). Ejemplo Este ejemplo permite la ordenación ascendente de las columnas estática haciendo clic en el encabezado de la columna. El área sólo contiene columnas estáticas. Comenzamos instalando el método de retrollamada HeaderSortMethod, que se llamará en caso de un clic en el área: PV ON EVENT(area;pv on clicked;"HeaderSortMethod") El método HeaderSortMethod intercepta los clics en los encabezados de las columnas y ordena los datos correspondientes (de la línea 1 a la 25) en orden ascendente: `Método HeaderSortMethod C_BOOLEAN($0) C_LONGINT($1;$2;$3;$4;$5;$6) If($5=0) `Si el clic fue en el encabezado $0:=True `Filtrar el evento PV SORT ONE(area;$4;1;$4;25;1;$4;0) `Orden ascendente de la columna seleccionada End if PV SPECIAL CLEAR PV SPECIAL CLEAR ( area ; valor ; formula ; formato ; bordes ) Parámetro area valor formula formato bordes Tipo Entero largo Entero Entero Entero Entero Descripción Área 4D View 0 = No borrar; 1 = Borrar 0 = No borrar; 1 = Borrar 0 = No borrar; 1 = Borrar 0 = No borrar; 1 = Borrar Descripción El comando PV SPECIAL CLEAR borra la información definida en los parámetros valor, formula, formato y bordes de la selección de celdas actual en area. Ejemplo Borramos las fórmulas, formatos y bordes de las celdas seleccionadas, conservando los posibles valores de las celdas que contiene valores y no fórmulas: PV SPECIAL CLEAR(Area;0;1;1;1) `Borrado de las fórmulas, formatos y bordes PV SPECIAL CUT PV SPECIAL CUT ( area ; valor ; formula ; formato ; bordes ) Parámetro area valor formula formato bordes Tipo Entero largo Entero Entero Entero Entero Descripción Área 4D View 0 = No cortar; 1 = Cortar 0 = No cortar; 1 = Cortar 0 = No cortar; 1 = Cortar 0 = No cortar; 1 = Cortar Descripción El comando PV SPECIAL CUT corta de area la información definida en los parámetros valor, fórmula, formato y bordes para la selección de celdas actual. A diferencia del comando PV SPECIAL CLEAR, el comando PV SPECIAL CUT guarda en el portapapeles la información cortada con el fin de reutilizarla posteriormente, por ejemplo con el comando PV SPECIAL PASTE. Ejemplo Consulte el ejemplo del comando PV SPECIAL PASTE. PV SPECIAL PASTE PV SPECIAL PASTE ( area ; valor ; formula ; formato ; bordes ) Parámetro area valor formula formato bordes Tipo Entero largo Entero Entero Entero Entero Descripción Área 4D View 0 = No pegar; 1 = Pegar 0 = No pegar; 1 = Pegar 0 = No pegar; 1 = Pegar 0 = No pegar; 1 = Pegar Descripción El comando PV SPECIAL PASTE pega, desde las celdas en el portapapeles, la información definida en los parámetros valor, formula, formato y bordes en el area a partir de la celda actual. Este comando permite reutilizar los datos previamente cortados por el comando PV SPECIAL CUT o copiados utilizando PV EXECUTE COMMAND (area; pv cmd edit copy). Ejemplo Este ejemplo simula un copiar/pegar del valor y el formato. Se corta el valor y el formato de la celda B2 y luego se pega en la celda E2: PV PV PV PV GOTO CELL(Area;2;2) `Celda inicial: B2 SPECIAL CUT(Area;1;0;1;0) `Cortar el valor y el formato GOTO CELL(Area;5;2) `Celda de destino: E2 SPECIAL PASTE(Area;1;0;1;0) `Pega el valor y el formato PV Paneles PV Paneles, Introducción PV ADD HOR SPLITTER PV ADD VERT SPLITTER PV FREEZE PANES PV Get hor pane property PV Get vert pane property PV REMOVE HOR SPLITTER PV REMOVE VERT SPLITTER PV SET HOR PANE PROPERTY PV SET VERT PANE PROPERTY PV UNFREEZE PANES PV Paneles, Introducción Para ver simultáneamente diferentes partes de un área 4D View, es posible que desee desplazarse a través de una parte de esta área sin afectar la visualización de la otra sección: estas secciones se llaman "paneles". Un panel horizontal es el espacio entre dos límites visuales, que pueden ser: la parte superior de la hoja de cálculo, un separador en la barra de desplazamiento vertical, la parte inferior de la hoja de cálculo. Un panel vertical es el espacio entre dos objetivos visuales, que pueden ser: el lado izquierdo de la hoja de cálculo, un separador en la barra de desplazamiento horizontal, el lado derecho de la hoja de cálculo. Por lo tanto, por defecto hay un panel horizontal y vertical, que cubren toda el área. Varios paneles pueden existir al mismo tiempo en cada una de las dos dimensiones de la hoja de cálculo, excepto cuando el área está en el modo "panel inmovilizado" (ver más abajo). Puede inmovilizar los paneles de un área. Cuando un panel está congelado, siempre se mantiene en la pantalla, independientemente de la forma de navegación del usuario en la hoja de cálculo. Ya no puede redimensionarse ni ser borrado manualmente por el usuario. No se puede acceder a su contenido desplazando el resto de la hoja de cálculo. Sigue siendo posible definir o modificar su contenido, su formato, etc. Un área 4D View puede contener un máximo de dos paneles congelado: un panel horizontal en la parte superior del ára y un panel vertical a la izquierda del área. No es posible combinar los paneles estándar y los paneles inmovilizados en el mismo documento. Un área 4D View funciona en modo "panel estándar" o en modo "panel congelado". Cuando funciona en modo "panel congelado", no es posible agregar paneles. Para poder añadir nuevos separadores, debe descongelar los paneles: Los comandos de este tema permiten la manipulación de los paneles de un área 4D View: añadir o eliminar un panel (horizontal o vertical), obtener o asignar propiedades de panel y congelar o descongelar los paneles del área. PV ADD HOR SPLITTER PV ADD HOR SPLITTER ( area ; separador ; posicion ; bloqueado ) Parámetro area separador posicion bloqueado Tipo Entero largo Entero Entero Entero Descripción Área 4D View Número del separador horizontal Posición del separador con respecto al último separador en píxeles 0 = Libre; 1 = Bloqueado Descripción El comando PV ADD HOR SPLITTER crea un nuevo separador horizontal en area, cuyo número se pasa en separador. El separador se crea a posicion píxeles del último separador del area o si el área no contiene un separador, desde el borde superior del area (fuera de las barras de herramientas). Si el parámetro bloqueado es igual a 1, el panel no puede cambiar el tamaño manualmente. Si es igual a 0, el panel puede ser redimensionado libremente por el usuario. Notas: La posición del panel incluye la altura de los encabezados de columnas, que es posible recuperar con el comando PV Get area property, pasando la columna constante pv column headers como segundo parámetro. La altura mínima de un panel horizontal es de 8 píxeles. Puede ver el número de paneles horizontales de un área utilizando el comando PV Get area property, pasando la constante pv hor panel count como segundo parámetro. En este caso, PV Get area property devuelve 1 cuando no hay un separador horizontal: el panel único es, en este caso, toda el área. Ejemplo Añadimos un panel horizontal, alto 30 píxeles, luego de los paneles ya presentes en el área. C_LONGINT($HorPaneNum) `Número de paneles horizontales existentes C_LONGINT($Position) `Posición del panel `Número de paneles horizontales $HorPaneNum:=PV Get area property(Area;pv hor pane count) $Position:=30 `30 píxeles de alto PV ADD HOR SPLITTER(Area;$HorPaneNum;$Position;0) `Redimensionable Gestión de errores Si el comando PV ADD HOR SPLITTER se ejecuta cuando el área está en modo "panel congelado", se genera el error 92 (ningún separador se puede añadir cuando los paneles están congelados). PV ADD VERT SPLITTER PV ADD VERT SPLITTER ( area ; separador ; posicion ; bloqueado ) Parámetro area separador posicion bloqueado Tipo Entero largo Entero Entero Entero Descripción Área 4D View Número del separador vertical Posición del separador en píxeles con respecto al último separador 0 = Libre; 1 = Bloqueado Descripción El comando PV ADD VERT SPLITTER crea un nuevo separador vertical en area, cuyo número se pasa en separador. El separador se crea a posicion píxeles del borde izquierdo del area. Si el parámetro bloqueado es igual a 1, el panel no puede cambiar el tamaño manualmente. Si es igual a 0, el panel puede ser redimensionado libremente por el usuario. Notas: La posición del panel incluye el ancho de los encabezados de líneas, que es posible recuperar utilizando el comando PV Get area property, pasando la constante pv row headers width como segundo parámetro. El ancho mínimo de un panel vertical es de 8 píxeles. Puede ver el número de paneles verticales en un área utilizando el comando PV Get area property, pasando la constante pv vert panel count como segundo parámetro. En este caso, PV Get area property devuelve 1 cuando no existe un separador vertical aún: el panel único es, en este caso, toda el área. Ejemplo Tome una hoja de cálculo que contiene más o menos veinte columnas: la primera contiene una referencia (por ejemplo, el código del producto), que debe permanecer absolutamente visible, independientemente de la celda modificada por el usuario. A continuación, se creará un panel vertical para mostrar esta columna A. C_LONGINT($ColumnWidth) `Ancho de la columna A (en píxeles) $ColumnWidth:=PV Get column width(Area;1) `Columna A PV ADD VERT SPLITTER(Area;1;$ColumnWidth;0) `Redimensionable Gestión de errores Si el comando PV ADD VERT SPLITTER se ejecuta cuando el área está en modo "panel congelado", se genera el error 92 (Ningún separador puede añadirse a paneles congelados). PV FREEZE PANES PV FREEZE PANES ( area ; modo ) Parámetro area modo Tipo Entero largo Entero largo Descripción Área 4D View 0=bloqueo de desplazamiento, 1=bloqueo de desplazamiento y de la modificación de los encabezados Descripción El comando PV FREEZE PANES congela el primer panel horizontal y/o el panel vertical del area 4D View. Para que el comando funcione, el area debe contener como máximo un separador vertical y/o un separador horizontal y no debe estar en modo "congelado". El parámetro modo se utiliza para especificar el tipo de bloqueo efectuado en el area: Si modo = 0, sólo se congela el desplazamiento al interior del panel. Este bloqueo se efectúa cuando utiliza el comando Inmovilizar paneles del menú Ver. Si modo = 1, el bloqueo se extiende: además de desplazamiento, el bloqueo afecta a las modificaciones de los encabezados (estilo, tamaño de fuente, etc.) y haciendo clic en una celda del panel selecciona la totalidad de la columna/linea. Si el area no contiene un separador de panel o si contiene más de un panel vertical u horizontal, el comando no hace nada y la variable OK toma el valor 0. Si el comando se ejecuta correctamente, la variable OK toma el valor 1 y el menú Ver se modifica en consecuencia: el comando Inmovilizar paneles se pone gris y el comando Liberar paneles se activa. Para cambiar el área de nuevo a modo "panel estándar", es necesario ejecutar el comando PV UNFREEZE PANES o que el usuario seleccione el comando de menú Liberar paneles. Ejemplo El siguiente código asegura que el area contiene dos paneles horizontales (un separador = dos paneles) y los congela en modo extendido: $nbpanes:=PV Get area property(area;pv hor pane count) If($nbpanes=2) PV FREEZE PANES(area;1) End if Variables y conjuntos del sistema Si el area no contiene separadores de panel o si contiene más de un divisor de panel vertical u horizontal, el comando no hace nada y la variable OK toma el valor 0. Si el comando se ejecuta correctamente, la variable OK toma el valor 1. PV Get hor pane property PV Get hor pane property ( area ; panel ; propiedad ) -> Resultado Parámetro area panel propiedad Resultado Tipo Entero largo Entero Entero largo Entero largo Descripción Área 4D View Número de panel horizontal Número de la propiedad Valor de la propiedad Descripción El comando PV Get hor pane property devuelve el valor actual de la propiedad del panel horizontal del area cuyo número es panel. Las siguientes constantes PV Propiedades panel se utilizan para definir las propiedades. Constante Tipo Valor pv pane lock scrollbar pv pane lock splitter pv pane view splitter cursor pv pane size in pixels pv pane first row pv pane rows count pv pane true scroll Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 0 1 2 3 4 5 6 Ejemplo Consulte el ejemplo del comando PV SET HOR PANE PROPERTY. PV Get vert pane property PV Get vert pane property ( area ; panel ; propiedad ) -> Resultado Parámetro area panel propiedad Resultado Tipo Entero largo Entero Entero largo Entero largo Descripción Área 4D View Número del panel vertical Número de la propiedad Valor de la propiedad Descripción El comando PV Get vert pane property devuelve el valor actual de la propiedad del panel vertical de area cuyo número es panel. Utilice las siguientes constantes del tema PV Propiedades panel para definir el parámetro propiedad: Constante Tipo Valor pv pane lock scrollbar pv pane lock splitter pv pane view splitter cursor pv pane size in pixels pv pane first column pv pane columns count pv pane true scroll Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 0 1 2 3 4 5 6 Ejemplo Consulte el ejemplo del comando PV SET VERT PANE PROPERTY. PV REMOVE HOR SPLITTER PV REMOVE HOR SPLITTER ( area ; separador ) Parámetro area separador Tipo Entero largo Entero Descripción Área 4D View Número del separador horizontal Descripción El comando PV REMOVE HOR SPLITTER elimina de area, el separador horizontal cuyo número se pasa en separador. Este comando permite eliminar todo tipo de panel horizontal, creado por el usuario o con la ayuda del comando PV ADD VERT SPLITTER. Nota: cuando la instrucción PV REMOVE HOR SPLITTER(area;1) se ejecuta en el contexto de un area congelada, el panel congelado se elimina y el área vuelve al modo "panel estándar". Ejemplo Borrar el último panel horizontal: C_LONGINT($HorPaneNum) `Número de páneles horizontales `Número de páneles horizontales $HorPaneNum:=PV Get area property(Area;pv hor pane count) PV REMOVE HOR SPLITTER(Area;$HorPaneNum) PV REMOVE VERT SPLITTER PV REMOVE VERT SPLITTER ( area ; separador ) Parámetro area separador Tipo Entero largo Entero Descripción Área 4D View Número del separador vertical Descripción El comando PV REMOVE VERT SPLITTER borra de area, el separador vertical pasado en separador. Este comando permite eliminar todo tipo de panel vertical, creado por el usuario o utilizando el comando PV ADD VERT SPLITTER. Nota: cuando la instrucción PV REMOVE VERT SPLITTER(area;1) se ejecuta en el contexto de un area congelada, el panel congelado se elimina y el área vuelve al modo "panel estándar". Ejemplo Borrar el último panel vertical: C_LONGINT($VertPaneNum) `Número de páneles verticales $VertPaneNum:=PV Get area property(Area;pv vert pane count) PV REMOVE VERT SPLITTER(Area;$VertPaneNum) PV SET HOR PANE PROPERTY PV SET HOR PANE PROPERTY ( area ; panel ; propiedad ; valor ) Parámetro area panel propiedad valor Tipo Entero largo Entero Entero largo Entero largo Descripción Área 4D View Número de panel horizontal Número de la propiedad Valor de la propiedad Descripción El comando PV SET HOR PANE PROPERTY permite fijar el valor de la propiedad del panel horizontal de area cuyo número es panel. Las siguientes constantes del tema PV Propiedades panel se utilizan para definir propiedad: Constante Tipo Valor pv pane lock scrollbar pv pane lock splitter pv pane view splitter cursor pv pane size in pixels pv pane first row pv pane rows count pv pane true scroll pv pane relative scroll Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 0 1 2 3 4 5 6 7 Ejemplo Aumentamos la altura del primer panel horizontal de 30 píxeles. C_LONGINT($Size) `Tamaño del primer panel horizontal $Size:=PV Get hor pane property(Area;1;pv pane size in pixels) PV SET HOR PANE PROPERTY(Area;1;pv pane size in pixels;$Size+30) `30 píxeles más PV SET VERT PANE PROPERTY PV SET VERT PANE PROPERTY ( area ; panel ; propiedad ; valor ) Parámetro area panel propiedad valor Tipo Entero largo Entero Entero largo Entero largo Descripción Área 4D View Número de panel vertical Número de propiedad Valor de la propiedad Descripción El comando PV SET VERT PANE PROPERTY permite fijar el valor de la propiedad del panel vertical de area cuyo número es panel. Las siguientes constantes del tema se utilizan para definir las propiedades: Constante Tipo Valor pv pane lock scrollbar pv pane lock splitter pv pane view splitter cursor pv pane size in pixels pv pane first column pv pane columns count pv pane true scroll pv pane relative scroll Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 0 1 2 3 4 5 6 7 Ejemplo 1 Alargamos el primer panel vertical 30 píxeles. C_LONGINT($Size) `Tamaño del primer panel vertical $Size:=PV Get vert pane property(Area;1;pv pane size in pixels) PV SET VERT PANE PROPERTY(Area;1;pv pane size in pixels;$Size+30) `30 píxeles más Ejemplo 2 Desplazamos el primer panel 50 píxeles desde el origen. PV SET VERT PANE PROPERTY(Area;1;pv pane true scroll;50) PV UNFREEZE PANES PV UNFREEZE PANES ( area ) Parámetro area Tipo Entero largo Descripción Área 4D View Descripción La comando PV UNFREEZE PANES cambia el area 4D View a modo "panel estándar", donde es posible añadir o eliminar paneles, mover su separador, etc. Para que este comando funcione, los paneles del area deben haber sido congelados previamente con el comando PV FREEZE PANES o con el comando Inmovilizar paneles del menú Ver. Si el area no contiene separadores o si no se ha congelado, el comando no hace nada y la variable OK toma el valor 0. Si el comando se ejecuta correctamente, la variable OK toma el valor 1 y el menú Ver se modifica en consecuencia: el comando Liberar los paneles pasa a gris y el comando Inmovilizar paneles se activa. Ejemplo El siguiente ejemplo descongela los paneles de un área si han sido congelados: PV GET COMMAND STATUS(area;pv cmd unfreeze panes;$status;$check;$name) If($status=1) PV UNFREEZE PANES(area) End if Variables y conjuntos del sistema Si el area no contiene un separador o si no se ha congelado, el comando no hace nada y la variable OK toma el valor 0. Si el comando se ejecuta correctamente, la variable OK toma el valor 1. PV Propiedad de celda PV Propiedad de celda, Introducción PV Get cell name PV GET CELL NAME LIST PV Get cell property PV Get range property PV SET CELL NAME PV SET CELL PROPERTY PV SET RANGE PROPERTY PV Propiedad de celda, Introducción Los comandos de este tema permiten definir u obtener las propiedades de una celda o de una selección de celdas: bloqueo, formato de visualización, color, etc. Tres comandos de este tema permiten igualmente la gestión de nombres de celdas: obtener la lista de los nombres existentes en un área 4D View o creación de nuevos nombres. Darle nombre a las celdas facilita su gestión: por ejemplo, es más fácil para el usuarios y para el desarrollador disponer de un menú pop-up que permite un posicionamiento en la celda "Total" y no en la celda ubicada en la columna Y, línea 384. PV Get cell name PV Get cell name ( area ; columna ; linea ) -> Resultado Parámetro area columna linea Resultado Tipo Entero largo Entero largo Entero largo Cadena Descripción El comando PV Get cell name devuelve el nombre de la celda. Ejemplo Consulte el ejemplo del comando PV SET CELL NAME. Descripción Área 4D View Número de columna de la celda Número de línea de la celda Nombre de la celda PV GET CELL NAME LIST PV GET CELL NAME LIST ( area ; columnas ; lineas ; nombres ) Parámetro area columnas lineas nombres Tipo Entero largo Array entero largo Array entero largo Array texto Descripción Área 4D View Array de los números de columnas de las celdas Array de los números de líneas de las celdas Nombres de las celdas Descripción El comando PV GET CELL NAME LIST recupera respectivamente en el arrays nombres, columnas, y lineas los nombres, números de columnas y números de líneas de las celdas a las cuales se les asignó un nombre. Ejemplo El siguiente método se encuentra en un módulo genérico que gestiona los nombres de las celdas. No hay un comando específico que permite el posicionamiento de una celda utilizando su nombre, pero simplemente utilice el comando PV GOTO CELL, como parámetro, un elemento de cada uno de los arrays $TabColumns y $TabRows arrays correspondientes a la posición del nombre deseado en $TabNames: C_TEXT($1) `Nombre de la celda a la cual ir C_LONGINT($Position) `Posición del nombre de la celda en la lista de nombres ARRAY LONGINT($TabColumns;0) `Array de columnas ARRAY LONGINT($TabRows;0) `Arrays de líneas ARRAY TEXT($TabNames;0) `Array de nombres de celdas `Recuperación de los nombres y de las coordenadas correspondientes PV GET CELL NAME LIST(Area;$TabColumns;$TabRows;$TabNames) $Position:=Find in array($TabNames;$1) `Buscamos nuestra celda If($Position#-1) `Existe PV GOTO CELL(Area;$TabColumns{$Position};$TabRows{$Position}) `La volvemos actual Else `Manejamos el posible error End if PV Get cell property PV Get cell property ( area ; columna ; linea ; propiedad ) -> Resultado Parámetro area columna linea propiedad Resultado Tipo Entero largo Entero largo Entero largo Entero largo Entero largo Descripción Área 4D View Número de columna de la celda Número de línea de la celda Número de la propiedad Valor de la propiedad Descripción El comando PV Get cell property devuelve el valor de la propiedad de la celda definida por los parámetros columna y linea. Utilice las constantes de los temas PV Propiedades estilo y PV Propiedades celda para definir el parámetro propiedad. Para mayor información sobre estas constantes, consulte la descripción del comando PV SET CELL PROPERTY. Ejemplo Ver el ejemplo del comando PV SET CELL PROPERTY. PV Get range property PV Get range property ( area ; izquierda ; superior ; derecha ; inferior ; propiedad ) -> Resultado Parámetro area izquierda superior derecha inferior propiedad Resultado Tipo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Descripción Área 4D View Número de columna de la celda izquierda Número de línea de la celda de arriba Número de la columna de la celda derecha Número de línea de la celda inferior Número de propiedad Valor de la propiedad Descripción El comando PV Get range property devuelve el valor de la propiedad de las celdas seleccionadas definidas por los parámetros izquierda, superior, derecha e inferior. Para más información sobre los rangos de celdas, consulte la sección PV Selección, Introducción. Para definir el parámetro de la propiedad, utilice las constantes de los temas PV Propiedades estilo y PV Propiedades celda. Para más información sobre estas constantes, consulte la descripción del comando PV SET RANGE PROPERTY. Valores mixtos Para algunas propiedades, el comando PV Get range property devuelve los valores 65535 o 255, que corresponden a las constantes de tipo "mixto" del tema PV Valores estilo. Por ejemplo, la instrucción: $value:=PV Get range property(area;column;row;pv style color back even) devuelve 65535 si las celdas de las líneas pares en el rango no tienen todas el mismo color de fondo. Este valor corresponde a la constante pv value format mixed del tema PV Valores estilo. Si todas las celdas de líneas pares del rango tienen el mismo color de fondo, se devuelve el número del color. Este principio aplica a las siguientes propiedades: Propiedad Valor/Constante devuelta si varía selección pv style format alpha pv style format num pv style format bool pv style format date time pv style format picture pv style color back even pv style color back odd pv style color text even pv style color text odd pv style color zero even pv style color zero odd pv style hor alignment pv style vert alignment pv style rotation 65535 (pv value format mixed) 65535 (pv value format mixed) 65535 (pv value format mixed) 65535 (pv value format mixed) 65535 (pv value format mixed) 65535 (pv value format mixed) 65535 (pv value format mixed) 65535 (pv value format mixed) 65535 (pv value format mixed) 65535 (pv value format mixed) 65535 (pv value format mixed) 255 (pv value hor alignment mixed) 255 (pv value vert alignment mixed) 255 (pv value rotation mixed) Ejemplo Ver el ejemplo del comando PV Get cell property. PV SET CELL NAME PV SET CELL NAME ( area ; columna ; linea ; nombre ; modo ) Parámetro area columna linea nombre modo Tipo Entero largo Entero largo Entero largo Cadena Entero largo Descripción Área 4D View Número de columna de la celda Número de línea de la celda Nombre de la celda 0 o se omite = Añadir el nombre, 1 = Remplazar el nombre Descripción El comando PV SET CELL NAME define el nombre de una celda definida por los parámetros columna y linea. Puede acceder a una celda, ya sea por su referencia absoluta, número de línea y columna, o por su nombre. Las fórmulas del área 4D View también se pueden referenciar a esta celda utilizando su nombre. Notas: Los tres primeros caracteres de un nombre de celda no deben ser números. El nombre de la celda no debe contener espacios (los espacios que figuran en el parámetro nombre serán truncados por el comando). El parámetro opcional modo se utiliza para definir la manera como debe definirse el nuevo nombre de la celda si la celda a tiene uno o más nombre(s). Puede utilizar las siguientes constantes del tema PV Propiedades celda: Constante Tipo Valor pv add name Entero largo 0 pv replace name Entero largo 1 Para borrar todos los nombres asociados a la celda, pase una cadena vacía ("") en nombre y pv replace name en modo. Ejemplo Este ejemplo permite dar un nombre a la celda actual. Si ya tiene un nombre, el usuario puede cambiarlo: C_TEXT($CellName) `Nombre a asignar a la celda C_LONGINT($Column) `Número de la columna de la celda actual C_LONGINT($Row) `Número de línea de la celda actual PV GET CURRENT CELL(Area;$Column;$Row) `Recuperación de las coordenadas de la celda actual $CellName:=PV Get cell name(Area;$Column;$Row) `Nombre posiblemente dado If($CellName="") `¿La celda ya tiene un nombre? $CellName:=Request("¿Qué nombre quiere asignar a esta celda?";"Nuevo nombre") If($CellName#"") `Se introdujo un nombre PV SET CELL NAME(Area;$Column;$Row;$CellName) `Asignación del nombre introducido End if Else `La celda actual ya tiene un nombre CONFIRM("Esta celda se llama "+$CellName+". ¿Desea renombrarla?";"Sí";"No") If(OK=1) `El usuario desea renombrar la celda PV SET CELL NAME(Area;$Column;$Row;$CellName;pv replace name) End if End if PV SET CELL PROPERTY PV SET CELL PROPERTY ( area ; columna ; linea ; propiedad ; valor ) Parámetro area columna linea propiedad valor Tipo Entero largo Entero largo Entero largo Entero largo Entero largo Descripción Área 4D View Número de la columna de la celda Número de línea de la celda Número de la propiedad Valor de la propiedad Descripción El comando PV SET CELL PROPERTY fija el valor de la propiedad de la celda definida por los parámetros columna y linea. Para definir el parámetro propiedad, puede utilizar: las constantes del tema PV Propiedades celda. En este caso, pase en el parámetro valor la altura o el ancho de la celda en píxeles. las constantes del tema PV Propiedades estilo. En este caso, para definir el parámetro valor, utilice las constantes de los temas PV Valores estilo, PV Estilo valores especiales, PV Formato fecha hora o PV Visualización imagen. La siguiente lista describe las diferentes constantes utilizadas en el parámetro propiedad y los valores asociados: Tema PV Propiedades celda Constante Tipo Valor Comentario pv cell height pv cell width Entero largo Entero largo 101 100 Permite definir la altura de la celda. Valores asociados: altura expresada en píxeles. Permite definir el ancho de la celda. Valores asociados: ancho expresado en píxeles Tema PV Propiedades estilo Constante Tipo Valor Comentario Permite activar la función de ajustar cuando el contenido de la celda excede el ancho de la misma. Valores asociados: constantes del tema PV Valores estilo. pv style automatic word wrap Entero largo 33 pv style based on Entero largo 4 pv style color back even pv style color back odd Entero largo 11 Entero largo 12 Entero largo 17 Entero largo 18 Entero largo 13 Entero largo 14 Entero largo 15 Entero largo 16 Entero largo 6 La celda utiliza el formato de visualización de texto cuyo número se pasa en el parámetro valor. Valores asociados: números de formatos de visualización. Entero largo 8 La celda utiliza el formato de visualización booleano cuyo número se pasa en el parámetro valor. Valores asociados: números de formatos de visualización. pv style color minus even pv style color minus odd pv style color text even pv style color text odd pv style color zero even pv style color zero odd pv style format alpha pv style format bool pv value on: el contenido de la celda se mueve automáticamente a la siguiente línea si es necesario. pv value off: el contenido de la celda pasa a las celdas adyacentes si es necesario. La celda utiliza como modelo la hoja de estilo cuyo número se pasa en el parámetro valor. Valores asociados: números de hojas de estilo o constantes del tema PV Estilo valores especiales. Permite fijar el color de fondo de la celda si la celda está ubicada en una línea par. Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color) o pv value none (tema PV Valores estilo) para no asociar ningún color. Permite fijar el color de fondo de la celda si está ubicada en una línea impar. Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color) o pv value none (tema PV Valores estilo) para no asociar ningún color. Permite fijar el color del texto contenido en la celda si la celda está ubicada en una línea par y su valor es negativo. Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color). Permite fijar el color del texto contenido en la celda si la celda está ubicada en una línea impar y su valor es negativo. Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color). Permite fijar el color del texto contenido en la celda si la celda está ubicada en una línea par. Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color). Permite fijar el color del texto contenido en la celda si la celda está ubicada en una línea impar. Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color). Permite definir el color del texto contenido en la celda si la celda está ubicada en una línea par y su valor es 0 (cero). Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color). Permite definir el color del texto contenido en la celda si la celda está ubicada en una línea impar y su valor es 0 (cero). Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color). La celda utiliza el formato de visualización fecha y hora cuyo número se pasa en el parámetro valor. Valores asociados: constantes del tema PV Formato fecha hora. pv style format date time Entero largo 9 pv Short: 02/21/02 pv Abbreviated: jue 21 feb 2002 pv Long: jueves 21 febrero 2002 pv Short2: 02/21/2002 pv Month Day Year: 21 febrero, 2002 pv Abbr Month Day Year: 21 feb, 2002 pv Day Name: jueves pv Day Number: 21 pv Month Name: febrero pv Month Number: 2 pv Year Number: 2002 pv Long H MM AM PM: jueves 21 febrero 2002 a las 12:30 PM pv Abbreviated H MM AM PM: jue 21 feb 2002 a las 12:30 PM pv Short HH MM SS: 02/21/02 a las 12:30:00 pv Month Day Year H MM AM PM: 21 febrero, 2002 a las12:30 PM pv Short2 Hour Min Sec: 21/02/2002 y 12 horas 30 minutos 0 segundos pv HH MM SS: 12:30:00 pv HH MM: 12:30 pv Hour Min Sec: 12 horas 30 minutos 0 segundos pv Hour Min: 12 horas 30 minutos pv HH MM AM PM: 12:30 PM Nota: dependiendo de la configuración actual de su sistema, el resultado obtenido puede ser diferente. Permite forzar la visualización de la celda en texto bruto, es decir sin el formato aplicado por 4D View en función de su contenido (número, fecha, texto, etc.). Valores asociados: constantes del tema PV Valores estilo. pv style format forced text Entero largo pv style format num Entero largo pv style format picture Entero largo pv style hidden Entero largo 32 7 10 pv value on: el contenido de la celda se muestra sin formato. pv value off (por defecto): la celda se muestra con formato automático en función de su contenido. La celda utiliza el formato de visualización numérico cuyo número se pasa en el parámetro valor. Valores asociados: números de formatos de visualización. Nota: los números de los formatos de visualización por defecto corresponden a su posición en el menú de selección del formato (caja de diálogo Formatos de celdas). Permite definir el formato de visualización de la imagen asociada a la celda. Valores asociados: constantes del tema PV Visualización imagen. pv mapping trunc non-centered pv mapping truncated centered pv mapping replicated pv mapping scaled to fit prop pv mapping scaled to fit pv mapping scaled centered prop Permite fijar el bloqueo y ocultamiento de celdas. El contenido de una celda bloqueada u oculta no se muestra y no puede modificarse, seleccionarse, etc. Valores asociados: constantes del tema PV Valores estilo. 1 pv value on: celda bloqueda y oculta. pv value off: celda no bloqueada ni oculta. Permite fijar la alineación horizontal del contenido de la celda. Valores asociados: constantes del tema PV Valores estilo. pv style hor alignment pv style locked Entero largo Entero largo 29 pv value hor alignment default: aplica la alineación horizontal por defecto a la celda. pv value hor alignment left: aplica una alineación horizontal a la izquierda a la celda. pv value hor alignment center: aplica una alineación horizontal centrada a la celda. pv value hor alignment right: aplica una alineación horizontal a la derecha a la celda. Permite fijar el bloqueo para el usuario de la celda. El contenido de una celda bloqueada no puede modificarse, seleccionarse, etc. Valores asociados: constantes del tema PV Valores estilo. 0 pv value on: celda bloqueada. pv value off: celda no bloqueada. Permite fijar la rotación del contenido de la celda. Valores asociados: constantes del tema PV Valores estilo. pv style rotation Entero largo 31 pv value rotation 0: no aplica rotación a la celda. pv value rotation 90: aplica una rotación de 90° a la izquierda. pv value rotation 180: aplica una rotación de 180°. pv value rotation 270: aplica una rotación de 270° a la izquierda. Permite aplicar una corrección ortográfica a la celda. Valores asociados: constantes del tema PV Valores estilo. pv style spellcheck Entero largo 2 pv value on: se aplica corrección ortográfica a la celda. pv value off: no se aplica corrección ortográfica a la celda. Permite fijar el atributo Negrita al texto de la celda. Valores asociados: constantes del tema PV Valores estilo. pv style text bold Entero largo 22 pv value on: aplica el atributo Negrita a la celda. pv value off: no aplica el atributo Negrita a la celda. Permite fijar el atributo Condensado al texto de la celda. Valores asociados: constantes del tema PV Valores estilo. pv style text condensed Entero largo 27 pv value on: aplica el atributo Condensado a la celda. pv value off: no aplica el atributo Condensado a la celda. Permite fijar el atributo Extendido del texto de la celda. Valores asociados: constantes del tema PV Style values. pv style text Entero 28 extended largo pv style text face pv style text font Entero largo Entero largo pv style text italic Entero largo 28 21 19 pv value on: aplica el atributo Extendido a la celda. pv value off: no aplica el atributo Extendido a la celda. Permite fijar la hoja de estilo de la celda. Valores asociados: números de hojas d estilo o constantes del tema PV Style special values. Permite fijar la fuente de la celda. Valores asociados: números de fuentes (ver los comandos PV Add font y PV GET FONT LIST). Permite fijar el atributo Itálica del texto de la celda. Valores asociados: constantes del tema PV Style values. 23 pv value on: aplica el atributo Itálica a la celda. pv value off: no aplica el atributo Itálica a la celda. Permite fijar el atributo Relieve del texto de la celda. Valores asociados: constantes del tema PV Style values. pv style text outline Entero largo 25 pv value on: aplica el atributo Relieve a la celda. pv value off: no aplica el atributo Relieve a la celda. Permite fijar el atributo Sombra al texto de la celda. Valores asociados: constantes del tema PV Valores estilo. pv style text shadow Entero largo 26 pv style text size Entero largo 20 pv value on: aplica el atributo Sombra a la celda. pv value off: no aplica el atributo Sombra a la celda. Permite definir el tamaño de la fuente de la celda. Valores asociados: tamaño en píxeles. Permite fijar el atributo Subrayado para el texto de la celda. Valores asociados: constantes del tema PV Valores estilo. pv style text underline Entero largo 24 pv value on: aplica el atributo Subrayado a la celda. pv value off: no aplica el atributo Subrayado a la celda. Permite adaptar el tamaño de la celda en función de la altura de la imagen asociada. Valores asociados: constantes del tema PV Valores estilo. pv style use picture height pv style vert alignment Entero largo 3 pv value on: el tamaño de la celda se adapta al tamaño de la imagen que contiene. Si ninguna imagen está relacionada, la celda no se redimensiona. pv value off: el tamaño de la celda no varía en función del tamaño de la imagen asociada. Permite fijar la alineación vertical del contenido de la celda. Valores asociados: constantes del tema PV Valores estilo. Entero largo 30 pv value vert alignment top: aplica una alineación superior a la celda. pv value vert alignment center: aplica una alineación vertical centrada a la celda. pv value vert alignment bottom: aplica una alineación inferior vertical a la celda. Nota: para definir, en una selección, la propiedad de un rango de celdas, puede utilizar el comando PV SET RANGE PROPERTY. Ejemplo Buscamos todas las celdas que contienen una fórmula que hace referencia a la celda D20, para pasar a bloquearlas o desbloquearlas. C_LONGINT($ProtectedCell) `Para bloquear o desbloquear las celdas C_LONGINT($EndColumn;$EndRow) `Para guardar los límites inferior/derecha C_LONGINT($StartColumn;$StartRow) `Para guardar los límites superior/inferior C_LONGINT($Column;$Row) `Para los bucles en las coordenadas ARRAY ARRAY ARRAY ARRAY LONGINT($LeftTab;0) LONGINT($UpperTab;0) LONGINT($RightTab;0) LONGINT($LowerTab;0) PV FIND ALL(Area;"$D$20";0;0) `Celdas que contienen "$D$20" `Coordenadas de las celdas seleccionadas PV GET SELECTED RANGES LIST(Area;$LeftTab;$UpperTab;$RightTab;$LowerTab) If(Size of array($LeftTab)#0) `¿Hay fórmulas que correspondan al criterio de búsqueda? SORT ARRAY($LeftTab;$UpperTab;$RightTab;$LowerTab;>) $StartColumn:=$LeftTab{1} `Recuperación de la celda más a la izquierda SORT ARRAY($UpperTab;$LeftTab;$RightTab;$LowerTab;>) $StartRow:=$UpperTab{1} `Recuperación de la celda más a arriba SORT ARRAY($RightTab;$UpperTab;$LeftTab;$LowerTab;>) $EndColumn:=$RightTab{Size of array($RightTab)} `Recuperación de la celda más a la derecha SORT ARRAY($LowerTab;$RightTab;$UpperTab;$LeftTab;>) $EndRow:=$LowerTab{Size of array($LowerTab)} `Recuperación de la celda más abajo `Revisamos la selección For($Column;$StartCol;$EndCol) For($Row;$StartRow;$EndRow) If(Position("$D$20";PV Get cell formula(Area;$Column;$Row))>0) `¿Bloqueado? $ProtectedCell:=PV Get cell property(Area;$Column;$Row;pv style locked) `Cambio de bloqueado/desbloqueado PV SET CELL PROPERTY(Area;$Column;$Row;pv style locked;Num($ProtectedCell=0)) `0 <> 1 End if End for End for End if `¿Rango(s) seleccionados? PV SET RANGE PROPERTY PV SET RANGE PROPERTY ( area ; izquierda ; superior ; derecha ; inferior ; propiedad ; valor ) Parámetro area izquierda superior derecha inferior propiedad valor Tipo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Descripción Área 4D View Número de columna de la celda izquierda Número de línea de la celda superior Número de la columna de la celda derecha Número de línea de la celda inferior Número de propiedad Valor de la propiedad Descripción El comando PV SET RANGE PROPERTY fija el valor de la propiedad del rango de celdas definido por los parámetros izquierda, superior, derecha e inferior. Para mayor información sobre los rangos de celdas, consulte la sección PV Selección, Introducción. Para definir el parámetro propiedad, puede utilizar: las constantes del tema PV Propiedades celda. En este caso, pase en el parámetro valor la altura o el ancho de la celda en píxeles. las constantes del tema PV Propiedades estilo. En este caso, para definir el parámetro valor, utilice las constantes de los temas PV Valores estilo, PV Estilo valores especiales, PV Formato fecha hora o PV Visualización imagen. La siguiente lista describe las diferentes constantes utilizadas en el parámetro propiedad y los valores asociados: Tema PV Propiedades celda Constante Tipo Valor Comentario pv cell height pv cell width Entero largo Entero largo 101 100 Permite definir la altura de la celda. Valores asociados: altura expresada en píxeles. Permite definir el ancho de la celda. Valores asociados: ancho expresado en píxeles Tema PV Propiedades estilo Constante Tipo Valor Comentario Permite activar la función de ajustar cuando el contenido de la celda excede el ancho de la misma. Valores asociados: constantes del tema PV Valores estilo. pv style automatic word wrap Entero largo 33 pv style based on Entero largo 4 pv style color back even pv style color back odd Entero largo 11 Entero largo 12 Entero largo 17 Entero largo 18 Entero largo 13 Entero largo 14 Entero largo 15 Entero largo 16 Entero largo 6 La celda utiliza el formato de visualización de texto cuyo número se pasa en el parámetro valor. Valores asociados: números de formatos de visualización. Entero largo 8 La celda utiliza el formato de visualización booleano cuyo número se pasa en el parámetro valor. Valores asociados: números de formatos de visualización. pv style color minus even pv style color minus odd pv style color text even pv style color text odd pv style color zero even pv style color zero odd pv style format alpha pv style format bool pv value on: el contenido de la celda se mueve automáticamente a la siguiente línea si es necesario. pv value off: el contenido de la celda pasa a las celdas adyacentes si es necesario. La celda utiliza como modelo la hoja de estilo cuyo número se pasa en el parámetro valor. Valores asociados: números de hojas de estilo o constantes del tema PV Estilo valores especiales. Permite fijar el color de fondo de la celda si la celda está ubicada en una línea par. Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color) o pv value none (tema PV Valores estilo) para no asociar ningún color. Permite fijar el color de fondo de la celda si está ubicada en una línea impar. Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color) o pv value none (tema PV Valores estilo) para no asociar ningún color. Permite fijar el color del texto contenido en la celda si la celda está ubicada en una línea par y su valor es negativo. Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color). Permite fijar el color del texto contenido en la celda si la celda está ubicada en una línea impar y su valor es negativo. Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color). Permite fijar el color del texto contenido en la celda si la celda está ubicada en una línea par. Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color). Permite fijar el color del texto contenido en la celda si la celda está ubicada en una línea impar. Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color). Permite definir el color del texto contenido en la celda si la celda está ubicada en una línea par y su valor es 0 (cero). Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color). Permite definir el color del texto contenido en la celda si la celda está ubicada en una línea impar y su valor es 0 (cero). Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color). La celda utiliza el formato de visualización fecha y hora cuyo número se pasa en el parámetro valor. Valores asociados: constantes del tema PV Formato fecha hora. pv style format date time Entero largo 9 pv Short: 02/21/02 pv Abbreviated: jue 21 feb 2002 pv Long: jueves 21 febrero 2002 pv Short2: 02/21/2002 pv Month Day Year: 21 febrero, 2002 pv Abbr Month Day Year: 21 feb, 2002 pv Day Name: jueves pv Day Number: 21 pv Month Name: febrero pv Month Number: 2 pv Year Number: 2002 pv Long H MM AM PM: jueves 21 febrero 2002 a las 12:30 PM pv Abbreviated H MM AM PM: jue 21 feb 2002 a las 12:30 PM pv Short HH MM SS: 02/21/02 a las 12:30:00 pv Month Day Year H MM AM PM: 21 febrero, 2002 a las12:30 PM pv Short2 Hour Min Sec: 21/02/2002 y 12 horas 30 minutos 0 segundos pv HH MM SS: 12:30:00 pv HH MM: 12:30 pv Hour Min Sec: 12 horas 30 minutos 0 segundos pv Hour Min: 12 horas 30 minutos pv HH MM AM PM: 12:30 PM Nota: dependiendo de la configuración actual de su sistema, el resultado obtenido puede ser diferente. Permite forzar la visualización de la celda en texto bruto, es decir sin el formato aplicado por 4D View en función de su contenido (número, fecha, texto, etc.). Valores asociados: constantes del tema PV Valores estilo. pv style format forced text Entero largo pv style format num Entero largo pv style format picture Entero largo pv style hidden Entero largo 32 7 10 pv value on: el contenido de la celda se muestra sin formato. pv value off (por defecto): la celda se muestra con formato automático en función de su contenido. La celda utiliza el formato de visualización numérico cuyo número se pasa en el parámetro valor. Valores asociados: números de formatos de visualización. Nota: los números de los formatos de visualización por defecto corresponden a su posición en el menú de selección del formato (caja de diálogo Formatos de celdas). Permite definir el formato de visualización de la imagen asociada a la celda. Valores asociados: constantes del tema PV Visualización imagen. pv mapping trunc non-centered pv mapping truncated centered pv mapping replicated pv mapping scaled to fit prop pv mapping scaled to fit pv mapping scaled centered prop Permite fijar el bloqueo y ocultamiento de celdas. El contenido de una celda bloqueada u oculta no se muestra y no puede modificarse, seleccionarse, etc. Valores asociados: constantes del tema PV Valores estilo. 1 pv value on: celda bloqueda y oculta. pv value off: celda no bloqueada ni oculta. Permite fijar la alineación horizontal del contenido de la celda. Valores asociados: constantes del tema PV Valores estilo. pv style hor alignment pv style locked Entero largo Entero largo 29 pv value hor alignment default: aplica la alineación horizontal por defecto a la celda. pv value hor alignment left: aplica una alineación horizontal a la izquierda a la celda. pv value hor alignment center: aplica una alineación horizontal centrada a la celda. pv value hor alignment right: aplica una alineación horizontal a la derecha a la celda. Permite fijar el bloqueo para el usuario de la celda. El contenido de una celda bloqueada no puede modificarse, seleccionarse, etc. Valores asociados: constantes del tema PV Valores estilo. 0 pv value on: celda bloqueada. pv value off: celda no bloqueada. Permite fijar la rotación del contenido de la celda. Valores asociados: constantes del tema PV Valores estilo. pv style rotation Entero largo 31 pv value rotation 0: no aplica rotación a la celda. pv value rotation 90: aplica una rotación de 90° a la izquierda. pv value rotation 180: aplica una rotación de 180°. pv value rotation 270: aplica una rotación de 270° a la izquierda. Permite aplicar una corrección ortográfica a la celda. Valores asociados: constantes del tema PV Valores estilo. pv style spellcheck Entero largo 2 pv value on: se aplica corrección ortográfica a la celda. pv value off: no se aplica corrección ortográfica a la celda. Permite fijar el atributo Negrita al texto de la celda. Valores asociados: constantes del tema PV Valores estilo. pv style text bold Entero largo 22 pv value on: aplica el atributo Negrita a la celda. pv value off: no aplica el atributo Negrita a la celda. Permite fijar el atributo Condensado al texto de la celda. Valores asociados: constantes del tema PV Valores estilo. pv style text condensed Entero largo 27 pv value on: aplica el atributo Condensado a la celda. pv value off: no aplica el atributo Condensado a la celda. Permite fijar el atributo Extendido del texto de la celda. Valores asociados: constantes del tema PV Style values. pv style text Entero 28 extended largo pv style text face pv style text font Entero largo Entero largo pv style text italic Entero largo 28 21 19 pv value on: aplica el atributo Extendido a la celda. pv value off: no aplica el atributo Extendido a la celda. Permite fijar la hoja de estilo de la celda. Valores asociados: números de hojas d estilo o constantes del tema PV Style special values. Permite fijar la fuente de la celda. Valores asociados: números de fuentes (ver los comandos PV Add font y PV GET FONT LIST). Permite fijar el atributo Itálica del texto de la celda. Valores asociados: constantes del tema PV Style values. 23 pv value on: aplica el atributo Itálica a la celda. pv value off: no aplica el atributo Itálica a la celda. Permite fijar el atributo Relieve del texto de la celda. Valores asociados: constantes del tema PV Style values. pv style text outline Entero largo 25 pv value on: aplica el atributo Relieve a la celda. pv value off: no aplica el atributo Relieve a la celda. Permite fijar el atributo Sombra al texto de la celda. Valores asociados: constantes del tema PV Valores estilo. pv style text shadow Entero largo 26 pv style text size Entero largo 20 pv value on: aplica el atributo Sombra a la celda. pv value off: no aplica el atributo Sombra a la celda. Permite definir el tamaño de la fuente de la celda. Valores asociados: tamaño en píxeles. Permite fijar el atributo Subrayado para el texto de la celda. Valores asociados: constantes del tema PV Valores estilo. pv style text underline Entero largo 24 pv value on: aplica el atributo Subrayado a la celda. pv value off: no aplica el atributo Subrayado a la celda. Permite adaptar el tamaño de la celda en función de la altura de la imagen asociada. Valores asociados: constantes del tema PV Valores estilo. pv style use picture height pv style vert alignment Entero largo 3 pv value on: el tamaño de la celda se adapta al tamaño de la imagen que contiene. Si ninguna imagen está relacionada, la celda no se redimensiona. pv value off: el tamaño de la celda no varía en función del tamaño de la imagen asociada. Permite fijar la alineación vertical del contenido de la celda. Valores asociados: constantes del tema PV Valores estilo. Entero largo 30 pv value vert alignment top: aplica una alineación superior a la celda. pv value vert alignment center: aplica una alineación vertical centrada a la celda. pv value vert alignment bottom: aplica una alineación inferior vertical a la celda. Nota: para definir las propiedades de una sola celda, puede utilizar el comando PV SET CELL PROPERTY. Ejemplo Hagamos que todas las celdas que contienen una fórmula hagan referencia a la celda D20. ARRAY LONGINT($LeftArray;0) ARRAY LONGINT($TopArray;0) ARRAY LONGINT($RightArray;0) ARRAY LONGINT($BottomArray;0) C_INTEGER($Index) PV FIND ALL(Area;"$D$20";0;0) `Fórmulas que contienen "$D$20" `Coordenadas de las celdas seleccionadas PV GET SELECTED RANGES LIST(Area;$LeftArray;$TopArray;$RightArray;$BottomArray) `Poner en negrita For($Index;1;Size of array($LeftArray)) `Rangos de barridos PV SET RANGE PROPERTY(Area;$LeftArray{$Index};$TopArray{$Index};$RightArray{$Index};$BottomArray{$Index};pv style text bold;pv value on) End for PV Propiedad Plugin PV Propiedad plugin, Introducción PV Get plugin property PV SET PLUGIN PROPERTY PV Propiedad plugin, Introducción Los comandos de este tema permiten definir y leer el valor actual de las propiedades genéricas del plug-in 4D View. Estas propiedades genéricas incluyen el número de líneas y de columnas que contiene por defecto en las nuevas áreas 4D View, el tamaño mínimo de las áreas incluidas y la ubicación de lectura/escritura de las plantillas 4D View. PV Get plugin property PV Get plugin property ( propiedad ) -> Resultado Parámetro propiedad Resultado Tipo Entero largo Entero largo Descripción Número de la propiedad Valor de la propiedad Descripción El comando PV Get plugin property devuelve el valor actual de la propiedad genérica del plug-in 4D View. Utilice las constantes del tema PV Propiedades plugin para definir el parámetro propiedad. Para mayor información sobre estas constantes, consulte la descripción del comando PV SET PLUGIN PROPERTY. Ejemplo Queremos conocer el ancho (en píxeles) por debajo del cual las áreas 4D View incluidas se transforman en botones: C_LONGINT($vAncho) $vAncho:=PV Get plugin property(pv button width) ALERT("El ancho mínimo de las áreas 4D View es de "+String($vWidth)+" píxeles.") PV SET PLUGIN PROPERTY PV SET PLUGIN PROPERTY ( propiedad ; valor ) Parámetro propiedad valor Tipo Entero largo Entero largo Descripción Número de la propiedad Valor de la propiedad Descripción El comando PV SET PLUGIN PROPERTY permite definir el valor de la propiedad genérica del plug-in 4D View. Este comando se puede colocar, por ejemplo, en el Método base On Startup. La propiedad definida se aplica inmediatamente a todas las nuevas áreas 4D View. Utilice las constantes del tema PV Propiedades plugin para definir el parámetro propiedad. Pase el valor a asignar a la propiedad en el parámetro valor. Su contenido dependerá de la propiedad definida. La siguiente tabla detalla las constantes que se pueden utilizar como parámetro propiedad y valor: Constante Tipo Valor pv button height pv button width pv confirm convert dialog pv default columns count pv default rows count pv load template on server pv write template on server Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 5 4 6 2 3 1 0 Ejemplo Queremos que todas las áreas 4D View creadas en la base estén compuestas inicialmente de 100 columnas y 50 líneas: PV SET PLUGIN PROPERTY(pv default columns count;100) PV SET PLUGIN PROPERTY(pv default rows count;50) PV Selección PV Selección, Introducción PV GET SELECTED RANGES LIST PV Is all selected PV Is cell selected PV Is column selected PV Is range selected PV Is row selected PV SELECT ALL PV SELECT CELL PV SELECT COLUMNS PV SELECT RANGE PV SELECT RANGES LIST PV SELECT ROWS PV Selección, Introducción Los comandos de este tema permiten: Seleccionar un conjunto de celdas (selección adyacente o no), línea(s) o columna(s) Conocer la selección actual de un área 4D View. Selecciones y rangos de celdas En función de los comandos, las selecciones de celdas pueden ser adyacentes (rangos) o aisladas. Un rango de celdas es un conjunto de celdas contiguas, por ejemplo, A1, A2, B1, B2. Un rango no está necesariamente seleccionado. Una selección de celdas es el conjunto de celdas en una selección resaltada, por ejemplo, A1, A2, B1, B2, C15. Una selección puede contener uno o más rangos, así como una o más celdas aisladas, o simplemente una o más celdas aisladas. Cuando se abre una nueva área 4D View, el cursor se encuentra en una celda, como en cualquier hoja de cálculo, pero no se selecciona si el usuario o el desarrollador no lo especifican explícitamente con un clic o con otra acción/comando de selección. PV GET SELECTED RANGES LIST PV GET SELECTED RANGES LIST ( area ; izq ; arriba ; derecha ; abajo ) Parámetro area izq arriba derecha abajo Tipo Entero largo Array entero largo Array entero largo Array entero largo Array entero largo Descripción Área 4D View Array de números de columnas de celdas de la izquierda Array de números de líneas de las celdas de arriba Array de números de columnas de celdas de la derecha Array de números de líneas de celdas de abajo Descripción El comando PV GET SELECTED RANGES LIST, recupera en los arrays pasados como parámetros, las coordenadas de los rangos seleccionados en area. Ejemplo Consulte los ejemplos de los comandos PV SET CELL PROPERTY, PV SET RANGE PROPERTY, PV SELECT CELL y PV SELECT RANGE. PV Is all selected PV Is all selected ( area ) -> resultado Parámetro area resultado Tipo Entero largo Entero Descripción Área 4D View 0 = No seleccionado, 1 = Seleccionado Descripción El comando PV Is all selected devuelve 1 si el conjunto de celdas de area está seleccionado. De lo contrario, devuelve 0. PV Is cell selected PV Is cell selected ( area ; columna ; linea ) -> resultado Parámetro area columna linea resultado Tipo Entero largo Entero largo Entero largo Entero Descripción Área 4D View Número de columna Número de línea 0 = No seleccionado, 1 = Seleccionado Descripción El comando PV Is cell selected devuelve 1 si la celda de area designada por columna y linea hace parte de la selección actual, de lo contrario se devuelve 0. Ejemplo Consulte el ejemplo del comando PV SELECT CELL. PV Is column selected PV Is column selected ( area ; columna ) -> resultado Parámetro area columna resultado Tipo Entero largo Entero largo Entero Descripción Área 4D View Número de la columna 0 = No seleccionado, 1 = Seleccionado Descripción El comando PV Is column selected devuelve 1 si la columna de area número columna hace parte de la selección actual, de lo contrario devuelve 0. Ejemplo Consulte el ejemplo del comando PV SELECT COLUMNS. PV Is range selected PV Is range selected ( area ; izquierda ; superior ; derecha ; inferior ) -> resultado Parámetro area izquierda superior derecha inferior resultado Tipo Entero largo Entero largo Entero largo Entero largo Entero largo Entero Descripción Área 4D View Número de columna de la celda izquierda Número de línea de la celda de arriba Número de la columna de la celda derecha Número de línea de la celda inferior 0 = No seleccionado, 1 = Seleccionado Descripción El comando PV Is range selected devuelve 1 si el rango de celdas definido por izquierda, superior, derecha e inferior es parte de la selección actual, de los contrario devuelve 0. Ejemplo Consulte el ejemplo del comando PV SELECT RANGE. PV Is row selected PV Is row selected ( area ; linea ) -> resultado Parámetro area linea resultado Tipo Entero largo Entero largo Entero Descripción Área 4D View Número de línea 0 = No seleccionado, 1 = Seleccionado Descripción El comando PV Is row selected devuelve 1 si la linea de area número linea hace parte de la selección actual, de lo contrario devuelve 0. Ejemplo Consulte el ejemplo del comando PV SELECT COLUMNS. PV SELECT ALL PV SELECT ALL ( area ; seleccion ) Parámetro area seleccion Tipo Entero largo Entero Descripción Área 4D View Opción de selección: 0 = Selección, 1 = Deselección Descripción El comando PV SELECT ALL selecciona o deselecciona todas las celdas de area. Por defecto, si el parámetro seleccion no se pasa o vale 0, todas las celdas del área se seleccionan. Si pasa 1 en seleccion, el comando tiene el efecto contrario: todas las celdas del área se deseleccionan. PV SELECT CELL PV SELECT CELL ( area ; columna ; linea ; accion ) Parámetro area columna linea accion Tipo Entero largo Entero largo Entero largo Entero Descripción Área 4D View Número de columna Número de línea Acción de selección Descripción El comando PV SELECT CELL selecciona la celda ubicada en la intersección de columna y linea. El parámetro accion permite definir la acción de selección a ejecutar cuando una selección de las celdas ya existe: se puede crear una nueva selección, añadir la celda a la selección o eliminar la celda de la selección. Utilice las constantes del tema PV Acciones de selección para definir accion: Constante Tipo Valor pv selection add pv selection reduce pv selection set Entero largo Entero largo Entero largo 1 2 0 Ejemplo Queremos seleccionar la celda E2. La acción de selección depende del contexto (celdas ya seleccionadas): `Arrays que definen la selección existente: ARRAY LONGINT($Left;0) `Números de columna de la celda a la izquierda ARRAY LONGINT($Top;0) `Números de línea de la celda superior ARRAY LONGINT($Right;0) `Números de columna de la celda a la derecha ARRAY LONGINT($Bottom;0) `Números de líneas de la celda inferior PV GET SELECTED RANGES LIST(Area;$Left;$Top;$Right;$Bottom) `Obtener los rangos seleccionados si lo hay If(Size of array($Left)=0) `No hay selección actual PV SELECT CELL(Area;5;2;pv selection set) `Definir la celda E2 como selección actual Else PV SELECT CELL(Area;5;2;pv selection add) `Añadir la celda E2 a la selección actual End if PV SELECT COLUMNS PV SELECT COLUMNS ( area ; primera ; ultima ; accion ) Parámetro area primera ultima accion Tipo Entero largo Entero largo Entero largo Entero Descripción Área 4D View Primer columna seleccionada Última columna seleccionada Acción de selección Descripción El comando PV SELECT COLUMNS selecciona las columnas de area situadas entre las columnas número primera y ultima. El parámetro accion permite definir la acción de selección que quiere ejecutar cuando una selección de columnas ya existe: puede crear una nueva selección, añadir las columnas a la selección, reducir la selección o eliminar columnas de la selección. accion se define utilizando las constantes del tema PV Acciones de selección: Constante Tipo Valor pv selection add pv selection reduce pv selection set Entero largo Entero largo Entero largo 1 2 0 Ejemplo Queremos seleccionar la columna y la línea de la celda actual. C_LONGINT($Column;$Row) `Para obtener las coordenadas C_INTEGER($ColSelect;$RowSelect) `Para saber si la columna/linea fueron seleccionadas PV GET CURRENT CELL(Area;$Column;$Row) `Obteniendo las coordenadas de la celda actual $ColSelect:=PV Is column selected(Area;$Column) $RowSelect:=PV Is row selected(Area;$Row) If($ColSelect=0) `La columna no está seleccionada PV SELECT COLUMNS(Area;$Column;$Column;pv selection add) `La seleccionamos End if If($RowSelect=0) `La linea no está seleccionada PV SELECT ROWS(Area;$Row;$Row;pv selection add) `La seleccionamos End if PV SELECT RANGE PV SELECT RANGE ( area ; izquierda ; superior ; derecha ; inferior ; accion ) Parámetro area izquierda superior derecha inferior accion Tipo Entero largo Entero largo Entero largo Entero largo Entero largo Entero Descripción Área 4D View Número de columna de la celda izquierda Número de línea de la celda de arriba Número de la columna de la celda derecha Número de línea de la celda inferior Acción de selección Descripción El comando PV SELECT RANGE selecciona el rango de celdas definidas por la izquierda, superior, derecha e inferior. El parámetro accion permite definir la acción de selección a ejecutar cuando una selección de celdas ya existe: puede añadir el rango a la selección, reducir la selección al rango o eliminar el rango de la selección. accion se define utilizando las constantes PV Acciones de selección: Constante Tipo Valor pv selection add pv selection reduce pv selection set Entero largo Entero largo Entero largo 1 2 0 Ejemplo 1 Queremos seleccionar el rango de las celdas E2, E3, F2, F3. La acción de selección depende del contexto (celdas ya seleccionadas): `Los ARRAY ARRAY ARRAY ARRAY arrays definen la selección actual: LONGINT($Left;0) `Números de columna de la celda a la izquierda LONGINT($Top;0) `Números de línea de la celda superior LONGINT($Right;0) `Números de columna de la celda a la derecha LONGINT($Bottom;0) `Número de línea de celda inferior PV GET SELECTED RANGES LIST(Area;$Left;$Top;$Right;$Bottom) `Obtener rangos seleccionados si los hay If(Size of array($Left)=0) `No hay selección actual PV SELECT RANGE(Area;5;2;6;3;pv selection set) `Definir el rango como selección actual Else PV SELECT RANGE(Area;5;2;6;3;pv selection add) `Añadir el rango a la selección actual End if Ejemplo 2 Este ejemplo permite seleccionar o deseleccionar la celda en la cual el usuario efectúa Alt+clic (Windows) u Opción+clic (Mac OS), dependiendo de si pertenece o no a la selección. `Definición del rango de selección actual PV SELECT RANGE(area;1;5;2;9;pv selection set) `Llamada de un método cuando se hace clic en el área PV ON EVENT(area;pv on clicked;"ExampleView") `Método ExampleView C_LONGINT($1;$2;$3;$4;$5) If(($2=pv on clicked) & ($3=2048)) `Alt + clic u Opcion + clic If(PV Is cell selected(area;$4;$5)=1) `Si la celda es parte de la selección, se retira de la selección PV SELECT RANGE(area;$4;$5;$4;$5;pv selection reduce) Else `Si la celda no hace parte de la selecciónn, se añade a la selección PV SELECT RANGE(area;$4;$5;$4;$5;pv selection add) End if End if PV SELECT RANGES LIST PV SELECT RANGES LIST ( area ; izquierda ; arriba ; derecha ; abajo ; accion ) Parámetro area izquierda arriba derecha abajo accion Tipo Entero largo Array Array Array Array Entero Descripción Área 4D View Números de columnas de las celdas a la izquierda Números de columnas de las celdas de arriba Números de columnas de las celdas a la derecha Números de columnas de las celdas de abajo Acción de selección Descripción Este comando es similar al comando PV SELECT RANGE, excepto que aplica a varios rangos de celdas cuyas coordenadas se guardan en los arrays izquierda, arriba, derecha y abajo. accion se define con las constantes PV Acciones de selección: Constante Tipo Valor pv selection add pv selection reduce pv selection set Entero largo Entero largo Entero largo 1 2 0 Ejemplo Provoquemos por programación la selección de cinco rangos de tamaños crecientes. C_INTEGER($Index) `Índice de bucle C_INTEGER($Number) `Número de rangos $Number:=5 `El grupo de cinco en el rango ARRAY LONGINT($Left;5) ARRAY LONGINT($Top;5) ARRAY LONGINT($Right;5) ARRAY LONGINT($Bottom;5) `Inicialización For($Index;1;$Number) $Left{$Index}:=$Index*3 `Límites izquierda $Top{$Index}:=$Index*6 `Límites arriba $Right{$Index}:=$Index*4 `Límites derecha $Bottom{$Index}:=$Index*7 `Límites abajo End for PV SELECT RANGES LIST(Area;$Left;$Top;$Right;$Bottom;pv selection add) PV SELECT ROWS PV SELECT ROWS ( area ; primera ; ultima ; accion ) Parámetro area primera ultima accion Tipo Entero largo Entero largo Entero largo Entero Descripción Área 4D View Primera línea seleccionada Última línea seleccionada Acción de selección Descripción El comando PV SELECT ROWS selecciona las líneas de area ubicadas entre las líneas número primera y ultima. El parámetro accion permite definir la acción de selección a ejecutar cuando una selección de líneas ya existe: puede añadir líneas a la selección o reducir líneas de la selección. accion se define utilizando las constantes : Constante Tipo Valor pv selection add pv selection reduce pv selection set Entero largo Entero largo Entero largo 1 2 0 Ejemplo Ver el ejemplo del comando PV SELECT COLUMNS. PV Utilitarios PV Utilitarios, Introducción PV Color to index PV COLOR TO RGB PV Get window title PV Index to color PV RGB to color PV SET WINDOW TITLE PV Utilitarios, Introducción Los comandos y funciones de este tema ofrecen diversas herramientas para la gestión de diferentes sistemas de referenciación de los colores, así como también para leer y definir el título de las ventanas exteriores. PV Color to index PV Color to index ( color ) -> resultado Parámetro color resultado Tipo Entero largo Entero Descripción Número de color Número de color indexado Descripción El comando PV Color to index devuelve el número del color RGB especificado en la paleta 4D por defecto. Los colores indexados 4D van de 0 a 255. Consulte las descripciones de los siguientes comandos 4D para obtener información detallada sobre los colores RGB utilizados por 4D: OBJECT SET RGB COLORS para el sistema de colores RGB utilizado por 4D. OBJECT SET COLOR para la paleta 4D de colores indexados. Nota: el código interno de colores de 4D View es del tipo RGB, que se reversa con respecto al código RGB de 4D; sin embargo, los principios de uso son idénticos. Ejemplo Este método establece en la celda A1 el color de fondo definido por los valores RGB (0 a 255) introducido en las celdas A2, A3 y A4. La celda C1 muestra el número de color indexado más cercano en la paleta 4D, con el color de fondo ad hoc, mientras que las celdas C2, C3, C4 muestran los valores RGB correspondientes a este color indexado, permitiéndole visualizar la diferencia entre los valores iniciales. C_LONGINT($Color) `Color de fondo de la celda A1 (RGB) luego color después de indexación C_INTEGER($Rojo;$Verde;$Azul) `Colores RGB al inicio y al terminar C_INTEGER($Index) `Número en la paleta 4D PV PV PV PV SET SET SET SET CELL CELL CELL CELL STRING STRING STRING STRING VALUE(Area;2;1;"Color") `Etiquetas VALUE(Area;2;2;"Rojo") VALUE(Area;2;3;"Verde") VALUE(Area;2;4;"Azul") $Red:=PV Get cell num value(Area;1;2) `Colores RGB iniciales $Green:=PV Get cell num value(Area;1;3) $Blue:=PV Get cell num value(Area;1;4) $Color:=PV RGB to color($Rojo;$Verde;$Azul) PV SET CELL PROPERTY(Area;1;1;pv style color back odd;$Color) `Asignación del fondo A1 $Index:=PV Color to index($Color) `"Indexación" PV SET CELL NUM VALUE(Area;3;1;$Index) `Número en la paleta 4D $Color:=PV Index to color($Index) `Nuevo color PV SET CELL PROPERTY(Area;3;1;pv style color back odd;$Color) `Asignación del fondo C1 PV PV PV PV COLOR TO SET CELL SET CELL SET CELL RGB($Color;$Rojo;$Verde;$Azul) `Descomponer NUM VALUE(Area;3;2;$Rojo) `RGB colors after "indexación" NUM VALUE(Area;3;3;$Verde) NUM VALUE(Area;3;4;$Azul) PV COLOR TO RGB PV COLOR TO RGB ( color ; rojo ; verde ; azul ) Parámetro color rojo verde azul Tipo Entero largo Entero Entero Entero Descripción Color Componente rojo (0 a 255) Componente verde (0 a 255) Componente azul (0 a 255) Descripción El comando PV COLOR TO RGB devuelve los tres componentes rojo, verde y azul de del color RGB definido por color. Consulte la descripción del comando 4D OBJECT SET RGB COLORS para conocer información detallada sobre el sistema de colores RGB utilizado por 4D. Nota: la codificación interna de los colores 4D View es del tipo BGR, que se invierte con respecto a la codificación RGB de 4D; sin embargo, los principios de uso son los mismos. Ejemplo Mostrar los tres componentes RGB del color de fondo para la celda A1: C_LONGINT($Color) C_INTEGER($Rojo;$Verde;$Azul) PV PV PV PV SET SET SET SET CELL CELL CELL CELL STRING STRING STRING STRING VALUE(Area;2;1;"Color") `Etiquetas VALUE(Area;2;2;"Rojo") VALUE(Area;2;3;"Verde") VALUE(Area;2;4;"Azul") $Color:=PV Get cell property(Area;1;1;pv style color back odd) PV COLOR TO RGB($Color;$Rojo;$Verde;$Azul) PV SET CELL NUM VALUE(Area;1;2;$Rojo) `Valores PV SET CELL NUM VALUE(Area;1;3;$Verde) PV SET CELL NUM VALUE(Area;1;4;$Azul) PV Get window title PV Get window title ( area ) -> Resultado Parámetro area Resultado Tipo Entero largo Cadena Descripción Área 4D View External window title Descripción El comando PV Get window title devuelve el título de la ventana del area externa 4D View. Ejemplo Consulte el ejemplo del comando PV SET WINDOW TITLE. PV Index to color PV Index to color ( indice ) -> Resultado Parámetro indice Resultado Tipo Entero Entero largo Descripción Número de color indexado Número de color Descripción El comando PV Index to color devuelve el número del color RGB correspondiente, en la paleta 4D, al número indice. Los tres componentes RGB luego pueden extraerse de este resultado con el comando PV COLOR TO RGB. Para el parámetro index, puede utilizar las constantes del lenguaje 4D que se encuentran en el tema Colores, disponible para los primeros 16 colores (línea 1 de la paleta que incluye 256). Consulte las descripciones de los siguientes comandos 4D para información detallada sobre los colores RGB utilizados por 4D: OBJECT SET RGB COLORS para el sistema de colores RGB utilizado por 4D. OBJECT SET COLOR para la paleta 4D de colores indexados. Nota: la codificación interna de los colores de 4D View es de tipo BGR, que es reversada con respecto a la codificación RGB de 4D; sin embargo, los principios de uso son los mismos. Ejemplo Consulte los ejemplos de los comandos PV SET RANGE BORDER y PV Color to index. PV RGB to color PV RGB to color ( rojo ; verde ; azul ) -> Resultado Parámetro rojo verde azul Resultado Tipo Entero Entero Entero Entero largo Descripción Componente rojo (0 a 255) Componente verde(0 a 255) Componente azul(0 a 255) Color Descripción El comando PV RGB to color devuelve un entero largo que define el color RGB, que resulta de los tres componentes rojo, verde y azul. Consulte la descripción del comando 4D OBJECT SET RGB COLORS para información detallada sobre el sistema de colores RGB utilizado por 4D. Nota: la codificación interna de colores de 4D View es del tipo BGR, que se invierte con respecto a la codificación RGB de 4D; sin embargo, los principios de uso son los mismos. Ejemplo Consulte el ejemplo del comando PV Color to index. PV SET WINDOW TITLE PV SET WINDOW TITLE ( area ; titulo ) Parámetro area titulo Tipo Entero largo Cadena Descripción Área 4D View Nuevo título de la ventana externa Descripción El comando PV SET WINDOW TITLE asigna el titulo de la ventana del area externa 4D View. Ejemplo Añadimos la fecha actual a la ventana. C_TEXT($Titulo) `Título existente $Titulo:=PV Get window title(Area) PV SET WINDOW TITLE(Area;$Titulo+" ("+String(Current date)+")") PV Valor celda PV Valor de la celda, Introducción PV ADD DYNAMIC ARRAYS PV ADD DYNAMIC FIELDS PV ARRAY TO CELLS PV CELLS TO ARRAY PV CLEAR DYNAMIC COLUMNS PV FIELD TO CELLS PV FIELDS LIST TO CELLS PV Get cell boolean value PV GET CELL CONTROL PV GET CELL DATE TIME VALUE PV Get cell date value PV GET CELL FIELD PV Get cell formula PV Get cell num value PV Get cell picture value PV Get cell string value PV Get cell text value PV Get cell time value PV Get cell value type PV Get cell variable PV REPORT MANY PV REPORT ONE PV SET CELL BOOLEAN VALUE PV SET CELL CONTROL PV SET CELL DATE TIME VALUE PV SET CELL DATE VALUE PV SET CELL FIELD PV SET CELL FORMULA PV SET CELL NUM VALUE PV SET CELL PICTURE VALUE PV SET CELL STRING VALUE PV SET CELL TEXT VALUE PV SET CELL TIME VALUE PV SET CELL VARIABLE PV UPDATE DYNAMIC AREA PV Valor de la celda, Introducción Los comandos de este tema permiten asignar valores a las celdas o recuperar el contenido. El contenido de las celdas pueden ser de varios tipos, en relación con 4D (texto, número, fecha, etc.), pero también puede ser de diferentes tipos, como variables, campos, fórmulas, controles (para más información, consulte el comando PV SET CELL CONTROL) o informes rápidos. En función de los comandos, los valores de las celdas pueden ser fijos (copia de los valores de campos de la base durante el lanzamiento) o dinámicos (enlaces a la base de forma interactiva). PV ADD DYNAMIC ARRAYS PV ADD DYNAMIC ARRAYS ( area ; array ) Parámetro area array Tipo Entero largo Array cadena Descripción Área 4D View Array que contiene los nombres de array Descripción El comando PV ADD DYNAMIC ARRAYS agrega en area un bloque de líneas correspondientes a los valores de los arrays cuyos nombres se pasan vía el parámetro array, a partir de la celda A1. Todos los arrays deben contener el mismo número de elementos y siempre se presentan verticalmente (en columnas). El primer array se muestra en la columna A, los otros en las columnas ubicadas a la derecha. Nota: si una área de campos dinámicos ya existe en el área 4D View con el comando PV ADD DYNAMIC FIELDS, se elimina y se sustituye por los arrays dinámicos. PV ADD DYNAMIC ARRAYS mantiene un enlace dinámico con los arrays asociados a la parte dinámica del area. Como resultado, las modificaciones de los valores asignados en un área 4D View se verán reflejadas dentro de cada array y viceversa. Suprimir o añadir elementos en el array 4D también se verá reflejado en el área. No es posible establecer varias partes dinámicas en la misma área 4D View. Notas: Los array(s) y el área de 4D View deben definirse en el mismo proceso. La actualización dinámica de datos no está disponible entre los registros que aparecen en los formularios de 4D y las ventanas externas 4D View. Para reflejar en una ventana 4D View una modificación realizada en el registro de 4D, es necesario volver a dibujar la ventana con comando el PV REDRAW (las modificaciones ejecutadas a través de comandos 4D se reflejan automáticamente en las áreas 4D View). Ejemplo El siguiente ejemplo recupera los nombres de los contactos relacionados con el registro actual de la tabla clientes en un array, luego, muestra el contenido en un área 4D View incluida en el formulario de entrada del cliente que está siendo modificado. Las modificaciones efectuadas por el usuario se reflejan directamente en los arrays 4D, que vamos a manejar, por ejemplo, mediante la actualización de la selección de los contactos grabados. ARRAY TEXT(NamesArray;0) `Array de apellidos de contactos ARRAY TEXT(FirstnamesArray;0) `Array de nombres de contactos ARRAY STRING(31;$ArrayArrays;2) `Arrays de nombres de arrays $ArrayArrays{1}:="NamesArray" `Primera columna dinámica $ArrayArrays{2}:="FirstnamesArray" `Segunda columna dinámica RELATE MANY([Clientes]Code) `Recuperación de los contactos relacionados SELECTION TO ARRAY([Contactos]ContactName;NamesArray;[Contactos]ContactFirstname;FirstnamesArray) PV ADD DYNAMIC ARRAYS(Area;$ArrayArrays) PV ADD DYNAMIC FIELDS PV ADD DYNAMIC FIELDS ( area ; master ; tablas ; campos ; metodos ) Parámetro area master tablas campos metodos Tipo Entero largo Entero Array entero Array entero Array cadena Descripción Área 4D View Número de tabla primaria Array de números de tablas Array de números de campos Array de los nombres de métodos de retrollamada Descripción El comando PV ADD DYNAMIC FIELDS añade en area, un bloque de líneas correspondientes a los valores de los campos definidos por tablas y campos para la selección actual de la tabla definida por el master, a partir de la celda A1. Si las columnas dinámicas ya han sido definidas en area, el nuevo bloque se insertará a partir de la línea 1 de la primera columna disponible. Los valores de los campos pueden modificarse directamente desde 4D View utilizando las celdas correspondientes. El resultado está siempre presente verticalmente (como columnas, así como también elementos de arrays tablas, campos y metodos). Nota: si un área de arrays dinámicos ya se ha insertado en el área 4D View utilizando el comando PV ADD DYNAMIC ARRAYS, se elimina y se sustituye por los campos dinámicos. Para toda columna, la operación puede afectar a un array relacionado a la tabla master por una relación. Este último debe ser de tipo automático (tipo) y pasar del array primario al array del campo para mostrar. En la estructura tradicional de facturas y de líneas de facturas, permite por ejemplo recuperar el contenido de un campo del array de líneas y también de la tabla facturas relativa a una selección de la tabla de líneas de facturas (tabla primaria). Cada método de retrollamada recibe seis parámetros: $1: Área $2: Número de columna $3: Tipo de array $4: Puntero al array $5: Número de la primera línea a (re)dibujar $6: Número de líneas a (re)dibujar en el área Nota: si va a compilar la base, debe declarar estos parámetros, incluso si no los usa todos. $5 y $6: cuando el usuario desplaza las líneas (registros) en el area, sólo las nuevas líneas mostradas se (re)dibujan. Los parámetros $5 y $6 permiten conocer las líneas concernientes. El desarrollador debe llenar el array de métodos de retrollamada. 4D View usará ese array para llenar la columna calculada. No hay ningún valor devuelto ($0). PV ADD DYNAMIC FIELDS conserva un enlace dinámico con los campos pasados como parámetros. Como resultado, las modificaciones de valores efectuadas en el área 4D View se reflejan en el(los) campo(s) y viceversa. Notas: Los valores de los campos, los métodos y el área de 4D View utilizados deben definirse en el mismo proceso. La actualización dinámica de datos no está disponible entre los registros que se muestran en los formularios de 4D y las ventanas externas 4D View. Para reflejar en una ventana 4D View una modificación realizada en el registro de 4D, es necesario volver a dibujar la ventana con el comando PV REDRAW (las modificaciones ejecutadas a través de comandos 4D se reflejan automáticamente en las áreas 4D View). Ejemplo Este ejemplo muestra una tabla editable incluida en un formulario de entrada (con 4D View, esta operación es muy fácil). Modificaremos los campos de la tabla de contactos relacionados al cliente actual, con sus funciones (tabla relacionada) y las iniciales de cada contacto (columna calculada). ARRAY INTEGER($TablesArray;4) `Números de las tablas ARRAY INTEGER($FieldsArray;4) `Números de los campos ARRAY STRING(30;$MethodsArray;4) `Nombres de los métodos de retrollamada `Columna 1: nombre del contacto $TablesArray{1}:=Table(->[Contacts]) $FieldsArray{1}:=Field(->[Contacts]ContactName) $MethodsArray{1}:="" `Columna 2: nombre del contacto $TablesArray{2}:=Table(->[Contacts]) $FieldsArray{2}:=Field(->[Contacts]ContactFirstname) $MethodsArray{2}:="" `Columna 3: título del contacto (linked table) $TablesArray{3}:=Table(->[Titles]) $FieldsArray{3}:=Field(->[Titles]Label) $MethodsArray{3}:="" `Columna 4: número de orden/ total (columna calculada) $TablesArray{4}:=0 $FieldsArray{4}:=Is text `Resultado $MethodsArray{4}:="CallMethod" RELATE MANY([Clients]Code) `Recupera los contactos PV ADD DYNAMIC FIELDS(Area;Table(->[Contacts]);$TablesArray;$FieldsArray;$MethodsArray) El código del método proyecto CallMethod es el siguiente: C_LONGINT($1) C_LONGINT($2) C_LONGINT($3) C_POINTER($4) C_LONGINT($5) C_LONGINT($6) `Área 4D View `Número de columna `Tipo de array `Puntero a este array `Primera línea del área dinámica `Número de líneas que pueden mostrarse en el área GOTO SELECTED RECORD([Contacts];$5) For($i;1;$6) $4->{$i}:=Substring([Contacts]ContactFirstname;1;1)+Substring([Contacts]ContactName;1;1) NEXT RECORD([Contacts]) End for PV ARRAY TO CELLS PV ARRAY TO CELLS ( area ; direccion ; columna ; linea ; conversion ; array ) Parámetro area direccion columna linea conversion array Tipo Entero largo Entero Entero largo Entero largo Entero Array Descripción Área 4D View 0 = Línea; 1 = Columna Número de la columna de inicio Número de la línea de inicio 0 = Tipo texto; 1 = Tipo original Nombre del array Descripción El comando PV ARRAY TO CELLS inserta en area el contenido de los arrays cuyos nombres se especifican en array. El contenido se inserta a partir de las coordenadas definidas por linea y columna, en el sentido definido por direccion. Nota: el uso del parámetro direccion es diferente del parámetro direccion en los comandos PV GOTO NEXT CELL y PV GET NEXT FREE CELL, donde la direccion puede ser en cualquier sentido. Para PV ARRAY TO CELLS, la direccion es hacia la derecha (0=linea), o hacia la parte inferior (1=columna). El quinto parámetro, conversion, permite cambiar el tipo de los datos de las celdas que terminarán como texto. El tipo de valor fuente debe ser compatible con esta operación: si solicita un cambio de tipo de datos de un BLOB o de una imagen a texto, conversion se ignorará. Ejemplo Copiamos nuevamente, hacia abajo, tres arrays de tipos diferentes a partir de la celda actual. Dependiendo de la respuesta al diálogo de confirmación del cambio de tipo, el contenido del array puede ejecutarse en celdas 4D View en forma convertida (texto) o no. C_INTEGER($Index) `Índice del bucle C_LONGINT($Column;$Row) `Coordenadas de la celda de inicio C_INTEGER($Conversion) `¿Forzar la conversión a texto? ARRAY STRING(20;$ArrayString;10) `Array de valores alfanuméricos (comienza en la celda actual) ARRAY DATE($ArrayDates;10) `Array de fechas (columna siguiente) ARRAY BOOLEAN($ArrayBooleans;10) `Array de booleanos (tercera columna) `Inicialización For($Index;1;Size of array($ArrayString)) $ArrayString{$Index}:=String($Index*10) `"10", "20", "30"... $ArrayDates{$Index}:=Current date(*)+$Index `25/06/2001, 26/06/2001... $ArrayBooleans{$Index}:=($Index%2=0) `True = par End for PV GET CURRENT CELL(Area;$Column;$Row) CONFIRM("¿Quiere convertir el contenido de los arrays a texto?") $Conversion:=1-OK `Para obtener las columnas "$ArrayString", "$ArrayDates" y "$ArrayBooleans": PV ARRAY TO CELLS(Area;1;$Column;$Row;$Conversion;$ArrayString) `1 = hacia abajo PV ARRAY TO CELLS(Area;1;$Column+1;$Row;$Conversion;$ArrayDates) PV ARRAY TO CELLS(Area;1;$Column+2;$Row;$Conversion;$ArrayBooleans) PV CELLS TO ARRAY PV CELLS TO ARRAY ( area ; direccion ; columna ; linea ; array ; numero ) Parámetro area direccion columna linea array numero Tipo Entero largo Entero Entero largo Entero largo Array Entero largo Descripción Área 4D View 0 = Línea; 1 = Columna Número de columna de inicio Número de línea de inicio Nombre del array Número de celdas a utilizar Descripción El comando PV CELLS TO ARRAY llena el array con el contenido de las celdas especificadas por direccion, columna, linea y numero. direccion especifica si el comando PV CELLS TO ARRAY debe efectuar una copia de las celdas contiguas en la dirección horizontal (0) o vertical (1), comenzando por la celda definida por linea y columna. Nota: el uso del parámetro sentido es diferente del parámetro direccion en los comandos PV GOTO NEXT CELL y PV GET NEXT FREE CELL, donde la direccion puede ser en cualquier sentido. Para PV CELLS TO ARRAY, la direccion es hacia la derecha (0=linea), o hacia la parte inferior (1=columna). Ejemplo Tomemos, por ejemplo, un área 4D View incluida en la pantalla de entrada de la tabla de clientes: esta área incluida, contiene 10 líneas máximo, servirá para introducir o modificar los contactos del cliente. El área de entrada se compone de 10 celdas dispuestas en columnas a partir de la celda actual: ARRAY STRING(255;ContactsTab;0) `Array de nombres de contactos C_LONGINT($Column;$Row) `Coordenadas de la celda de inicio PV GET CURRENT CELL(Area;$Column;$Row) `10 líneas máximo a partir de la celda actual hacia abajo PV CELLS TO ARRAY(Area;1;$Column;$Row;ContactsTab;10) If(Size of array(ContactsTab)#0) `¿Se recuperó algo? RELATE MANY([Clientes]Code) `Recuperación de los registros relacionados DELETE SELECTION([Contactos]) `Elimina los contactos existentes `Actualizar los contactos (nuevo, modificado o eliminado) ARRAY TO SELECTION(ContactsTab;[Contactos]ContactName) `Creación de contactos APPLY TO SELECTION([Contactos];[Contactos]CodeClient:=[Clientes]Code) `Para conservar la relación QUERY SELECTION([Contactos];[Contactos]ContactName="") `Purga de los contactos vacíos DELETE SELECTION([Contactos]) End if PV CLEAR DYNAMIC COLUMNS PV CLEAR DYNAMIC COLUMNS ( area ; inicio ; numero ) Parámetro area inicio numero Tipo Entero largo Entero largo Entero largo Descripción Área 4D View Número de la primera columna Número de columnas Descripción El comando PV CLEAR DYNAMIC COLUMNS borra el contenido de numero columnas dinámicas a partir de la columna numerada inicio. Las columnas dinámicas borradas pueden venir de campos o de arrays, creados respectivamente por PV ADD DYNAMIC FIELDS y PV ADD DYNAMIC ARRAYS. Las columnas dinámicas restantes son reorganizadas de manera que el área dinámica siempre comience en la columna A y nunca contenga “huecos”. El comando PV CLEAR DYNAMIC COLUMNS es inoperativo cuando se utiliza con una o más columnas que no utilizan exclusivamente campos o arrays. Ejemplo En el ejemplo de PV ADD DYNAMIC FIELDS, creamos una entrada en lista de la tabla de contactos asociada al cliente actual, con sus funciones y sus números de orden. El método a continuación borra la tercera columna mientras permite modificar los nombres y apellidos. PV CLEAR DYNAMIC COLUMNS(Area;3;1) `Borrar columna C Una vez se ejecuta esta línea, la cuarta columna (D) se convierte en la tercera columna (C), de manera que el área dinámica no contenga “huecos”. PV FIELD TO CELLS PV FIELD TO CELLS ( area ; direccion ; columna ; linea ; conversion ; master ; numTabla ; numCampo ) Parámetro area direccion columna linea conversion master numTabla numCampo Tipo Entero largo Entero Entero largo Entero largo Entero Entero Entero Entero Descripción Área 4D View 0 = Línea; 1 = Columna Número de columna de la celda de inicio Número de línea de la celda de inicio 0 = Tipo texto; 1 = Tipo original Número de tabla primaria Número de tabla Número de campo Descripción El comando PV FIELD TO CELLS inserta en area los valores de campo correspondientes a la selección actual de la tabla master. La inserción se efectúa a partir de la celda definida por las coordenadas linea y columna, en el sentido definido por direccion. Nota: el uso del parámetro direccion es diferente del parámetro dirección en los comandos PV GOTO NEXT CELL y PV GET NEXT FREE CELL, donde la direccion puede ser en cualquier sentido. Para PV FIELD TO CELLS, la direccion es hacia la derecha (0=linea), o hacia la parte inferior (1=columna). El quinto parámetro, conversion, permite volver a escribir el contenido de la celda como texto. El tipo de valor fuente debe ser compatible con esta operación: si usted solicita un cambio de tipo un BLOB o de una imagen a texto, conversion se ignorará. El comando se puede aplicar a una tabla relacionada a una tabla primaria por una relación. Este último debe ser de tipo automático (tipo) y pasar de la tabla definida por master a la tabla definida por tabla que contiene el campo a mostrar. El ejemplo tradicional de facturas y de líneas de facturas, permite recuperar el contenido de un campo de la tabla de líneas, y también de la tabla de facturas relativa a una selección de la tabla de líneas de facturas (tabla principal). A diferencia de los comandos de tipo PV SET CELL FIELD, que mantienen una relación dinámica con la base de datos, las modificaciones de valores efectuadas en el área 4D View, después de haber sido recuperados utilizando el comando PV FIELD TO CELLS no se ejecutan en el contenido de los registros. Ejemplo En el ejemplo del comando PV CELLS TO ARRAY, actualizamos la tabla de contactos una vez se entró en un área 4D View incluida en un formulario de entrada del cliente. Aquí, vamos a actualizar el área incluida durante el evento de formulario On Load, en otras palabras, durante la carga del formulario de entrada que se está modificando. Una relación automática de la tabla primaria de contactos a la tabla de título profesional (Presidente, Secretario, Desarrollador) permite recuperar, en el campo ad hoc de este último, la etiqueta del título de cada contacto a partir de su código de título guardado como un entero (campo de inicio de la relación). Vamos a mostrar el nombre del contacto y el título en dos columnas. C_INTEGER($Primaria) `Número de la tabla primaria C_INTEGER($Tabla) `Número de tabla C_INTEGER($Campo) `Número de campo C_LONGINT($Columna;$Linea) `Coordenadas de la celda de inicio $Primaria:=Table(->[Contactos]) `Número de la tabla primaria: contactos (para las dos columnas) RELATE MANY([Clientes]code) `Recuperación de la selección de contactos correspondientes PV GET CURRENT CELL(Area;$Columna;$Linea) `Actualización del área 4D View para los nombres $Tabla:=Table(->[Contactos]) `Número de la tabla de contactos $Campo:=Field(->[Contactos]ContactName) `Número de campo cuyo contenido se recuperará `La conversión no es necesaria, recuperamos de la alfanumérica PV FIELD TO CELLS(Area;1;$Columna;$Linea;0;$Primaria;$Tabla;$Campo) `Actualización del área 4D View para los títulos $Tabla:=Table(->[Titulos]) `Número de la tabla de los títulos tipos (relacionados) $Campo:=Field(->[Titulos]Label) `Número de campo cuyo contenido será recuperado PV FIELD TO CELLS(Area;1;$Columna+1;$Linea;0;$Primaria;$Tabla;$Campo) PV FIELDS LIST TO CELLS PV FIELDS LIST TO CELLS ( area ; direccion ; columnas ; lineas ; conversiones ; master ; tablas ; campos ) Parámetro area direccion columnas lineas conversiones master tablas campos Tipo Entero largo Entero Array entero largo Array entero largo Array entero largo Entero largo Array entero largo Array entero largo Descripción Área 4D View 0 = Línea; 1 = Columna Array de los números de columnas de inicio Array de números de líneas de inicio 0 = Tipo original; 1 = Definido para texto Número de tabla primaria Array de los números de tablas Array de números de campos Descripción El comando PV FIELDS LIST TO CELLS es el mismo que el comando PV FIELD TO CELLS con varios campos. Nota: el uso del parámetro direccion es diferente del parámetro dirección en los comandos PV GOTO NEXT CELL y PV GET NEXT FREE CELL, donde la direccion puede ser en cualquier sentido. Para PV FIELDS LIST TO CELLS, la direccion es hacia la derecha (0=linea), o hacia la parte inferior (1=columna). Los parámetros columnas y lineas contienen respectivamente los números de columnas y de líneas de las celdas de inicio. El quinto parámetro, conversion, permite volver a escribir el contenido de la celda como texto. El tipo de valor fuente debe ser compatible con esta operación: si usted solicita un cambio de tipo un BLOB o de una imagen a texto, conversion se ignorará. Los arrays tablas y campos contienen los números de tablas y de campos fuentes. El comando se puede aplicar a las tablas relacionadas o a la tabla master utilizando relaciones. Este último debe ser de tipo automático y pasa de la tabla master a la tabla del campo a mostrar, definido por los arrays tablas y campos. A diferencia de los comandos de tipo PV ADD DYNAMIC FIELDS, que mantienen una relación dinámica con la base de datos, las modificaciones de valores efectuadas en el área 4D View, después de haber sido recuperados utilizando el comando PV FIELDS LIST TO CELLS no se ejecutan en el contenido de los registros. Ejemplo Una vez más utilizamos el ejemplo del comando PV FIELD TO CELLS de una carga del formulario de entrada para un registro de la tabla de clientes. Esta vez, nosotros manejaremos tres campos simultáneamente. Una relación automática de la tabla primaria de contactos a la tabla de títulos profesionales permite recuperar, en el campo ad hoc este último, la etiqueta del título de cada contacto a partir de su código de título guardado como un entero (campo de inicio de la relación). Vamos a mostrar la tercera columna relevante (columna E, ya que empezamos desde la columna C). C_INTEGER($Master) `Número de la tabla primaria C_INTEGER($Index) `Índice de bucle $Master:=Table(->[Contactos]) `Número de la tabla primaria: contactos (para todas las columnas) ARRAY ARRAY ARRAY ARRAY ARRAY LONGINT($ArrayColumns;3) `Número de columnas de celda de inicio LONGINT($ArrayRows;3) `Número de líneas de las celdas de inicio INTEGER($ConversionArray;3) `0 para tipo original o 1 para definir en texto INTEGER($TablesArray;3) `Números de tablas INTEGER($FieldsArray;3) `Números de campos For($Index;1;3) $ArrayColumns{$Index}:=$Index+2 `Columnas C a E $ArrayRows{$Index}:=2 `A partir de la segunda línea $ConversionArray{$Index}:=0 `Conservamos los tipos de los campos End for `Tablas y campos a recuperar $TablesArray{1}:=Table(->[Contactos]) `Número de la tabla de contactos $FieldsArray{1}:=Field(->[Contactos]ContactName) `Número del campo Apellido $TablesArray{2}:=Table(->[Contactos]) `Número de la tabla de contactos $FieldsArray{2}:=Field(->[Contactos]ContactFirstName) `Número del campo Nombre $TablesArray{3}:=Table(->[Titulos]) `Número de la tabla de tipo título (relacionada) $FieldsArray{3}:=Field(->[Titulos]Label) `Número del campo Etiqueta (Presidente, Secretario, Desarrollador) `Recuperación de las selección de contactos correspondiente RELATE MANY([Clientes]code) `Actualización del área 4D View con los campos Nombre, Apellido y Titulo PV FIELDS LIST TO CELLS(Area;1;$ArrayColumns;$ArrayRows;$ConversionArray;$Master; $TablesArray;$FieldsArray) PV Get cell boolean value PV Get cell boolean value ( area ; columna ; linea ) -> resultado Parámetro area columna linea resultado Tipo Entero largo Entero largo Entero largo Entero Descripción Área 4D View Número de columna de la celda Número de línea de la celda Valor de la celda Descripción El comando PV Get cell boolean value devuelve el valor de la celda definida por columna y linea como un booleano. Para traducirla a un booleano 4D, utilice la instrucción theBooleen:=(Result=1). Si el comando PV Get cell boolean value se utiliza con una celda de tipo no booleana, devuelve 0. Ejemplo Consulte el ejemplo del comando PV SET CELL BOOLEAN VALUE. PV GET CELL CONTROL PV GET CELL CONTROL ( area ; columna ; linea ; tipo ; nomVar ; metodo ; titulo ) Parámetro area columna linea tipo nomVar metodo titulo Tipo Entero largo Entero largo Entero largo Entero Cadena Cadena Cadena Descripción Área 4D View Número de columna de la celda Número de línea de la celda Tipo de control Nombre de la variable de gestión del control Nombre del método de retrollamada Título del control Descripción El comando PV GET CELL CONTROL obtiene la información sobre el "control" mostrado en la celda designada por columna y linea al interior del area 4D View. Un control es un objeto de tipo botón, casilla de selección, botón de radio, lista desplegable o un combo box dentro de una celda. tipo indica el tipo de control (entre los cinco mencionados anteriormente) que figura en la celda. Para definir este parámetro, utilice las constantes del tema PV Controles. nomVar devuelve el nombre de la variable asociada al control (nombre del array que contiene los valores a mostrar para los controles de tipos lista desplegable y combo box). metodo contiene el nombre del método de retrollamada relacionado con el control. titulo contiene la etiqueta del botón, casilla de selección, etc. Ejemplo El siguiente método llena las celdas ubicadas debajo de un control con la descripción de este último: C_LONGINT($Column;$Row) `Coordenadas de la celda del control C_INTEGER($CtrlType) `Tipo de control C_STRING(32;$CtrlName) `Nombre del control C_STRING(32;$CallbackMethod) `Nombre del método de retrollamada C_STRING(32;$Title) `Título del control C_STRING(32;$TypeName) `Nombre del tipo de control PV GET CURRENT CELL(Area;$Column;$Row) `Celda controlada PV GET CELL CONTROL(Area;$Column;$Row;$CtrlType;$CtrlName;$CallbackMethod;$Title) Case of :($CtrlType=0) $TypeName:="Sin control" :($CtrlType=pv control push button) $TypeName:="botón" :($CtrlType=pv control radio button) $TypeName:="botón radio" :($CtrlType=pv control check box) $TypeName:="casilla de selección" :($CtrlType=pv control drop down) $TypeName:="drop-down list" :($CtrlType=pv control combo box) $TypeName:="combo box" End case PV SET CELL TEXT VALUE(Area;$Column;$Row+1;"Type: "+$TypeName) PV SET CELL TEXT VALUE(Area;$Column;$Row+2;"Name: "+$CtrlName) PV SET CELL TEXT VALUE(Area;$Column;$Row+3;"Title: "+$Title) PV SET CELL TEXT VALUE(Area;$Column;$Row+4;"Method: "+$CallbackMethod) PV GET CELL DATE TIME VALUE PV GET CELL DATE TIME VALUE ( area ; columna ; linea ; fecha ; hora ) Parámetro area columna linea fecha hora Tipo Entero largo Entero largo Entero largo Fecha Hora Descripción Área 4D View Número de columna de la celda Número de línea de la celda Valor fecha de la celda Valor hora de la celda Descripción El comando PV GET CELL DATE TIME VALUE devuelve en los parámetros fecha y hora los valores combinados en la celda designada por columna y linea. Si el comando PV GET CELL DATE TIME VALUE es utilizado por una celda de tipo no fecha/hora, devuelve 00/00/00 y 00:00:00. Ejemplo Consulte el ejemplo del comando PV SET CELL DATE TIME VALUE. PV Get cell date value PV Get cell date value ( area ; columna ; linea ) -> Resultado Parámetro area columna linea Resultado Tipo Entero largo Entero largo Entero largo Fecha Descripción Área 4D View Número de columna de la celda Número de línea de la celda Valor de la celda Descripción El comando PV Get cell date value devuelve la fecha contenida en la celda asignada por columna y linea. Si el comando PV Get cell date value se utiliza con una celda de tipo no fecha, devuelve 00/00/00. Ejemplo Consulte el ejemplo del comando PV SET CELL STRING VALUE. PV GET CELL FIELD PV GET CELL FIELD ( area ; columna ; linea ; numTabla ; numCampo ) Parámetro area columna linea numTabla numCampo Tipo Entero largo Entero largo Entero largo Entero Entero Descripción Área 4D View Número de columna de la celda Número de línea de la celda Número de tabla Número de campo Descripción El comando PV GET CELL FIELD devuelve, en los parámetros tabla y campo, los números de la tabla y del campo relacionados a la celda designada por columna y linea. Ejemplo 1 Consulte el ejemplo del comando PV SET CELL FIELD. Ejemplo 2 El siguiente ejemplo ilustra el uso del comando PV GET CELL FIELD en un método permitiendo la ordenación de las columnas dinámicas después de un clic en el encabezado. El área sólo contiene columnas dinámicas. Comenzamos por instalar el método de retrollamada EventMethod que se llamará en el evento de un clic en el área: PV ON EVENT(area;pv on clicked;"EventMethod") Esta instrucción intercepta todo clic en el área. El método EventMethod nos permite detectar los clics en los encabezados de las columnas y ordenar los datos en consecuencia. `EventMethod Method C_BOOLEAN($0) C_LONGINT($1;$2;$3;$4;$5;$6) C_INTEGER($tableNum;$fieldNum) If($5=0) `Si el clic se hace en un encabezado $0:=True `Cancela el evento PV GET CELL FIELD(area;$4;1;$tableNum;$fieldNum) `Fecha a ordenar ORDER BY(Table($tableNum)->;Field($tableNum;$fieldNum)->;>) `Ordenación de los datos 4D End if `Los valores asociados en las columnas se ordenan automáticamente PV Get cell formula PV Get cell formula ( area ; columna ; linea ) -> Resultado Parámetro area columna linea Resultado Tipo Entero largo Entero largo Entero largo Cadena Descripción Área 4D View Número de columna de la celda Número de línea de la celda Formula Descripción El comando PV Get cell formula devuelve la fórmula en la celda designada por columna y linea. Ejemplo El método a continuación recopia en una celda la fórmula de la celda que se encuentra sobre ella: C_LONGINT($Column;$Row) `Coordenada de la celda a recopiar C_TEXT($Formula) `Fórmula a recopiar PV GET CURRENT CELL(Area;$Column;$Row) $Formula:=PV Get cell formula(Area;$Column;$Row-1) `Recuperación de la fórmula arriba PV SET CELL FORMULA(Area;$Column;$Row;$Formula) `Recopia PV Get cell num value PV Get cell num value ( area ; columna ; linea ) -> Resultado Parámetro area columna linea Resultado Tipo Entero largo Entero largo Entero largo Real Descripción Área 4D View Número de columna de la celda Número de línea de la celda Valor de la celda Descripción El comando PV Get cell num value devuelve el número contenido en la celda designada por columna y linea. Si el comando PV Get cell num value se utiliza con una celda de tipo no numérica, devuelve 0. Ejemplo Consulte el ejemplo del comando PV SET CELL STRING VALUE. PV Get cell picture value PV Get cell picture value ( area ; columna ; linea ) -> Resultado Parámetro area columna linea Resultado Tipo Entero largo Entero largo Entero largo Imagen Descripción Área 4D View Número de columna de la celda Número de línea de la celda Valor de la celda Descripción El comando PV Get cell picture value devuelve la imagen contenida en la celda designada por columna y linea. Si el comando PV Get cell picture value se utiliza con una celda de tipo no imagen, devuelve una imagen vacía. Ejemplo Consulte el ejemplo del comando PV SET CELL STRING VALUE. PV Get cell string value PV Get cell string value ( area ; columna ; linea ) -> Resultado Parámetro area columna linea Resultado Tipo Entero largo Entero largo Entero largo Cadena Descripción Área 4D View Número de columna de la celda Número de línea de la celda Valor de la celda Descripción El comando PV Get cell string value devuelve la cadena de caracteres contenida en la celda designada por columna y linea. Si el comando PV Get cell string value se utiliza con una celda de tipo no numérico, devuelve una cadena vacía. Ejemplo Consulte el ejemplo del comando PV SET CELL STRING VALUE. PV Get cell text value PV Get cell text value ( area ; columna ; linea ) -> Resultado Parámetro area columna linea Resultado Tipo Entero largo Entero largo Entero largo Texto Descripción Área 4D View Número de columna de la celda Número de línea de la celda Valor de la celda Descripción El comando PV Get cell text value devuelve el texto contenido en la celda asignada por columna y linea. Si el comando PV Get cell text value se utiliza con una celda de tipo no texto, devuelve una cadena vacía. Ejemplo Consulte el ejemplo del comando PV SET CELL STRING VALUE. PV Get cell time value PV Get cell time value ( area ; columna ; linea ) -> Resultado Parámetro area columna linea Resultado Tipo Entero largo Entero largo Entero largo Hora Descripción Área 4D View Número de columna de la celda Número de línea de la celda Valor de la celda Descripción El comando PV Get cell time value devuelve la hora contenida en la celda designada por columna y linea. Si el comando PV Get cell time value se utiliza con una celda de tipo no hora, devuelve 00:00:00. Ejemplo Consulte el ejemplo del comando PV SET CELL STRING VALUE. PV Get cell value type PV Get cell value type ( area ; columna ; linea ) -> Resultado Parámetro area columna linea Resultado Tipo Entero largo Entero largo Entero largo Entero largo Descripción Área 4D View Número de columna de la celda Número de línea de la celda Tipo de valor de la celda Descripción El comando PV Get cell value type devuelve el valor contenido en la celda de area designada por columna y linea. El tipo se devuelve como un entero largo correspondiente a una de las constantes del tema : Constante Tipo Valor pv value type boolean pv value type date pv value type date time pv value type none pv value type numeric pv value type picture pv value type string pv value type time Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 6 4 5 0 1 7 2 3 Nota: el tipo de valor contenido en una celda es definido automáticamente por 4D View en función del contenido de la celda. Ejemplo Consulte el ejemplo del comando PV SET CELL FORMULA. PV Get cell variable PV Get cell variable ( area ; columna ; linea ) -> Resultado Parámetro area columna linea Resultado Tipo Entero largo Entero largo Entero largo Cadena Descripción Área 4D View Número de columna de la celda Número de línea de la celda Nombre de la variable asociada Descripción El comando PV Get cell variable devuelve el nombre de la variable asociada a la celda designada por columna y linea. Ejemplo Consulte el ejemplo del comando PV SET CELL VARIABLE. PV REPORT MANY PV REPORT MANY ( area ; columna ; linea ; master ; tablaRuptura ; campoRuptura ; operador ; tablas ; campos ; insertar ; detalle ; titulo ) Parámetro area columna linea master tablaRuptura campoRuptura operador tablas campos insertar detalle titulo Tipo Entero largo Entero largo Entero largo Entero Entero Array Array entero Array entero Array entero Entero Entero Cadena Descripción Área 4D View Número de columna Número de línea Número de tabla primaria Número de tabla en donde ocurre la ruptura Número de campo en donde ocurre la ruptura Operaciones a ejecutar Números de tablas de los campos a mostrar Números de los campos a mostrar 0 = Remplazar; 1 = Insertar líneas Opciones de inserción de detalle Titulo de ruptura Descripción El comando PV REPORT MANY crea un informe en el area 4D View utilizando los valores de los campos 4D definidos por tablas y campos a partir de la selección actual de la tabla master. Es posible aplicar a cada uno de estos campos una operación, definida por operador: subtotal, número, máximo, etc. Para definir el parámetro operador, utilice las constantes del tema PV Funciones informes: Constante Tipo Valor pv report function average pv report function count pv report function max pv report function min pv report function none pv report function sum Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 1 4 3 2 -1 0 El resultado generado se inserta en el area a partir de la celda designada por linea y columna. tablaRuptura y campoRuptura designan el campo donde se efectúa la secuencia de ruptura. Las rupturas permiten separar los registros en grupos homogéneos y efectuar cálculos intermediarios para cada grupo. Una ruptura es un cambio de valor en una tabla de ordenación. Es necesario asociar este nivel de ruptura con un criterio de ordenación. La ordenación de una selección de registros de tablaRuptura y campoRuptura es necesaria antes de utilizar el comando PV REPORT MANY. Puede tener criterios de ordenación adicionales, que no serán tenidos en cuenta en la ruptura. Para más información sobre la construcción de informes rápidos con rupturas, consulte el Manual de Diseño 4D. El parámetro insertar determina si los datos ubicados en el área 4D View por este comando deben reemplazar las celdas que pueden estar presentes o deben insertarse en las nuevas líneas. Si pasa 0, los datos se borran y remplazan. Si pasa 1, las líneas adicionales se insertan. El parámetro detalle permite definir la forma en que 4D View insertará el detalle, así como también las líneas de ruptura en el informe: Si pasa 0 en detalle, sólo se insertan las líneas de ruptura (las líneas de detalle no se insertan). Si pasa 1 en detalle, se insertan las líneas de detalle y los valores de ruptura se repite en cada línea. Si pasa 2 en detalle, se insertan las líneas de detalle y los valores de rupturas se muestran una sola vez. El parámetro titulo permite definir el título de la línea de resultados (es decir, "Total", "Promedio", etc.) Al igual que en el Editor de informes rápidos de 4D, puede utilizar el carácter # como un marcador para el valor de ruptura actual. Por ejemplo, si el campo "País" es su campo de ruptura, puede pasar "Total para #:" en titulo. El informe mostrará "Total de EE.UU.:" y luego "Total de Japón", etc. Pase una cadena vacía si no se desea insertar un título. Nota: si detalle vale 0 y el título es una cadena vacía, la primera columna no se inserta (estaría vacía). Ejemplo Mostramos, en un área 4D View incluida en el formulario de entrada de los clientes, un informe de contactos relacionados con este cliente, con una ruptura que indica el número de contactos para cada título: secretaria, desarrollador, departamento de documentación, etc. Una relación automática existe entre la tabla de contactos y la de títulos. C_LONGINT($Column) `Número de columna C_LONGINT($Row) `Número de línea C_INTEGER($Master) `Número de tabla primaria C_INTEGER($TableBreak) `Número de tabla donde ocurre la ruptura C_INTEGER($FieldBreak) `Número de campo donde ocurre la ruptura ARRAY INTEGER($Operator;3) `Operaciones a ejecutar ARRAY INTEGER($Tables;3) `Número de tablas de los campos a mostrar ARRAY INTEGER($Fields;3) `Número de campos a mostrar C_INTEGER($Insert) `0=Remplazar;1=Insertar líneas C_INTEGER($Detail) `Opción de visualización del detalle C_STRING(30;$Title) `Título de la línea de resultado `Inicializar $Column:=4 `Visualización a partir de la columna D $Row:=3 `Visualización a partir de la tercera línea (Titulo + línea vacía) $Master:=Table(->[Contacts]) `Este es un "informe" de la tabla de contactos $TableBreak:=Table(->[Titles]) $FieldBreak:=Field(->[Titles]Label) `La ruptura ocurrirá en el título de contactos `Mostramos en la columna 1 el número para cada tipo $Operator{1}:=pv report function count $Tables{1}:=Table(->[Titles]) $Fields{1}:=Field(->[Titles]Label) `Etiqueta del título columna 1 $Operator{2}:=pv report function none `Ningún cálculo en la columna 2 $Tables{2}:=Table(->[Contacts]) $Fields{2}:=Field(->[Contacts]ContactName) `Nombre del contacto columna 2 $Operator{3}:=pv report function none `Ningún cálculo en la columna 3 $Tables{3}:=Table(->[Contacts]) $Fields{3}:=Field(->[Contacts]ContactFirstname) `Nombre de contacto columna 3 $Insert:=1 `Inserción $Detail:=2 `Se insertan las líneas de detalle, los valores se muestran una vez $Title:="Números de contactos para #" `El # será remplazado por el valor de ruptura actual RELATE MANY([Clients]Code) `Recupera los contactos del cliente `Ordenación necesaria en ruptura + visualización en orden alfabético ORDER BY([Contacts];[Titles]Label;[Contacts]ContactName;[Contacts]ContactFirstname) PV REPORT MANY(Area;$Column;$Row;$Master;$TableBreak;$FieldBreak;$Operator;$Tables; $Fields;$Insert;$Detail;$Title) Selecciones y registros actuales La selección dependerá de los enlaces entre tablas a nivel de la estructura de la base, de los números de campos y de tablas pasadas como parámetros al comando. PV REPORT ONE PV REPORT ONE ( area ; columna ; linea ; master ; tablaRuptura ; campoRuptura ; operacion ; tablas ; campos ; insertar ; detalle ; titulo ) Parámetro area columna linea master tablaRuptura campoRuptura operacion tablas campos insertar detalle titulo Tipo Entero largo Entero largo Entero largo Entero Entero Entero Entero Entero Entero Entero Entero largo Cadena Descripción Área 4D View Número de la columna Número de línea Número de tabla primaria Número de tabla en donde ocurre la ruptura Número de campo donde ocurre la ruptura Operaciones a efectuar Número de tabla del campo a mostrar Número del campo a mostrar 0 = Remplazar; 1 = Insertar líneas Opciones de inserción de detalle Titulo de ruptura Descripción El comando PV REPORT ONE crea un informe en el area 4D View utilizando los valores de los campos 4D especificados en tablas y campos a partir de la selección actual de la tabla master. Una operación puede aplicarse a este campo definido por operacion: subtotal, número, máximo, etc. Para definir el parámetro operacion, utilice las constantes del tema PV Funciones informes: Constante Tipo Valor pv report function average pv report function count pv report function max pv report function min pv report function none pv report function sum Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 1 4 3 2 -1 0 El resultado generado se inserta en el area a partir de la celda designada por linea y columna. tablaRuptura y campoRuptura designan el campo donde se efectúa la secuencia de ruptura. Las rupturas permiten separar los registros en grupos homogéneos y efectuar cálculos intermediarios para cada grupo. Una ruptura es un cambio de valor en una tabla de ordenación. Es necesario asociar este nivel de ruptura con un criterio de ordenación. El orden de la selección de registros de tablaRuptura y campoRuptura es necesario antes de usar el comando PV REPORT ONE. Puede tener criterios de ordenación adicionales, que no serán tenidos en cuenta en la ruptura. Para más información sobre la construcción de informes rápidos con rupturas, consulte el Manual de Diseño 4D. El parámetro insertar determina si los datos ubicados en el área 4D View por este comando deben reemplazar las celdas que pueden estar presentes o deben insertarse en las nuevas líneas. Si pasa 0, los datos se borran y remplazan. Si pasa 1, las líneas adicionales se insertan. El parámetro detalle permite definir la forma en que 4D View insertará el detalle, así como también las líneas de ruptura en el informe: Si pasa 0 en detalle, sólo se insertan las líneas de ruptura (las líneas de detalle no se insertan). Si pasa 1 en detalle, se insertan las líneas de detalle y los valores de ruptura se repite en cada línea. Si pasa 2 en detalle, se insertan las líneas de detalle y los valores de rupturas se muestran una sola vez. El parámetro titulo permite definir el título de la línea de resultados (es decir, "Total", "Promedio", etc.) Al igual que en el Editor de informes rápidos de 4D, puede utilizar el carácter # como un marcador para el valor de ruptura actual. Por ejemplo, si el campo "País" es su campo de ruptura, puede pasar "Total para #:" y obtener "Total para USA:", "Total para Japón:", etc. Pase una cadena vacía si no se desea insertar un título. Nota: si detalle vale 0 y el título es una cadena vacía, la primera columna no se inserta (estaría vacía). Ejemplo Mostramos en un área 4D View una lista de clientes, separando las mujeres y los hombres e indicando para cada grupo el número de registros: C_LONGINT($Column) `Número de columna C_LONGINT($Row) `Número de línea C_INTEGER($Master) `Número de tabla primaria C_INTEGER($TableBreak) `Número de tabla donde ocurre la ruptura C_INTEGER($FieldBreak) `Número de campo donde ocuerre la ruptura C_INTEGER($Operator) `Operación a ejecutar C_INTEGER($Table) `Número de la tabla de campos a mostrar C_INTEGER($Field) `Número de campos a mostrar C_INTEGER($Insert) `0=Remplazar;1=Insertar líneas C_INTEGER($Detail) `Opción de visualización del cuerpo C_STRING(20;$Title) `Título de la línea de resultado `Inicializa $Column:=4 `Visualiza a partir de la columna C $Row:=3 `Visualiza a partir de la tercera línea (Titulo + linea vacía) $Master:=Table(->[Clientes]) `Tabla de clientes arrastrada $TableBreak:=Table(->[Clientes]) $FieldBreak:=Field(->[Clientes]Tipo) `Ruptura en el tipo de clientes $Operator:=pv report function count `Calcula el número de hombres y mujeres $Table:=Table(->[Clientes]) `Campos de la tabla de los clientes $Field:=Field(->[Clientes]Nombre) `Imprimir los nombres $Insert:=1 `Inserción solicitada $Detail:=2 `Líneas de detalle insertadas, los valores se muestran una vez $Title:="Total" ALL RECORDS([Clientes]) ORDER BY([Clientes];[Clientes]Tipo;[Clientes]Name) `Ordenación necesaria para ruptura + visualización por orden alfabético PV REPORT ONE(Area;$Column;$Row;$Master;$TableBreak;$FieldBreak;$Operator;$Table;$Field;$Insert;$Detail;$Title) PV SET CELL BOOLEAN VALUE PV SET CELL BOOLEAN VALUE ( area ; columna ; linea ; valor ) Parámetro area columna linea valor Tipo Entero largo Entero largo Entero largo Entero Descripción Área 4D View Número de columna de la celda Número de línea de la celda Valor de la celda Descripción El comando PV SET CELL BOOLEAN VALUE asigna el valor entero a la celda asignada por columna y linea. Este entero permite expresar un valor booleano (0=Falso, 1=Verdadero): luego es necesario traducir los booleanos 4D como una función Num(elBooleano). Ejemplo Modificaremos el ejemplo del comando PV SET CELL STRING VALUE al tipo booleano, representado por un entero: C_INTEGER($CopyNumber) C_LONGINT($Column;$Row) `Coordenadas de la celda a copiar C_INTEGER($Index) `Índice del bucle C_BOOLEAN($Value) `Valor a copiar $CopyNumber:=Num(Request("¿Cuántas copias desea?";"5")) `5 por defecto If($CopyNumber>0) PV GET CURRENT CELL(Area;$Column;$Row) `Celda a copiar $Value:=(PV Get cell boolean value(Area;$Column;$Row)=1) `Conversión entero a booleano For($Index;$Row+1;$Row+$CopyNumber) `$CopyNumber loop(s) PV SET CELL BOOLEAN VALUE(Area;$Column;$Index;Num($Value)) `Copiar valor End for End if PV SET CELL CONTROL PV SET CELL CONTROL ( area ; columna ; linea ; tipo ; nomVar ; metodo ; titulo ) Parámetro area columna linea tipo nomVar metodo titulo Tipo Entero largo Entero largo Entero largo Entero Cadena Cadena Cadena Descripción Área 4D View Número de columna de la celda Número de línea de la celda Tipo de control Nombre de la variable de gestión del control Nombre del método de retrollamada Título del control Descripción El comando PV SET CELL CONTROL coloca un "control" en la celda designada por linea y columna. Un control es un objeto de tipo botón, casilla de selección, botón de radio, lista desplegable o un combo box dentro de una celda. Si un control ya fue insertado en la celda, se elimina y se sustituye por el nuevo control, cualquiera que sea su tipo. tipo indica el tipo de control (entre los cinco mencionados anteriormente) que figura en la celda. Para definir este parámetro, utilice las constantes del tema PV Controles. nomVar es la variable asociada al control. Pase el nombre del array que contiene los valores a mostrar (para los controles de tipos lista desplegable y combo box). metodo contiene el nombre del método de retrollamada relacionado con el control. Para más información sobre los métodos de retrollamada, consulte la sección PV Área, Introducción. titulo contiene la etiqueta del botón, casilla de selección, etc. Ejemplo Los siguientes métodos permiten visualizar los diferentes tipos de controles: Botón estándar en C3: C_LONGINT(vStandardButton) `Botón estándar PV SET CELL CONTROL(Area;3;3;pv control push button;"vStandardButton";"CallbackButton";"Button") `Método CallbackButton C_LONGINT($1) `Área 4D View C_LONGINT($2) `Número de columna C_LONGINT($3) `Número de línea C_POINTER($4) `Puntero al objeto de llamada ALERT("Control from method: "+Current method name) Botones radio en E3, E4, E5: C_LONGINT(vRadio1;vRadio2;vRadio3) `Botones radio vRadio1:=1 vRadio2:=0 vRadio3:=0 PV SET CELL CONTROL(Area;5;3;pv control radio button;"vRadio1";"CallbackRadio";"Día") PV SET CELL CONTROL(Area;5;4;pv control radio button;"vRadio2";"CallbackRadio";"Mes") PV SET CELL CONTROL(Area;5;5;pv control radio button;"vRadio3";"CallbackRadio";"Año") `Método CallbackRadio C_LONGINT($1) `Área 4D View C_LONGINT($2) `Número de columna C_LONGINT($3) `Número de línea C_POINTER($4) `Puntero al objeto de llamada C_STRING(6;$Value) Case of :($4=(->vRadio1)) vRadio2:=0 vRadio3:=0 $Value:="Día" :($4=(->vRadio2)) vRadio1:=0 vRadio3:=0 $Value:="Mes" :($4=(->vRadio3)) vRadio1:=0 vRadio2:=0 $Value:="Año" End case PV SET CELL TEXT VALUE($1;($2+1);3;$Value) Casillas de selección en E7, E8, E9: C_LONGINT(vCheckBox1;vCheckBox2;vCheckBox3) `Casillas a seleccionar vCheckBox1:=0 vCheckBox2:=0 vCheckBox3:=0 PV SET CELL CONTROL(Area;5;7;pv control check box;"vCheckBox1";"CallbackCheckBox";"Principiante") PV SET CELL CONTROL(Area;5;8;pv control check box;"vCheckBox2";"CallbackCheckBox";"Intermedio") PV SET CELL CONTROL(Area;5;9;pv control check box;"vCheckBox3";"CallbackCheckBox";"Experto") `Método CallbackCheckBox C_LONGINT($1) `Área 4D View C_LONGINT($2) `Número de columna C_LONGINT($3) `Número de línea C_POINTER($4) `Puntero al objeto de llamada C_TEXT($Value) If(vCheckBox1=1) $Value:="Principiante" End if If(vCheckBox2=1) If($Value#"") $Value:=$Value+" + " End if $Value:=$Value+"Intermedio" End if If(vCheckBox3=1) If($Value#"") $Value:=$Value+" + " End if $Value:=$Value+"Expert" End if PV SET CELL TEXT VALUE($1;($2+1);7;$Value) Lista desplegable en C5: ARRAY TEXT(DropdownListArray;5) `Para lista desplegable DropdownListArray{1}:="Lunes" DropdownListArray{2}:="Martes" DropdownListArray{3}:="Miércoles" DropdownListArray{4}:="Jueves" DropdownListArray{5}:="Viernes" DropdownListArray:=3 `Defecto a miércoles PV SET CELL CONTROL(Area;3;5;pv control drop down;"DropdownListArray";"CallbackDropList";"") `Método CallbackDropList C_LONGINT($1) `Área 4D View C_LONGINT($2) `Número de columna C_LONGINT($3) `Número de línea C_POINTER($4) `Puntero al objeto de llamada PV SET CELL TEXT VALUE($1;3;6;DropdownListArray{DropdownListArray}) Combo box en C7: ARRAY TEXT(ComboArray;5) `Para lista del combo box ComboArray{1}:="Lunes" ComboArray{2}:="Martes" ComboArray{3}:="Miércoles" ComboArray{4}:="Jueves" ComboArray{5}:="Viernes" ComboArray:=5 `Defecto para viernes PV SET CELL CONTROL(Area;3;7;pv control combo box;"ComboArray";"CallbackCombo";"") `Método: CallbackCombo C_LONGINT($1) `Área 4D View C_LONGINT($2) `Número de columna C_LONGINT($3) `Número de línea C_POINTER($4) `Puntero al objeto de llamada PV SET CELL TEXT VALUE($1;3;8;ComboArray{0}) PV SET CELL DATE TIME VALUE PV SET CELL DATE TIME VALUE ( area ; columna ; linea ; fecha ; hora ) Parámetro area columna linea fecha hora Tipo Entero largo Entero largo Entero largo Fecha Hora Descripción Área 4D View Número de columna de la celda Número de línea de la celda Valor fecha a fijar Valor hora a fijar Descripción El comando PV SET CELL DATE TIME VALUE asigna los valores fecha y hora como un solo valor a la celda designada por columna y linea. Ejemplo Este método solicita una fecha y hora para una reunión, que se desplaza al siguiente día media hora más tarde y muestra la nueva cita en la celda A1: C_DATE($Date) `Fecha de la reunión C_TIME($Time) `Hora de la reunión $Date:=Date(Request("Fecha de la reunión";String(Current date))) If($Date#!00/00/00!) `Fecha válida $Time:=Time(Request("Hora de la reunión";Time string(Current time))) If($Time#†00:00:00†) `Hora válida `Reprogramación de la reunión un día después y media hora más tarde y luego asignamos la celda A1 PV SET CELL DATE TIME VALUE(Area;1;1;$Date+1;$Time+†00:30:00†) PV GET CELL DATE TIME VALUE(Area;1;1;$Date;$Time) `Lectura de la información ALERT("La hora ha se ha desplazado al "+String($Date)+" a las "+Time string($Time)) End if End if PV SET CELL DATE VALUE PV SET CELL DATE VALUE ( area ; columna ; linea ; valor ) Parámetro area columna linea valor Tipo Entero largo Entero largo Entero largo Fecha Descripción Área 4D View Número de columna de la celda Número de línea de la celda Valor de la celda Descripción El comando PV SET CELL DATE VALUE asigna la fecha valor a la celda asignada por columna y linea. Ejemplo Consulte el ejemplo del comando PV SET CELL STRING VALUE. PV SET CELL FIELD PV SET CELL FIELD ( area ; columna ; linea ; numTabla ; numCampo ) Parámetro area columna linea numTabla numCampo Tipo Entero largo Entero largo Entero largo Entero Entero Descripción Área 4D View Número de columna de la celda Número de línea de la celda Número de tabla Número de campo Descripción El comando PV SET CELL FIELD asocia un campo a la celda de area cuyas coordenadas corresponden a la intersección de columna y línea. numTabla es el número de la tabla en la que desea asociar el registro actual de la celda. El valor que aparece es el del campo para el registro actual. La celda está asociada al campo de manera dinámica: toda modificación del valor se refleja automáticamente en el campo del registro actual y viceversa. Ejemplo Es posible construir un formulario de entrada compuesto por celdas 4D View: cada una de ellas permite la visualización y la modificación de los campos asociados con el comando PV SET CELL FIELD. El registro puede manejadarse por el método de retrollamada u otro objeto del formulario, para una entrada en bucle: C_INTEGER($Table;$Field) `Referencia de los campos asociados If(Form event=On Load) PV GET CELL FIELD(Area;2;1;$Table;$Field) `¿Hay un campo asociado a B1? If($Table=0) & ($Field=0)PV SET CELL FIELD(Area;2;1;1;4) `B1 : [Clientes]Apellido End if PV GET CELL FIELD(Area;2;2;$Table;$Field) `¿Hay un campo asociado a B2? If($Table=0) & ($Field=0)PV SET CELL FIELD(Area;2;2;1;3) `B2 : [Clientes]Nombre End if `Etiquetas PV SET CELL STRING VALUE(Area;1;1;"Apellido:") PV SET CELL STRING VALUE(Area;1;2;"Nombre:") CREATE RECORD([Clientes]) `Nuevo cliente introducido End if PV SET CELL FORMULA PV SET CELL FORMULA ( area ; columna ; linea ; formula ) Parámetro area columna linea formula Tipo Entero largo Entero largo Entero largo Cadena Descripción Área 4D View Número de columna de la celda Número de línea de la celda Formula Descripción El comando PV SET CELL FORMULA ubica formula en la celda designada por columna y linea. Ejemplo El siguiente ejemplo crea un aumento debajo de una celda de tipo numérico. Si el valor de esta última se modifica posteriormente, el incremento se actualiza automáticamente por la acción de las fórmulas que ubicamos en las celdas con PV SET CELL FORMULA. C_INTEGER($CopyNumber) `Número de copias a ejecutar C_LONGINT($Column;$Row) `Coordenadas de la celda a copiar C_INTEGER($Index) `Indice de bucle C_TEXT($Name) `Nombre de la celda de inicio PV GET CURRENT CELL(Area;$Column;$Row) If(PV Get cell value type(Area;$Column;$Row)=pv number type value) `Verificación del tipo `5 por defecto $CopyNumber:=Num(Request("¿Cuántas celdas hacia abajo desea incrementar?";"5")) If($CopyNumber>0) `Validar $Name:=PV Get cell name(Area;$Column;$Row) `Recuperación del nombre If($Name="") `¿Sin nombre? $Name:="COL"+String($Column)+"RW"+String($Row) `Actualmente tiene uno PV SET CELL NAME(Area;$Column;$Row;$Name) `nombre de tipo "COL2RW3" End if For($Index;$Row+1;$Row+$CopyNumber) `$CopyNumber bucle(s) `Incremento PV SET CELL FORMULA(Area;$Column;$Index;"="+$Name+"+"+String($Index-$Row)) End for End if Else `Tipo incorrecto ALERT("La celda de inicio debe ser de tipo numérico") End if PV SET CELL NUM VALUE PV SET CELL NUM VALUE ( area ; columna ; linea ; valor ) Parámetro area columna linea valor Tipo Entero largo Entero largo Entero largo Real Descripción Área 4D View Número de columna de la celda Número de línea de la celda Valor numérico a fijar Descripción El comando PV SET CELL NUM VALUE asigna el número valor a la celda asignada por columna y linea. Ejemplo Consulte el ejemplo del comando PV SET CELL STRING VALUE. PV SET CELL PICTURE VALUE PV SET CELL PICTURE VALUE ( area ; columna ; linea ; valor ) Parámetro area columna linea valor Tipo Entero largo Entero largo Entero largo Imagen Descripción Área 4D View Número de columna de la celda Número de línea de la celda Valor imagen a fijar Descripción El comando PV SET CELL PICTURE VALUE ubica la imagen valor en la celda definida por columna y linea. Ejemplo Consulte el ejemplo del comando PV SET CELL STRING VALUE. PV SET CELL STRING VALUE PV SET CELL STRING VALUE ( area ; columna ; linea ; valor ) Parámetro area columna linea valor Tipo Entero largo Entero largo Entero largo Cadena Descripción Área 4D View Número de columna de la celda Número de línea de la celda Valor a fijar Descripción El comando PV SET CELL STRING VALUE escribe la cadena de caracteres valor en la celda designada por columna y línea. Si valor comienza por el signo "=", será interpretado como una fórmula. Ejemplo El siguiente ejemplo reproduce la hoja de cálculo "Copiar hacia abajo" para las celdas de tipo alfa numérico únicamente. C_INTEGER($CopyNumber) C_LONGINT($Column;$Row) `Coordenadas de la celda a copiar C_INTEGER($Index) `Índice de bucle C_STRING(80;$Value) `Valor a copiar $CopyNumber:=Num(Request("¿Cuántas veces debe copiar hacia abajo?";"5")) `5 por defecto If($CopyNumber>0) PV GET CURRENT CELL(Area;$Column;$Row) `Celda a copiar $Value:=PV Get cell string value(Area;$Column;$Row) For($Index;$Row+1;$Row+$CopyNumber) `$CopyNumber bucle(s) PV SET CELL STRING VALUE(Area;$Column;$Index;$Value) End for End if Consejo: este método puede ser utilizado por todos los tipos, o mejor aún, para llamar a un método genérico para probar el tipo con PV Get cell value type antes de llamar "PV Get cell xxx value" luego el comando "PV SET CELL XXX VALUE" para copiar el valor, independientemente de su tipo, que puede ser un buen ejercicio de programación genérica. PV SET CELL TEXT VALUE PV SET CELL TEXT VALUE ( area ; columna ; grueso ; valor ) Parámetro area columna grueso valor Tipo Entero largo Entero largo Entero largo Texto Descripción Área 4D View Número de columna de la celda Número de línea de la celda Valor texto a fijar Descripción El comando PV SET CELL TEXT VALUE escribe el texto valor en la celda designada por columna y linea. Ejemplo Consulte el ejemplo del comando PV SET CELL STRING VALUE. PV SET CELL TIME VALUE PV SET CELL TIME VALUE ( area ; columna ; linea ; valor ) Parámetro area columna linea valor Tipo Entero largo Entero largo Entero largo Hora Descripción Área 4D View Número de columna de la celda Número de línea de la celda Valor de la celda Descripción El comando PV SET CELL TIME VALUE asigna la hora valor a la celda asignada por columna y linea. Ejemplo Consulte el ejemplo del comando PV SET CELL STRING VALUE. PV SET CELL VARIABLE PV SET CELL VARIABLE ( area ; columna ; linea ; variable ) Parámetro area columna linea variable Tipo Entero largo Entero largo Entero largo Cadena Descripción Área 4D View Número de columna de la celda Número de línea de la celda Nombre de variable Descripción El comando PV SET CELL VARIABLE asocia una variable a la celda designada por columna y linea. Toda modificación del contenido de la celda repercutirá en la variable y viceversa. Ejemplo El siguiente método de formulario muestra la hora actual en la celda C3 utilizando la variable vHora. Esta variable se actualiza cada segundo, para dar la celda el comportamiento de un reloj: C_TIME(vHora) `Variable recibe la hora mostrada Case of :(Form event=On Load) If(PV Get cell variable(Area;3;3)="") `Aún no hay variable asociada a C3 PV SET CELL VARIABLE(Area;3;3;"vHora") `Asociamos la variable vHora End if SET TIMER(60) `Cada segundo :(Form event=On Timer) vTime:=Current time End case PV UPDATE DYNAMIC AREA PV UPDATE DYNAMIC AREA ( area ) Parámetro area Tipo Entero largo Descripción Área 4D View Descripción El comando PV UPDATE DYNAMIC AREA provoca la sincronización de los datos presentes en el area 4D View y de los de la base de datos 4D. Este comando es útil en el contexto de los métodos de retrollamada utilizados en las áreas dinámicas únicamente. De hecho, cuando un método de retrollamada provoca la modificación de la selección actual de 4D, el área 4D View sólo se actualiza al final de la ejecución de todo el método. Sin embargo, si en este caso, los comandos como PV GOTO CELL se utiliza en el método de retrollamada, el resultado obtenido podría ser incorrecto debido al desfase temporal entre los datos 4D y los de 4D View. Para evitar este riesgo, es necesario llamar al comando PV UPDATE DYNAMIC AREA en el método de retrollamada con el fin de que los datos del área 4D View reflejen de inmediato las modificaciones realizadas en las de 4D. PV UPDATE DYNAMIC AREA provoca la actualización del área 4D View si la selección de 4D ha sufrido al menos una de las siguientes modificaciones: Modificación de la selección actual en el contexto de los campos relacionados, Modificación del tamaño de los arrays relacionados, Modificación de los datos de los campos o arrays relacionados. Ejemplo Este ejemplo prolonga el del comando PV ADD DYNAMIC FIELDS (permitiendo asociar la selección 4D al área 4D View). Instalamos un método evento "clic derecho" que se utiliza para crear un registro en la selección de 4D y se ubica en este registro en el área 4D View. PV ON EVENT(area;pv on right clicked;"CallbackMethod") El código del método proyecto CallbackMethod es el siguiente: C_BOOLEAN($0) C_LONGINT($1;$2;$3;$4;$5;$6) $0:=True `Filtro del evento CREATE RECORD([Contactos]) `Nuevo registro SAVE RECORD([Contactos]) `Guardar el registro creado ALL RECORDS([Contactos]) `Actualización de la selección de 4D View en función de la de 4D PV UPDATE DYNAMIC AREA(area) `Selección del nuevo registro PV GOTO CELL(area;1;Records in selection([Contactos])) Lista de temas de constantes PV Acción soltar PV Acciones de selección PV Arrastrar soltar autorizado PV Bordes PV Comandos PV Controles PV Direcciones PV Encabezados y pies de página PV Estilo de borde PV Estilo valores especiales PV Eventos PV Flechas PV Formato documento PV Formato fecha hora PV Funciones informes PV Información soltar PV Modo de selección PV Modo de soltar PV Modo tecla intro en entrada PV Ordenar encabezados PV Propiedades área PV Propiedades celda PV Propiedades documento PV Propiedades estilo PV Propiedades imágenes PV Propiedades impresión PV Propiedades panel PV Propiedades plugin PV Retorno de carro PV Tipo valor celda PV Triggers PV Valores estilo PV Valores impresión PV Visualización imagen PV Acción soltar Constante Tipo Valor pv entire area pv insert cell down pv insert cell right pv insert column pv insert row pv replace cell pv replace column pv replace row Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 1 2 3 7 5 4 8 6 Comentario PV Acciones de selección Constante Tipo Valor Comentario pv selection add pv selection reduce pv selection set Entero largo Entero largo Entero largo 1 2 0 The new selection is added to the existing selection. The selection is removed from the existing selection. The new selection replaces the existing selection. PV Arrastrar soltar autorizado Las constantes de este tema permiten indicar o leer la naturaleza de los elementos fuente y objetivo aceptados para un área 4D View en caso de arrastrar o soltar. Estas constantes se pueden adicionar con el fin de autorizar varios tipos de elementos. Un ejemplo de uso se encuentra en la descripción del comando PV SET DRAG SIGNATURE. Constante Tipo Valor Comentario pv DD 4D objects pv DD adjacent cells pv DD adjacent columns pv DD adjacent rows pv DD multiple cells pv DD multiple columns pv DD multiple rows pv DD not allowed pv DD single cell pv DD single column pv DD single row Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 1024 4D objects can be dropped. All types of 4D fields (except for BLOBs and sub-tables) and variables (except for BLOBs) can be dropped. 4 Multiple adjacent cells or a single-cell selection can be dragged and/or dropped. 256 Multiple adjacent columns or a single-column selection can be dragged and/or dropped. 32 Multiple adjacent rows or single row selections can be dragged and/or dropped. 8 Multiple cells (adjacent or not) or a single-cell selection can be dragged and/or dropped. 512 Multiple columns (adjacent or not) or a single-column selection can be dragged and/or dropped. 64 Multiple rows (adjacent or not) or a single-row selection can be dragged and/or dropped. 0 No selection can be dragged or dropped in the area—even if drag and drop is allowed. 2 Single cell selections can be dragged and/or dropped. 128 Single column selections can be dragged and/or dropped. 16 Single row selections can be dragged and/or dropped. PV Bordes Las constantes de este tema se utilizan para seleccionar un borde de un rango de celdas. Es posible añadir varias constantes para definir varios bordes simultáneamente. Cuando se seleccionan varias celdas, las cuatro primeras constantes indican los límites exteriores del rango. En este caso, los límites interiores del rango pueden definirse vía las constantes "pv border edge inner hor" y "pv border edge inner vert". Constante Tipo Valor pv border edge bottom pv border edge inner hor pv border edge inner vert pv border edge left pv border edge right pv border edge top Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 8 16 32 1 4 2 Comentario PV Comandos Las constantes de este tema permiten designar una de las funciones de 4D View accesibles vía la interfaz del plug-in. Estas constantes tienen prefijo de la siguiente manera: "cmd" indica un comando de menú (así como el icono correspondiente de la paleta de herramientas). "pal", indica una función que sólo es accesible mediante un icono de la paleta de herramientas. Estas constantes sólo se puede utilizar con los comandos PV SET COMMAND STATUS y PV GET COMMAND STATUS. Constante Tipo Valor pv cmd calculate now pv cmd calculation mode pv cmd db import fields pv cmd db import report pv cmd db linked cells pv cmd db linked pictures pv cmd document information pv cmd edit clear all pv cmd edit clear borders pv cmd edit clear formats pv cmd edit clear formulas pv cmd edit clear other pv cmd edit clear values pv cmd edit copy pv cmd edit cut pv cmd edit delete pv cmd edit fill down pv cmd edit fill right pv cmd edit find pv cmd edit find next pv cmd edit go to pv cmd edit go to last cell pv cmd edit move pv cmd edit paste pv cmd edit redo pv cmd edit repeat pv cmd edit replace pv cmd edit replace next pv cmd edit select all pv cmd edit set name pv cmd edit sort pv cmd edit special paste pv cmd edit undo pv cmd export pv cmd export area clear pv cmd export area set pv cmd export area show pv cmd file new pv cmd file open pv cmd file page setup pv cmd file preferences pv cmd file print document pv cmd file print formulas pv cmd file print preview pv cmd file printing options pv cmd file save pv cmd file save as pv cmd file save template pv cmd format borders pv cmd format cells pv cmd format col default W pv cmd format column auto width pv cmd format column hide pv cmd format column show pv cmd format column width pv cmd format row auto height pv cmd format row default H pv cmd format row height pv cmd format row hide Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 120 119 213 214 215 217 109 234 233 232 230 235 231 4 3 136 134 135 125 126 129 130 124 5 2 122 127 128 7 170 131 123 1 105 107 106 108 100 101 110 118 114 113 112 111 102 103 104 202 187 175 174 179 180 173 177 178 176 181 Comentario pv cmd format row show pv cmd format style sheets pv cmd freeze panes pv cmd freeze references pv cmd go to full screen pv cmd insert cell pv cmd insert column pv cmd insert column break pv cmd insert row pv cmd insert row break pv cmd linked columns arrays pv cmd linked columns fields pv cmd print area clear pv cmd print area set pv cmd print area show pv cmd security hide pv cmd security lock pv cmd security show pv cmd security unlock pv cmd unfreeze panes pv cmd view col headers pv cmd view formula pv cmd view grid pv cmd view Hscrollbar pv cmd view menu bar pv cmd view page breaks pv cmd view pictures pv cmd view references pv cmd view row headers pv cmd view toolbar border pv cmd view toolbar number pv cmd view toolbar standard pv cmd view toolbar style pv cmd view Vscrollbar pv pal border all pv pal border bottom pv pal border color pv pal border columns pv pal border frame pv pal border kind pv pal border none pv pal border rows pv pal format string pv pal formula cancel pv pal formula validate pv pal number align auto pv pal number align center pv pal number align left pv pal number align right pv pal number money pv pal number percentage pv pal number scientific pv pal standard sort asc pv pal standard sort desc pv pal standard zoom pv pal style bold pv pal style font name pv pal style font size pv pal style italic pv pal style style sheet Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 182 188 171 121 20 154 155 211 156 212 219 218 116 115 117 183 185 184 186 172 142 141 144 146 140 147 149 148 143 153 151 150 152 145 207 203 210 205 204 209 208 206 160 221 222 189 191 190 192 201 200 199 132 133 139 196 193 194 197 195 pv pal style underline Entero largo 198 PV Controles Constante Tipo Valor pv control check box pv control combo box pv control drop down pv control none pv control push button pv control radio button Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 3 5 4 0 1 2 Comentario PV Direcciones Constante Tipo Valor pv to the bottom pv to the left pv to the right pv to the top Entero largo Entero largo Entero largo Entero largo 1 2 0 3 Comentario PV Encabezados y pies de página Constante Tipo Valor pv footer center pv footer left pv footer right pv header center pv header left pv header right Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 5 4 6 2 1 3 Comentario PV Estilo de borde Constante Tipo Valor pv border style 1 pv border style 111 pv border style 112 pv border style 2 pv border style 211 pv border style 212 pv border style 222 pv border style 232 pv border style 3 pv border style 4 pv border style 5 pv border style 6 pv border style half pv border style none pv border style quarter Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 1 7 9 2 8 10 11 12 3 4 5 6 14 0 13 Comentario PV Estilo valores especiales Las constantes de este tema permiten aplicar hojas de estilo por defecto con los comandos PV SET STYLE PROPERTY and PV Get style property (parámetro "estilo"). Constante Tipo Valor Comentario pv style cells Entero largo Entero largo Entero largo -1 Hoja de estilo por defecto llamada "Celdas”, aplicada a las celdas. -2 Hoja de estilo por defecto llamada "Encabezado y pie de página", aplicada al encabezado y al pie de página durante la impresión. Hoja de estilo por defecto llamada "Encabezados de líneas/columnas", aplicado a los encabezados de columnas y de líneas. pv style col row headers pv style page footer header -3 PV Eventos Detalles específicos: • 'pv on cell value changed' no se genera para áreas dinámicas. • 'pv on getting focus' y 'pv on losing focus' se generan cuando el área 4D View (y no la celda) toma o pierde el foco. Constante Tipo Valor pv on active cell changed pv on cell value changed pv on clicked pv on column resize pv on column sort pv on contextual click pv on double clicked pv on drag pv on drop pv on getting focus pv on keyboard pv on losing focus pv on right clicked pv on row resize pv on scrolled pv on selection changed Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 8 9 2 12 14 15 4 10 11 0 6 1 3 13 5 7 Comentario PV Flechas Las constantes de este tema son los valores posibles de la propiedad de área "pv flechas" (ver PV Propiedades área) Constante Tipo Valor Comentario pv arrow keys allowed pv arrow keys not allowed pv right and left arrow keys pv top and bottom arrow keys Entero largo Entero largo Entero largo Entero largo 0 3 2 1 Allows the use of all arrow keys. Does not allow the use of arrow keys for data validation. Allows only the use of right and left arrow keys. Allows only the use of top and bottom arrow keys. PV Formato documento Constante Tipo Valor pv html pv sylk pv tab tab return pv view Entero largo Entero largo Entero largo Entero largo 3 2 1 0 Comentario PV Formato fecha hora Constante Tipo Valor Comentario pv Abbr Month Day Year pv Abbreviated pv Abbreviated H MM AM PM pv Day Name pv Day Number pv HH MM pv HH MM AM PM pv HH MM SS pv Hour Min pv Hour Min Sec pv Long pv Long H MM AM PM pv Month Day Year pv Month Day Year H MM AM PM pv Month Name pv Month Number pv Short pv Short HH MM SS pv Short2 pv Short2 Hour Min Sec pv Year Number Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 6 2 13 7 8 18 21 17 20 19 3 12 5 15 9 10 1 14 4 16 11 21 Feb, 2002 Thu 21 Feb 2002 Thu 21Feb 2002 at 12:30 PM Thursday 21 12:30 12:30 PM 12:30:00 12 hours 30 minutes 12 hours 30 minutes 0 second Thursday 21 February 2002 Thursday 21 February 2002 at 12:30 PM 21 February, 2002 21 February, 2002 at 12:30 PM February 2 02/21/02 02/21/02 at 12:30:00 02/21/2002 21/02/2002 and 12 hours 30 minutes 0 second 2002 PV Funciones informes Constante Tipo Valor pv report function average pv report function count pv report function max pv report function min pv report function none pv report function sum Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 1 4 3 2 -1 0 Comentario PV Información soltar Constante Tipo Valor Comentario pv drag column pv drag content pv drag plugin pv drag process Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 2 pv drag row pv drag X offset pv drag Y offset pv drop action pv drop column pv drop content pv drop plugin pv drop process pv drop row pv drop X offset pv drop Y offset Returns the number of the source column. 6 1 Returns the number of the 4D View area dragged. 0 Returns the process number of the source area. 3 Returns the number of the source row. 4 Returns the X coordinates of the cell (starting from the upper left corner of the cell) where the drag action has been done. Returns the Y coordinates of the cell (starting from the upper left corner of the cell) where the drag action has been done. Allows getting the drop action done by the user. Returns a constant from the PV Drop action theme. 5 14 9 Returns the number of the destination column. 13 8 Returns the number of the area dropped. 7 Returns the process number of the destination area. 10 Returns the number of the destination row. 11 Returns the X coordinates of the cell (starting from the upper left corner of the cell) into which the drop action has been done. Returns the Y coordinates of the cell (starting from the upper left corner of the cell) into which the drop action has been done. 12 PV Modo de selección Constante Tipo Valor Comentario pv select adjacent cells pv select adjacent columns pv select adjacent rows pv select multiple cells pv select multiple columns pv select multiple rows pv select not allowed pv select single cell pv select single column pv select single row Entero largo 8 Only adjacent cells can be selected in the area. Entero largo 5 Only adjacent columns can be selected in the area. 2 Only adjacent rows can be selected in the area. 9 Multiple cells, adjacent or not, can be selected in the area. 6 Multiple columns, adjacent or not, can be selected in the area. 3 Multiple rows, adjacent or not, can be selected in the area. 0 No selection is possible in the area (all cells are deselected). Data entry is also not allowed (the formula editor is locked). Data can only be viewed. 7 Only one cell at a time can be selected in the area. 4 Only one column at a time can be selected in the area. 1 Only one row at a time can be selected in the area. Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo PV Modo de soltar Constante Tipo Valor Comentario pv drop insert only pv drop insert or replace pv drop replace only Entero largo Entero largo Entero largo 1 0 2 Dropped values can only be inserted in the area. Dropped values can be inserted or replace existing values in the area. Dropped values can only replace existing values in the area. PV Modo tecla intro en entrada Las constantes de este tema permiten definir la acción de la tecla Intro durante la entrada. Cuando se utiliza en modo "estándar", la tecla Intro sólo valida la entrada. También puede activar la celda situada a la derecha ("pv enter key as tab") o de arriba ("pv enter key as return") de la celda modificada. Constante Tipo Valor Comentario pv enter key as return Entero largo 2 pv enter key as tab Entero largo 1 pv enter key standard Entero largo 0 The Enter key validates the current cell then switches between selection/data entry in the next cell below. The Shift+Enter key combination switches between selection/data entry in the next cell above. The Enter key validates the current cell then switches between selection/data entry in the next cell to the right. The Shift+Enter key combination switches between selection/data entry in the next cell to the left. The Enter key validates the current cell then switches between selection/data entry in the same cell (the current cell does not change). PV Ordenar encabezados Constante Tipo Valor Comentario pv ascending sort pv descending sort Entero largo 2 4D View carries out ascending sort. Entero largo 3 4D View carries out descending sort. pv sort allowed Entero largo 1 pv sort not allowed Entero largo 0 4D View carries out a standard sort when the user clicks on a column header. In this case, a symbol appears in the header in order to indicate the sort order. Successive clicks cause alternating ascending and descending sorts. (default value) 4D View does not carry out a standard sort when the user clicks on a column header (the sort can nevertheless be managed by the developer in a customized manner). PV Propiedades área Constante Tipo Valor Comentario Permite autorizar o no la anulación de una acción. Valores asociados: pv allow undo redo Entero largo 39 pv value on: es posible utilizar deshacer (comportamiento por defecto). pv value off: no es posible utilizar deshacer (el comando Deshacer del menú Edición está inactivo). Permite autorizar o no el uso de las teclas de flecha para la validación de la entrada (validación y selección de la siguiente celda). La validación se efectúa sólo cuando el cursor se ubica al comienzo o al final del contenido de la celda. Valores asociados: constantes del tema PV Flechas. pv arrow keys Entero largo 9 pv arrow keys allowed: autoriza la utilización de todas las teclas de flechas. pv top and bottom arrow keys: autoriza únicamente el uso de las teclas de flechas hacia arriba y hacia abajo. pv right and left arrow keys: permite únicamente la utilización de las teclas de flecha hacia la derecha y a la izquierda. pv arrow keys not allowed: no permite la utilización de las teclas de flechas para la validación. Permite crear una nueva línea en una misma celda (celdas multilíneas). Valores asociados: constantes del tema PV Retorno de carro. pv carriage return Entero largo 8 pv column headers height Entero largo 21 pv cr not allowed: no es posible efectuar una entrada multilíneas en el área. pv cr allowed: presionando la tecla Retorno de carro se creará una nueva línea en la celda. pv cr allowed with ctrl: presionando Ctrl+Retorno de carro (Comando+Retorno de carro en Mac OS) se crea una nueva línea en la celda. pv cr allowed with shift: presionando Mayús+Retorno de carro se creará una nueva línea en la celda. Permite leer o definir el alto de los encabezados en las columnas en el área. Valores asociados: alto de los encabezados expresado en píxeles. Permite indicar si los elementos escondidos en el área deben tenerse en cuenta cuando se copian las celdas. Valores asociados: pv copy hidden Entero largo 19 pv value on: los elementos ocultos (si los hay) se tienen en cuenta cuando se copian las celdas. pv value off: los elementos ocultos (si los hay) no se tienen en cuenta cuando se copian las celdas. Permite definir el resaltado de la celda actual en el área. Valores asociados: pv current cell highlight Entero largo 3 pv value on: la celda actual se resalta en el área, por lo tanto es visible en pantalla. pv value off: la celda actual no se resalta en el área, por lo tanto es invisible en pantalla. Por defecto, la celda activa se resalta. Permite definir el tipo de selección que puede arrastrarse. Valores asociados: constantes del tema PV Arrastrar soltar autorizado. pv drag allowed Entero largo 13 pv DD not allowed: ninguna selección puede arrastrarse en el área, incluso si está autorizado arrastrar y soltar. pv DD single cell: es posible arrastrar una selección con una celda única. pv DD adjacent cells: es posible arrastrar una selección con varias celdas adyacentes o una celda única. pv DD multiple cells: es posible arrastrar una selección de varias celdas (adyacentes o no) o una celda única. pv DD single row: es posible arrastrar una selección con una línea única. pv DD adjacent rows: es posible arrastrar una selección con varias líneas adyacentes o una celda única. pv DD multiple rows: es posible arrastrar una selección de varias líneas (adyacentes o no) o una línea única. pv DD single column: es posible arrastrar una selección con una columna única. pv DD adjacent columns: es posible arrastrar una selección con varias columnas adyacentes o una columna única. pv DD multiple columns: es posible arrastrar una selección con varias columnas (adyacentes o no) o una columna única. Nota: puede añadir varias constantes a la misma área. Por ejemplo, PV SET AREA PROPERTY(area; pv drag allowed; pv DD multiple cells + pv DD single column + pv DD adjacent rows) permite arrastrar una selección compuesta de celdas múltiples o una columna única o líneas adyacentes. Permite definir el mecanismo que desencadena el arrastrar en el área. No hay un trigger específico para soltar. Valores asociados: constantes del tema PV Triggers. pv drag trigger Entero largo 12 pv trigger none: no es posible efectuar un arrastrar en el área. pv trigger on click: la selección puede arrastrarse utilizando con un clic. pv trigger on double click: la selección puede arrastrarse utilizando con un doble clic. pv trigger on alt click: la selección puede arrastrarse utilizando una combinación Alt+clic. pv trigger on alt double click: la selección puede arrastrarse utilizando una combinación Alt+doble-clic. pv trigger on ctrl click: la selección puede arrastrarse utilizando la combinación Ctrl+clic (Comando+clic en Mac OS). pv trigger on ctrl double click: la selección puede arrastrarse utilizando la combinación Ctrl+doble-clic (Comando+doble-clic en Mac OS). pv trigger on shift click: la selección puede arrastrarse utilizando la combinación Mayús+clic. pv trigger on shift double clic: la selección puede arrastrarse utilizando la combinación Mayús+doble-clic. Nota: cuando un mismo trigger se define para arrastrar y para la selección, el trigger de arrastrar es prioritario. Permite definir el tipo de selección que es posible soltar en el área. Valores asociados: constantes del tema PV Arrastrar soltar autorizado. pv drop allowed Entero largo 33 pv DD not allowed: ninguna selección puede soltarse en el área, incluso si está autorizado arrastrar y soltar. pv DD single cell: es posible soltar una selección que contenga una celda única. pv DD adjacent cells: es posible soltar una selección que contenga varias celdas adyacentes o una celda única. pv DD multiple cells: es posible soltar una selección que contenga varias celdas (adyacentes o no) o una celda única. pv DD single row: es posible soltar una selección que contenga una línea única. pv DD adjacent rows: es posible soltar una selección que contenga varias líneas adyacentes o una línea única. pv DD multiple rows: es posible soltar una selección que contenga varias líneas (adyacentes o no) o una línea única. pv DD single column: es posible soltar una selección que contenga una columna única. pv DD adjacent columns: es posible soltar una selección que contenga varias columnas adyacentes o una columna única. pv DD multiple columns: es posible soltar columnas múltiples (adyacentes o no) o una columna única. pv DD 4D objects: es posible soltar un objeto 4D. Todos los tipos de campos y de variables 4D (excepto los BLOBs y las sub-tablas) pueden soltarse. Nota: es posible añadir varias constantes para una misma área. Por ejemplo, PV SET AREA PROPERTY(area; pv drop allowed;pv DD multiple cells + pv DD single column + pv DD adjacent rows) permite soltar una selección compuesta por de celdas múltiples o de una columna única o de líneas adyacentes. Permite definir la manera como la selección puede soltarse en el área. Note que esta propiedad define únicamente los modos de soltar valores en el área; la copia de los valores arrastrados (si los hay) debe manejarse por separado. Valores asociados: constantes del tema PV Modo de soltar. pv drop mode Entero largo pv field tag Entero largo 17 pv field wrapper Entero largo 18 pv headers sort Entero largo 14 20 pv drop insert or replace: los valores soltados pueden insertarse o remplazar los valores existentes en el área. pv drop insert only: los valores soltados sólo se pueden insertar en el área. pv drop replace only: los valores soltados sólo pueden remplazar los valores existentes en el área. Permite definir el separador de campo. Esta propiedad es útil únicamente durante la importación/exportación de datos. Valores asociados: código ASCII del carácter. Ejemplo: "E1Campo1", "E1Campo2", "E1Campo3"; "E2Campo4", "E2Campo5"; La coma es el separador de campo. Permite definir el carácter de sobre de campo. Esta propiedad es útil para únicamente durante la importación/exportación de datos. Valores asociados: código ASCII del carácter. Ejemplo: "E1Campo1", "E1Campo2", "E1Campo3"; "E2Campo4", "E2Campo5"; Las comillas son los sobres de campos. Permite autorizar o prohibir la ordenación estándar de los datos cuando se hace clic en el encabezado de una columna (datos dinámicos o estáticos). Valores asociados: las siguientes constantes del tema PV Ordenar encabezados. pv sort not allowed (valor por defecto): 4D View no efectúa una ordenación estándar cuando el usuario hace clic en un encabezado de columna (la ordenación puede sin embargo ser manejada de manera personalizada por el desarrollador). pv sort allowed: 4D View efectúa una ordenación estándar cuando el usuario hace clic en un sort pv hor pane count pv input enter key mode largo Entero largo Entero largo encabezado de columna. En este caso, aparece un símbolo en el encabezado para indicar el criterio de ordenación. Los clics sucesivos provocan alternamente una ordenación ascendente y descendente. 11 15 Una ordenación en una columna dinámica produce una ordenación sincronizada de los otras columnas de manera que los registros conservan si estado inicial. Una ordenación de una columna estática sólo ordena esa columna. Permite leer el número de paneles horizontales presentes en el área. Este constante sólo puede utilizarse con el comando PV Get area property. Valores devueltos: número de paneles. Permite definir la acción de la tecla Intro (teclado numérico) utilizada durante la entrada de datos. Valores asociados: constantes del tema PV Modo tecla intro en entrada. pv enter key standard: la tecla Intro valida la celda actual luego cambia entre selección/entrada datos en la misma celda (la celda actual no cambia). pv enter key as tab: la tecla Intro valida la celda actual luego cambia entre selección/entrada datos en la siguiente celda a la derecha. La combinación Mayús+Intro cambia entre selección/entrada datos en la siguiente celda a la izquierda. pv enter key as return: la tecla Intro valida la celda actual luego cambia entre selección/entrada datos en la siguiente celda debajo. La combinación Mayús+Intro cambia entre selección/entrada datos en la siguiente celda arriba. Nota: a diferencia de la tecla Intro, las teclas Tab y Retorno de carro provocan únicamente la selección de las celdas. Permite definir el modo de desencadenamiento de la entrada en el área. La entrada de datos sólo puede efectuarse en la celda activa. Valores asociados: constantes del tema PV Triggers: pv input trigger Entero largo 6 pv trigger none: la entrado de datos está inactiva (ningún evento puede activar la entrada), incluso si una tecla es permitida en el modo entrada de datos (ver la constante pv input enter key mode). La entrada de datos es, sin embargo, posible utilizando la barra del editor de fórmulas y también es posible cambiar la selección. pv trigger input key: la entrada de datos es activada por una tecla. En este caso, la navegación entre celdas sólo es posible utilizando el teclado (Tab y Mayús+Tab para moverse horizontalmente, Retorno de carro y Mayús+Retorno de carro para moverse verticalmente, o la teclas de flechas). pv trigger input on enter: la entrada de datos es activada por la tecla Intro (teclado numérico). pv trigger input on gain sel: la entrada de datos se activa en la celda que tiene el foco. En este modo, tan pronto como se selecciona la celda, toma el foco y el cursor se convierte en un cursor de entrada. pv trigger on click: la entrada de datos se activa por un clic en una celda. A diferencia de la constante pv trigger input on gain sel, no se muestra un cursor de entrada. pv trigger on double click: la entrada de datos es activada por un doble clic en una celda. Un solo clic no permite la entrada. pv trigger on alt click: la entrada de datos es activada por la combinación Alt+clic en una celda. pv trigger on alt double click: la entrada de datos es activada por la combinación Alt+dobleclic en una celda. pv trigger on ctrl click: la entrada de datos es activada por la combinación Ctrl+clic (Comando+clic en Mac OS) en una celda. pv trigger on ctrl double click: la entrada de datos es activada por la combinación Ctrl+dobleclic (Comando+doble-clic en Mac OS) en una celda. pv trigger on shift click: la entrada de datos es activada por la combinación Mayús+clic en una celda. pv trigger on shift double clic: la entrada de datos es activada por la combinación Mayús+doble-clic en una celda. Notas: Puede añadir varias constantes para el mismo trigger. Por ejemplo, PV SET AREA PROPERTY(area; pv input trigger;pv trigger on click + pv trigger on alt click) permite el uso de un clic O de Alt+clic para la entrada de datos. Cuando el mismo trigger está definido para la entrada y para la selección, el trigger de entrada es prioritario. pv record tag Entero largo 16 pv resizable columns Entero largo 4 Permite definir el carácter delimitador del registro. Esta propiedad es útil únicamente durante la importación/exportación de datos. Valores asociados: código ASCII del carácter. Ejemplo : "E1Campo1", "E1Campo2", "E1Campo3"; "E2Campo4", "E2Campo5"; El punto y coma es el separador del registro (2 registros: E1 y E2). Permite autorizar o no el redimensionamiento de la columna. Valores asociados: pv value on: las columnas en el área son redimensionables. pv value off: el tamaño de las columnas en el área no es redimensionable. Permite autorizar o no el redimensionamiento de las líneas. Valores asociados: pv resizable rows Entero largo 5 pv row headers width Entero largo 22 Permite leer o fijar el ancho de los encabezados de líneas. Valores asociados: ancho de los encabezados (en píxeles). 37 Permite mostrar o no el mensaje de confirmación del registro del documento 4D View si ha sido modificado. Esta alerta se muestra cuando se sale de un área incluida en 4D View, no asociada a un campo de la base, (el formulario se valida o cancela). Esta propiedad no es válida para ventanas externas 4D View. Valores asociados: pv saving dialog Entero largo pv value on: las líneas en el área son redimensionables. pv value off: las líneas en el área no son redimensionables. pv value on: se muestra el mensaje de confirmación (valor por defecto). pv value off: no se muestra el mensaje de confirmación Permite definir el resaltado de una selección de celdas en el área. Valores asociados: pv select highlight Entero largo 1 pv value on: las selecciones se resaltan en el área. pv value off: las selecciones no se resaltan, son invisibles en pantalla. Permite definir el modo de selección permitido par el área. Valores asociados: constantes del tema PV Select mode. pv select mode Entero largo 0 pv select not allowed: no es posible hacer una selección en el área (todas las celdas están deseleccionadas). La entrada de datos tampoco es permitida (el editor de fórmulas se bloquea). Sólo se pueden ver los datos. pv select single row: sólo es posible seleccionar una línea a la vez en el área. pv select adjacent rows: sólo las líneas adyacentes pueden seleccionarse en el área. pv select multiple rows: es posible seleccionar varias líneas, adyacentes o no, en el área. pv select single column: sólo una columna a la vez puede seleccionarse en el área. pv select adjacent columns: sólo es posible seleccionar columnas adyacentes en el área. pv select multiple columns: es posible seleccionar varias columnas, adyacentes o no, en el área. pv select single cell: sólo es posible seleccionar una celda a la vez en el área. pv select adjacent cells: sólo las celdas adyacentes pueden seleccionarse en el área. pv select multiple cells: es posible seleccionar varias celdas, adyacentes o no, en el área. Nota: la entrada de datos aún es posible en la selección (excepto durante el uso de la constante pv select not allowed). Si prefiere no permitir la entrada de datos en el área, debe ejecutar la instrucción PV SET AREA PROPERTY(area;pv input trigger;pv trigger none). Permite autorizar o no las áreas sin selección actual. Valores asociados: pv select null Entero largo 2 pv value on: no es obligatorio tener una selección en el área. Por ejemplo, si la columna o la línea contiene la celda activa se elimina, ya no hay más selección en el área. pv value off: es obligatorio tener una selección en el área. Permite definir el modo de desencadenamiento de la selección en el área. Valores asociados: constantes del tema PV Triggers: pv select trigger Entero largo 7 pv trigger none: no es posible definir una selección en el área. Es posible introducir datos en la selección que estaba activa antes de la ejecución del comando. Las teclas Tab y Retorno de carro modifican la posición de la celda activa en la selección. pv trigger select on arrow: permite definir una selección (celda activa únicamente) utilizando las teclas flechas. No es posible extender o reducir una selección. pv trigger select on tab: permite definir una selección (celda activa únicamente) utilizando la tecla Tab o la combinación Mayús+Tab. No es posible extender o reducir una selección. pv trigger select on return: permite definir una selección (celda activa únicamente) utilizando la tecla Retorno de carro. No es posible extender o reducir una selección. pv trigger on click: permite definir una selección vía un clic. pv trigger on double click: permite definir una selección (celda activa únicamente) vía un doble-clic. No es posible extender o reducir una selección. pv trigger on alt click: permite definir una selección utilizando la combinación Alt+clic. pv trigger on alt double click: permite definir una selección utilizando la combinación Alt+doble-clic pv trigger on ctrl click: permite definir una selección utilizando la combinación Ctrl+clic (Comando+clic on Mac OS). pv trigger on ctrl double click: permite definir una selección utilizando la combinación Ctrl+doble-clic (Comando+doble-clic en Mac OS). pv trigger on shift click: permite definir una selección utilizando la combinación Mayús+clic. pv trigger on shift double clic: permite definir una selección utilizando la combinación Mayús+doble-clic. Notas: Puede añadir varias constantes para un mismo trigger. Por ejemplo, PV SET AREA PROPERTY(area; pv select trigger;pv trigger on click + pv trigger on alt click) permite el uso de un clic O un Alt+clic para la selección. Cuando un mismo trigger se define para la entrada y para la selección, el trigger de entrada es prioritario. Cuando el mismo trigger se define para arrastrar y para la selección, el trigger de arrastrar es prioritario. pv show borders toolbar Permite mostrar u ocultar la barra de herramientas Bordes de 4D View en el área. Valores asociados: Entero largo 29 pv value on: se muestra la barra de herramientas Bordes. pv value off: se oculta la barra de herramientas Bordes. Permite mostrar u ocultar los encabezados de columnas en el área. Valores asociados: pv show column headers Entero largo 23 pv value on: se muestran los encabezados de las columnas. pv value off: se ocultan los encabezados de las columnas. Permite mostrar u ocultar la barra de herramientas Fórmulas de 4D View en el área. Valores asociados: pv show formula toolbar Entero largo pv show hor grid Entero largo 30 pv value on: la barra de herramientas Fórmulas se muestra. pv value off: la barra de herramientas Fórmulas se oculta. Permite mostrar u ocultar la rejilla horizontal de 4D View en el área. Valores asociados: 31 pv value on: se muestra la rejilla horizontal. pv value off: se oculta la rejilla horizontal. Permite mostrar u ocultar la barra de desplazamiento horizontal del área. Valores asociados: pv show hor scrollbar Entero largo 34 pv value on: se muestra la barra de desplazamiento horizontal. pv value off: se oculta la barra de desplazamiento horizontal. Permite mostrar y ocultar la barra de menús de 4D View en el área. Valores asociados: pv show menu bar pv show numbers toolbar Entero largo 25 pv value on: se muestra la barra de menús. pv value off: se oculta la barra de menús. Permite mostrar u ocultar la barra de herramientas Números 4D View en el área. Valores asociados: Entero largo 27 pv value on: se muestra la barra de herramientas Números. pv value off: se oculta la barra de herramientas Números. Permite mostrar u ocultar los encabezados de líneas en el área. Valores asociados: pv show row headers Entero largo 24 pv value on: se muestran los encabezados de líneas. pv value off: se ocultan los encabezados de líneas. Permite fijar o leer el modo de visualización de la selección en un área 4D View que no tiene el foco. Valores asociados: pv show selection pv show standard toolbar pv show style toolbar Entero largo 40 pv value on: la selección del área siempre permanece visible (resaltada) sin importar si el área 4D View tiene el foco. pv value off: cuando el área 4D View pierde el foco, la selección ya no es visible. Permite mostrar u ocultar la barra de herramientas estándar de 4D View en el área. Valores asociados: Entero largo 26 pv value on: se muestra la barra de herramientas estándar. pv value off: se oculta la barra de herramientas estándar. Permite mostrar u ocultar la barra de herramientas estilo de 4D View en el área. Valores asociados: Entero largo 28 pv value on: se muestra la barra de herramientas estilo. pv value off: se oculta la barra de herramientas estilo. Permite mostrar u ocultar la rejilla vertical de 4D View en el área. Valores asociados: pv show vert grid Entero largo 32 pv value on: se muestra la rejilla vertical. pv value off: se oculta la rejilla vertical. Permite mostrar u oculta la barra de desplazamiento vertical 4D View del área. Valores asociados: pv show vert scrollbar Entero largo 35 pv value on: se muestra la barra de desplazamiento vertical. pv value off: se oculta la barra de desplazamiento vertical. Permite leer el número de paneles verticales en el área. Esta constante sólo puede leerse utilizando el comando PV Get area property. Valores devueltos: número de paneles. pv vert pane count Entero largo 10 pv zoom factor Entero largo 36 Recordatorio: un panel es el área ubicada entre dos separadores (horizontal o vertical). Permite leer o definir el valor del zoom (en porcentaje) para el área. Valores asociados: tasa de compresión entre 25 y 1000. PV Propiedades celda Constante Tipo Valor Comentario pv add name pv cell height pv cell width pv replace name Entero largo Entero largo Entero largo Entero largo 0 101 100 1 The new name is added to any names already set for the cell Permite definir la altura de la celda. Valores asociados: altura expresada en píxeles. Permite definir el ancho de la celda. Valores asociados: ancho expresado en píxeles The new name replaces any names that have already been set for the cell. PV Propiedades documento Constante Tipo Valor Comentario pv column count Entero largo 0 Allows setting or reading of the number of columns displayed in the area. Allows setting or reading of the "modified" attribute of area. Associated values: pv value on or pv value off. pv document modified Entero largo 4 When this constant is used in write mode ( PV SET DOCUMENT PROPERTY command), passing pv value on in the value parameter will cause a warning dialog box to be displayed when the area is closed indicating that it has been modified. If the value parameter contains pv value off, and if the document is not modified subsequently by the user or by programming, this dialog box does not appear. When this constant is used in read mode, using the PV Get document property command, the value returned is 1 if the document has been modified, and 0 otherwise. Allows forbidding of calls to 4D variables, methods and commands in the formulas of the area. Associated values: pv value on or pv value off. pv no external call Entero largo pv picture count pv row count Entero largo Entero largo 3 pv value on: calls to 4D variables, methods and commands are forbidden in the formulas (in this case, it is possible to use “PV Allows Input” theme commands to define which 4D objects can be called). pv value off: calls to all 4D variables, methods and commands are allowed in the formulas (default value). 2 This constant is read-only ( PV Get document property command). It returns the number of pictures pasted into the area. 1 Allows setting or reading of the number of rows displayed in the area. PV Propiedades estilo Constante Tipo Valor Comentario Permite activar la función de ajustar cuando el contenido de la celda excede el ancho de la misma. Valores asociados: constantes del tema PV Valores estilo. pv style automatic word wrap pv style based on pv style color back even pv style color back odd pv style color minus even pv style color minus odd pv style color text even pv style color text odd pv style color zero even pv style color zero odd pv style format alpha pv style format bool Entero largo 33 Entero largo 4 Entero largo 11 Entero largo 12 Entero largo 17 Entero largo 18 Permite fijar el color del texto contenido en la celda si la celda está ubicada en una línea impar y su valor es negativo. Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color). Entero largo 13 Permite fijar el color del texto contenido en la celda si la celda está ubicada en una línea par. Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color). Entero largo 14 Permite fijar el color del texto contenido en la celda si la celda está ubicada en una línea impar. Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color). Entero largo 15 Entero largo 16 Entero largo 6 La celda utiliza el formato de visualización de texto cuyo número se pasa en el parámetro valor. Valores asociados: números de formatos de visualización. Entero largo 8 La celda utiliza el formato de visualización booleano cuyo número se pasa en el parámetro valor. Valores asociados: números de formatos de visualización. pv value on: el contenido de la celda se mueve automáticamente a la siguiente línea si es necesario. pv value off: el contenido de la celda pasa a las celdas adyacentes si es necesario. La celda utiliza como modelo la hoja de estilo cuyo número se pasa en el parámetro valor. Valores asociados: números de hojas de estilo o constantes del tema PV Estilo valores especiales. Permite fijar el color de fondo de la celda si la celda está ubicada en una línea par. Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color) o pv value none (tema PV Valores estilo) para no asociar ningún color. Permite fijar el color de fondo de la celda si está ubicada en una línea impar. Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color) o pv value none (tema PV Valores estilo) para no asociar ningún color. Permite fijar el color del texto contenido en la celda si la celda está ubicada en una línea par y su valor es negativo. Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color). Permite definir el color del texto contenido en la celda si la celda está ubicada en una línea par y su valor es 0 (cero). Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color). Permite definir el color del texto contenido en la celda si la celda está ubicada en una línea impar y su valor es 0 (cero). Valores asociados: números de colores (ver los comandos PV RGB to color y PV Index to color). La celda utiliza el formato de visualización fecha y hora cuyo número se pasa en el parámetro valor. Valores asociados: constantes del tema PV Formato fecha hora. pv style format date time Entero largo 9 pv Short: 02/21/02 pv Abbreviated: jue 21 feb 2002 pv Long: jueves 21 febrero 2002 pv Short2: 02/21/2002 pv Month Day Year: 21 febrero, 2002 pv Abbr Month Day Year: 21 feb, 2002 pv Day Name: jueves pv Day Number: 21 pv Month Name: febrero pv Month Number: 2 pv Year Number: 2002 pv Long H MM AM PM: jueves 21 febrero 2002 a las 12:30 PM pv Abbreviated H MM AM PM: jue 21 feb 2002 a las 12:30 PM pv Short HH MM SS: 02/21/02 a las 12:30:00 pv Month Day Year H MM AM PM: 21 febrero, 2002 a las12:30 PM pv Short2 Hour Min Sec: 21/02/2002 y 12 horas 30 minutos 0 segundos pv HH MM SS: 12:30:00 pv HH MM: 12:30 pv Hour Min Sec: 12 horas 30 minutos 0 segundos pv Hour Min: 12 horas 30 minutos pv HH MM AM PM: 12:30 PM Nota: dependiendo de la configuración actual de su sistema, el resultado obtenido puede ser diferente. Permite forzar la visualización de la celda en texto bruto, es decir sin el formato aplicado por 4D View en función de su contenido (número, fecha, texto, etc.). Valores asociados: constantes del tema PV Valores estilo. pv style format forced text Entero largo pv style format num Entero largo pv style format picture Entero largo pv style hidden Entero largo 32 7 10 pv value on: el contenido de la celda se muestra sin formato. pv value off (por defecto): la celda se muestra con formato automático en función de su contenido. La celda utiliza el formato de visualización numérico cuyo número se pasa en el parámetro valor. Valores asociados: números de formatos de visualización. Nota: los números de los formatos de visualización por defecto corresponden a su posición en el menú de selección del formato (caja de diálogo Formatos de celdas). Permite definir el formato de visualización de la imagen asociada a la celda. Valores asociados: constantes del tema PV Visualización imagen. pv mapping trunc non-centered pv mapping truncated centered pv mapping replicated pv mapping scaled to fit prop pv mapping scaled to fit pv mapping scaled centered prop Permite fijar el bloqueo y ocultamiento de celdas. El contenido de una celda bloqueada u oculta no se muestra y no puede modificarse, seleccionarse, etc. Valores asociados: constantes del tema PV Valores estilo. 1 pv value on: celda bloqueda y oculta. pv value off: celda no bloqueada ni oculta. Permite fijar la alineación horizontal del contenido de la celda. Valores asociados: constantes del tema PV Valores estilo. pv style hor alignment Entero largo 29 pv value hor alignment default: aplica la alineación horizontal por defecto a la celda. pv value hor alignment left: aplica una alineación horizontal a la izquierda a la celda. pv value hor alignment center: aplica una alineación horizontal centrada a la celda. pv value hor alignment right: aplica una alineación horizontal a la derecha a la celda. Permite fijar el bloqueo para el usuario de la celda. El contenido de una celda bloqueada no puede modificarse, seleccionarse, etc. Valores asociados: constantes del tema PV Valores estilo. pv style locked Entero largo 0 pv value on: celda bloqueada. pv value off: celda no bloqueada. Permite fijar la rotación del contenido de la celda. Valores asociados: constantes del tema PV Valores estilo. pv style rotation Entero largo 31 pv value rotation 0: no aplica rotación a la celda. pv value rotation 90: aplica una rotación de 90° a la izquierda. pv value rotation 180: aplica una rotación de 180°. pv value rotation 270: aplica una rotación de 270° a la izquierda. Permite aplicar una corrección ortográfica a la celda. Valores asociados: constantes del tema PV Valores estilo. pv style spellcheck Entero largo 2 pv value on: se aplica corrección ortográfica a la celda. pv value off: no se aplica corrección ortográfica a la celda. Permite fijar el atributo Negrita al texto de la celda. Valores asociados: constantes del tema PV Valores estilo. pv style text bold Entero largo 22 pv value on: aplica el atributo Negrita a la celda. pv value off: no aplica el atributo Negrita a la celda. Permite fijar el atributo Condensado al texto de la celda. Valores asociados: constantes del tema PV Valores estilo. pv style text condensed Entero largo 27 pv value on: aplica el atributo Condensado a la celda. pv value off: no aplica el atributo Condensado a la celda. Permite fijar el atributo Extendido del texto de la celda. Valores asociados: constantes del tema PV Style values. Style values. pv style text extended Entero largo pv style text face pv style text font Entero largo Entero largo pv style text italic Entero largo 28 21 19 23 pv value on: aplica el atributo Extendido a la celda. pv value off: no aplica el atributo Extendido a la celda. Permite fijar la hoja de estilo de la celda. Valores asociados: números de hojas d estilo o constantes del tema PV Style special values. Permite fijar la fuente de la celda. Valores asociados: números de fuentes (ver los comandos PV Add font y PV GET FONT LIST). Permite fijar el atributo Itálica del texto de la celda. Valores asociados: constantes del tema PV Style values. pv value on: aplica el atributo Itálica a la celda. pv value off: no aplica el atributo Itálica a la celda. Permite fijar el atributo Relieve del texto de la celda. Valores asociados: constantes del tema PV Style values. pv style text outline Entero largo 25 pv value on: aplica el atributo Relieve a la celda. pv value off: no aplica el atributo Relieve a la celda. Permite fijar el atributo Sombra al texto de la celda. Valores asociados: constantes del tema PV Valores estilo. pv style text shadow Entero largo 26 pv style text size Entero largo 20 pv value on: aplica el atributo Sombra a la celda. pv value off: no aplica el atributo Sombra a la celda. Permite definir el tamaño de la fuente de la celda. Valores asociados: tamaño en píxeles. Permite fijar el atributo Subrayado para el texto de la celda. Valores asociados: constantes del tema PV Valores estilo. pv style text underline Entero largo 24 pv value on: aplica el atributo Subrayado a la celda. pv value off: no aplica el atributo Subrayado a la celda. Permite adaptar el tamaño de la celda en función de la altura de la imagen asociada. Valores asociados: constantes del tema PV Valores estilo. pv style use picture height Entero largo 3 pv value on: el tamaño de la celda se adapta al tamaño de la imagen que contiene. Si ninguna imagen está relacionada, la celda no se redimensiona. pv value off: el tamaño de la celda no varía en función del tamaño de la imagen asociada. Permite fijar la alineación vertical del contenido de la celda. Valores asociados: constantes del tema PV Valores estilo. pv style vert alignment Entero largo 30 pv value vert alignment top: aplica una alineación superior a la celda. pv value vert alignment center: aplica una alineación vertical centrada a la celda. pv value vert alignment bottom: aplica una alineación inferior vertical a la celda. PV Propiedades imágenes Las constantes "pv picture data width" y "pv picture data height" se utilizan en lectura únicamente. Constante Tipo Valor pv picture background pv picture column pv picture data height pv picture data width pv picture display height pv picture display width pv picture fixed size pv picture hor offset pv picture locked pv picture mapping mode pv picture row pv picture vert offset Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 8 0 5 4 7 6 10 2 11 9 1 3 Comentario PV Propiedades impresión Constante Tipo pv print adjust area Entero largo Valor Comentario Permite añadir o no el área imprimible. Valores asociados: 10 pv value on: se ajusta el área imprimible. pv value off: no se ajusta el área imprimible. Permite leer o fijar la ubicación del de la unión cuando la impresión se efectúa en modo por ambas caras (ver arriba). Valores asociados: las siguientes constantes del tema “PV Valores impresión”: pv print binding Entero largo 26 pv left binding: unión izquierda (valor por defecto). pv top binding: unión superior. Nota: esta propiedad sólo se puede utilizar bajo Windows. pv print bottom margin Entero largo pv print centered Entero largo 3 La margen inferior es el área entre la parte inferior del papel (incluyendo la margen muerta inferior) y el pie de página. Valores asociados: margen en píxeles. Permite centrar o no la impresión en la página. Valores asociados: 9 pv value on: la impresión se centra en la página. pv value off: la impresión no se centra en la página. Permite fijar o leer el modo para manejar el color. Esta propiedad sólo es útil con impresoras a color. Valores asociados: constantes del tema “PV Valores impresión”: pv print color Entero largo 23 pv black and white: impresión en blanco y negro (monochrome). pv color: impresión a color. Nota: esta propiedad sólo puede utilizarse en Windows. pv print dead bottom margin Entero largo 18 pv print dead left margin Entero largo 15 pv print dead right margin Entero largo 17 pv print dead top margin Entero largo 16 Esta constante es de solo lectura (comando PV Get print property) y devuelve el tamaño, en píxeles, del márgen muerto inferior. Nota: el margen muerto es el espacio no imprimible, ubicado al borde del papel. Esta área es fijada por el piloto de la impresora. Esta constante es de sólo lectura (comando PV Get print property) y devuelve el tamaño, en píxeles, del margen muerto izquierdo. Nota: el margen muerto es el espacio no imprimible, ubicado al borde del papel. Esta área es fijada por el piloto de la impresora. Esta constante es de sólo lectura (comando PV Get print property) y devuelve el tamaño, en píxeles, del margen muerto derecho. Nota: el margen muerto es el espacio no imprimible, ubicado al borde del papel. Esta área es fijada por el piloto de la impresora. Esta constante es de sólo lectura (comando PV Get print property) y devuelve el tamaño, en píxeles, del margen muerto superior. Nota: el margen muerto es el espacio no imprimible, ubicado al borde del papel. Esta área es fijada por el piloto de la impresora. Permite fijar u obtener el destino de la impresión. Valores asociados: las siguientes constantes del tema PV Valores impresión: pv print destination pv print document name pv print Entero largo Entero largo 24 27 pv destination printer: la impresión se envía a la impresora. pv destination file (Windows únicamente): la impresión se envía a un archivo. Cuando se utiliza esta constante, valor2 contiene la ruta de acceso para el documento resultante. Si pasa una cadena vacía en valor2 u omite este parámetro, aparece una caja de diálogo de guardar archivos al momento de la impresión. pv destination PDF file (Mac OS únicamente): el trabajo de impresión se envía a un archivo PDF. Cuando se utiliza esta constante, valor2 contiene la ruta de acceso para el documento PDF resultante. Si pasa una cadena vacía en valor2 u omite este parámetro, aparece una caja de diálogo de guardar archivos al momento de la impresión. pv destination EPS file (Mac OS únicamente): el trabajo de impresión se envía a un archivo EPS. Cuando se utiliza esta constante, valor2 contiene la ruta de acceso para el documento EPS resultante. Si pasa una cadena vacía en valor2 u omite este parámetro, aparece una caja de diálogo de guardar archivos al momento de la impresión. Permite fijar o leer el nombre del documento de impresión que debe aparecer en la lista de documentos del servidor de impresión. Cuando se utiliza esta constante, valor2 contiene el nombre del documento de impresión. Pase 0 en valor. Para utilizar o restablecer el funcionamiento estándar (uso del nombre “4D View”), pase una cadena vacía en valor2. Permite imprimir por uno o por ambos lados. Valores asociados: pv print double sided Entero largo 25 pv value on: impresión por ambos lados. pv value off: impresión por un solo lado (valor por defecto). Nota: esta propiedad sólo se puede utilizar en Windows. Permite imprimir o no un marco alrededor de cada página impresa. Valores asociados: pv print frame each page Entero largo 11 pv value on: se imprime un marco para cada página. pv value off: no se imprime ningún marco. Permite imprimir o no una rejilla en el área. Valores asociados: pv print grid Entero largo 12 pv value on: se imprime la rejilla. pv value off: no se imprime la rejilla. Permite imprimir o no los encabezados de las líneas y columnas. Valores asociados: pv print headers Entero largo 8 pv print left margin pv print number copies Entero largo 0 El margen izquierdo es el área entre el lado izquierdo del papel (incluyendo el margen muerto izquierdo) y el área de impresión. Valores asociados: margen en píxeles. Entero largo 21 Permite fijar o leer el número de copias a imprimir. Valores asociados: número de copias (1 por defecto). pv value on: imprime los encabezados de líneas y columnas. pv value off: no imprime los encabezados de líneas y columnas. Permite fijar o leer la orientación del papel durante la impresión. Valores asociados: constantes del tema PV Print values. pv print orientation Entero largo pv print pages from pv print pages to pv print paper height Entero largo Entero largo 19 pv portrait orientation: el papel está orientado en modo vertical. pv landscape orientation: el papel está orientado en modo en horizontal. 28 Permite fijar o leer el número de la página donde quiere que comience la impresión. Valores asociados: número de página. 29 Permite fijar o leer el número de la última página a imprimir. Valores asociados: número de página. 14 Devuelve el alto del papel. Valores asociados: altura en píxeles. Entero largo 22 Permite definir o leer la bandeja de papel a utilizar. Valores asociados: valor del elemento info1Array que correspondiente al elemento del arrayNombres devuelto por el comando 4D PRINT OPTION VALUES. Este array contiene el nombre de la bandeja de papel a utilizar. Nota: esta propiedad solo puede utilizarse en Windows. pv print paper width pv print repeat first column pv print repeat first row pv print repeat last column pv print repeat last row pv print right margin Entero largo 13 Devuelve el ancho del papel. Valores asociados: ancho en píxeles. Entero largo 4 Entero largo 6 Entero largo 5 Entero largo 7 Entero largo 2 pv print scale Entero largo 20 pv print top margin Entero largo 1 pv print paper source Entero largo Indica el número de la primera columna del rango de columnas a imprimir en cada página. Esta constante debe utilizarse en combinación con la constante pv print repeat last column. Valores asociados: número de columna. Indica el número de la primera línea del rango de líneas a imprimir en cada página. Esta constante debe utilizarse en combinación con la constante pv print repeat last row. Valores asociados: número de línea. Indica el número de la última columna del rango de columnas a imprimir en cada página. Esta constante debe utilizarse en combinación con la constante pv print repeat first column. Valores asociados: número de columna. Indica el número de la última línea del rango de líneas a imprimir en cada página. Esta constante debe utilizarse en combinación con la constante pv print repeat first row. Valores asociados: número de línea. El margen derecho es el área entre el lado derecho del papel (incluyendo el margen muerto derecho) y el área de impresión. Valores asociados: margen en píxeles. Permite fijar o leer la escala de impresión actual. Recuerde, sin embargo, que algunas impresoras no permiten modificar la escala. Si pasa un valor invalido, la propiedad pasa al 100% al momento de la impresión. Valores asociados: escala de impresión. El margen superior es el área entre la parte superior del papel (incluyendo el margen muerto superior) y el área de impresión. Valores asociados: margen en píxeles. PV Propiedades panel La constante "pv pane relative scroll" se utiliza únicamente con los comandos de escritura (PV SET PANE PROPERTY...). Constante Tipo Valor Comentario pv pane columns count pv pane first column pv pane first row pv pane lock scrollbar pv pane lock splitter Entero largo 5 pv pane relative scroll Entero largo Entero largo 4 4 Entero largo 0 This property is inactive in an area in "frozen pane" mode Entero largo 1 This property is inactive in an area in "frozen pane" mode Entero largo 7 Property can only be used with the "PV SET..." commands. Used to scroll the contents of the pane by value pixels with respect to the current position of the scrolling cursor. Note that scrolling in pixels is adjusted so that the upper-most row of the area is not truncated horizontally. This property is inactive when the area is in "frozen pane" mode. pv pane rows count pv pane size in pixels Entero largo 5 Entero largo 3 This property is inactive in an area in "frozen pane" mode pv pane true scroll Entero largo 6 Indicates in pixels the scrolling value for the contents of the pane starting from the origin of the area (i.e. the first cell), regardless of the current position of the scrolling cursor. This property is inactive in an area that is in "frozen pane" mode. pv pane view splitter cursor Entero largo 2 This property is inactive in an area in "frozen pane" mode PV Propiedades plugin Constante Tipo pv button height Entero largo 5 pv button width Entero largo 4 pv confirm convert dialog Entero largo 6 pv default columns count Entero largo 2 pv default rows count Entero largo 3 pv load template on server Entero largo 1 pv write template on server Valor Comentario Allows defining of minimum height for areas included within 4D View. If less than this value, the area will be displayed as a button (the user simply clicks on the button to display the area as a full-size window). By default, 4D View areas are displayed as buttons if their height is less than 100 pixels. Associated values: height (in pixels). Allows defining of minimum width for areas included within 4D View. If less than this value, the area will be displayed as a button (the user simply clicks on the button to display the area as a full-size window). By default, 4D View areas are displayed as buttons if their width is less than 150 pixels. Associated values: width (in pixels). Allows displaying or removing of a conversion message when a 4D Calc 6.7 document is opened by 4D View. The displayed message is stored in 4D View resources. Associated values: 0 or 1. 0: the confirm message is not displayed. 1: the confirm message is displayed. Allows defining of default number of columns in new 4D View documents. This value can always be modified by the user or by programming. By default, new 4D View documents contain 256 columns. Associated values: number of columns. Allows defining of default number of rows in new 4D View documents. This value can always be modified by the user or by programming. By default, new 4D View documents contain 8192 rows. Associated values: number of rows. In Client/Server applications, allows loading of 4D View document templates from each client machine. By default, templates are loaded from the server. Associated values: 0 or 1. 0: templates are loaded from each client machine. 1: templates are loaded from the server. In Client/Server applications, allows writing of 4D View document templates on each client machine. By default, templates are written on the server. Associated values: 0 or 1. Entero largo 0 0: templates are written on each client machine. 1: templates are written on the server. PV Retorno de carro Las constantes de este tema permiten definir la acción de validación de la tecla Retorno de carro durante la entrada. Una vez está "autorizada", la tecla Retorno de carro valida la entrada, asociada o no a una tecla de modificación (de acuerdo a sus parámetros). Constante pv cr allowed pv cr allowed with ctrl pv cr allowed with shift pv cr not allowed Tipo Entero largo Entero largo Entero largo Entero largo Valor Comentario 1 Pressing the Carriage Return key will create a new line in the cell. 2 Pressing Ctrl+Carriage Return (Command+Carriage Return on Mac OS) will create a new line in the cell. 4 Pressing Shift+Carriage Return will create a new line in the cell. 0 Multi-line data entry is not allowed in the area. PV Tipo valor celda Constante Tipo Valor pv value type boolean pv value type date pv value type date time pv value type none pv value type numeric pv value type picture pv value type string pv value type time Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 6 4 5 0 1 7 2 3 Comentario PV Triggers Los trigges que comienzan por "pv trigger input" sólo se pueden utilizar para la acción de entrada de datos (constante de propiedad "pv input trigger" ). Los trigges que comienzan por "pv trigger selection" sólo se puede utilizar para la acción de selección de datos (constante de propiedad "pv select trigger"). Los otros triggers pueden utilizarse para las acciones de entrada de datos y selección. También se puede utilizar con la constante de propiedad "pv drag trigger". Es posible acumular varios valores para un mismo trigger. Cuando un mismo trigger se define para las acciones de entrada de datos y selección, el trigger de entrada tiene prioridad. La expresión "ctrl" se refiere a la tecla Ctrl en Windows y Comando bajo MacOS. Constante Tipo Valor Comentario pv trigger input key Entero largo 1 Data entry is triggered by any keystroke. In this case, browsing between cells is only possible using the keyboard (Tab and Shift+Tab to move horizontally, Carriage return and Shift+Carriage return to move vertically, or the arrow keys). pv trigger input on enter pv trigger input on gain sel Entero largo 2 Data entry is triggered by the Enter key (numerical keypad). Entero largo 4 Data entry is triggered in the cell which has the focus. In this mode, as soon as a cell is selected, it takes the focus and the cursor becomes an input cursor. pv trigger none Entero largo 0 Dragging: Impossible to drag from this area. Data entry: Data entry is deactivated (no event will trigger input), even if a key is allowed in the data input mode (see constant pv input enter key mode). Data entry is, however, still possible using the Formula Editor toolbar, and the selection may be changed as well. Selection: Il is not possible to specify a selection. It is still possible to enter data in the selection that was current before the command was executed—Tab and Carriage return keys move the active cell within the selection. pv trigger on alt click Entero largo 32 Dragging: The selection can be dragged using an Alt+click combination. Data entry: Data entry is triggered by a Alt+click combination in a cell. Selection: Selection is defined using the Alt+click combination. pv trigger on alt double click Entero largo 64 Dragging: The selection can be dragged using an Alt+double-click combination. Data entry: Data entry is triggered by a Alt+double-click combination in a cell. Selection: Selection is defined using the Alt+double-click combination. pv trigger on click Entero largo 8 Dragging: The selection can be dragged using a mouse click. Data entry: Data entry is triggered by a click in a cell. Unlike the pv trigger input on gain sel constant, no input cursor is displayed. Selection: Selection is defined via mouse clicks. 128 Dragging: The selection can be dragged using a Ctrl+click combination (Command+click on Mac OS). Data entry: Data entry is triggered by a Ctrl+click (Command+click on Mac OS) combination in a cell. Selection: Selection is defined using the Ctrl+click combination (Command+click on Mac OS). 256 Dragging: The selection can be dragged using a Ctrl+double-click combination (Command+double-click on Mac OS). Data entry: Data entry is triggered by a Ctrl+double-click (Command+double-click on Mac OS) combination in a cell. Selection: Selection is defined using the Ctrl+double-click combination (Command+doubleclick on Mac OS). pv trigger on ctrl click Entero largo pv trigger on ctrl double click Entero largo pv trigger on double click Entero largo 16 Dragging: The selection can be dragged using a mouse double-click. Data entry: Data entry is triggered by a double-click in a cell. A single click does not permit input. Selection: Selection is defined (active cell only) via mouse double-clicks. Extending or reducing a selection is not possible. pv trigger on shift click Entero largo 512 Dragging: The selection can be dragged using a Shift+click combination. Data entry: Data entry is triggered by a Shift+click combination in a cell. Selection: Selection is defined using the Shift+click combination. pv trigger on shift double clic Entero largo 1024 Dragging: The selection can be dragged using a Shift+double-click combination. Data entry: Data entry is triggered by a Shift+double-click combination in a cell. Selection: Selection is defined using the Shift+double-click combination. Entero largo 1 Selection is defined (active cell only) using the arrow keys. Extending or reducing a selection is not possible. Entero largo 4 Selection is defined (active cell only) using the Carriage Return key. Extending or reducing a selection is not possible. pv trigger select on arrow pv trigger select on return pv trigger select on tab largo Entero largo selection is not possible. 2 Selection is defined (active cell only) using the Tab key or the Shift+Tab key combination. Extending or reducing a selection is not possible. PV Valores estilo Las constantes con el sufijo "mixed" sólo se pueden utilizar con los comandos de lectura de propiedad. Constante Tipo Valor pv value base style mixed pv value color mixed pv value font name mixed pv value font size mixed pv value format mixed pv value hor alignment center pv value hor alignment default pv value hor alignment left pv value hor alignment mixed pv value hor alignment right pv value ignore pv value ignore base style pv value ignore color pv value ignore font name pv value ignore font size pv value ignore format pv value ignore hor alignment pv value ignore rotation pv value ignore vert alignment pv value mixed pv value none pv value off pv value on pv value rotation 0 pv value rotation 180 pv value rotation 270 pv value rotation 90 pv value rotation mixed pv value vert alignment bottom pv value vert alignment center pv value vert alignment mixed pv value vert alignment top Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 65535 65535 65535 65535 65535 2 0 1 255 3 2 65535 -1 65535 65535 65535 255 255 255 2 -3 0 1 0 2 3 1 255 3 2 255 1 Comentario Applies center horizontal alignment to the cell. Applies horizontal alignment by default to the cell. Applies left horizontal alignment to the cell. Applies mixed horizontal alignment to the cell. Applies right horizontal alignment to the cell. Does not apply value to cell. Applies value to cell. No rotation applied to the cell. Applies rotation of 180°. Applies rotation of 270° to the left. Applies rotation of 90° to the left. Applies mixed rotation to the left. Applies bottom vertical alignment to the cell. Applies center vertical alignment to the cell. Applies mixed vertical alignment to the cell. Applies top vertical alignment to the cell. PV Valores impresión Constante Tipo Valor Comentario pv black and white pv color pv destination EPS file pv destination file pv destination PDF file pv destination printer pv landscape orientation pv left binding pv portrait orientation pv top binding Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 2 3 7 5 6 4 1 8 0 9 Printing in black and white (monochrome). Printing in color. The print job is sent to an EPS file (Mac OS only). The print job is sent to a file (Windows only). The print job is sent to a PDF file (Mac OS only). The print job is sent to the printer. The paper is oriented in landscape mode. Left binding (default value). The paper is oriented in portrait mode. Top binding. PV Visualización imagen Constante Tipo Valor pv mapping replicated pv mapping scaled centered prop pv mapping scaled to fit pv mapping scaled to fit prop pv mapping trunc non-centered pv mapping truncated centered Entero largo Entero largo Entero largo Entero largo Entero largo Entero largo 3 6 5 4 1 2 Comentario Anexos Anexo A: Códigos de error de 4D View Anexo A: Códigos de error de 4D View Esta lista muestra los códigos de error devueltos por 4D View en sus métodos de gestión de errores. Estos códigos son utilizados por los comandos PV GET LAST ERROR y PV ON ERROR. No. Mensaje de error 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 52 53 54 55 56 57 58 59 60 Unknown error Invalid command Obsolete command Obsolete parameter Parameter is out of range Invalid array name Invalid array type Numeric array expected Text array expected Invalid array count Array counts are not the same Invalid variable type Empty picture External area expected 4D View plug-in area expected 4D Calc plug-in area expected ALP plug-in area expected Out of memory Error while reading or writing document Not a 4D View document Not a 4D Calc document Not a SYLK document Invalid document format Document version is too recent Document seems to be damaged Document already exists Document does not exist Invalid property This property is “read-only” Select mode value is invalid Select action value is invalid Carriage return value is invalid Arrow keys value is invalid Enter key value is invalid Sort value is invalid Invalid border edge value Invalid border style value Invalid style target Invalid direction Invalid alignment Invalid rotation Obsolete border style Invalid header type Invalid date & time format Invalid picture format Invalid color Invalid style value Invalid drag&drop behavior Invalid style sheet reference Invalid format reference Invalid font reference Invalid picture number Invalid selected range number Invalid vertical splitter number Invalid horizontal splitter number Last pane cannot be removed Invalid pane width Invalid pane height Invalid column number 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 Invalid row number Cell is linked Invalid cell range Invalid number of columns/rows to insert Invalid number of columns/rows to delete Invalid formula Invalid column width Invalid row height Invalid cell name Name already used No linked column Linked columns do not have the same row count Linked fields do not have the same master table Invalid calculated value type Invalid table or field Invalid table Invalid field Invalid field type No current selection No current record No valued cells to print Invalid statistics Invalid condition Invalid table Stylesheet already exists Invalid operation in a linked area. Sort selection not valid. Print property not valid. Property value not valid. Invalid print settings. This command can only be applied if there is at least one horizontal splitter and one vertical splitter. No splitter can be added when panes are frozen.