Carpetas

<< Click to Display Table of Contents >>

Navegación:  Guía de usuario > Editar y organizar Conceptos >

Carpetas

Los Conceptos de tipo Carpeta se utilizan para:

Organizar el resto de los Conceptos.

Ejecutar consultas a la base de datos, mostrando sus resultados en la Lista de Conceptos de la ventana principal

Ejecutar un programa definido en la carpeta.

Carpeta

 

La cabecera de la ventana de propiedades de carpetas muestra los elementos genéricos de las ventanas de propiedades de Conceptos.

Existen tres clases de carpetas: las carpetas de Relación o carpetas de hijos, carpetas de búsqueda en SQL, y las de JavaScript o de sentencias xjs. Estas tres clases permiten definir carpetas para poder organizar los Conceptos atendiendo a multitud de criterios.

Las tres clases de carpeta llevarán a cabo una acción en el momento de abrir la carpeta. Una carpeta se abre:

Al seleccionarla en el panel de búsqueda en árbol de la ventana principal.

Al hacer doble clic sobre su fila en la lista de Conceptos de la ventana principal, siempre que el puntero del ratón no se encuentre sobre el icono de tipo de Concepto.

Las tres clases de carpeta comparten las siguientes propiedades:

Doble altura de los hijos: si está activado, hace que las líneas de la lista de los Conceptos resultantes de la ejecución de la carpeta se muestren con una altura doble que la habitual, aumentando el tamaño del icono de tipo y el de la letra utilizada para mostrar los datos de las columnas.

Carpeta asociada a tipo: este botón permite asociar la carpeta a un tipo de Concepto, pasando a formar parte de las búsquedas asociadas al tipo de Concepto seleccionado. En el Menú Concepto Actual, la opción Búsquedas asociadas abrirá la ventana de búsquedas asociadas mostrando las descripciones de las carpetas asociadas al tipo de Concepto. Vea en este mismo tema un ejemplo de carpeta asociada a un tipo.

Rol necesario para ejecutar la carpeta: códigos de rol, de entre los definidos en Gestión de usuarios / roles, separados por coma. Si el usuario no tiene asociados los roles aquí especificados, no podrá  abrir la carpeta, recibiendo un mensaje de error cuando lo intenta: No tiene el rol necesario para ejecutar esta operación.

Rol necesario para editar las propiedades de la carpeta: se especifican los códigos de rol, de los definidos en Gestión de usuarios / roles, que tienen que tener asignados los usuarios para poder modificar las propiedades de la carpeta. Si el usuario no tiene asociado alguno de los roles aquí especificados, podrá abrir la ventana de propiedades de la carpeta, pero todos los campos aparecerán inhabilitados.

Aplicaciones Prosoft que podrán ejecutar la carpeta: se pueden especificar las aplicaciones de Prosoft desde las cuales se puede ejecutar la carpeta. Pinchando el botón Btn_Anadir  se abrirá la ventana de selección de aplicaciones instaladas.

Búsqueda en SQL, Javascript o comandos: este cuadro de texto contendrá las sentencias a ejecutar al abrir la carpeta. Por ser un cuadro de edición de programas, presenta las mismas facilidades que la ventana Programas: utiliza colores distintos para diferenciar los elementos de la sentencia y, con el botón derecho del ratón, despliega el menú de edición de texto.

 

Carpetas de Relación

Las carpetas de la clase hijos almacenan Conceptos con los que tienen una relación padre-hijo explícita, relación que se almacena en la base de datos como el resto de los datos de la aplicación.

Al abrir una carpeta de la clase hijos, se ejecuta una consulta a la base de datos recuperando sus Conceptos hijos. Esta acción es llevada a cabo por defecto, sin tener que especificarla en las propiedades de la carpeta. Es por esto por lo que el campo que define las sentencias a ejecutar al abrir la carpeta, se encuentra inhabilitado en esta clase de carpetas.

Este tipo de carpeta se usa para organizar el resto de los conceptos de una forma jerárquica, como se explica en el tema Organizar los Conceptos.

En las carpetas de relación se muestra una opción adicional llamada Mostrar la carpeta como un panel de la ventana principal que, al activarse, se muestra como panel en la parte izquierda de la ventana principal.

Además se puede elegir en que posición se muestra eligiendo un valor entre 0 y 100, siempre por debajo de las fijas existentes.

Carprela

 

 

Carpetas de Búsqueda en SQL

Las carpetas de la clase búsqueda muestran los datos que son el resultado de una consulta hecha a la base de datos en el momento de abrir la carpeta. No existe en este caso una relación explícita entre el Concepto Carpeta y sus hijos. Los datos que se muestran son hijos virtuales y no explícitos.

Al especificar el Tipo de carpeta como de Búsqueda, se habilitará el campo multilínea que permite especificar una sentencia SQL que se ejecutará al abrir la carpeta.  Supongamos por ejemplo que quiere crear una carpeta para consultar los Cobros emitidos en el año 2018, ordenados por fecha y código.

Select ide as o__o, tip, cod, res, est

from con

where tip=24 and left(fec,4)='2018' order by fec, cod

 

Hay un sistema sencillo para poder crear esta clase de carpetas sin tener conocimientos de SQL ni de la estructura de la base de datos. Consiste en dejar que la aplicación construya la sentencia y pegarla en las propiedades de la carpeta. Por ejemplo, en la ventana búsqueda general especifique el tipo de concepto, condiciones de búsqueda, ordenación, etc., seleccione la sentencia SELECT construida por la aplicación en esta ventana, y copie esta sentencia al portapapeles (pulsando Control + C, o utilizando el menú que se despliega al hacer clic con el botón derecho del ratón en el campo del comando de búsqueda). A continuación pase a la ventana de propiedades de la Carpeta, y pegue el contenido del portapapeles como sentencia a ejecutar al abrir la carpeta (utilice las teclas Control + V o el menú contextual).

También puede utilizar los controles de búsqueda rápida de la ventana principal y hacer clic con el botón derecho del ratón sobre la etiqueta de Búsqueda para copiar la sentencia al portapapeles y pegarla como en el caso anterior.

La sentencia SELECT no tiene porqué devolver una lista de Conceptos, puede recuperar cualquier información de la base de datos, al construirla únicamente tiene que tener en cuenta lo siguiente:

La primera columna será el ide del registro. Si contiene el ide de un Concepto, al hacer doble clic sobre la línea se abrirá su ventana de propiedades.

La segunda columna se interpreta como la columna de Tipo, sí su valor coincide con un número de tipo de Concepto, se reemplazará por el icono correspondiente a este tipo. Al hacer doble clic sobre él, se abrirá la ventana de propiedades correspondiente.

Si el alias de la columna contiene dos guiones bajos seguidos de una de las letras que se especifican a continuación, se interpretará como sigue:

o: la columna quedará oculta en la lista.

f: los datos de la columna tendrán el formato de fecha definido en las Opciones del programa.

t: se calculará la suma de los datos de esta columna y se mostrará el resultado en la cabecera de la lista de Conceptos. Únicamente puede haber una columna de este tipo en el SELECT.

h: los datos se mostrarán con el formato de hora definido en las Opciones del programa.

di: los datos numéricos de la columna se mostrarán con los decimales especificados para los importes en los Parámetros de la empresa.

dc: los datos numéricos de la columna se mostrarán con los decimales especificados para las cantidades en los Parámetros de la empresa.

dp: los datos numéricos de la columna se mostrarán con los decimales especificados para los precios en los Parámetros de la empresa.

d0 a d6: los datos numéricos de la columna se mostrarán con el número de decimales que sigue a la letra d, de 0 a 6 decimales.

Por ejemplo, cuando la siguiente sentencia se incluye en la definición de una carpeta,

SELECT apu.asiide as Ide__o, 20 as Tipo, regiva.fec as Fecha__f, regiva.cif as CIF, regiva.raz as "Razón Social", regiva.bas AS Base__di, regiva.ivacuo AS Cuota__di

FROM regiva, apu

WHERE apu.ide = regiva.apuide and regiva.fec between 20180101 and 20181231

ORDER BY regiva.cif

 

Al abrir la carpeta o pulsar el botón Ejecuta de la barra de botones, mostrará la lista de registros de IVA del año 2018, ordenados por el CIF del cliente o proveedor. La primera columna visible, etiquetada como Tipo, mostrará el icono Asiento contable, pues el 20 corresponde a este tipo de Concepto. El ide del Asiento contable asociado al registro de IVA se recupera como primera columna, pero no se mostrará. Cuando haga doble clic sobre una fila de la lista, se abrirá la ventana de propiedades de Asiento contable, mostrando el asiento que está relacionado con la línea del registro de IVA.

La sentencia SQL puede contener las siguientes claves, que serán reemplazadas antes de ser enviada al motor de base de datos:

<eje>: se reemplaza por el ejercicio de trabajo seleccionado en la ventana principal.

<emp>: se reemplaza por el número de la empresa de trabajo.

<ide>: se reemplaza por el ide del Concepto seleccionado en la lista de Conceptos.

Las carpetas de Búsqueda pueden utilizarse para añadir nuevas Búsquedas asociadas a un tipo de Concepto. Por ejemplo, para crear una búsqueda asociada a Clientes que permita consultar las facturas emitidas a dicho cliente durante el año de trabajo:

Primero se crea una nueva carpeta con un resumen descriptivo: Facturas del cliente (año de trabajo), a continuación se establece Búsqueda en SQL para la Clase de la carpeta, y se asocia la siguiente sentencia SQL:

SELECT con.ide AS "Ide__o",con.tip As "Tipo",con.fec AS "Fecha__f", con.cod AS "Código",con.res AS "Resumen", dvf.totdoc as Importe__di

FROM con,dvf

WHERE con.ide=dvf.ide AND con.tip = 11 AND dvf.entide = <ide> AND con.fec BETWEEN <eje>0101 AND <eje>1231

ORDER BY con.fec, con.cod

 

Por último, pulsando el botón Carpeta asociada a tipo, se asocia la carpeta al tipo de Concepto Cliente.

La ventana de búsquedas asociadas, cuando el Concepto seleccionado sea un cliente, mostrará la búsqueda Facturas del cliente (año de trabajo), que al ser seleccionada, ejecutará la sentencia SQL, mostrándose en la lista de Conceptos las facturas del cliente emitidas durante el año de trabajo.

 

Carpetas Javascript

Las carpetas de la clase xjs tienen asociado código de programación xjs (ver Programas XJS)  que se ejecuta al abrir la carpeta. Esta clase de carpetas permiten por ejemplo, abrir otras ventanas de la aplicación, ejecutar procedimientos almacenados, etc.

Un ejemplo de este tipo de carpetas son las que muestran los balances para las cuentas anuales, estas son carpetas de Clase Búsqueda en SQL que tienen asociada la sentencia pancrea. Este método forma parte de las extensiones que la aplicación hace al lenguaje JScript, y permite abrir una ventana de la aplicación, en este caso la ventana de balances, y especificar el archivo de definición de balance que se quiere consultar. En concreto, para consultar el balance de situación se crea una carpeta con la sentencia pancrea ("bal", "balsita.bal"), siendo "bal" el identificador de la ventana de balances y "balsita.bal" el archivo de definición del balance de situación.

 

Barra de botones de carpetas

Boton_ejecuta Ejecuta las sentencias especificadas para la carpeta, mostrando el resultado en la ventana principal, es una forma cómoda de probar la ejecución de las sentencias antes de guardar los cambios realizados.

Boton_deshace Deshace los cambios realizados, desde el momento que se abrió la ventana, en las sentencias definidas para esta carpeta. Es útil en el caso de que se realicen modificaciones y se quiera restaurar la situación inicial.

El resto de los botones son los estándar de la barra de botones de las ventanas de propiedades.